Definitive list of AWS -> Terraform resource type

Hi,
Is there a definitive list of type mappings e.g.

AWS::EC2::Instance -> aws_instance
AWS::Autoscaling::Group -> aws_autoscaling_autoscalinggroup
...
etc.

for all supported resources?

Not that I am aware of but it will be definitely useful
I refer to Terraform Registry usually

Hey @fireflycons :wave: I don’t think we currently have that, but that’s a really interesting idea that I’ll follow up on on my side! In the meantime, there’s a couple of things that kind of relate.

One is the provider registry docs, which are largely laid out following that format ([AWS] > [Service] > [Resource Name])

In addition to that, the AWS Provider Repository went through a refactor recently such that the structure largely reflects the same structure. Under the internal/service/ directory of the repository is a set of subdirectories based on the names of AWS services (at least their names in the AWS Go SDK :slightly_smiling_face:), and within each subdirectory are files relating to the resources within them. This probably isn’t quite as helpful as the Registry, but I figured I’d mention it anyways.

I absolutely recognize that this isn’t really exactly what you were looking for, but figured if I could find you any information that might help in the meantime, I’d pass it along.

Hi @justinretzolk

Thanks for that, but as you may have guessed, I’m looking for something machine readable.

I have some code that tries to match one to the other and gets about half of the total number of resources right. There are little inconsistencies in naming convention all over, e.g.

aws_instance -> AWS::EC2::Instance
aws_ebs_volume -> AWS::EC2::Volume
aws_autoscaling_group -> AWS::AutoScaling::AutoScalingGroup

Might have been better if the provider had followed the AWS naming directly, i.e.

aws_ec2_instance
aws_ec2_volume
aws_autoscaling_autoscalinggroup

I could make the type mapping myself, but then I’d have to update it with each provider release. Would be nice if such a document was centrally maintained as a JSON or YAML file.

1 Like

It is for a tool I am creating to generate Terraform configuration directly from CloudFormation Stacks.

1 Like