{"id":20017032,"url":"https://github.com/blackbird-cloud/terraform-aws-cloudformation-stackset","last_synced_at":"2025-05-04T22:31:50.871Z","repository":{"id":163935709,"uuid":"639338497","full_name":"blackbird-cloud/terraform-aws-cloudformation-stackset","owner":"blackbird-cloud","description":"Terraform module to create an AWS CloudFormation StackSet","archived":false,"fork":false,"pushed_at":"2025-01-31T15:25:55.000Z","size":82,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-08T13:49:56.245Z","etag":null,"topics":["aws","cloudformation","terraform"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/blackbird-cloud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-11T09:10:44.000Z","updated_at":"2025-01-31T15:25:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"21849365-3728-46f2-922c-2ec20020f667","html_url":"https://github.com/blackbird-cloud/terraform-aws-cloudformation-stackset","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":"blackbird-cloud/terraform-module-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blackbird-cloud%2Fterraform-aws-cloudformation-stackset","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blackbird-cloud%2Fterraform-aws-cloudformation-stackset/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blackbird-cloud%2Fterraform-aws-cloudformation-stackset/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blackbird-cloud%2Fterraform-aws-cloudformation-stackset/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blackbird-cloud","download_url":"https://codeload.github.com/blackbird-cloud/terraform-aws-cloudformation-stackset/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252408389,"owners_count":21743110,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","cloudformation","terraform"],"created_at":"2024-11-13T08:14:11.806Z","updated_at":"2025-05-04T22:31:50.850Z","avatar_url":"https://github.com/blackbird-cloud.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- BEGIN_TF_DOCS --\u003e\n# Terraform Aws Cloudformation Stackset Module\nTerraform module to create an AWS CloudFormation StackSet\n\n[![blackbird-logo](https://raw.githubusercontent.com/blackbird-cloud/terraform-module-template/main/.config/logo_simple.png)](https://blackbird.cloud)\n\n## Example\n```hcl\nmodule \"account_info\" {\n  source  = \"blackbird-cloud/account-info/aws\"\n  version = \"~\u003e 2\"\n}\n\nmodule \"stackset\" {\n  source  = \"blackbird-cloud/cloudformation-stackset/aws\"\n  version = \"~\u003e 1\"\n\n  name         = \"AWSCloudFormationStackSetExecutionRole\"\n  template_url = \"https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/AWSCloudFormationStackSetExecutionRole.yml\"\n  description  = \"Cloudformation account execution role.\"\n\n  parameters = {\n    AdministratorAccountId = module.account_info.account_id\n  }\n\n  auto_deployment = {\n    enabled                          = true\n    retain_stacks_on_account_removal = false\n  }\n\n  capabilities = [\"CAPABILITY_NAMED_IAM\"]\n\n  operation_preferences = {\n    max_concurrent_count    = 10\n    failure_tolerance_count = 9\n    region_concurrency_type = \"PARALLEL\"\n    concurrency_mode        = \"SOFT_FAILURE_TOLERANCE\"\n  }\n\n  permission_model = \"SERVICE_MANAGED\"\n  stackset_instance_organizational_unit_ids = [\n    \"r-12345\"\n  ]\n  stackset_instance_accounts = []\n}\n```\n\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 1 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | \u003e= 5.60 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | \u003e= 5.60 |\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_cloudformation_stack_set.default](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudformation_stack_set) | resource |\n| [aws_cloudformation_stack_set.self_managed](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudformation_stack_set) | resource |\n| [aws_cloudformation_stack_set_instance.accounts](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudformation_stack_set_instance) | resource |\n| [aws_cloudformation_stack_set_instance.default](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudformation_stack_set_instance) | resource |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_administration_role_arn\"\u003e\u003c/a\u003e [administration\\_role\\_arn](#input\\_administration\\_role\\_arn) | (Optional) Amazon Resource Number (ARN) of the IAM Role in the administrator account. This must be defined when using the SELF\\_MANAGED permission model. | `string` | `null` | no |\n| \u003ca name=\"input_auto_deployment\"\u003e\u003c/a\u003e [auto\\_deployment](#input\\_auto\\_deployment) | (Optional) Whether or not auto-deployment is enabled. | \u003cpre\u003eobject({\u003cbr/\u003e    enabled                          = bool,\u003cbr/\u003e    retain_stacks_on_account_removal = bool\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"enabled\": false,\u003cbr/\u003e  \"retain_stacks_on_account_removal\": false\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_call_as\"\u003e\u003c/a\u003e [call\\_as](#input\\_call\\_as) | (Optional) Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. Valid values: SELF (default), DELEGATED\\_ADMIN. | `string` | `\"SELF\"` | no |\n| \u003ca name=\"input_capabilities\"\u003e\u003c/a\u003e [capabilities](#input\\_capabilities) | (Optional) A list of capabilities. Valid values: CAPABILITY\\_IAM, CAPABILITY\\_NAMED\\_IAM, CAPABILITY\\_AUTO\\_EXPAND | `list(string)` | `[]` | no |\n| \u003ca name=\"input_create_instance\"\u003e\u003c/a\u003e [create\\_instance](#input\\_create\\_instance) | (Optional) Whether to create a stackset instance. Defaults to true. | `bool` | `true` | no |\n| \u003ca name=\"input_description\"\u003e\u003c/a\u003e [description](#input\\_description) | Description of the StackSet. | `string` | n/a | yes |\n| \u003ca name=\"input_execution_role_name\"\u003e\u003c/a\u003e [execution\\_role\\_name](#input\\_execution\\_role\\_name) | (Optional) Name of the IAM Role in all target accounts for StackSet operations. Defaults to AWSCloudFormationStackSetExecutionRole when using the SELF\\_MANAGED permission model. This should not be defined when using the SERVICE\\_MANAGED permission model. | `string` | `null` | no |\n| \u003ca name=\"input_name\"\u003e\u003c/a\u003e [name](#input\\_name) | Name of the StackSet. The name must be unique in the region where you create your StackSet. The name can contain only alphanumeric characters (case-sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters. | `string` | n/a | yes |\n| \u003ca name=\"input_operation_preferences\"\u003e\u003c/a\u003e [operation\\_preferences](#input\\_operation\\_preferences) | (Optional) Option to configure failure\\_tolerance\\_count, failure\\_tolerance\\_percentage, max\\_concurrent\\_count, max\\_concurrent\\_percentage, region\\_concurrency\\_type, concurrency\\_mode, and a list of region\\_order. | `any` | \u003cpre\u003e{\u003cbr/\u003e  \"concurrency_mode\": null,\u003cbr/\u003e  \"failure_tolerance_count\": null,\u003cbr/\u003e  \"failure_tolerance_percentage\": null,\u003cbr/\u003e  \"max_concurrent_count\": null,\u003cbr/\u003e  \"max_concurrent_percentage\": null,\u003cbr/\u003e  \"region_concurrency_type\": null,\u003cbr/\u003e  \"region_order\": null\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_parameters\"\u003e\u003c/a\u003e [parameters](#input\\_parameters) | Key-value map of input parameters for the StackSet template. All template parameters, including those with a Default, must be configured or ignored with lifecycle configuration block ignore\\_changes argument. All NoEcho template parameters must be ignored with the lifecycle configuration block ignore\\_changes argument. | `map(string)` | `{}` | no |\n| \u003ca name=\"input_permission_model\"\u003e\u003c/a\u003e [permission\\_model](#input\\_permission\\_model) | (Optional) Describes how the IAM roles required for your StackSet are created. Valid values: SELF\\_MANAGED (default), SERVICE\\_MANAGED. | `string` | `\"SELF_MANAGED\"` | no |\n| \u003ca name=\"input_stackset_instance_account_id\"\u003e\u003c/a\u003e [stackset\\_instance\\_account\\_id](#input\\_stackset\\_instance\\_account\\_id) | (Optional) Target AWS Account ID to create a Stack based on the StackSet. Defaults to current account. | `string` | `null` | no |\n| \u003ca name=\"input_stackset_instance_accounts\"\u003e\u003c/a\u003e [stackset\\_instance\\_accounts](#input\\_stackset\\_instance\\_accounts) | The list of AWS Account IDs to which StackSets instance deploys. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_stackset_instance_call_as\"\u003e\u003c/a\u003e [stackset\\_instance\\_call\\_as](#input\\_stackset\\_instance\\_call\\_as) | (Optional) Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. Valid values: SELF (default), DELEGATED\\_ADMIN. | `string` | `\"SELF\"` | no |\n| \u003ca name=\"input_stackset_instance_organizational_unit_ids\"\u003e\u003c/a\u003e [stackset\\_instance\\_organizational\\_unit\\_ids](#input\\_stackset\\_instance\\_organizational\\_unit\\_ids) | The organization root ID or organizational unit (OU) IDs to which StackSets instance deploys. | `list(string)` | `null` | no |\n| \u003ca name=\"input_stackset_instance_region\"\u003e\u003c/a\u003e [stackset\\_instance\\_region](#input\\_stackset\\_instance\\_region) | (Optional) Target AWS Region to create a Stack based on the StackSet. Defaults to current region. | `string` | `null` | no |\n| \u003ca name=\"input_stackset_instance_retain_stack\"\u003e\u003c/a\u003e [stackset\\_instance\\_retain\\_stack](#input\\_stackset\\_instance\\_retain\\_stack) | (Optional) During Terraform resource destroy, remove Instance from StackSet while keeping the Stack and its associated resources. Must be enabled in Terraform state before destroy operation to take effect. You cannot reassociate a retained Stack or add an existing, saved Stack to a new StackSet. Defaults to false. | `bool` | `false` | no |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | (Optional) Key-value map of tags to associate with this StackSet and the Stacks created from it. AWS CloudFormation also propagates these tags to supported resources that are created in the Stacks. A maximum number of 50 tags can be specified. If configured with a provider default\\_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. | `map(string)` | `{}` | no |\n| \u003ca name=\"input_template_body\"\u003e\u003c/a\u003e [template\\_body](#input\\_template\\_body) | (Optional) String containing the CloudFormation template body. Maximum size: 51,200 bytes. Conflicts with template\\_url. | `string` | `null` | no |\n| \u003ca name=\"input_template_url\"\u003e\u003c/a\u003e [template\\_url](#input\\_template\\_url) | (Optional) String containing the location of a file containing the CloudFormation template body. The URL must point to a template that is located in an Amazon S3 bucket. Maximum location file size: 460,800 bytes. Conflicts with template\\_body. | `string` | `null` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_stackset\"\u003e\u003c/a\u003e [stackset](#output\\_stackset) | The AWS Cloudformation StackSet. |\n| \u003ca name=\"output_stackset_instance\"\u003e\u003c/a\u003e [stackset\\_instance](#output\\_stackset\\_instance) | The AWS Cloudformation StackSet Instance. |\n\n## About\n\nWe are [Blackbird Cloud](https://blackbird.cloud), Amsterdam based cloud consultancy, and cloud management service provider. We help companies build secure, cost efficient, and scale-able solutions.\n\nCheckout our other :point\\_right: [terraform modules](https://registry.terraform.io/namespaces/blackbird-cloud)\n\n## Copyright\n\nCopyright © 2017-2025 [Blackbird Cloud](https://blackbird.cloud)\n\u003c!-- END_TF_DOCS --\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblackbird-cloud%2Fterraform-aws-cloudformation-stackset","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblackbird-cloud%2Fterraform-aws-cloudformation-stackset","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblackbird-cloud%2Fterraform-aws-cloudformation-stackset/lists"}