diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.js.snapshot/aws-cdk-aws-apigatewayv2-http-stage.assets.json b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.js.snapshot/aws-cdk-aws-apigatewayv2-http-stage.assets.json index 06756a2e5598d..54d26fb516d85 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.js.snapshot/aws-cdk-aws-apigatewayv2-http-stage.assets.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.js.snapshot/aws-cdk-aws-apigatewayv2-http-stage.assets.json @@ -1,7 +1,7 @@ { - "version": "20.0.0", + "version": "36.0.0", "files": { - "5626e75fff43d2eed0d63a5a925cb78eb1fd3d7fded40fe3b4036e0ce26a1ea9": { + "d0e21994eba50227669b2052acb6e237940781e64fc7baad9c2946a2c56d4b8d": { "source": { "path": "aws-cdk-aws-apigatewayv2-http-stage.template.json", "packaging": "file" @@ -9,7 +9,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "5626e75fff43d2eed0d63a5a925cb78eb1fd3d7fded40fe3b4036e0ce26a1ea9.json", + "objectKey": "d0e21994eba50227669b2052acb6e237940781e64fc7baad9c2946a2c56d4b8d.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.js.snapshot/aws-cdk-aws-apigatewayv2-http-stage.template.json b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.js.snapshot/aws-cdk-aws-apigatewayv2-http-stage.template.json index b76d9a45614f9..e684ea62ef5e0 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.js.snapshot/aws-cdk-aws-apigatewayv2-http-stage.template.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.js.snapshot/aws-cdk-aws-apigatewayv2-http-stage.template.json @@ -13,11 +13,12 @@ "ApiId": { "Ref": "HttpApiF5A9A8A7" }, - "StageName": "$default", "DefaultRouteSettings": { "ThrottlingBurstLimit": 1000, "ThrottlingRateLimit": 1000 - } + }, + "Description": "My Stage", + "StageName": "$default" } } }, diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.js.snapshot/cdk.out b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.js.snapshot/cdk.out index 588d7b269d34f..1f0068d32659a 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.js.snapshot/cdk.out +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"20.0.0"} \ No newline at end of file +{"version":"36.0.0"} \ No newline at end of file diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.js.snapshot/integ.json b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.js.snapshot/integ.json index c6c8b8b07f69d..6f3b6b3048bfd 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.js.snapshot/integ.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "20.0.0", + "version": "36.0.0", "testCases": { "integ.stage": { "stacks": [ diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.js.snapshot/manifest.json b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.js.snapshot/manifest.json index d3158c39559bf..7619a5e497d6c 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.js.snapshot/manifest.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.js.snapshot/manifest.json @@ -1,12 +1,6 @@ { - "version": "20.0.0", + "version": "36.0.0", "artifacts": { - "Tree": { - "type": "cdk:tree", - "properties": { - "file": "tree.json" - } - }, "aws-cdk-aws-apigatewayv2-http-stage.assets": { "type": "cdk:asset-manifest", "properties": { @@ -20,10 +14,11 @@ "environment": "aws://unknown-account/unknown-region", "properties": { "templateFile": "aws-cdk-aws-apigatewayv2-http-stage.template.json", + "terminationProtection": false, "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/5626e75fff43d2eed0d63a5a925cb78eb1fd3d7fded40fe3b4036e0ce26a1ea9.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/d0e21994eba50227669b2052acb6e237940781e64fc7baad9c2946a2c56d4b8d.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -65,6 +60,12 @@ ] }, "displayName": "aws-cdk-aws-apigatewayv2-http-stage" + }, + "Tree": { + "type": "cdk:tree", + "properties": { + "file": "tree.json" + } } } } \ No newline at end of file diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.js.snapshot/tree.json b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.js.snapshot/tree.json index f31d5e8093c41..d51fb3fce8033 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.js.snapshot/tree.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.js.snapshot/tree.json @@ -4,14 +4,6 @@ "id": "App", "path": "", "children": { - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.85" - } - }, "aws-cdk-aws-apigatewayv2-http-stage": { "id": "aws-cdk-aws-apigatewayv2-http-stage", "path": "aws-cdk-aws-apigatewayv2-http-stage", @@ -31,14 +23,14 @@ } }, "constructInfo": { - "fqn": "@aws-cdk/aws-apigatewayv2.CfnApi", - "version": "0.0.0" + "fqn": "constructs.Construct", + "version": "10.3.0" } } }, "constructInfo": { - "fqn": "@aws-cdk/aws-apigatewayv2.HttpApi", - "version": "0.0.0" + "fqn": "constructs.Construct", + "version": "10.3.0" } }, "HttpStageWithProperties": { @@ -54,34 +46,59 @@ "apiId": { "Ref": "HttpApiF5A9A8A7" }, - "stageName": "$default", "defaultRouteSettings": { "throttlingBurstLimit": 1000, "throttlingRateLimit": 1000 - } + }, + "description": "My Stage", + "stageName": "$default" } }, "constructInfo": { - "fqn": "@aws-cdk/aws-apigatewayv2.CfnStage", - "version": "0.0.0" + "fqn": "constructs.Construct", + "version": "10.3.0" } } }, "constructInfo": { - "fqn": "@aws-cdk/aws-apigatewayv2.HttpStage", - "version": "0.0.0" + "fqn": "constructs.Construct", + "version": "10.3.0" + } + }, + "BootstrapVersion": { + "id": "BootstrapVersion", + "path": "aws-cdk-aws-apigatewayv2-http-stage/BootstrapVersion", + "constructInfo": { + "fqn": "constructs.Construct", + "version": "10.3.0" + } + }, + "CheckBootstrapVersion": { + "id": "CheckBootstrapVersion", + "path": "aws-cdk-aws-apigatewayv2-http-stage/CheckBootstrapVersion", + "constructInfo": { + "fqn": "constructs.Construct", + "version": "10.3.0" } } }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.85" + "version": "10.3.0" + } + }, + "Tree": { + "id": "Tree", + "path": "Tree", + "constructInfo": { + "fqn": "constructs.Construct", + "version": "10.3.0" } } }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.85" + "version": "10.3.0" } } } \ No newline at end of file diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.ts b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.ts index aecd99bf008e5..bf3bec4e11a04 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.ts +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/http/integ.stage.ts @@ -12,6 +12,7 @@ new apigw.HttpStage(stack, 'HttpStageWithProperties', { rateLimit: 1000, burstLimit: 1000, }, + description: 'My Stage', }); app.synth(); diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.js.snapshot/aws-cdk-aws-apigatewayv2-websocket-stage.assets.json b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.js.snapshot/aws-cdk-aws-apigatewayv2-websocket-stage.assets.json index 119ff1f7003e3..772dd4683f795 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.js.snapshot/aws-cdk-aws-apigatewayv2-websocket-stage.assets.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.js.snapshot/aws-cdk-aws-apigatewayv2-websocket-stage.assets.json @@ -1,7 +1,7 @@ { - "version": "20.0.0", + "version": "36.0.0", "files": { - "dd0f806b2fa0378baba7f8e65cc092119e36b7975bcba997a6ecd0b4e03d044f": { + "02efbccda911967e201733b39679d97db7a1c0b2ee2c60da90fb7fe7b4352502": { "source": { "path": "aws-cdk-aws-apigatewayv2-websocket-stage.template.json", "packaging": "file" @@ -9,7 +9,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "dd0f806b2fa0378baba7f8e65cc092119e36b7975bcba997a6ecd0b4e03d044f.json", + "objectKey": "02efbccda911967e201733b39679d97db7a1c0b2ee2c60da90fb7fe7b4352502.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.js.snapshot/aws-cdk-aws-apigatewayv2-websocket-stage.template.json b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.js.snapshot/aws-cdk-aws-apigatewayv2-websocket-stage.template.json index 16328be32e85c..03da37384007b 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.js.snapshot/aws-cdk-aws-apigatewayv2-websocket-stage.template.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.js.snapshot/aws-cdk-aws-apigatewayv2-websocket-stage.template.json @@ -14,11 +14,12 @@ "ApiId": { "Ref": "WebSocketApi34BCF99B" }, - "StageName": "dev", "DefaultRouteSettings": { "ThrottlingBurstLimit": 1000, "ThrottlingRateLimit": 1000 - } + }, + "Description": "My Stage", + "StageName": "dev" } } }, diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.js.snapshot/cdk.out b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.js.snapshot/cdk.out index 588d7b269d34f..1f0068d32659a 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.js.snapshot/cdk.out +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.js.snapshot/cdk.out @@ -1 +1 @@ -{"version":"20.0.0"} \ No newline at end of file +{"version":"36.0.0"} \ No newline at end of file diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.js.snapshot/integ.json b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.js.snapshot/integ.json index 1d60b8f02d922..d35c639b2cf4c 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.js.snapshot/integ.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.js.snapshot/integ.json @@ -1,5 +1,5 @@ { - "version": "20.0.0", + "version": "36.0.0", "testCases": { "integ.stage": { "stacks": [ diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.js.snapshot/manifest.json b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.js.snapshot/manifest.json index 7b98580ef726f..a42e23755bdcf 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.js.snapshot/manifest.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.js.snapshot/manifest.json @@ -1,12 +1,6 @@ { - "version": "20.0.0", + "version": "36.0.0", "artifacts": { - "Tree": { - "type": "cdk:tree", - "properties": { - "file": "tree.json" - } - }, "aws-cdk-aws-apigatewayv2-websocket-stage.assets": { "type": "cdk:asset-manifest", "properties": { @@ -20,10 +14,11 @@ "environment": "aws://unknown-account/unknown-region", "properties": { "templateFile": "aws-cdk-aws-apigatewayv2-websocket-stage.template.json", + "terminationProtection": false, "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/dd0f806b2fa0378baba7f8e65cc092119e36b7975bcba997a6ecd0b4e03d044f.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/02efbccda911967e201733b39679d97db7a1c0b2ee2c60da90fb7fe7b4352502.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -65,6 +60,12 @@ ] }, "displayName": "aws-cdk-aws-apigatewayv2-websocket-stage" + }, + "Tree": { + "type": "cdk:tree", + "properties": { + "file": "tree.json" + } } } } \ No newline at end of file diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.js.snapshot/tree.json b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.js.snapshot/tree.json index 525202a1ad08a..c1e47bf0a01af 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.js.snapshot/tree.json +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.js.snapshot/tree.json @@ -4,14 +4,6 @@ "id": "App", "path": "", "children": { - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.85" - } - }, "aws-cdk-aws-apigatewayv2-websocket-stage": { "id": "aws-cdk-aws-apigatewayv2-websocket-stage", "path": "aws-cdk-aws-apigatewayv2-websocket-stage", @@ -32,14 +24,14 @@ } }, "constructInfo": { - "fqn": "@aws-cdk/aws-apigatewayv2.CfnApi", - "version": "0.0.0" + "fqn": "constructs.Construct", + "version": "10.3.0" } } }, "constructInfo": { - "fqn": "@aws-cdk/aws-apigatewayv2.WebSocketApi", - "version": "0.0.0" + "fqn": "constructs.Construct", + "version": "10.3.0" } }, "WebSocketStage": { @@ -55,34 +47,59 @@ "apiId": { "Ref": "WebSocketApi34BCF99B" }, - "stageName": "dev", "defaultRouteSettings": { "throttlingBurstLimit": 1000, "throttlingRateLimit": 1000 - } + }, + "description": "My Stage", + "stageName": "dev" } }, "constructInfo": { - "fqn": "@aws-cdk/aws-apigatewayv2.CfnStage", - "version": "0.0.0" + "fqn": "constructs.Construct", + "version": "10.3.0" } } }, "constructInfo": { - "fqn": "@aws-cdk/aws-apigatewayv2.WebSocketStage", - "version": "0.0.0" + "fqn": "constructs.Construct", + "version": "10.3.0" + } + }, + "BootstrapVersion": { + "id": "BootstrapVersion", + "path": "aws-cdk-aws-apigatewayv2-websocket-stage/BootstrapVersion", + "constructInfo": { + "fqn": "constructs.Construct", + "version": "10.3.0" + } + }, + "CheckBootstrapVersion": { + "id": "CheckBootstrapVersion", + "path": "aws-cdk-aws-apigatewayv2-websocket-stage/CheckBootstrapVersion", + "constructInfo": { + "fqn": "constructs.Construct", + "version": "10.3.0" } } }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.85" + "version": "10.3.0" + } + }, + "Tree": { + "id": "Tree", + "path": "Tree", + "constructInfo": { + "fqn": "constructs.Construct", + "version": "10.3.0" } } }, "constructInfo": { "fqn": "constructs.Construct", - "version": "10.1.85" + "version": "10.3.0" } } } \ No newline at end of file diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.ts b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.ts index 214632ef68a33..ecfff658d5f4b 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.ts +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-apigatewayv2/test/websocket/integ.stage.ts @@ -13,6 +13,7 @@ new apigw.WebSocketStage(stack, 'WebSocketStage', { rateLimit: 1000, burstLimit: 1000, }, + description: 'My Stage', }); app.synth(); diff --git a/packages/aws-cdk-lib/aws-apigatewayv2/README.md b/packages/aws-cdk-lib/aws-apigatewayv2/README.md index e5604dafebf1a..8b74889d941cb 100644 --- a/packages/aws-cdk-lib/aws-apigatewayv2/README.md +++ b/packages/aws-cdk-lib/aws-apigatewayv2/README.md @@ -137,6 +137,7 @@ declare const api: apigwv2.HttpApi; new apigwv2.HttpStage(this, 'Stage', { httpApi: api, stageName: 'beta', + description: 'My Stage', }); ``` @@ -373,6 +374,7 @@ const webSocketApi = new apigwv2.WebSocketApi(this, 'mywsapi', { new apigwv2.WebSocketStage(this, 'mystage', { webSocketApi, stageName: 'dev', + description: 'My Stage', autoDeploy: true, }); ``` diff --git a/packages/aws-cdk-lib/aws-apigatewayv2/lib/common/stage.ts b/packages/aws-cdk-lib/aws-apigatewayv2/lib/common/stage.ts index 0301bf4b31c4c..3eca733715514 100644 --- a/packages/aws-cdk-lib/aws-apigatewayv2/lib/common/stage.ts +++ b/packages/aws-cdk-lib/aws-apigatewayv2/lib/common/stage.ts @@ -66,6 +66,13 @@ export interface StageOptions { * @default - no throttling configuration */ readonly throttle?: ThrottleSettings; + + /** + * The description for the API stage + * + * @default - no description + */ + readonly description?: string; } /** diff --git a/packages/aws-cdk-lib/aws-apigatewayv2/lib/http/stage.ts b/packages/aws-cdk-lib/aws-apigatewayv2/lib/http/stage.ts index c8484904271f9..0ec38b893af56 100644 --- a/packages/aws-cdk-lib/aws-apigatewayv2/lib/http/stage.ts +++ b/packages/aws-cdk-lib/aws-apigatewayv2/lib/http/stage.ts @@ -171,6 +171,7 @@ export class HttpStage extends HttpStageBase { throttlingBurstLimit: props.throttle?.burstLimit, throttlingRateLimit: props.throttle?.rateLimit, }, + description: props.description, }); this.stageName = this.physicalName; diff --git a/packages/aws-cdk-lib/aws-apigatewayv2/lib/websocket/stage.ts b/packages/aws-cdk-lib/aws-apigatewayv2/lib/websocket/stage.ts index 2e534ff7a75a5..6332b7532fd17 100644 --- a/packages/aws-cdk-lib/aws-apigatewayv2/lib/websocket/stage.ts +++ b/packages/aws-cdk-lib/aws-apigatewayv2/lib/websocket/stage.ts @@ -95,6 +95,7 @@ export class WebSocketStage extends StageBase implements IWebSocketStage { throttlingBurstLimit: props.throttle?.burstLimit, throttlingRateLimit: props.throttle?.rateLimit, }, + description: props.description, }); if (props.domainMapping) { diff --git a/packages/aws-cdk-lib/aws-apigatewayv2/test/http/stage.test.ts b/packages/aws-cdk-lib/aws-apigatewayv2/test/http/stage.test.ts index ebd2e7b593ab8..357b4617f11ba 100644 --- a/packages/aws-cdk-lib/aws-apigatewayv2/test/http/stage.test.ts +++ b/packages/aws-cdk-lib/aws-apigatewayv2/test/http/stage.test.ts @@ -190,4 +190,23 @@ describe('HttpStage with domain mapping', () => { }, }); }); + + test('specify description', () => { + // GIVEN + const stack = new Stack(); + const api = new HttpApi(stack, 'Api', { + createDefaultStage: false, + }); + + // WHEN + new HttpStage(stack, 'DefaultStage', { + httpApi: api, + description: 'My Stage', + }); + + // THEN + Template.fromStack(stack).hasResourceProperties('AWS::ApiGatewayV2::Stage', { + Description: 'My Stage', + }); + }); }); diff --git a/packages/aws-cdk-lib/aws-apigatewayv2/test/websocket/stage.test.ts b/packages/aws-cdk-lib/aws-apigatewayv2/test/websocket/stage.test.ts index 20cc23a2e50da..549f7c02b2c91 100644 --- a/packages/aws-cdk-lib/aws-apigatewayv2/test/websocket/stage.test.ts +++ b/packages/aws-cdk-lib/aws-apigatewayv2/test/websocket/stage.test.ts @@ -133,4 +133,22 @@ describe('WebSocketStage', () => { }, }); }); + + test('specify description', () => { + // GIVEN + const stack = new Stack(); + const api = new WebSocketApi(stack, 'Api'); + + // WHEN + new WebSocketStage(stack, 'DefaultStage', { + webSocketApi: api, + stageName: 'dev', + description: 'My Stage', + }); + + // THEN + Template.fromStack(stack).hasResourceProperties('AWS::ApiGatewayV2::Stage', { + Description: 'My Stage', + }); + }); });