aws-cloudformation / aws-cloudformation-resource-providers-cloudformation

The CloudFormation Resource Provider Package For AWS CloudFormation
https://aws.amazon.com/cloudformation/
Apache License 2.0
48 stars 35 forks source link

CloudFormation registry resources #42

Open benkehoe opened 3 years ago

benkehoe commented 3 years ago

I'm unclear on the plans for CloudFormation resource types representing registry types. The PR for AWS::CloudFormation::ResourceVersion, #4, was merged in August, but is not yet part of the public CloudFormation resources. The PR for AWS::CloudFormation::ModuleVersion #32 was merged in December and is available. There's now a PR merged for AWS::CloudFormation::TypeVersion #39.

I believe strongly that types in the registry (resource, module, ...) need separate CloudFormation resource types. A module is not the same as a resource provider. I appreciate that AWS::CloudFormation::TypeVersion will provide a backstop when new registry types are rolled out, so that people can use them immediately, but this should not preempt the creation of dedicated resource types for new registry types.

When is AWS::CloudFormation::ResourceVersion going to come out? Can you confirm that the plan is to have resource types corresponding to registry types, and not to just dump ::TypeVersion on customers and leave it at that?

benkehoe commented 3 years ago

To put this in more concrete terms, what sense does it make to have a Type CloudFormation resource type that has its own property called Type?

Can you really argue that this template

Resources:
  MyResource:
    Type: AWS::CloudFormation::TypeVersion
    Properties:
      Type: RESOURCE
      TypeName: Custom::Custom::MyResource
      ...

  MyModule:
    Type: AWS::CloudFormation::TypeVersion
    Properties:
      Type: MODULE
      TypeName: Custom::Custom::MyModule
      ...

is better for customers than this one?

Resources:
  MyResource:
    Type: AWS::CloudFormation::ResourceTypeVersion
    Properties:
      TypeName: Custom::Custom::MyResource
      ...

  MyModule:
    Type: AWS::CloudFormation::ModuleVersion
    Properties:
      TypeName: Custom::Custom::MyModule
      ...
jonathanmorley commented 3 years ago

AWS::CloudFormation::ResourceVersion and AWS::CloudFormation::ResourceDefaultVersion are now public CloudFormation Resources (as of Feb 11th)