Skip to content

Commit 4a8f502

Browse files
authored
Merge branch 'master' into appmesh/compile
2 parents 68c008f + 263d0e7 commit 4a8f502

4 files changed

Lines changed: 61 additions & 3 deletions

File tree

build.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,10 @@ if [ "$check_compat" == "true" ]; then
9494
fi
9595

9696
# Create the release notes for the current version. These are ephemeral and not saved in source.
97-
node ./scripts/create-release-notes.js
97+
# Skip this step for a "bump candidate" build, where a new, fake version number has been created
98+
# without any corresponding changelog entries.
99+
if ! ${BUMP_CANDIDATE:-false}; then
100+
node ./scripts/create-release-notes.js
101+
fi
98102

99103
touch $BUILD_INDICATOR

packages/@aws-cdk/aws-ssm/lib/parameter.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,13 @@ export interface StringParameterProps extends ParameterOptions {
137137
* @default ParameterType.STRING
138138
*/
139139
readonly type?: ParameterType;
140+
141+
/**
142+
* The data type of the parameter, such as `text` or `aws:ec2:image`.
143+
*
144+
* @default - undefined
145+
*/
146+
readonly dataType?: ParameterDataType;
140147
}
141148

142149
/**
@@ -217,6 +224,20 @@ export enum ParameterType {
217224
AWS_EC2_IMAGE_ID = 'AWS::EC2::Image::Id',
218225
}
219226

227+
/**
228+
* SSM parameter data type
229+
*/
230+
export enum ParameterDataType {
231+
/**
232+
* Text
233+
*/
234+
TEXT = 'text',
235+
/**
236+
* Aws Ec2 Image
237+
*/
238+
AWS_EC2_IMAGE = 'aws:ec2:image',
239+
}
240+
220241
/**
221242
* SSM parameter tier
222243
*/
@@ -436,12 +457,17 @@ export class StringParameter extends ParameterBase implements IStringParameter {
436457
throw new Error('Description cannot be longer than 1024 characters.');
437458
}
438459

460+
if (props.type && props.type === ParameterType.AWS_EC2_IMAGE_ID) {
461+
throw new Error('The type must either be ParameterType.STRING or ParameterType.STRING_LIST. Did you mean to set dataType: ParameterDataType.AWS_EC2_IMAGE instead?');
462+
}
463+
439464
const resource = new ssm.CfnParameter(this, 'Resource', {
440465
allowedPattern: props.allowedPattern,
441466
description: props.description,
442467
name: this.physicalName,
443468
tier: props.tier,
444469
type: props.type || ParameterType.STRING,
470+
dataType: props.dataType,
445471
value: props.stringValue,
446472
});
447473

packages/@aws-cdk/aws-ssm/test/parameter.test.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,34 @@ test('creating a String SSM Parameter', () => {
2828
});
2929
});
3030

31+
test('type cannot be specified as AWS_EC2_IMAGE_ID', () => {
32+
// GIVEN
33+
const stack = new cdk.Stack();
34+
35+
// THEN
36+
expect(() => new ssm.StringParameter(stack, 'myParam', {
37+
stringValue: 'myValue',
38+
type: ssm.ParameterType.AWS_EC2_IMAGE_ID,
39+
})).toThrow('The type must either be ParameterType.STRING or ParameterType.STRING_LIST. Did you mean to set dataType: ParameterDataType.AWS_EC2_IMAGE instead?');
40+
});
41+
42+
test('dataType can be specified', () => {
43+
// GIVEN
44+
const stack = new cdk.Stack();
45+
46+
// WHEN
47+
new ssm.StringParameter(stack, 'myParam', {
48+
stringValue: 'myValue',
49+
dataType: ssm.ParameterDataType.AWS_EC2_IMAGE,
50+
});
51+
52+
// THEN
53+
expect(stack).toHaveResource('AWS::SSM::Parameter', {
54+
Value: 'myValue',
55+
DataType: 'aws:ec2:image',
56+
});
57+
});
58+
3159
test('expect String SSM Parameter to have tier properly set', () => {
3260
// GIVEN
3361
const stack = new cdk.Stack();

yarn.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1583,7 +1583,7 @@
15831583
dependencies:
15841584
"@types/glob" "*"
15851585

1586-
"@types/aws-lambda@^8.10.83", "@types/aws-lambda@^8.10.84":
1586+
"@types/aws-lambda@^8.10.84":
15871587
version "8.10.84"
15881588
resolved "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.84.tgz#b1f391ceeb6908b28d8416d93f27afe8d1348d4e"
15891589
integrity sha512-5V78eLtmN0d4RA14hKDwcsMQRl3JotQJlhGFDBo/jdE2TyDFRaYwB/UmMUC4SzhSvRGn+YMkh7jGPnXi8COAng==
@@ -9027,7 +9027,7 @@ symbol-tree@^3.2.4:
90279027
resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
90289028
integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
90299029

9030-
table@*, table@^6.0.9, table@^6.7.1, table@^6.7.2:
9030+
table@*, table@^6.0.9, table@^6.7.2:
90319031
version "6.7.2"
90329032
resolved "https://registry.npmjs.org/table/-/table-6.7.2.tgz#a8d39b9f5966693ca8b0feba270a78722cbaf3b0"
90339033
integrity sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g==

0 commit comments

Comments
 (0)