{"id":15645056,"url":"https://github.com/iann0036/cfn-tf-custom-types","last_synced_at":"2025-07-30T09:44:06.664Z","repository":{"id":57417021,"uuid":"248757267","full_name":"iann0036/cfn-tf-custom-types","owner":"iann0036","description":"CloudFormation Custom Types for Terraform resources.","archived":false,"fork":false,"pushed_at":"2024-02-27T13:11:31.000Z","size":96145,"stargazers_count":57,"open_issues_count":4,"forks_count":13,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-11-25T21:05:16.918Z","etag":null,"topics":["aws","cloudformation","terraform"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iann0036.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":"2020-03-20T13:05:08.000Z","updated_at":"2024-07-16T19:44:02.000Z","dependencies_parsed_at":"2024-10-03T12:17:50.142Z","dependency_job_id":null,"html_url":"https://github.com/iann0036/cfn-tf-custom-types","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iann0036%2Fcfn-tf-custom-types","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iann0036%2Fcfn-tf-custom-types/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iann0036%2Fcfn-tf-custom-types/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iann0036%2Fcfn-tf-custom-types/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iann0036","download_url":"https://codeload.github.com/iann0036/cfn-tf-custom-types/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229783334,"owners_count":18123454,"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-10-03T12:04:14.371Z","updated_at":"2024-12-19T01:07:15.860Z","avatar_url":"https://github.com/iann0036.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CloudFormation Custom Types for Terraform\n\n[![Resource Count](https://img.shields.io/badge/resource%20count-6984-blue.svg)](docs/README.md)\n\n\u003e Deploy over 6,000 new resource types with CloudFormation custom types.\n\n\u003cimg src=\"https://github.com/iann0036/cfn-tf-custom-types/raw/master/assets/screen1.png\" width=\"536\" height=\"417\"\u003e\n\n:exclamation: **CAUTION:** This project is currently in beta stages. Some resources may not work as expected. Please [report these](https://github.com/iann0036/cfn-tf-custom-types/issues) if you find them.\n\n\nThis project registers the CloudFormation equivalent of any official or verified Terraform provider resources and allows you to manage the lifecycle of these types using CloudFormation.\n\n## Installation\n\nTo use the types, you must first deploy the Execution Infrastructure (which is responsible for running Terraform within your account) then perform the resource registration step for each type you intend to use.\n\n### Execution Infrastructure\n\n[![Launch Stack](https://cdn.rawgit.com/buildkite/cloudformation-launch-stack-button-svg/master/launch-stack.svg)](https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?stackName=tfcfn-custom-type-resources\u0026templateURL=https://s3.amazonaws.com/ianmckay-us-east-1/cfn-tf-custom-types/template.yml)\n\nClick the above link to deploy the stack to your environment. This stack creates a single bucket in your account for the storage of state data, as well as a Lambda function that is used to execute the Terraform actions.\n\nIf you prefer, you can also manually upsert the [template.yml](https://github.com/iann0036/cfn-tf-custom-types/blob/master/template.yml) stack from source.\n\n### Resource Registration\n\nResources may be registered from the AWS CloudFormation Public Registry. At the time of writing, only a small set of resources are supported due to limitations with service limits.\n\nTo register the type, click the \"Activate\" button from the Registry: Public Extensions area. You may override the default type if you wish. For the \"Execution role ARN\" field, the outputs of the Execution Infrastructure stack has an ARN you may use. Logging config may be left blank and automatic updates is recommended to be enabled.\n\nIf your desired type is not yet available, you can generate the type privately yourself using the instructions in the below expandable section:\n\n\u003cdetails\u003e\n  \u003csummary\u003eClick here for resource generation instructions:\u003c/summary\u003e\n\n### Resource Generation\n\n#### Requirements\n\nThe below requirements must be installed and be available in PATH:\n\n* Python 3\n* Git\n* Docker\n* Terraform 0.15+\n* CloudFormation CLI with Python Provider\n\n#### Generation\n\nTo generate the custom type source files, run:\n\n```\npython3 generate.py \u003cprovidername\u003e\n# For example:\npython3 generate.py aws\n```\n\nNote that generating all files may take several minutes depending upon the amount of resources the provider has.\n\nYou can also use `all` as the provider name to generate resources for all providers. Note this can take some hours to complete.\n\n#### Submission\n\nOnce you have generated the required resource files, you can submit the type to the CloudFormation registry by running the following:\n\n```\npython3 submit.py \u003cresourcename\u003e\n# For example:\npython3 submit.py TF::AWS::Instance\n```\n\nNote that resource submission will also generally take several minutes.\n\n\u003c/details\u003e\n\n## Resource Usage\n\nMost providers will require you to store credentials and/or other provider-specific settings within AWS Secrets Manager in order to access their services, generally in the secret name format **terraform/_provider-name-lowercase_**. For the AWS provider only, the resources permissions will suffice, however you may choose to override those values in the secret.\n\nA full list of documentation can be found [here](docs/README.md).\n\nYou can use a submitted resource like any other CloudFormation native resource, provided you follow the appropriate documentation. Check out some of the [examples](https://github.com/iann0036/cfn-tf-custom-types/tree/master/examples) to get started.\n\n## How It Works\n\n![Architecture Diagram](assets/arch.png)\n\n## Acknowledgements\n\nThis project would not be possible without the work from the contributors to Terraform providers and the Terraform core product.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiann0036%2Fcfn-tf-custom-types","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiann0036%2Fcfn-tf-custom-types","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiann0036%2Fcfn-tf-custom-types/lists"}