Skip to content

Commit b2e0eb5

Browse files
committed
fix(imagebuilder): revert property field typings
Certain fields of the `ImageBuilder` service used to be typed as `Json` (i.e., arbitrary data). - In TypeScript, you would pass that data as an object literal with *capitalized* properties. - In Python, you would pass it as a `dict` - In Java, you would pass it as a `HashMap` - etc In the new CloudFormation spec, it is now typed as a struct. This adds type information that didn't use to be there. CDK now generates classes for it. - In TypeScript, you must now pass an object literal with *lowercased* properties. - In Python, you must now pass it as an instance of a class. - In Java, you must now use a builder to construct the object. Because of this, adding types to properties is a breaking change to the L1 layer. If you don't pass the information correctly, an empty object comes out the other end, probably not rendering what you expected. This is disastrous for construct libraries that are using L1s, as they are not in control when users upgrade their libraries but they may all of a sudden be broken with no recourse. Case in point: [ParallelCluster3](https://github.com/aws/aws-parallelcluster)
1 parent 7d90993 commit b2e0eb5

File tree

1 file changed

+2
-69
lines changed

1 file changed

+2
-69
lines changed

packages/@aws-cdk/cfnspec/spec-source/specification/000_cfn/000_official/000_AWS_ImageBuilder.json

+2-69
Original file line numberDiff line numberDiff line change
@@ -129,86 +129,19 @@
129129
}
130130
}
131131
},
132-
"AWS::ImageBuilder::DistributionConfiguration.AmiDistributionConfiguration": {
133-
"Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-amidistributionconfiguration.html",
134-
"Properties": {
135-
"AmiTags": {
136-
"Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-amidistributionconfiguration.html#cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-amitags",
137-
"PrimitiveItemType": "String",
138-
"Required": false,
139-
"Type": "Map",
140-
"UpdateType": "Mutable"
141-
},
142-
"Description": {
143-
"Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-amidistributionconfiguration.html#cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-description",
144-
"PrimitiveType": "String",
145-
"Required": false,
146-
"UpdateType": "Mutable"
147-
},
148-
"KmsKeyId": {
149-
"Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-amidistributionconfiguration.html#cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-kmskeyid",
150-
"PrimitiveType": "String",
151-
"Required": false,
152-
"UpdateType": "Mutable"
153-
},
154-
"LaunchPermissionConfiguration": {
155-
"Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-amidistributionconfiguration.html#cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-launchpermissionconfiguration",
156-
"Required": false,
157-
"Type": "LaunchPermissionConfiguration",
158-
"UpdateType": "Mutable"
159-
},
160-
"Name": {
161-
"Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-amidistributionconfiguration.html#cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-name",
162-
"PrimitiveType": "String",
163-
"Required": false,
164-
"UpdateType": "Mutable"
165-
},
166-
"TargetAccountIds": {
167-
"Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-amidistributionconfiguration.html#cfn-imagebuilder-distributionconfiguration-amidistributionconfiguration-targetaccountids",
168-
"PrimitiveItemType": "String",
169-
"Required": false,
170-
"Type": "List",
171-
"UpdateType": "Mutable"
172-
}
173-
}
174-
},
175-
"AWS::ImageBuilder::DistributionConfiguration.ContainerDistributionConfiguration": {
176-
"Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-containerdistributionconfiguration.html",
177-
"Properties": {
178-
"ContainerTags": {
179-
"Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-containerdistributionconfiguration.html#cfn-imagebuilder-distributionconfiguration-containerdistributionconfiguration-containertags",
180-
"PrimitiveItemType": "String",
181-
"Required": false,
182-
"Type": "List",
183-
"UpdateType": "Mutable"
184-
},
185-
"Description": {
186-
"Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-containerdistributionconfiguration.html#cfn-imagebuilder-distributionconfiguration-containerdistributionconfiguration-description",
187-
"PrimitiveType": "String",
188-
"Required": false,
189-
"UpdateType": "Mutable"
190-
},
191-
"TargetRepository": {
192-
"Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-containerdistributionconfiguration.html#cfn-imagebuilder-distributionconfiguration-containerdistributionconfiguration-targetrepository",
193-
"Required": false,
194-
"Type": "TargetContainerRepository",
195-
"UpdateType": "Mutable"
196-
}
197-
}
198-
},
199132
"AWS::ImageBuilder::DistributionConfiguration.Distribution": {
200133
"Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-distribution.html",
201134
"Properties": {
202135
"AmiDistributionConfiguration": {
203136
"Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-distribution.html#cfn-imagebuilder-distributionconfiguration-distribution-amidistributionconfiguration",
137+
"PrimitiveType": "Json",
204138
"Required": false,
205-
"Type": "AmiDistributionConfiguration",
206139
"UpdateType": "Mutable"
207140
},
208141
"ContainerDistributionConfiguration": {
209142
"Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-distribution.html#cfn-imagebuilder-distributionconfiguration-distribution-containerdistributionconfiguration",
143+
"PrimitiveType": "Json",
210144
"Required": false,
211-
"Type": "ContainerDistributionConfiguration",
212145
"UpdateType": "Mutable"
213146
},
214147
"LaunchTemplateConfigurations": {

0 commit comments

Comments
 (0)