@horietakehiro/aws-cdk-utul 0.12.0 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/index.d.ts +0 -1
  2. package/index.js +3 -3
  3. package/lib/assertions.d.ts +114 -2
  4. package/lib/assertions.js +121 -5
  5. package/lib/stack-manager.d.ts +0 -41
  6. package/lib/stack-manager.js +188 -131
  7. package/lib/typed-resource.d.ts +6 -5
  8. package/lib/typed-resource.js +1 -1
  9. package/lib/types/cfn-resource-types/aws-apigateway-account.d.ts +0 -3
  10. package/lib/types/cfn-resource-types/aws-apigateway-account.js +1 -1
  11. package/lib/types/cfn-resource-types/aws-apigateway-apikey.d.ts +0 -27
  12. package/lib/types/cfn-resource-types/aws-apigateway-apikey.js +1 -1
  13. package/lib/types/cfn-resource-types/aws-apigateway-authorizer.d.ts +0 -30
  14. package/lib/types/cfn-resource-types/aws-apigateway-authorizer.js +1 -1
  15. package/lib/types/cfn-resource-types/aws-apigateway-basepathmapping.d.ts +0 -12
  16. package/lib/types/cfn-resource-types/aws-apigateway-basepathmapping.js +1 -1
  17. package/lib/types/cfn-resource-types/aws-apigateway-clientcertificate.d.ts +0 -6
  18. package/lib/types/cfn-resource-types/aws-apigateway-clientcertificate.js +1 -1
  19. package/lib/types/cfn-resource-types/aws-apigateway-deployment.d.ts +0 -63
  20. package/lib/types/cfn-resource-types/aws-apigateway-deployment.js +1 -1
  21. package/lib/types/cfn-resource-types/aws-apigateway-documentationpart.d.ts +0 -24
  22. package/lib/types/cfn-resource-types/aws-apigateway-documentationpart.js +1 -1
  23. package/lib/types/cfn-resource-types/aws-apigateway-documentationversion.d.ts +0 -9
  24. package/lib/types/cfn-resource-types/aws-apigateway-documentationversion.js +1 -1
  25. package/lib/types/cfn-resource-types/aws-apigateway-gatewayresponse.d.ts +0 -15
  26. package/lib/types/cfn-resource-types/aws-apigateway-gatewayresponse.js +1 -1
  27. package/lib/types/cfn-resource-types/aws-apigateway-method.d.ts +0 -109
  28. package/lib/types/cfn-resource-types/aws-apigateway-method.js +1 -1
  29. package/lib/types/cfn-resource-types/aws-apigateway-model.d.ts +0 -12
  30. package/lib/types/cfn-resource-types/aws-apigateway-model.js +1 -1
  31. package/lib/types/cfn-resource-types/aws-apigateway-requestvalidator.d.ts +0 -12
  32. package/lib/types/cfn-resource-types/aws-apigateway-requestvalidator.js +1 -1
  33. package/lib/types/cfn-resource-types/aws-apigateway-resource.d.ts +0 -9
  34. package/lib/types/cfn-resource-types/aws-apigateway-resource.js +1 -1
  35. package/lib/types/cfn-resource-types/aws-apigateway-restapi.d.ts +0 -33
  36. package/lib/types/cfn-resource-types/aws-apigateway-restapi.js +1 -1
  37. package/lib/types/cfn-resource-types/aws-apigateway-stage.d.ts +0 -75
  38. package/lib/types/cfn-resource-types/aws-apigateway-stage.js +1 -1
  39. package/lib/types/cfn-resource-types/aws-apigateway-usageplan.d.ts +0 -48
  40. package/lib/types/cfn-resource-types/aws-apigateway-usageplan.js +1 -1
  41. package/lib/types/cfn-resource-types/aws-apigateway-usageplankey.d.ts +0 -3
  42. package/lib/types/cfn-resource-types/aws-apigateway-usageplankey.js +1 -1
  43. package/lib/types/cfn-resource-types/aws-appsync-api.d.ts +123 -0
  44. package/lib/types/cfn-resource-types/aws-appsync-api.js +3 -0
  45. package/lib/types/cfn-resource-types/aws-appsync-channelnamespace.d.ts +66 -0
  46. package/lib/types/cfn-resource-types/aws-appsync-channelnamespace.js +3 -0
  47. package/lib/types/cfn-resource-types/aws-autoscaling-autoscalinggroup.d.ts +30 -0
  48. package/lib/types/cfn-resource-types/aws-autoscaling-autoscalinggroup.js +1 -1
  49. package/lib/types/cfn-resource-types/aws-bedrock-applicationinferenceprofile.d.ts +82 -0
  50. package/lib/types/cfn-resource-types/aws-bedrock-applicationinferenceprofile.js +3 -0
  51. package/lib/types/cfn-resource-types/aws-cleanrooms-analysistemplate.d.ts +1 -1
  52. package/lib/types/cfn-resource-types/aws-cleanrooms-analysistemplate.js +1 -1
  53. package/lib/types/cfn-resource-types/aws-cleanrooms-collaboration.d.ts +2 -0
  54. package/lib/types/cfn-resource-types/aws-cleanrooms-collaboration.js +1 -1
  55. package/lib/types/cfn-resource-types/aws-cleanrooms-membership.d.ts +1 -0
  56. package/lib/types/cfn-resource-types/aws-cleanrooms-membership.js +1 -1
  57. package/lib/types/cfn-resource-types/aws-codebuild-fleet.d.ts +28 -1
  58. package/lib/types/cfn-resource-types/aws-codebuild-fleet.js +1 -1
  59. package/lib/types/cfn-resource-types/aws-cognito-userpool.d.ts +94 -94
  60. package/lib/types/cfn-resource-types/aws-cognito-userpool.js +1 -1
  61. package/lib/types/cfn-resource-types/aws-datasync-task.d.ts +100 -96
  62. package/lib/types/cfn-resource-types/aws-datasync-task.js +1 -1
  63. package/lib/types/cfn-resource-types/aws-dynamodb-globaltable.d.ts +96 -96
  64. package/lib/types/cfn-resource-types/aws-dynamodb-globaltable.js +1 -1
  65. package/lib/types/cfn-resource-types/aws-ec2-securitygroupvpcassociation.d.ts +25 -0
  66. package/lib/types/cfn-resource-types/aws-ec2-securitygroupvpcassociation.js +3 -0
  67. package/lib/types/cfn-resource-types/aws-ec2-vpnconnection.d.ts +1 -1
  68. package/lib/types/cfn-resource-types/aws-ec2-vpnconnection.js +1 -1
  69. package/lib/types/cfn-resource-types/aws-ecs-service.d.ts +5 -4
  70. package/lib/types/cfn-resource-types/aws-ecs-service.js +1 -1
  71. package/lib/types/cfn-resource-types/aws-elasticloadbalancingv2-loadbalancer.d.ts +17 -14
  72. package/lib/types/cfn-resource-types/aws-elasticloadbalancingv2-loadbalancer.js +1 -1
  73. package/lib/types/cfn-resource-types/aws-events-connection.d.ts +26 -26
  74. package/lib/types/cfn-resource-types/aws-events-connection.js +1 -1
  75. package/lib/types/cfn-resource-types/aws-gamelift-containergroupdefinition.d.ts +4 -179
  76. package/lib/types/cfn-resource-types/aws-gamelift-containergroupdefinition.js +1 -1
  77. package/lib/types/cfn-resource-types/aws-gamelift-fleet.d.ts +1 -42
  78. package/lib/types/cfn-resource-types/aws-gamelift-fleet.js +1 -1
  79. package/lib/types/cfn-resource-types/aws-inspectorv2-cisscanconfiguration.d.ts +1 -1
  80. package/lib/types/cfn-resource-types/aws-inspectorv2-cisscanconfiguration.js +1 -1
  81. package/lib/types/cfn-resource-types/aws-iotwireless-wirelessdeviceimporttask.d.ts +12 -1
  82. package/lib/types/cfn-resource-types/aws-iotwireless-wirelessdeviceimporttask.js +1 -1
  83. package/lib/types/cfn-resource-types/aws-lambda-function.d.ts +24 -4
  84. package/lib/types/cfn-resource-types/aws-lambda-function.js +1 -1
  85. package/lib/types/cfn-resource-types/aws-lambda-version.d.ts +1 -9
  86. package/lib/types/cfn-resource-types/aws-lambda-version.js +1 -1
  87. package/lib/types/cfn-resource-types/aws-logs-delivery.d.ts +20 -0
  88. package/lib/types/cfn-resource-types/aws-logs-delivery.js +1 -1
  89. package/lib/types/cfn-resource-types/aws-logs-deliverydestination.d.ts +4 -0
  90. package/lib/types/cfn-resource-types/aws-logs-deliverydestination.js +1 -1
  91. package/lib/types/cfn-resource-types/aws-m2-application.d.ts +1 -1
  92. package/lib/types/cfn-resource-types/aws-m2-application.js +1 -1
  93. package/lib/types/cfn-resource-types/aws-mediapackagev2-originendpoint.d.ts +19 -0
  94. package/lib/types/cfn-resource-types/aws-mediapackagev2-originendpoint.js +1 -1
  95. package/lib/types/cfn-resource-types/aws-nimblestudio-launchprofile.d.ts +23 -143
  96. package/lib/types/cfn-resource-types/aws-nimblestudio-launchprofile.js +1 -1
  97. package/lib/types/cfn-resource-types/aws-nimblestudio-streamingimage.d.ts +16 -46
  98. package/lib/types/cfn-resource-types/aws-nimblestudio-streamingimage.js +1 -1
  99. package/lib/types/cfn-resource-types/aws-nimblestudio-studio.d.ts +15 -47
  100. package/lib/types/cfn-resource-types/aws-nimblestudio-studio.js +1 -1
  101. package/lib/types/cfn-resource-types/aws-nimblestudio-studiocomponent.d.ts +36 -163
  102. package/lib/types/cfn-resource-types/aws-nimblestudio-studiocomponent.js +1 -1
  103. package/lib/types/cfn-resource-types/aws-opensearchservice-application.d.ts +89 -0
  104. package/lib/types/cfn-resource-types/aws-opensearchservice-application.js +3 -0
  105. package/lib/types/cfn-resource-types/aws-opensearchservice-domain.d.ts +30 -0
  106. package/lib/types/cfn-resource-types/aws-opensearchservice-domain.js +1 -1
  107. package/lib/types/cfn-resource-types/aws-quicksight-analysis.d.ts +1 -1
  108. package/lib/types/cfn-resource-types/aws-quicksight-analysis.js +1 -1
  109. package/lib/types/cfn-resource-types/aws-quicksight-dashboard.d.ts +1 -1
  110. package/lib/types/cfn-resource-types/aws-quicksight-dashboard.js +1 -1
  111. package/lib/types/cfn-resource-types/aws-quicksight-datasource.d.ts +22 -9
  112. package/lib/types/cfn-resource-types/aws-quicksight-datasource.js +1 -1
  113. package/lib/types/cfn-resource-types/aws-quicksight-template.d.ts +1 -1
  114. package/lib/types/cfn-resource-types/aws-quicksight-template.js +1 -1
  115. package/lib/types/cfn-resource-types/aws-rds-dbcluster.d.ts +372 -371
  116. package/lib/types/cfn-resource-types/aws-rds-dbcluster.js +1 -1
  117. package/lib/types/cfn-resource-types/aws-rds-dbshardgroup.d.ts +56 -0
  118. package/lib/types/cfn-resource-types/aws-rds-dbshardgroup.js +3 -0
  119. package/lib/types/cfn-resource-types/aws-sagemaker-studiolifecycleconfig.d.ts +2 -2
  120. package/lib/types/cfn-resource-types/aws-sagemaker-studiolifecycleconfig.js +1 -1
  121. package/lib/types/cfn-resource-types/aws-secretsmanager-rotationschedule.d.ts +71 -11
  122. package/lib/types/cfn-resource-types/aws-secretsmanager-rotationschedule.js +1 -1
  123. package/lib/types/cfn-resource-types/aws-ses-configurationset.d.ts +4 -0
  124. package/lib/types/cfn-resource-types/aws-ses-configurationset.js +1 -1
  125. package/lib/types/cfn-resource-types/aws-transfer-user.d.ts +28 -14
  126. package/lib/types/cfn-resource-types/aws-transfer-user.js +1 -1
  127. package/lib/types/cfn-resource-types/aws-wisdom-aiagent.d.ts +76 -0
  128. package/lib/types/cfn-resource-types/aws-wisdom-aiagent.js +3 -0
  129. package/lib/types/cfn-resource-types/aws-wisdom-aiagentversion.d.ts +12 -0
  130. package/lib/types/cfn-resource-types/aws-wisdom-aiagentversion.js +3 -0
  131. package/lib/types/cfn-resource-types/aws-wisdom-aipromptversion.d.ts +12 -0
  132. package/lib/types/cfn-resource-types/aws-wisdom-aipromptversion.js +3 -0
  133. package/lib/types/cfn-resource-types.d.ts +19 -1
  134. package/lib/types/cfn-resource-types.js +45 -27
  135. package/package.json +1 -1
@@ -1,132 +1,189 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StackManager = void 0;
4
- const client_cloudformation_1 = require("@aws-sdk/client-cloudformation");
5
- const assertions_1 = require("aws-cdk-lib/assertions");
6
- /**
7
- * Stack Manager makes it easier and more efficient that you deploy(and destroy) stacks with short-term-lifecycle duraing tests.
8
- */
9
- class StackManager {
10
- /**
11
- *
12
- * @param stack stack to be managed
13
- * @param client cloudformation sdk client to use
14
- */
15
- constructor(stack, client) {
16
- this.stack = stack;
17
- this.client = client;
18
- }
19
- /**
20
- * get specific output value from the stack
21
- * @param outputKey logical id of Output that you want to get
22
- * @returns
23
- */
24
- async getStackOutput(outputKey) {
25
- console.debug(`get outputs from stack ${this.stack.stackName}`);
26
- const describeStacksResponse = await this.client.send(new client_cloudformation_1.DescribeStacksCommand({
27
- StackName: this.stack.stackName,
28
- }));
29
- const stacks = describeStacksResponse.Stacks ?? [];
30
- if (stacks.length === 0) {
31
- throw Error(`failed to get output value with key ${outputKey} from stack ${this.stack}`);
32
- }
33
- const outputs = stacks[0].Outputs ?? [];
34
- console.debug(`outputs of stack ${this.stack.stackName} are : ${JSON.stringify(outputs)}`);
35
- const output = outputs.filter((o) => o.OutputKey === outputKey);
36
- if (output.length === 0 || output[0].OutputValue === undefined) {
37
- throw Error(`failed to get output value with key ${outputKey} from stack ${this.stack}`);
38
- }
39
- return output[0].OutputValue;
40
- }
41
- /**
42
- * Deploy the specified stack.
43
- *
44
- * If the specified stack has not been created yet, create new one. If already created, update it.
45
- *
46
- * This method waits until stack deployment gets completed.
47
- * @param deployStackInput
48
- * @param maxWaitTimeInSeconds the default values is `60 * 60 = 1hour`. Allowed minimum value is `31 seconds`
49
- */
50
- async deployStack(deployStackInput, maxWaitTimeInSeconds) {
51
- if (maxWaitTimeInSeconds === undefined) {
52
- console.debug("set 1hour as maxWaitTimeInSeconds default value");
53
- maxWaitTimeInSeconds = 60 * 60;
54
- }
55
- if (maxWaitTimeInSeconds <= 30) {
56
- throw Error("maxWaitTimeInSeconds must be greater than 30");
57
- }
58
- console.debug(`check if stack ${this.stack.stackName} exists`);
59
- let existStacks = [];
60
- try {
61
- const describeStaacksResponse = await this.client.send(new client_cloudformation_1.DescribeStacksCommand({
62
- StackName: this.stack.stackName,
63
- }));
64
- existStacks = describeStaacksResponse.Stacks ?? [];
65
- }
66
- catch (error) {
67
- if (!(error instanceof client_cloudformation_1.CloudFormationServiceException &&
68
- error.message.includes("does not exist"))) {
69
- throw error;
70
- }
71
- }
72
- if (existStacks.length === 0) {
73
- console.debug(`stack ${this.stack.stackName} does not exist, create new`);
74
- await this.client.send(new client_cloudformation_1.CreateStackCommand({
75
- ...deployStackInput,
76
- StackName: this.stack.stackName,
77
- TemplateBody: JSON.stringify(assertions_1.Template.fromStack(this.stack)),
78
- }));
79
- console.debug(`wait until deploying of stack ${this.stack.stackName} completes`);
80
- await (0, client_cloudformation_1.waitUntilStackCreateComplete)({ client: this.client, maxWaitTime: maxWaitTimeInSeconds }, { StackName: this.stack.stackName });
81
- }
82
- else {
83
- try {
84
- console.debug(`stack ${this.stack.stackName} exists, update it`);
85
- await this.client.send(new client_cloudformation_1.UpdateStackCommand({
86
- ...deployStackInput,
87
- StackName: this.stack.stackName,
88
- TemplateBody: JSON.stringify(assertions_1.Template.fromStack(this.stack)),
89
- }));
90
- console.debug(`wait until deploying of stack ${this.stack.stackName} completes`);
91
- await (0, client_cloudformation_1.waitUntilStackUpdateComplete)({ client: this.client, maxWaitTime: maxWaitTimeInSeconds }, { StackName: this.stack.stackName });
92
- }
93
- catch (error) {
94
- if (error instanceof client_cloudformation_1.CloudFormationServiceException &&
95
- error.message === "No updates are to be performed.") {
96
- console.debug("no updates are to be performed");
97
- }
98
- else {
99
- throw error;
100
- }
101
- }
102
- }
103
- }
104
- /**
105
- * Destroy the stack
106
- * @param destroyStackInput
107
- * @param wait If `true`, this method waits until stack deletion complete. The default value is 'false'
108
- * @param maxWaitTimeInSeconds the default value is `60 * 60 = 1hour`. Allowed minimum value is `31 seconds`. This param will be used only when parameter `wait` is set to 'true'
109
- */
110
- async destroyStack(destroyStackInput, wait, maxWaitTimeInSeconds) {
111
- console.debug(`destroy stack ${this.stack.stackName}`);
112
- await this.client.send(new client_cloudformation_1.DeleteStackCommand({
113
- StackName: this.stack.stackName,
114
- ...destroyStackInput,
115
- }));
116
- if (!wait || wait === undefined) {
117
- console.debug("return asynchronously");
118
- return;
119
- }
120
- console.debug("wait until stack deletion complets");
121
- if (maxWaitTimeInSeconds === undefined) {
122
- maxWaitTimeInSeconds = 60 * 60;
123
- }
124
- if (maxWaitTimeInSeconds <= 30) {
125
- throw Error("maxWaitTimeInSeconds must be greater than 30");
126
- }
127
- await (0, client_cloudformation_1.waitUntilStackDeleteComplete)({ client: this.client, maxWaitTime: maxWaitTimeInSeconds }, { StackName: this.stack.stackName });
128
- return;
129
- }
130
- }
131
- exports.StackManager = StackManager;
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0YWNrLW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMEVBY3dDO0FBRXhDLHVEQUFrRDtBQVFsRDs7R0FFRztBQUNILE1BQWEsWUFBWTtJQUl2Qjs7OztPQUlHO0lBQ0gsWUFBWSxLQUFlLEVBQUUsTUFBNEI7UUFDdkQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsY0FBYyxDQUFDLFNBQWlCO1FBQ3BDLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNoRSxNQUFNLHNCQUFzQixHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ25ELElBQUksNkNBQXFCLENBQUM7WUFDeEIsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUztTQUNoQyxDQUFDLENBQ0gsQ0FBQztRQUNGLE1BQU0sTUFBTSxHQUFHLHNCQUFzQixDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDbkQsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sS0FBSyxDQUNULHVDQUF1QyxTQUFTLGVBQWUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUM1RSxDQUFDO1FBQ0osQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxLQUFLLENBQ1gsb0JBQW9CLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxVQUFVLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDNUUsQ0FBQztRQUNGLE1B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LENBQUMsQ0FDSCxDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDaEMsT0FBTyxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ3ZDLE9BQU87UUFDVCxDQUFDO1FBRUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1FBQ3BELElBQUksb0JBQW9CLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdkMsb0JBQW9CLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsSUFBSSxvQkFBb0IsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUMvQixNQUFPLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFBO1FBQzlELENBQUM7UUFDRCxNQUFNLElBQUEsb0RBQTRCLEVBQ2hDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFLEVBQzFELEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQ3BDLENBQUM7UUFDRixPQUFPO0lBQ1QsQ0FBQztDQUNGO0FBcktELG9DQXFLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENsb3VkRm9ybWF0aW9uQ2xpZW50LFxuICBDbG91ZEZvcm1hdGlvblNlcnZpY2VFeGNlcHRpb24sXG4gIENyZWF0ZVN0YWNrQ29tbWFuZCxcbiAgQ3JlYXRlU3RhY2tDb21tYW5kSW5wdXQsXG4gIERlbGV0ZVN0YWNrQ29tbWFuZCxcbiAgRGVsZXRlU3RhY2tDb21tYW5kSW5wdXQsXG4gIERlc2NyaWJlU3RhY2tzQ29tbWFuZCxcbiAgVXBkYXRlU3RhY2tDb21tYW5kLFxuICBVcGRhdGVTdGFja0NvbW1hbmRJbnB1dCxcbiAgd2FpdFVudGlsU3RhY2tDcmVhdGVDb21wbGV0ZSxcbiAgd2FpdFVudGlsU3RhY2tEZWxldGVDb21wbGV0ZSxcbiAgd2FpdFVudGlsU3RhY2tVcGRhdGVDb21wbGV0ZSxcbiAgU3RhY2sgYXMgY2ZuU3RhY2ssXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb25cIjtcbmltcG9ydCB7IFN0YWNrIGFzIGNka1N0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hc3NlcnRpb25zXCI7XG5cbnR5cGUgRGVwbG95U3RhY2tJbnB1dCA9IE9taXQ8XG4gIENyZWF0ZVN0YWNrQ29tbWFuZElucHV0IHwgVXBkYXRlU3RhY2tDb21tYW5kSW5wdXQsXG4gIFwiU3RhY2tOYW1lXCJcbj47XG50eXBlIERlc3Ryb3lTdGFja0lucHV0ID0gT21pdDxEZWxldGVTdGFja0NvbW1hbmRJbnB1dCwgXCJTdGFja05hbWVcIj47XG5cbi8qKlxuICogU3RhY2sgTWFuYWdlciBtYWtlcyBpdCBlYXNpZXIgYW5kIG1vcmUgZWZmaWNpZW50IHRoYXQgeW91IGRlcGxveShhbmQgZGVzdHJveSkgc3RhY2tzIHdpdGggc2hvcnQtdGVybS1saWZlY3ljbGUgZHVyYWluZyB0ZXN0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFN0YWNrTWFuYWdlciB7XG4gIHJlYWRvbmx5IHN0YWNrOiBjZGtTdGFjaztcbiAgcmVhZG9ubHkgY2xpZW50OiBDbG91ZEZvcm1hdGlvbkNsaWVudDtcblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHN0YWNrIHN0YWNrIHRvIGJlIG1hbmFnZWRcbiAgICogQHBhcmFtIGNsaWVudCBjbG91ZGZvcm1hdGlvbiBzZGsgY2xpZW50IHRvIHVzZVxuICAgKi9cbiAgY29uc3RydWN0b3Ioc3RhY2s6IGNka1N0YWNrLCBjbGllbnQ6IENsb3VkRm9ybWF0aW9uQ2xpZW50KSB7XG4gICAgdGhpcy5zdGFjayA9IHN0YWNrO1xuICAgIHRoaXMuY2xpZW50ID0gY2xpZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBzcGVjaWZpYyBvdXRwdXQgdmFsdWUgZnJvbSB0aGUgc3RhY2tcbiAgICogQHBhcmFtIG91dHB1dEtleSBsb2dpY2FsIGlkIG9mIE91dHB1dCB0aGF0IHlvdSB3YW50IHRvIGdldFxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgYXN5bmMgZ2V0U3RhY2tPdXRwdXQob3V0cHV0S2V5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnNvbGUuZGVidWcoYGdldCBvdXRwdXRzIGZyb20gc3RhY2sgJHt0aGlzLnN0YWNrLnN0YWNrTmFtZX1gKTtcbiAgICBjb25zdCBkZXNjcmliZVN0YWNrc1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQuc2VuZChcbiAgICAgIG5ldyBEZXNjcmliZVN0YWNrc0NvbW1hbmQoe1xuICAgICAgICBTdGFja05hbWU6IHRoaXMuc3RhY2suc3RhY2tOYW1lLFxuICAgICAgfSlcbiAgICApO1xuICAgIGNvbnN0IHN0YWNrcyA9IGRlc2NyaWJlU3RhY2tzUmVzcG9uc2UuU3RhY2tzID8/IFtdO1xuICAgIGlmIChzdGFja3MubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgYGZhaWxlZCB0byBnZXQgb3V0cHV0IHZhbHVlIHdpdGgga2V5ICR7b3V0cHV0S2V5fSBmcm9tIHN0YWNrICR7dGhpcy5zdGFja31gXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBvdXRwdXRzID0gc3RhY2tzWzBdLk91dHB1dHMgPz8gW107XG4gICAgY29uc29sZS5kZWJ1ZyhcbiAgICAgIGBvdXRwdXRzIG9mIHN0YWNrICR7dGhpcy5zdGFjay5zdGFja05hbWV9IGFyZSA6ICR7SlNPTi5zdHJpbmdpZnkob3V0cHV0cyl9YFxuICAgICk7XG4gICAgY29uc3Qgb3V0cHV0ID0gb3V0cHV0cy5maWx0ZXIoKG8pID0+IG8uT3V0cHV0S2V5ID09PSBvdXRwdXRLZXkpO1xuICAgIGlmIChvdXRwdXQubGVuZ3RoID09PSAwIHx8IG91dHB1dFswXS5PdXRwdXRWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgYGZhaWxlZCB0byBnZXQgb3V0cHV0IHZhbHVlIHdpdGgga2V5ICR7b3V0cHV0S2V5fSBmcm9tIHN0YWNrICR7dGhpcy5zdGFja31gXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gb3V0cHV0WzBdLk91dHB1dFZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIERlcGxveSB0aGUgc3BlY2lmaWVkIHN0YWNrLlxuICAgKlxuICAgKiBJZiB0aGUgc3BlY2lmaWVkIHN0YWNrIGhhcyBub3QgYmVlbiBjcmVhdGVkIHlldCwgY3JlYXRlIG5ldyBvbmUuIElmIGFscmVhZHkgY3JlYXRlZCwgdXBkYXRlIGl0LlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCB3YWl0cyB1bnRpbCBzdGFjayBkZXBsb3ltZW50IGdldHMgY29tcGxldGVkLlxuICAgKiBAcGFyYW0gZGVwbG95U3RhY2tJbnB1dFxuICAgKiBAcGFyYW0gbWF4V2FpdFRpbWVJblNlY29uZHMgdGhlIGRlZmF1bHQgdmFsdWVzIGlzIGA2MCAqIDYwID0gMWhvdXJgLiBBbGxvd2VkIG1pbmltdW0gdmFsdWUgaXMgYDMxIHNlY29uZHNgXG4gICAqL1xuICBhc3luYyBkZXBsb3lTdGFjayhcbiAgICBkZXBsb3lTdGFja0lucHV0OiBEZXBsb3lTdGFja0lucHV0LFxuICAgIG1heFdhaXRUaW1lSW5TZWNvbmRzPzogbnVtYmVyXG4gICkge1xuICAgIGlmIChtYXhXYWl0VGltZUluU2Vjb25kcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKFwic2V0IDFob3VyIGFzIG1heFdhaXRUaW1lSW5TZWNvbmRzIGRlZmF1bHQgdmFsdWVcIik7XG4gICAgICBtYXhXYWl0VGltZUluU2Vjb25kcyA9IDYwICogNjA7XG4gICAgfVxuICAgIGlmIChtYXhXYWl0VGltZUluU2Vjb25kcyA8PSAzMCkge1xuICAgICAgdGhyb3cgIEVycm9yKFwibWF4V2FpdFRpbWVJblNlY29uZHMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMzBcIilcbiAgICB9XG4gICAgY29uc29sZS5kZWJ1ZyhgY2hlY2sgaWYgc3RhY2sgJHt0aGlzLnN0YWNrLnN0YWNrTmFtZX0gZXhpc3RzYCk7XG4gICAgbGV0IGV4aXN0U3RhY2tzOiBjZm5TdGFja1tdID0gW107XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRlc2NyaWJlU3RhYWNrc1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQuc2VuZChcbiAgICAgICAgbmV3IERlc2NyaWJlU3RhY2tzQ29tbWFuZCh7XG4gICAgICAgICAgU3RhY2tOYW1lOiB0aGlzLnN0YWNrLnN0YWNrTmFtZSxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICBleGlzdFN0YWNrcyA9IGRlc2NyaWJlU3RhYWNrc1Jlc3BvbnNlLlN0YWNrcyA/PyBbXTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKFxuICAgICAgICAhKFxuICAgICAgICAgIGVycm9yIGluc3RhbmNlb2YgQ2xvdWRGb3JtYXRpb25TZXJ2aWNlRXhjZXB0aW9uICYmXG4gICAgICAgICAgZXJyb3IubWVzc2FnZS5pbmNsdWRlcyhcImRvZXMgbm90IGV4aXN0XCIpXG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGV4aXN0U3RhY2tzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc29sZS5kZWJ1Zyhgc3RhY2sgJHt0aGlzLnN0YWNrLnN0YWNrTmFtZX0gZG9lcyBub3QgZXhpc3QsIGNyZWF0ZSBuZXdgKTtcbiAgICAgIGF3YWl0IHRoaXMuY2xpZW50LnNlbmQoXG4gICAgICAgIG5ldyBDcmVhdGVTdGFja0NvbW1hbmQoe1xuICAgICAgICAgIC4uLmRlcGxveVN0YWNrSW5wdXQsXG4gICAgICAgICAgU3RhY2tOYW1lOiB0aGlzLnN0YWNrLnN0YWNrTmFtZSxcbiAgICAgICAgICBUZW1wbGF0ZUJvZHk6IEpTT04uc3RyaW5naWZ5KFRlbXBsYXRlLmZyb21TdGFjayh0aGlzLnN0YWNrKSksXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgY29uc29sZS5kZWJ1ZyhcbiAgICAgICAgYHdhaXQgdW50aWwgZGVwbG95aW5nIG9mIHN0YWNrICR7dGhpcy5zdGFjay5zdGFja05hbWV9IGNvbXBsZXRlc2BcbiAgICAgICk7XG4gICAgICBhd2FpdCB3YWl0VW50aWxTdGFja0NyZWF0ZUNvbXBsZXRlKFxuICAgICAgICB7IGNsaWVudDogdGhpcy5jbGllbnQsIG1heFdhaXRUaW1lOiBtYXhXYWl0VGltZUluU2Vjb25kcyB9LFxuICAgICAgICB7IFN0YWNrTmFtZTogdGhpcy5zdGFjay5zdGFja05hbWUgfVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc29sZS5kZWJ1Zyhgc3RhY2sgJHt0aGlzLnN0YWNrLnN0YWNrTmFtZX0gZXhpc3RzLCB1cGRhdGUgaXRgKTtcbiAgICAgICAgYXdhaXQgdGhpcy5jbGllbnQuc2VuZChcbiAgICAgICAgICBuZXcgVXBkYXRlU3RhY2tDb21tYW5kKHtcbiAgICAgICAgICAgIC4uLmRlcGxveVN0YWNrSW5wdXQsXG4gICAgICAgICAgICBTdGFja05hbWU6IHRoaXMuc3RhY2suc3RhY2tOYW1lLFxuICAgICAgICAgICAgVGVtcGxhdGVCb2R5OiBKU09OLnN0cmluZ2lmeShUZW1wbGF0ZS5mcm9tU3RhY2sodGhpcy5zdGFjaykpLFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIGNvbnNvbGUuZGVidWcoXG4gICAgICAgICAgYHdhaXQgdW50aWwgZGVwbG95aW5nIG9mIHN0YWNrICR7dGhpcy5zdGFjay5zdGFja05hbWV9IGNvbXBsZXRlc2BcbiAgICAgICAgKTtcbiAgICAgICAgYXdhaXQgd2FpdFVudGlsU3RhY2tVcGRhdGVDb21wbGV0ZShcbiAgICAgICAgICB7IGNsaWVudDogdGhpcy5jbGllbnQsIG1heFdhaXRUaW1lOiBtYXhXYWl0VGltZUluU2Vjb25kcyB9LFxuICAgICAgICAgIHsgU3RhY2tOYW1lOiB0aGlzLnN0YWNrLnN0YWNrTmFtZSB9XG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZXJyb3IgaW5zdGFuY2VvZiBDbG91ZEZvcm1hdGlvblNlcnZpY2VFeGNlcHRpb24gJiZcbiAgICAgICAgICBlcnJvci5tZXNzYWdlID09PSBcIk5vIHVwZGF0ZXMgYXJlIHRvIGJlIHBlcmZvcm1lZC5cIlxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zb2xlLmRlYnVnKFwibm8gdXBkYXRlcyBhcmUgdG8gYmUgcGVyZm9ybWVkXCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBEZXN0cm95IHRoZSBzdGFja1xuICAgKiBAcGFyYW0gZGVzdHJveVN0YWNrSW5wdXRcbiAgICogQHBhcmFtIHdhaXQgSWYgYHRydWVgLCB0aGlzIG1ldGhvZCB3YWl0cyB1bnRpbCBzdGFjayBkZWxldGlvbiBjb21wbGV0ZS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgJ2ZhbHNlJ1xuICAgKiBAcGFyYW0gbWF4V2FpdFRpbWVJblNlY29uZHMgdGhlIGRlZmF1bHQgdmFsdWUgaXMgYDYwICogNjAgPSAxaG91cmAuIEFsbG93ZWQgbWluaW11bSB2YWx1ZSBpcyBgMzEgc2Vjb25kc2AuIFRoaXMgcGFyYW0gd2lsbCBiZSB1c2VkIG9ubHkgd2hlbiBwYXJhbWV0ZXIgYHdhaXRgIGlzIHNldCB0byAndHJ1ZSdcbiAgICovXG4gIGFzeW5jIGRlc3Ryb3lTdGFjayhcbiAgICBkZXN0cm95U3RhY2tJbnB1dDogRGVzdHJveVN0YWNrSW5wdXQsXG4gICAgd2FpdD86IGJvb2xlYW4sXG4gICAgbWF4V2FpdFRpbWVJblNlY29uZHM/OiBudW1iZXJcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc29sZS5kZWJ1ZyhgZGVzdHJveSBzdGFjayAke3RoaXMuc3RhY2suc3RhY2tOYW1lfWApO1xuICAgIGF3YWl0IHRoaXMuY2xpZW50LnNlbmQoXG4gICAgICBuZXcgRGVsZXRlU3RhY2tDb21tYW5kKHtcbiAgICAgICAgU3RhY2tOYW1lOiB0aGlzLnN0YWNrLnN0YWNrTmFtZSxcbiAgICAgICAgLi4uZGVzdHJveVN0YWNrSW5wdXQsXG4gICAgICB9KVxuICAgICk7XG4gICAgaWYgKCF3YWl0IHx8IHdhaXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc29sZS5kZWJ1ZyhcInJldHVybiBhc3luY2hyb25vdXNseVwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zb2xlLmRlYnVnKFwid2FpdCB1bnRpbCBzdGFjayBkZWxldGlvbiBjb21wbGV0c1wiKTtcbiAgICBpZiAobWF4V2FpdFRpbWVJblNlY29uZHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgbWF4V2FpdFRpbWVJblNlY29uZHMgPSA2MCAqIDYwO1xuICAgIH1cbiAgICBpZiAobWF4V2FpdFRpbWVJblNlY29uZHMgPD0gMzApIHtcbiAgICAgIHRocm93ICBFcnJvcihcIm1heFdhaXRUaW1lSW5TZWNvbmRzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDMwXCIpXG4gICAgfVxuICAgIGF3YWl0IHdhaXRVbnRpbFN0YWNrRGVsZXRlQ29tcGxldGUoXG4gICAgICB7IGNsaWVudDogdGhpcy5jbGllbnQsIG1heFdhaXRUaW1lOiBtYXhXYWl0VGltZUluU2Vjb25kcyB9LFxuICAgICAgeyBTdGFja05hbWU6IHRoaXMuc3RhY2suc3RhY2tOYW1lIH1cbiAgICApO1xuICAgIHJldHVybjtcbiAgfVxufVxuIl19
2
+ // import {
3
+ // CloudFormationClient,
4
+ // CloudFormationServiceException,
5
+ // CreateStackCommand,
6
+ // CreateStackCommandInput,
7
+ // DeleteStackCommand,
8
+ // DeleteStackCommandInput,
9
+ // DescribeStacksCommand,
10
+ // UpdateStackCommand,
11
+ // UpdateStackCommandInput,
12
+ // waitUntilStackCreateComplete,
13
+ // waitUntilStackDeleteComplete,
14
+ // waitUntilStackUpdateComplete,
15
+ // Stack as cfnStack,
16
+ // } from "@aws-sdk/client-cloudformation";
17
+ // import { Stack as cdkStack } from "aws-cdk-lib";
18
+ // import { Template } from "aws-cdk-lib/assertions";
19
+ // type DeployStackInput = Omit<
20
+ // CreateStackCommandInput | UpdateStackCommandInput,
21
+ // "StackName"
22
+ // >;
23
+ // type DestroyStackInput = Omit<DeleteStackCommandInput, "StackName">;
24
+ // /**
25
+ // * Stack Manager makes it easier and more efficient that you deploy(and destroy) stacks with short-term-lifecycle duraing tests.
26
+ // */
27
+ // export class StackManager {
28
+ // readonly stack: cdkStack;
29
+ // readonly client: CloudFormationClient;
30
+ // /**
31
+ // *
32
+ // * @param stack stack to be managed
33
+ // * @param client cloudformation sdk client to use
34
+ // */
35
+ // constructor(stack: cdkStack, client: CloudFormationClient) {
36
+ // this.stack = stack;
37
+ // this.client = client;
38
+ // }
39
+ // /**
40
+ // * get specific output value from the stack
41
+ // * @param outputKey logical id of Output that you want to get
42
+ // * @returns
43
+ // */
44
+ // async getStackOutput(outputKey: string): Promise<string> {
45
+ // console.debug(`get outputs from stack ${this.stack.stackName}`);
46
+ // const describeStacksResponse = await this.client.send(
47
+ // new DescribeStacksCommand({
48
+ // StackName: this.stack.stackName,
49
+ // })
50
+ // );
51
+ // const stacks = describeStacksResponse.Stacks ?? [];
52
+ // if (stacks.length === 0) {
53
+ // throw Error(
54
+ // `failed to get output value with key ${outputKey} from stack ${this.stack}`
55
+ // );
56
+ // }
57
+ // const outputs = stacks[0].Outputs ?? [];
58
+ // console.debug(
59
+ // `outputs of stack ${this.stack.stackName} are : ${JSON.stringify(outputs)}`
60
+ // );
61
+ // const output = outputs.filter((o) => o.OutputKey === outputKey);
62
+ // if (output.length === 0 || output[0].OutputValue === undefined) {
63
+ // throw Error(
64
+ // `failed to get output value with key ${outputKey} from stack ${this.stack}`
65
+ // );
66
+ // }
67
+ // return output[0].OutputValue;
68
+ // }
69
+ // /**
70
+ // * Deploy the specified stack.
71
+ // *
72
+ // * If the specified stack has not been created yet, create new one. If already created, update it.
73
+ // *
74
+ // * This method waits until stack deployment gets completed.
75
+ // * @param deployStackInput
76
+ // * @param maxWaitTimeInSeconds the default values is `60 * 60 = 1hour`. Allowed minimum value is `31 seconds`
77
+ // */
78
+ // async deployStack(
79
+ // deployStackInput: DeployStackInput,
80
+ // maxWaitTimeInSeconds?: number
81
+ // ) {
82
+ // if (maxWaitTimeInSeconds === undefined) {
83
+ // console.debug("set 1hour as maxWaitTimeInSeconds default value");
84
+ // maxWaitTimeInSeconds = 60 * 60;
85
+ // }
86
+ // if (maxWaitTimeInSeconds <= 30) {
87
+ // throw Error("maxWaitTimeInSeconds must be greater than 30")
88
+ // }
89
+ // console.debug(`check if stack ${this.stack.stackName} exists`);
90
+ // let existStacks: cfnStack[] = [];
91
+ // try {
92
+ // const describeStaacksResponse = await this.client.send(
93
+ // new DescribeStacksCommand({
94
+ // StackName: this.stack.stackName,
95
+ // })
96
+ // );
97
+ // existStacks = describeStaacksResponse.Stacks ?? [];
98
+ // } catch (error) {
99
+ // if (
100
+ // !(
101
+ // error instanceof CloudFormationServiceException &&
102
+ // error.message.includes("does not exist")
103
+ // )
104
+ // ) {
105
+ // throw error;
106
+ // }
107
+ // }
108
+ // if (existStacks.length === 0) {
109
+ // console.debug(`stack ${this.stack.stackName} does not exist, create new`);
110
+ // await this.client.send(
111
+ // new CreateStackCommand({
112
+ // ...deployStackInput,
113
+ // StackName: this.stack.stackName,
114
+ // TemplateBody: JSON.stringify(Template.fromStack(this.stack)),
115
+ // })
116
+ // );
117
+ // console.debug(
118
+ // `wait until deploying of stack ${this.stack.stackName} completes`
119
+ // );
120
+ // await waitUntilStackCreateComplete(
121
+ // { client: this.client, maxWaitTime: maxWaitTimeInSeconds },
122
+ // { StackName: this.stack.stackName }
123
+ // );
124
+ // } else {
125
+ // try {
126
+ // console.debug(`stack ${this.stack.stackName} exists, update it`);
127
+ // await this.client.send(
128
+ // new UpdateStackCommand({
129
+ // ...deployStackInput,
130
+ // StackName: this.stack.stackName,
131
+ // TemplateBody: JSON.stringify(Template.fromStack(this.stack)),
132
+ // })
133
+ // );
134
+ // console.debug(
135
+ // `wait until deploying of stack ${this.stack.stackName} completes`
136
+ // );
137
+ // await waitUntilStackUpdateComplete(
138
+ // { client: this.client, maxWaitTime: maxWaitTimeInSeconds },
139
+ // { StackName: this.stack.stackName }
140
+ // );
141
+ // } catch (error) {
142
+ // if (
143
+ // error instanceof CloudFormationServiceException &&
144
+ // error.message === "No updates are to be performed."
145
+ // ) {
146
+ // console.debug("no updates are to be performed");
147
+ // } else {
148
+ // throw error;
149
+ // }
150
+ // }
151
+ // }
152
+ // }
153
+ // /**
154
+ // * Destroy the stack
155
+ // * @param destroyStackInput
156
+ // * @param wait If `true`, this method waits until stack deletion complete. The default value is 'false'
157
+ // * @param maxWaitTimeInSeconds the default value is `60 * 60 = 1hour`. Allowed minimum value is `31 seconds`. This param will be used only when parameter `wait` is set to 'true'
158
+ // */
159
+ // async destroyStack(
160
+ // destroyStackInput: DestroyStackInput,
161
+ // wait?: boolean,
162
+ // maxWaitTimeInSeconds?: number
163
+ // ): Promise<void> {
164
+ // console.debug(`destroy stack ${this.stack.stackName}`);
165
+ // await this.client.send(
166
+ // new DeleteStackCommand({
167
+ // StackName: this.stack.stackName,
168
+ // ...destroyStackInput,
169
+ // })
170
+ // );
171
+ // if (!wait || wait === undefined) {
172
+ // console.debug("return asynchronously");
173
+ // return;
174
+ // }
175
+ // console.debug("wait until stack deletion complets");
176
+ // if (maxWaitTimeInSeconds === undefined) {
177
+ // maxWaitTimeInSeconds = 60 * 60;
178
+ // }
179
+ // if (maxWaitTimeInSeconds <= 30) {
180
+ // throw Error("maxWaitTimeInSeconds must be greater than 30")
181
+ // }
182
+ // await waitUntilStackDeleteComplete(
183
+ // { client: this.client, maxWaitTime: maxWaitTimeInSeconds },
184
+ // { StackName: this.stack.stackName }
185
+ // );
186
+ // return;
187
+ // }
188
+ // }
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0YWNrLW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFdBQVc7QUFDWCwwQkFBMEI7QUFDMUIsb0NBQW9DO0FBQ3BDLHdCQUF3QjtBQUN4Qiw2QkFBNkI7QUFDN0Isd0JBQXdCO0FBQ3hCLDZCQUE2QjtBQUM3QiwyQkFBMkI7QUFDM0Isd0JBQXdCO0FBQ3hCLDZCQUE2QjtBQUM3QixrQ0FBa0M7QUFDbEMsa0NBQWtDO0FBQ2xDLGtDQUFrQztBQUNsQyx1QkFBdUI7QUFDdkIsMkNBQTJDO0FBQzNDLG1EQUFtRDtBQUNuRCxxREFBcUQ7QUFFckQsZ0NBQWdDO0FBQ2hDLHVEQUF1RDtBQUN2RCxnQkFBZ0I7QUFDaEIsS0FBSztBQUNMLHVFQUF1RTtBQUV2RSxNQUFNO0FBQ04sbUlBQW1JO0FBQ25JLE1BQU07QUFDTiw4QkFBOEI7QUFDOUIsOEJBQThCO0FBQzlCLDJDQUEyQztBQUUzQyxRQUFRO0FBQ1IsT0FBTztBQUNQLHdDQUF3QztBQUN4QyxzREFBc0Q7QUFDdEQsUUFBUTtBQUNSLGlFQUFpRTtBQUNqRSwwQkFBMEI7QUFDMUIsNEJBQTRCO0FBQzVCLE1BQU07QUFFTixRQUFRO0FBQ1IsZ0RBQWdEO0FBQ2hELGtFQUFrRTtBQUNsRSxnQkFBZ0I7QUFDaEIsUUFBUTtBQUNSLCtEQUErRDtBQUMvRCx1RUFBdUU7QUFDdkUsNkRBQTZEO0FBQzdELG9DQUFvQztBQUNwQywyQ0FBMkM7QUFDM0MsV0FBVztBQUNYLFNBQVM7QUFDVCwwREFBMEQ7QUFDMUQsaUNBQWlDO0FBQ2pDLHFCQUFxQjtBQUNyQixzRkFBc0Y7QUFDdEYsV0FBVztBQUNYLFFBQVE7QUFDUiwrQ0FBK0M7QUFDL0MscUJBQXFCO0FBQ3JCLG9GQUFvRjtBQUNwRixTQUFTO0FBQ1QsdUVBQXVFO0FBQ3ZFLHdFQUF3RTtBQUN4RSxxQkFBcUI7QUFDckIsc0ZBQXNGO0FBQ3RGLFdBQVc7QUFDWCxRQUFRO0FBQ1Isb0NBQW9DO0FBQ3BDLE1BQU07QUFFTixRQUFRO0FBQ1IsbUNBQW1DO0FBQ25DLE9BQU87QUFDUCx1R0FBdUc7QUFDdkcsT0FBTztBQUNQLGdFQUFnRTtBQUNoRSwrQkFBK0I7QUFDL0Isa0hBQWtIO0FBQ2xILFFBQVE7QUFDUix1QkFBdUI7QUFDdkIsMENBQTBDO0FBQzFDLG9DQUFvQztBQUNwQyxRQUFRO0FBQ1IsZ0RBQWdEO0FBQ2hELDBFQUEwRTtBQUMxRSx3Q0FBd0M7QUFDeEMsUUFBUTtBQUNSLHdDQUF3QztBQUN4QyxxRUFBcUU7QUFDckUsUUFBUTtBQUNSLHNFQUFzRTtBQUN0RSx3Q0FBd0M7QUFDeEMsWUFBWTtBQUNaLGdFQUFnRTtBQUNoRSxzQ0FBc0M7QUFDdEMsNkNBQTZDO0FBQzdDLGFBQWE7QUFDYixXQUFXO0FBQ1gsNERBQTREO0FBQzVELHdCQUF3QjtBQUN4QixhQUFhO0FBQ2IsYUFBYTtBQUNiLCtEQUErRDtBQUMvRCxxREFBcUQ7QUFDckQsWUFBWTtBQUNaLFlBQVk7QUFDWix1QkFBdUI7QUFDdkIsVUFBVTtBQUNWLFFBQVE7QUFDUixzQ0FBc0M7QUFDdEMsbUZBQW1GO0FBQ25GLGdDQUFnQztBQUNoQyxtQ0FBbUM7QUFDbkMsaUNBQWlDO0FBQ2pDLDZDQUE2QztBQUM3QywwRUFBMEU7QUFDMUUsYUFBYTtBQUNiLFdBQVc7QUFDWCx1QkFBdUI7QUFDdkIsNEVBQTRFO0FBQzVFLFdBQVc7QUFDWCw0Q0FBNEM7QUFDNUMsc0VBQXNFO0FBQ3RFLDhDQUE4QztBQUM5QyxXQUFXO0FBQ1gsZUFBZTtBQUNmLGNBQWM7QUFDZCw0RUFBNEU7QUFDNUUsa0NBQWtDO0FBQ2xDLHFDQUFxQztBQUNyQyxtQ0FBbUM7QUFDbkMsK0NBQStDO0FBQy9DLDRFQUE0RTtBQUM1RSxlQUFlO0FBQ2YsYUFBYTtBQUNiLHlCQUF5QjtBQUN6Qiw4RUFBOEU7QUFDOUUsYUFBYTtBQUNiLDhDQUE4QztBQUM5Qyx3RUFBd0U7QUFDeEUsZ0RBQWdEO0FBQ2hELGFBQWE7QUFDYiwwQkFBMEI7QUFDMUIsZUFBZTtBQUNmLCtEQUErRDtBQUMvRCxnRUFBZ0U7QUFDaEUsY0FBYztBQUNkLDZEQUE2RDtBQUM3RCxtQkFBbUI7QUFDbkIseUJBQXlCO0FBQ3pCLFlBQVk7QUFDWixVQUFVO0FBQ1YsUUFBUTtBQUNSLE1BQU07QUFDTixRQUFRO0FBQ1IseUJBQXlCO0FBQ3pCLGdDQUFnQztBQUNoQyw0R0FBNEc7QUFDNUcsc0xBQXNMO0FBQ3RMLFFBQVE7QUFDUix3QkFBd0I7QUFDeEIsNENBQTRDO0FBQzVDLHNCQUFzQjtBQUN0QixvQ0FBb0M7QUFDcEMsdUJBQXVCO0FBQ3ZCLDhEQUE4RDtBQUM5RCw4QkFBOEI7QUFDOUIsaUNBQWlDO0FBQ2pDLDJDQUEyQztBQUMzQyxnQ0FBZ0M7QUFDaEMsV0FBVztBQUNYLFNBQVM7QUFDVCx5Q0FBeUM7QUFDekMsZ0RBQWdEO0FBQ2hELGdCQUFnQjtBQUNoQixRQUFRO0FBRVIsMkRBQTJEO0FBQzNELGdEQUFnRDtBQUNoRCx3Q0FBd0M7QUFDeEMsUUFBUTtBQUNSLHdDQUF3QztBQUN4QyxxRUFBcUU7QUFDckUsUUFBUTtBQUNSLDBDQUEwQztBQUMxQyxvRUFBb0U7QUFDcEUsNENBQTRDO0FBQzVDLFNBQVM7QUFDVCxjQUFjO0FBQ2QsTUFBTTtBQUNOLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBpbXBvcnQge1xuLy8gICBDbG91ZEZvcm1hdGlvbkNsaWVudCxcbi8vICAgQ2xvdWRGb3JtYXRpb25TZXJ2aWNlRXhjZXB0aW9uLFxuLy8gICBDcmVhdGVTdGFja0NvbW1hbmQsXG4vLyAgIENyZWF0ZVN0YWNrQ29tbWFuZElucHV0LFxuLy8gICBEZWxldGVTdGFja0NvbW1hbmQsXG4vLyAgIERlbGV0ZVN0YWNrQ29tbWFuZElucHV0LFxuLy8gICBEZXNjcmliZVN0YWNrc0NvbW1hbmQsXG4vLyAgIFVwZGF0ZVN0YWNrQ29tbWFuZCxcbi8vICAgVXBkYXRlU3RhY2tDb21tYW5kSW5wdXQsXG4vLyAgIHdhaXRVbnRpbFN0YWNrQ3JlYXRlQ29tcGxldGUsXG4vLyAgIHdhaXRVbnRpbFN0YWNrRGVsZXRlQ29tcGxldGUsXG4vLyAgIHdhaXRVbnRpbFN0YWNrVXBkYXRlQ29tcGxldGUsXG4vLyAgIFN0YWNrIGFzIGNmblN0YWNrLFxuLy8gfSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uXCI7XG4vLyBpbXBvcnQgeyBTdGFjayBhcyBjZGtTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuLy8gaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXNzZXJ0aW9uc1wiO1xuXG4vLyB0eXBlIERlcGxveVN0YWNrSW5wdXQgPSBPbWl0PFxuLy8gICBDcmVhdGVTdGFja0NvbW1hbmRJbnB1dCB8IFVwZGF0ZVN0YWNrQ29tbWFuZElucHV0LFxuLy8gICBcIlN0YWNrTmFtZVwiXG4vLyA+O1xuLy8gdHlwZSBEZXN0cm95U3RhY2tJbnB1dCA9IE9taXQ8RGVsZXRlU3RhY2tDb21tYW5kSW5wdXQsIFwiU3RhY2tOYW1lXCI+O1xuXG4vLyAvKipcbi8vICAqIFN0YWNrIE1hbmFnZXIgbWFrZXMgaXQgZWFzaWVyIGFuZCBtb3JlIGVmZmljaWVudCB0aGF0IHlvdSBkZXBsb3koYW5kIGRlc3Ryb3kpIHN0YWNrcyB3aXRoIHNob3J0LXRlcm0tbGlmZWN5Y2xlIGR1cmFpbmcgdGVzdHMuXG4vLyAgKi9cbi8vIGV4cG9ydCBjbGFzcyBTdGFja01hbmFnZXIge1xuLy8gICByZWFkb25seSBzdGFjazogY2RrU3RhY2s7XG4vLyAgIHJlYWRvbmx5IGNsaWVudDogQ2xvdWRGb3JtYXRpb25DbGllbnQ7XG5cbi8vICAgLyoqXG4vLyAgICAqXG4vLyAgICAqIEBwYXJhbSBzdGFjayBzdGFjayB0byBiZSBtYW5hZ2VkXG4vLyAgICAqIEBwYXJhbSBjbGllbnQgY2xvdWRmb3JtYXRpb24gc2RrIGNsaWVudCB0byB1c2Vcbi8vICAgICovXG4vLyAgIGNvbnN0cnVjdG9yKHN0YWNrOiBjZGtTdGFjaywgY2xpZW50OiBDbG91ZEZvcm1hdGlvbkNsaWVudCkge1xuLy8gICAgIHRoaXMuc3RhY2sgPSBzdGFjaztcbi8vICAgICB0aGlzLmNsaWVudCA9IGNsaWVudDtcbi8vICAgfVxuXG4vLyAgIC8qKlxuLy8gICAgKiBnZXQgc3BlY2lmaWMgb3V0cHV0IHZhbHVlIGZyb20gdGhlIHN0YWNrXG4vLyAgICAqIEBwYXJhbSBvdXRwdXRLZXkgbG9naWNhbCBpZCBvZiBPdXRwdXQgdGhhdCB5b3Ugd2FudCB0byBnZXRcbi8vICAgICogQHJldHVybnNcbi8vICAgICovXG4vLyAgIGFzeW5jIGdldFN0YWNrT3V0cHV0KG91dHB1dEtleTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbi8vICAgICBjb25zb2xlLmRlYnVnKGBnZXQgb3V0cHV0cyBmcm9tIHN0YWNrICR7dGhpcy5zdGFjay5zdGFja05hbWV9YCk7XG4vLyAgICAgY29uc3QgZGVzY3JpYmVTdGFja3NSZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnNlbmQoXG4vLyAgICAgICBuZXcgRGVzY3JpYmVTdGFja3NDb21tYW5kKHtcbi8vICAgICAgICAgU3RhY2tOYW1lOiB0aGlzLnN0YWNrLnN0YWNrTmFtZSxcbi8vICAgICAgIH0pXG4vLyAgICAgKTtcbi8vICAgICBjb25zdCBzdGFja3MgPSBkZXNjcmliZVN0YWNrc1Jlc3BvbnNlLlN0YWNrcyA/PyBbXTtcbi8vICAgICBpZiAoc3RhY2tzLmxlbmd0aCA9PT0gMCkge1xuLy8gICAgICAgdGhyb3cgRXJyb3IoXG4vLyAgICAgICAgIGBmYWlsZWQgdG8gZ2V0IG91dHB1dCB2YWx1ZSB3aXRoIGtleSAke291dHB1dEtleX0gZnJvbSBzdGFjayAke3RoaXMuc3RhY2t9YFxuLy8gICAgICAgKTtcbi8vICAgICB9XG4vLyAgICAgY29uc3Qgb3V0cHV0cyA9IHN0YWNrc1swXS5PdXRwdXRzID8/IFtdO1xuLy8gICAgIGNvbnNvbGUuZGVidWcoXG4vLyAgICAgICBgb3V0cHV0cyBvZiBzdGFjayAke3RoaXMuc3RhY2suc3RhY2tOYW1lfSBhcmUgOiAke0pTT04uc3RyaW5naWZ5KG91dHB1dHMpfWBcbi8vICAgICApO1xuLy8gICAgIGNvbnN0IG91dHB1dCA9IG91dHB1dHMuZmlsdGVyKChvKSA9PiBvLk91dHB1dEtleSA9PT0gb3V0cHV0S2V5KTtcbi8vICAgICBpZiAob3V0cHV0Lmxlbmd0aCA9PT0gMCB8fCBvdXRwdXRbMF0uT3V0cHV0VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuLy8gICAgICAgdGhyb3cgRXJyb3IoXG4vLyAgICAgICAgIGBmYWlsZWQgdG8gZ2V0IG91dHB1dCB2YWx1ZSB3aXRoIGtleSAke291dHB1dEtleX0gZnJvbSBzdGFjayAke3RoaXMuc3RhY2t9YFxuLy8gICAgICAgKTtcbi8vICAgICB9XG4vLyAgICAgcmV0dXJuIG91dHB1dFswXS5PdXRwdXRWYWx1ZTtcbi8vICAgfVxuXG4vLyAgIC8qKlxuLy8gICAgKiBEZXBsb3kgdGhlIHNwZWNpZmllZCBzdGFjay5cbi8vICAgICpcbi8vICAgICogSWYgdGhlIHNwZWNpZmllZCBzdGFjayBoYXMgbm90IGJlZW4gY3JlYXRlZCB5ZXQsIGNyZWF0ZSBuZXcgb25lLiBJZiBhbHJlYWR5IGNyZWF0ZWQsIHVwZGF0ZSBpdC5cbi8vICAgICpcbi8vICAgICogVGhpcyBtZXRob2Qgd2FpdHMgdW50aWwgc3RhY2sgZGVwbG95bWVudCBnZXRzIGNvbXBsZXRlZC5cbi8vICAgICogQHBhcmFtIGRlcGxveVN0YWNrSW5wdXRcbi8vICAgICogQHBhcmFtIG1heFdhaXRUaW1lSW5TZWNvbmRzIHRoZSBkZWZhdWx0IHZhbHVlcyBpcyBgNjAgKiA2MCA9IDFob3VyYC4gQWxsb3dlZCBtaW5pbXVtIHZhbHVlIGlzIGAzMSBzZWNvbmRzYFxuLy8gICAgKi9cbi8vICAgYXN5bmMgZGVwbG95U3RhY2soXG4vLyAgICAgZGVwbG95U3RhY2tJbnB1dDogRGVwbG95U3RhY2tJbnB1dCxcbi8vICAgICBtYXhXYWl0VGltZUluU2Vjb25kcz86IG51bWJlclxuLy8gICApIHtcbi8vICAgICBpZiAobWF4V2FpdFRpbWVJblNlY29uZHMgPT09IHVuZGVmaW5lZCkge1xuLy8gICAgICAgY29uc29sZS5kZWJ1ZyhcInNldCAxaG91ciBhcyBtYXhXYWl0VGltZUluU2Vjb25kcyBkZWZhdWx0IHZhbHVlXCIpO1xuLy8gICAgICAgbWF4V2FpdFRpbWVJblNlY29uZHMgPSA2MCAqIDYwO1xuLy8gICAgIH1cbi8vICAgICBpZiAobWF4V2FpdFRpbWVJblNlY29uZHMgPD0gMzApIHtcbi8vICAgICAgIHRocm93ICBFcnJvcihcIm1heFdhaXRUaW1lSW5TZWNvbmRzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDMwXCIpXG4vLyAgICAgfVxuLy8gICAgIGNvbnNvbGUuZGVidWcoYGNoZWNrIGlmIHN0YWNrICR7dGhpcy5zdGFjay5zdGFja05hbWV9IGV4aXN0c2ApO1xuLy8gICAgIGxldCBleGlzdFN0YWNrczogY2ZuU3RhY2tbXSA9IFtdO1xuLy8gICAgIHRyeSB7XG4vLyAgICAgICBjb25zdCBkZXNjcmliZVN0YWFja3NSZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnNlbmQoXG4vLyAgICAgICAgIG5ldyBEZXNjcmliZVN0YWNrc0NvbW1hbmQoe1xuLy8gICAgICAgICAgIFN0YWNrTmFtZTogdGhpcy5zdGFjay5zdGFja05hbWUsXG4vLyAgICAgICAgIH0pXG4vLyAgICAgICApO1xuLy8gICAgICAgZXhpc3RTdGFja3MgPSBkZXNjcmliZVN0YWFja3NSZXNwb25zZS5TdGFja3MgPz8gW107XG4vLyAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbi8vICAgICAgIGlmIChcbi8vICAgICAgICAgIShcbi8vICAgICAgICAgICBlcnJvciBpbnN0YW5jZW9mIENsb3VkRm9ybWF0aW9uU2VydmljZUV4Y2VwdGlvbiAmJlxuLy8gICAgICAgICAgIGVycm9yLm1lc3NhZ2UuaW5jbHVkZXMoXCJkb2VzIG5vdCBleGlzdFwiKVxuLy8gICAgICAgICApXG4vLyAgICAgICApIHtcbi8vICAgICAgICAgdGhyb3cgZXJyb3I7XG4vLyAgICAgICB9XG4vLyAgICAgfVxuLy8gICAgIGlmIChleGlzdFN0YWNrcy5sZW5ndGggPT09IDApIHtcbi8vICAgICAgIGNvbnNvbGUuZGVidWcoYHN0YWNrICR7dGhpcy5zdGFjay5zdGFja05hbWV9IGRvZXMgbm90IGV4aXN0LCBjcmVhdGUgbmV3YCk7XG4vLyAgICAgICBhd2FpdCB0aGlzLmNsaWVudC5zZW5kKFxuLy8gICAgICAgICBuZXcgQ3JlYXRlU3RhY2tDb21tYW5kKHtcbi8vICAgICAgICAgICAuLi5kZXBsb3lTdGFja0lucHV0LFxuLy8gICAgICAgICAgIFN0YWNrTmFtZTogdGhpcy5zdGFjay5zdGFja05hbWUsXG4vLyAgICAgICAgICAgVGVtcGxhdGVCb2R5OiBKU09OLnN0cmluZ2lmeShUZW1wbGF0ZS5mcm9tU3RhY2sodGhpcy5zdGFjaykpLFxuLy8gICAgICAgICB9KVxuLy8gICAgICAgKTtcbi8vICAgICAgIGNvbnNvbGUuZGVidWcoXG4vLyAgICAgICAgIGB3YWl0IHVudGlsIGRlcGxveWluZyBvZiBzdGFjayAke3RoaXMuc3RhY2suc3RhY2tOYW1lfSBjb21wbGV0ZXNgXG4vLyAgICAgICApO1xuLy8gICAgICAgYXdhaXQgd2FpdFVudGlsU3RhY2tDcmVhdGVDb21wbGV0ZShcbi8vICAgICAgICAgeyBjbGllbnQ6IHRoaXMuY2xpZW50LCBtYXhXYWl0VGltZTogbWF4V2FpdFRpbWVJblNlY29uZHMgfSxcbi8vICAgICAgICAgeyBTdGFja05hbWU6IHRoaXMuc3RhY2suc3RhY2tOYW1lIH1cbi8vICAgICAgICk7XG4vLyAgICAgfSBlbHNlIHtcbi8vICAgICAgIHRyeSB7XG4vLyAgICAgICAgIGNvbnNvbGUuZGVidWcoYHN0YWNrICR7dGhpcy5zdGFjay5zdGFja05hbWV9IGV4aXN0cywgdXBkYXRlIGl0YCk7XG4vLyAgICAgICAgIGF3YWl0IHRoaXMuY2xpZW50LnNlbmQoXG4vLyAgICAgICAgICAgbmV3IFVwZGF0ZVN0YWNrQ29tbWFuZCh7XG4vLyAgICAgICAgICAgICAuLi5kZXBsb3lTdGFja0lucHV0LFxuLy8gICAgICAgICAgICAgU3RhY2tOYW1lOiB0aGlzLnN0YWNrLnN0YWNrTmFtZSxcbi8vICAgICAgICAgICAgIFRlbXBsYXRlQm9keTogSlNPTi5zdHJpbmdpZnkoVGVtcGxhdGUuZnJvbVN0YWNrKHRoaXMuc3RhY2spKSxcbi8vICAgICAgICAgICB9KVxuLy8gICAgICAgICApO1xuLy8gICAgICAgICBjb25zb2xlLmRlYnVnKFxuLy8gICAgICAgICAgIGB3YWl0IHVudGlsIGRlcGxveWluZyBvZiBzdGFjayAke3RoaXMuc3RhY2suc3RhY2tOYW1lfSBjb21wbGV0ZXNgXG4vLyAgICAgICAgICk7XG4vLyAgICAgICAgIGF3YWl0IHdhaXRVbnRpbFN0YWNrVXBkYXRlQ29tcGxldGUoXG4vLyAgICAgICAgICAgeyBjbGllbnQ6IHRoaXMuY2xpZW50LCBtYXhXYWl0VGltZTogbWF4V2FpdFRpbWVJblNlY29uZHMgfSxcbi8vICAgICAgICAgICB7IFN0YWNrTmFtZTogdGhpcy5zdGFjay5zdGFja05hbWUgfVxuLy8gICAgICAgICApO1xuLy8gICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbi8vICAgICAgICAgaWYgKFxuLy8gICAgICAgICAgIGVycm9yIGluc3RhbmNlb2YgQ2xvdWRGb3JtYXRpb25TZXJ2aWNlRXhjZXB0aW9uICYmXG4vLyAgICAgICAgICAgZXJyb3IubWVzc2FnZSA9PT0gXCJObyB1cGRhdGVzIGFyZSB0byBiZSBwZXJmb3JtZWQuXCJcbi8vICAgICAgICAgKSB7XG4vLyAgICAgICAgICAgY29uc29sZS5kZWJ1ZyhcIm5vIHVwZGF0ZXMgYXJlIHRvIGJlIHBlcmZvcm1lZFwiKTtcbi8vICAgICAgICAgfSBlbHNlIHtcbi8vICAgICAgICAgICB0aHJvdyBlcnJvcjtcbi8vICAgICAgICAgfVxuLy8gICAgICAgfVxuLy8gICAgIH1cbi8vICAgfVxuLy8gICAvKipcbi8vICAgICogRGVzdHJveSB0aGUgc3RhY2tcbi8vICAgICogQHBhcmFtIGRlc3Ryb3lTdGFja0lucHV0XG4vLyAgICAqIEBwYXJhbSB3YWl0IElmIGB0cnVlYCwgdGhpcyBtZXRob2Qgd2FpdHMgdW50aWwgc3RhY2sgZGVsZXRpb24gY29tcGxldGUuIFRoZSBkZWZhdWx0IHZhbHVlIGlzICdmYWxzZSdcbi8vICAgICogQHBhcmFtIG1heFdhaXRUaW1lSW5TZWNvbmRzIHRoZSBkZWZhdWx0IHZhbHVlIGlzIGA2MCAqIDYwID0gMWhvdXJgLiBBbGxvd2VkIG1pbmltdW0gdmFsdWUgaXMgYDMxIHNlY29uZHNgLiBUaGlzIHBhcmFtIHdpbGwgYmUgdXNlZCBvbmx5IHdoZW4gcGFyYW1ldGVyIGB3YWl0YCBpcyBzZXQgdG8gJ3RydWUnXG4vLyAgICAqL1xuLy8gICBhc3luYyBkZXN0cm95U3RhY2soXG4vLyAgICAgZGVzdHJveVN0YWNrSW5wdXQ6IERlc3Ryb3lTdGFja0lucHV0LFxuLy8gICAgIHdhaXQ/OiBib29sZWFuLFxuLy8gICAgIG1heFdhaXRUaW1lSW5TZWNvbmRzPzogbnVtYmVyXG4vLyAgICk6IFByb21pc2U8dm9pZD4ge1xuLy8gICAgIGNvbnNvbGUuZGVidWcoYGRlc3Ryb3kgc3RhY2sgJHt0aGlzLnN0YWNrLnN0YWNrTmFtZX1gKTtcbi8vICAgICBhd2FpdCB0aGlzLmNsaWVudC5zZW5kKFxuLy8gICAgICAgbmV3IERlbGV0ZVN0YWNrQ29tbWFuZCh7XG4vLyAgICAgICAgIFN0YWNrTmFtZTogdGhpcy5zdGFjay5zdGFja05hbWUsXG4vLyAgICAgICAgIC4uLmRlc3Ryb3lTdGFja0lucHV0LFxuLy8gICAgICAgfSlcbi8vICAgICApO1xuLy8gICAgIGlmICghd2FpdCB8fCB3YWl0ID09PSB1bmRlZmluZWQpIHtcbi8vICAgICAgIGNvbnNvbGUuZGVidWcoXCJyZXR1cm4gYXN5bmNocm9ub3VzbHlcIik7XG4vLyAgICAgICByZXR1cm47XG4vLyAgICAgfVxuXG4vLyAgICAgY29uc29sZS5kZWJ1ZyhcIndhaXQgdW50aWwgc3RhY2sgZGVsZXRpb24gY29tcGxldHNcIik7XG4vLyAgICAgaWYgKG1heFdhaXRUaW1lSW5TZWNvbmRzID09PSB1bmRlZmluZWQpIHtcbi8vICAgICAgIG1heFdhaXRUaW1lSW5TZWNvbmRzID0gNjAgKiA2MDtcbi8vICAgICB9XG4vLyAgICAgaWYgKG1heFdhaXRUaW1lSW5TZWNvbmRzIDw9IDMwKSB7XG4vLyAgICAgICB0aHJvdyAgRXJyb3IoXCJtYXhXYWl0VGltZUluU2Vjb25kcyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAzMFwiKVxuLy8gICAgIH1cbi8vICAgICBhd2FpdCB3YWl0VW50aWxTdGFja0RlbGV0ZUNvbXBsZXRlKFxuLy8gICAgICAgeyBjbGllbnQ6IHRoaXMuY2xpZW50LCBtYXhXYWl0VGltZTogbWF4V2FpdFRpbWVJblNlY29uZHMgfSxcbi8vICAgICAgIHsgU3RhY2tOYW1lOiB0aGlzLnN0YWNrLnN0YWNrTmFtZSB9XG4vLyAgICAgKTtcbi8vICAgICByZXR1cm47XG4vLyAgIH1cbi8vIH1cbiJdfQ==
@@ -1,19 +1,20 @@
1
1
  import { Matcher } from "aws-cdk-lib/assertions";
2
+ type Primitives = string | number | boolean | undefined | null | symbol | bigint;
2
3
  /**
3
- * make properties of `T` asignable Matcher and other arbitrary json objects
4
+ * make properties of `T` asignable Matcher recirsively and other arbitrary json objects for primitive type fields
4
5
  */
5
6
  type AlsoMatchable<T> = {
6
- [p in keyof T]?: T[p] | Matcher | {
7
+ [p in keyof T]?: T[p] extends Primitives ? T[p] | Matcher | {
7
8
  [key in string]: any;
8
- };
9
+ } : AlsoMatchable<T[p]> | Matcher;
9
10
  };
10
11
  /**
11
12
  * make properties of `T` asignable arbitrary json objects
12
13
  */
13
14
  type AlsoAny<T> = {
14
- [p in keyof T]: T[p] | {
15
+ [p in keyof T]: T[p] extends Primitives ? T[p] | {
15
16
  [key in string]: any;
16
- };
17
+ } : AlsoAny<T[p]>;
17
18
  };
18
19
  /**
19
20
  * CloudFormation Resource based on the definition at https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-product-attribute-reference.html
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWQtcmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlZC1yZXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0Y2gsIE1hdGNoZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvYXNzZXJ0aW9uc1wiO1xuaW1wb3J0IHsgX0FXU19FQzJfSU5TVEFOQ0UgfSBmcm9tIFwiLi4vdGVzdC91bml0L3Rlc3QtY2ZuLXRzLXNjaGVtYXMvYXdzLWVjMi1pbnN0YW5jZVwiO1xuXG4vKipcbiAqIG1ha2UgcHJvcGVydGllcyBvZiBgVGAgYXNpZ25hYmxlIE1hdGNoZXIgYW5kIG90aGVyIGFyYml0cmFyeSBqc29uIG9iamVjdHNcbiAqL1xudHlwZSBBbHNvTWF0Y2hhYmxlPFQ+ID0ge1xuICBbcCBpbiBrZXlvZiBUXT86IFRbcF0gfCBNYXRjaGVyIHwge1trZXkgaW4gc3RyaW5nXTogYW55fVxufVxuLyoqXG4gKiBtYWtlIHByb3BlcnRpZXMgb2YgYFRgIGFzaWduYWJsZSBhcmJpdHJhcnkganNvbiBvYmplY3RzXG4gKi9cbnR5cGUgQWxzb0FueTxUPiA9IHtcbiAgW3AgaW4ga2V5b2YgVF06IFRbcF0gfCB7W2tleSBpbiBzdHJpbmddOiBhbnl9XG59XG5cbi8qKlxuICogQ2xvdWRGb3JtYXRpb24gUmVzb3VyY2UgYmFzZWQgb24gdGhlIGRlZmluaXRpb24gYXQgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2phX2pwL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb2R1Y3QtYXR0cmlidXRlLXJlZmVyZW5jZS5odG1sXG4gKi9cbmludGVyZmFjZSBCYXNlUmVzb3VyY2Uge1xuICBDcmVhdGlvblBvbGljeT86IGFueVxuICBEZWxldGlvblBvbGljeT86IFwiRGVsZXRlXCIgfCBcIlJldGFpblwiIHwgXCJSZXRhaW5FeGNlcHRPbkNyZWF0ZVwiIHwgXCJTbmFwc2hvdFwiXG4gIERlcGVuZHNPbj86IHN0cmluZyB8IHN0cmluZ1tdXG4gIE1ldGFkYXRhPzogYW55XG4gIFVwZGF0ZVBvbGljeT86IGFueVxuICBVcGRhdGVSZXBsYWNlUG9saWN5PzogXCJEZWxldGVcIiB8IFwiUmV0YWluXCIgfCBcIlNuYXBzaG90XCJcbiAgQ29uZGl0aW9uPzogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRSZXNvdXJjZTxUPiBleHRlbmRzIEFsc29NYXRjaGFibGU8QmFzZVJlc291cmNlPiB7UHJvcGVydGllcz86IEFsc29NYXRjaGFibGU8VD4sIFR5cGU6IHN0cmluZ31cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRSZXNvdXJjZVdpdGhvdXRUeXBlPFQ+IGV4dGVuZHMgT21pdDxJbnB1dFJlc291cmNlPFQ+LCBcIlR5cGVcIj4ge31cbmV4cG9ydCBpbnRlcmZhY2UgT3V0cHV0UmVzb3VyY2U8VD4gZXh0ZW5kcyBBbHNvQW55PEJhc2VSZXNvdXJjZT4ge1xuICBQcm9wZXJ0aWVzPzogQWxzb0FueTxUPlxuICBUeXBlOiBzdHJpbmdcbn1cblxuLyoqXG4gKiBpbnRlcmZhY2Ugb2YgcmV0dXJuIHZhbHVlIG9mIFR5cGVkVGVtcGxhdGUncyBtZXRob2RzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV0dXJuVmFsdWU8VD4ge1xuICAvKipcbiAgICogbG9naWNhbCBpZCBvZiBjbG91ZGZvcm1hdGlvbiByZXNvdXJjZXMsIHBhcmFtZXRlcnMsIG91dHB1dHMuLi5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIGRlZmluaXRpb24gb2YgY2xvdWRmb3JtYXRpb24gcmVzb3VyY2VzLCBwYXJhbWV0ZXJzLCBvdXRwdXRzLi4uXG4gICAqL1xuICBkZWY6IFRcbn1cblxuLyoqXG4gKiBpbnRlcmZhY2Ugb2YgY2xvdWRmb3JtYXRpb24gdGVtcGxhdGUgb3V0cHV0XG4gKi9cbmludGVyZmFjZSBPdXRwdXQge1xuICBEZXNjcmlwdGlvbj86IGFueVxuICBWYWx1ZTogYW55XG4gIEV4cG9ydD86IHtcbiAgICBOYW1lOiBhbnlcbiAgfVxufVxuZXhwb3J0IGludGVyZmFjZSBJbnB1dE91dHB1dCBleHRlbmRzIEFsc29NYXRjaGFibGU8T3V0cHV0PiB7fVxuZXhwb3J0IGludGVyZmFjZSBPdXRwdXRPdXRwdXQgZXh0ZW5kcyBBbHNvQW55PE91dHB1dD4ge31cbi8qKlxuICogaW50ZXJmYWNlIG9mIGNsb3VkZm9ybWF0aW9uIHRlbXBsYXRlIHBhcmFtZXRlclxuICovXG5pbnRlcmZhY2UgUGFyYW1ldGVyIHtcbiAgQWxsb3dlZFBhdHRlcm4/OiBzdHJpbmcgXG4gIEFsbG93ZWRWYWx1ZXM/OiBhbnlbXVxuICBDb25zdHJhaW50RGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgRGVmYXVsdD86IGFueVxuICBEZXNjcmlwdGlvbj86IHN0cmluZ1xuICBNYXhMZW5ndGg/OiBudW1iZXJcbiAgTWF4VmFsdWU/OiBudW1iZXJcbiAgTWluTGVuZ3RoPzogbnVtYmVyXG4gIE1pblZhbHVlPzogbnVtYmVyXG4gIE5vRWNobz86IGJvb2xlYW5cbiAgVHlwZTogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIElucHV0UGFyYW10ZXIgZXh0ZW5kcyBBbHNvTWF0Y2hhYmxlPFBhcmFtZXRlcj4ge31cbmV4cG9ydCBpbnRlcmZhY2UgT3V0cHV0UGFyYW1ldGVyIGV4dGVuZHMgQWxzb0FueTxQYXJhbWV0ZXI+IHt9XG5cbmV4cG9ydCB0eXBlIENvbmRpdGlvbiA9IHtcbiAgW2tleSBpbiBzdHJpbmddOiB7XG4gICAgW2tleSBpbiBzdHJpbmddOiBhbnlcbiAgfVxufVxuZXhwb3J0IHR5cGUgTWFwcGluZyA9IHtcbiAgW2tleSBpbiBzdHJpbmddOiB7XG4gICAgW2tleSBpbiBzdHJpbmddOiBhbnlcbiAgfVxufSJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWQtcmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlZC1yZXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0Y2hlciB9IGZyb20gXCJhd3MtY2RrLWxpYi9hc3NlcnRpb25zXCI7XG5cbnR5cGUgUHJpbWl0aXZlcyA9XG4gIHwgc3RyaW5nXG4gIHwgbnVtYmVyXG4gIHwgYm9vbGVhblxuICB8IHVuZGVmaW5lZFxuICB8IG51bGxcbiAgfCBzeW1ib2xcbiAgfCBiaWdpbnQ7XG4vKipcbiAqIG1ha2UgcHJvcGVydGllcyBvZiBgVGAgYXNpZ25hYmxlIE1hdGNoZXIgcmVjaXJzaXZlbHkgYW5kIG90aGVyIGFyYml0cmFyeSBqc29uIG9iamVjdHMgZm9yIHByaW1pdGl2ZSB0eXBlIGZpZWxkc1xuICovXG50eXBlIEFsc29NYXRjaGFibGU8VD4gPSB7XG4gIFtwIGluIGtleW9mIFRdPzogVFtwXSBleHRlbmRzIFByaW1pdGl2ZXNcbiAgICA/IFRbcF0gfCBNYXRjaGVyIHwgeyBba2V5IGluIHN0cmluZ106IGFueSB9XG4gICAgOiBBbHNvTWF0Y2hhYmxlPFRbcF0+IHwgTWF0Y2hlcjtcbn07XG4vKipcbiAqIG1ha2UgcHJvcGVydGllcyBvZiBgVGAgYXNpZ25hYmxlIGFyYml0cmFyeSBqc29uIG9iamVjdHNcbiAqL1xudHlwZSBBbHNvQW55PFQ+ID0ge1xuICBbcCBpbiBrZXlvZiBUXTogVFtwXSBleHRlbmRzIFByaW1pdGl2ZXNcbiAgICA/IFRbcF0gfCB7IFtrZXkgaW4gc3RyaW5nXTogYW55IH1cbiAgICA6IEFsc29Bbnk8VFtwXT47XG59O1xuXG4vKipcbiAqIENsb3VkRm9ybWF0aW9uIFJlc291cmNlIGJhc2VkIG9uIHRoZSBkZWZpbml0aW9uIGF0IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9qYV9qcC9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9kdWN0LWF0dHJpYnV0ZS1yZWZlcmVuY2UuaHRtbFxuICovXG5pbnRlcmZhY2UgQmFzZVJlc291cmNlIHtcbiAgQ3JlYXRpb25Qb2xpY3k/OiBhbnk7XG4gIERlbGV0aW9uUG9saWN5PzogXCJEZWxldGVcIiB8IFwiUmV0YWluXCIgfCBcIlJldGFpbkV4Y2VwdE9uQ3JlYXRlXCIgfCBcIlNuYXBzaG90XCI7XG4gIERlcGVuZHNPbj86IHN0cmluZyB8IHN0cmluZ1tdO1xuICBNZXRhZGF0YT86IGFueTtcbiAgVXBkYXRlUG9saWN5PzogYW55O1xuICBVcGRhdGVSZXBsYWNlUG9saWN5PzogXCJEZWxldGVcIiB8IFwiUmV0YWluXCIgfCBcIlNuYXBzaG90XCI7XG4gIENvbmRpdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnB1dFJlc291cmNlPFQ+IGV4dGVuZHMgQWxzb01hdGNoYWJsZTxCYXNlUmVzb3VyY2U+IHtcbiAgUHJvcGVydGllcz86IEFsc29NYXRjaGFibGU8VD47XG4gIFR5cGU6IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRSZXNvdXJjZVdpdGhvdXRUeXBlPFQ+XG4gIGV4dGVuZHMgT21pdDxJbnB1dFJlc291cmNlPFQ+LCBcIlR5cGVcIj4ge31cbmV4cG9ydCBpbnRlcmZhY2UgT3V0cHV0UmVzb3VyY2U8VD4gZXh0ZW5kcyBBbHNvQW55PEJhc2VSZXNvdXJjZT4ge1xuICBQcm9wZXJ0aWVzPzogQWxzb0FueTxUPjtcbiAgVHlwZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIGludGVyZmFjZSBvZiByZXR1cm4gdmFsdWUgb2YgVHlwZWRUZW1wbGF0ZSdzIG1ldGhvZHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXR1cm5WYWx1ZTxUPiB7XG4gIC8qKlxuICAgKiBsb2dpY2FsIGlkIG9mIGNsb3VkZm9ybWF0aW9uIHJlc291cmNlcywgcGFyYW1ldGVycywgb3V0cHV0cy4uLlxuICAgKi9cbiAgaWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIGRlZmluaXRpb24gb2YgY2xvdWRmb3JtYXRpb24gcmVzb3VyY2VzLCBwYXJhbWV0ZXJzLCBvdXRwdXRzLi4uXG4gICAqL1xuICBkZWY6IFQ7XG59XG5cbi8qKlxuICogaW50ZXJmYWNlIG9mIGNsb3VkZm9ybWF0aW9uIHRlbXBsYXRlIG91dHB1dFxuICovXG5pbnRlcmZhY2UgT3V0cHV0IHtcbiAgRGVzY3JpcHRpb24/OiBhbnk7XG4gIFZhbHVlOiBhbnk7XG4gIEV4cG9ydD86IHtcbiAgICBOYW1lOiBhbnk7XG4gIH07XG59XG5leHBvcnQgaW50ZXJmYWNlIElucHV0T3V0cHV0IGV4dGVuZHMgQWxzb01hdGNoYWJsZTxPdXRwdXQ+IHt9XG5leHBvcnQgaW50ZXJmYWNlIE91dHB1dE91dHB1dCBleHRlbmRzIEFsc29Bbnk8T3V0cHV0PiB7fVxuLyoqXG4gKiBpbnRlcmZhY2Ugb2YgY2xvdWRmb3JtYXRpb24gdGVtcGxhdGUgcGFyYW1ldGVyXG4gKi9cbmludGVyZmFjZSBQYXJhbWV0ZXIge1xuICBBbGxvd2VkUGF0dGVybj86IHN0cmluZztcbiAgQWxsb3dlZFZhbHVlcz86IGFueVtdO1xuICBDb25zdHJhaW50RGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIERlZmF1bHQ/OiBhbnk7XG4gIERlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBNYXhMZW5ndGg/OiBudW1iZXI7XG4gIE1heFZhbHVlPzogbnVtYmVyO1xuICBNaW5MZW5ndGg/OiBudW1iZXI7XG4gIE1pblZhbHVlPzogbnVtYmVyO1xuICBOb0VjaG8/OiBib29sZWFuO1xuICBUeXBlOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIElucHV0UGFyYW10ZXIgZXh0ZW5kcyBBbHNvTWF0Y2hhYmxlPFBhcmFtZXRlcj4ge31cbmV4cG9ydCBpbnRlcmZhY2UgT3V0cHV0UGFyYW1ldGVyIGV4dGVuZHMgQWxzb0FueTxQYXJhbWV0ZXI+IHt9XG5cbmV4cG9ydCB0eXBlIENvbmRpdGlvbiA9IHtcbiAgW2tleSBpbiBzdHJpbmddOiB7XG4gICAgW2tleSBpbiBzdHJpbmddOiBhbnk7XG4gIH07XG59O1xuZXhwb3J0IHR5cGUgTWFwcGluZyA9IHtcbiAgW2tleSBpbiBzdHJpbmddOiB7XG4gICAgW2tleSBpbiBzdHJpbmddOiBhbnk7XG4gIH07XG59O1xuIl19
@@ -3,8 +3,5 @@
3
3
  */
4
4
  export interface _AWS_APIGATEWAY_ACCOUNT {
5
5
  Id?: string;
6
- /**
7
- * The ARN of an Amazon CloudWatch role for the current Account.
8
- */
9
6
  CloudWatchRoleArn?: string;
10
7
  }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWFwaWdhdGV3YXktYWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1hcGlnYXRld2F5LWFjY291bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGBgQVdTOjpBcGlHYXRld2F5OjpBY2NvdW50YGAgcmVzb3VyY2Ugc3BlY2lmaWVzIHRoZSBJQU0gcm9sZSB0aGF0IEFtYXpvbiBBUEkgR2F0ZXdheSB1c2VzIHRvIHdyaXRlIEFQSSBsb2dzIHRvIEFtYXpvbiBDbG91ZFdhdGNoIExvZ3MuIFRvIGF2b2lkIG92ZXJ3cml0aW5nIG90aGVyIHJvbGVzLCB5b3Ugc2hvdWxkIG9ubHkgaGF2ZSBvbmUgYGBBV1M6OkFwaUdhdGV3YXk6OkFjY291bnRgYCByZXNvdXJjZSBwZXIgcmVnaW9uIHBlciBhY2NvdW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfQVBJR0FURVdBWV9BQ0NPVU5UIHtcbklkPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBUk4gb2YgYW4gQW1hem9uIENsb3VkV2F0Y2ggcm9sZSBmb3IgdGhlIGN1cnJlbnQgQWNjb3VudC5cbiAqL1xuQ2xvdWRXYXRjaFJvbGVBcm4/OiBzdHJpbmdcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWFwaWdhdGV3YXktYWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1hcGlnYXRld2F5LWFjY291bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGBgQVdTOjpBcGlHYXRld2F5OjpBY2NvdW50YGAgcmVzb3VyY2Ugc3BlY2lmaWVzIHRoZSBJQU0gcm9sZSB0aGF0IEFtYXpvbiBBUEkgR2F0ZXdheSB1c2VzIHRvIHdyaXRlIEFQSSBsb2dzIHRvIEFtYXpvbiBDbG91ZFdhdGNoIExvZ3MuIFRvIGF2b2lkIG92ZXJ3cml0aW5nIG90aGVyIHJvbGVzLCB5b3Ugc2hvdWxkIG9ubHkgaGF2ZSBvbmUgYGBBV1M6OkFwaUdhdGV3YXk6OkFjY291bnRgYCByZXNvdXJjZSBwZXIgcmVnaW9uIHBlciBhY2NvdW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfQVBJR0FURVdBWV9BQ0NPVU5UIHtcbklkPzogc3RyaW5nXG5DbG91ZFdhdGNoUm9sZUFybj86IHN0cmluZ1xufVxuIl19
@@ -3,51 +3,24 @@
3
3
  */
4
4
  export interface _AWS_APIGATEWAY_APIKEY {
5
5
  APIKeyId?: string;
6
- /**
7
- * An MKT customer identifier, when integrating with the AWS SaaS Marketplace.
8
- */
9
6
  CustomerId?: string;
10
- /**
11
- * The description of the ApiKey.
12
- */
13
7
  Description?: string;
14
- /**
15
- * Specifies whether the ApiKey can be used by callers.
16
- */
17
8
  Enabled?: boolean;
18
- /**
19
- * Specifies whether (``true``) or not (``false``) the key identifier is distinct from the created API key value. This parameter is deprecated and should not be used.
20
- */
21
9
  GenerateDistinctId?: boolean;
22
10
  /**
23
11
  * A name for the API key. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the API key name. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html).
24
12
  * If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.
25
13
  */
26
14
  Name?: string;
27
- /**
28
- * DEPRECATED FOR USAGE PLANS - Specifies stages associated with the API key.
29
- */
30
15
  StageKeys?: StageKey[];
31
- /**
32
- * The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with ``aws:``. The tag value can be up to 256 characters.
33
- */
34
16
  Tags?: Tag[];
35
- /**
36
- * Specifies a value of the API key.
37
- */
38
17
  Value?: string;
39
18
  }
40
19
  /**
41
20
  * ``StageKey`` is a property of the [AWS::ApiGateway::ApiKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html) resource that specifies the stage to associate with the API key. This association allows only clients with the key to make requests to methods in that stage.
42
21
  */
43
22
  export interface StageKey {
44
- /**
45
- * The string identifier of the associated RestApi.
46
- */
47
23
  RestApiId?: string;
48
- /**
49
- * The stage name associated with the stage key.
50
- */
51
24
  StageName?: string;
52
25
  }
53
26
  export interface Tag {
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWFwaWdhdGV3YXktYXBpa2V5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWFwaWdhdGV3YXktYXBpa2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBgYEFXUzo6QXBpR2F0ZXdheTo6QXBpS2V5YGAgcmVzb3VyY2UgY3JlYXRlcyBhIHVuaXF1ZSBrZXkgdGhhdCB5b3UgY2FuIGRpc3RyaWJ1dGUgdG8gY2xpZW50cyB3aG8gYXJlIGV4ZWN1dGluZyBBUEkgR2F0ZXdheSBgYE1ldGhvZGBgIHJlc291cmNlcyB0aGF0IHJlcXVpcmUgYW4gQVBJIGtleS4gVG8gc3BlY2lmeSB3aGljaCBBUEkga2V5IGNsaWVudHMgbXVzdCB1c2UsIG1hcCB0aGUgQVBJIGtleSB3aXRoIHRoZSBgYFJlc3RBcGlgYCBhbmQgYGBTdGFnZWBgIHJlc291cmNlcyB0aGF0IGluY2x1ZGUgdGhlIG1ldGhvZHMgdGhhdCByZXF1aXJlIGEga2V5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfQVBJR0FURVdBWV9BUElLRVkge1xuQVBJS2V5SWQ/OiBzdHJpbmdcbi8qKlxuICogQW4gTUtUIGN1c3RvbWVyIGlkZW50aWZpZXIsIHdoZW4gaW50ZWdyYXRpbmcgd2l0aCB0aGUgQVdTIFNhYVMgTWFya2V0cGxhY2UuXG4gKi9cbkN1c3RvbWVySWQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBBcGlLZXkuXG4gKi9cbkRlc2NyaXB0aW9uPzogc3RyaW5nXG4vKipcbiAqIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBBcGlLZXkgY2FuIGJlIHVzZWQgYnkgY2FsbGVycy5cbiAqL1xuRW5hYmxlZD86IGJvb2xlYW5cbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgKGBgdHJ1ZWBgKSBvciBub3QgKGBgZmFsc2VgYCkgdGhlIGtleSBpZGVudGlmaWVyIGlzIGRpc3RpbmN0IGZyb20gdGhlIGNyZWF0ZWQgQVBJIGtleSB2YWx1ZS4gVGhpcyBwYXJhbWV0ZXIgaXMgZGVwcmVjYXRlZCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkLlxuICovXG5HZW5lcmF0ZURpc3RpbmN0SWQ/OiBib29sZWFuXG4vKipcbiAqIEEgbmFtZSBmb3IgdGhlIEFQSSBrZXkuIElmIHlvdSBkb24ndCBzcGVjaWZ5IGEgbmFtZSwgQ0ZOIGdlbmVyYXRlcyBhIHVuaXF1ZSBwaHlzaWNhbCBJRCBhbmQgdXNlcyB0aGF0IElEIGZvciB0aGUgQVBJIGtleSBuYW1lLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtOYW1lIFR5cGVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLW5hbWUuaHRtbCkuXG4gKiAgSWYgeW91IHNwZWNpZnkgYSBuYW1lLCB5b3UgY2Fubm90IHBlcmZvcm0gdXBkYXRlcyB0aGF0IHJlcXVpcmUgcmVwbGFjZW1lbnQgb2YgdGhpcyByZXNvdXJjZS4gWW91IGNhbiBwZXJmb3JtIHVwZGF0ZXMgdGhhdCByZXF1aXJlIG5vIG9yIHNvbWUgaW50ZXJydXB0aW9uLiBJZiB5b3UgbXVzdCByZXBsYWNlIHRoZSByZXNvdXJjZSwgc3BlY2lmeSBhIG5ldyBuYW1lLlxuICovXG5OYW1lPzogc3RyaW5nXG4vKipcbiAqIERFUFJFQ0FURUQgRk9SIFVTQUdFIFBMQU5TIC0gU3BlY2lmaWVzIHN0YWdlcyBhc3NvY2lhdGVkIHdpdGggdGhlIEFQSSBrZXkuXG4gKi9cblN0YWdlS2V5cz86IFN0YWdlS2V5W11cbi8qKlxuICogVGhlIGtleS12YWx1ZSBtYXAgb2Ygc3RyaW5ncy4gVGhlIHZhbGlkIGNoYXJhY3RlciBzZXQgaXMgW2EtekEtWistPS5fOi9dLiBUaGUgdGFnIGtleSBjYW4gYmUgdXAgdG8gMTI4IGNoYXJhY3RlcnMgYW5kIG11c3Qgbm90IHN0YXJ0IHdpdGggYGBhd3M6YGAuIFRoZSB0YWcgdmFsdWUgY2FuIGJlIHVwIHRvIDI1NiBjaGFyYWN0ZXJzLlxuICovXG5UYWdzPzogVGFnW11cbi8qKlxuICogU3BlY2lmaWVzIGEgdmFsdWUgb2YgdGhlIEFQSSBrZXkuXG4gKi9cblZhbHVlPzogc3RyaW5nXG59XG4vKipcbiAqIGBgU3RhZ2VLZXlgYCBpcyBhIHByb3BlcnR5IG9mIHRoZSBbQVdTOjpBcGlHYXRld2F5OjpBcGlLZXldKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1hcGlnYXRld2F5LWFwaWtleS5odG1sKSByZXNvdXJjZSB0aGF0IHNwZWNpZmllcyB0aGUgc3RhZ2UgdG8gYXNzb2NpYXRlIHdpdGggdGhlIEFQSSBrZXkuIFRoaXMgYXNzb2NpYXRpb24gYWxsb3dzIG9ubHkgY2xpZW50cyB3aXRoIHRoZSBrZXkgdG8gbWFrZSByZXF1ZXN0cyB0byBtZXRob2RzIGluIHRoYXQgc3RhZ2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhZ2VLZXkge1xuLyoqXG4gKiBUaGUgc3RyaW5nIGlkZW50aWZpZXIgb2YgdGhlIGFzc29jaWF0ZWQgUmVzdEFwaS5cbiAqL1xuUmVzdEFwaUlkPzogc3RyaW5nXG4vKipcbiAqIFRoZSBzdGFnZSBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3RhZ2Uga2V5LlxuICovXG5TdGFnZU5hbWU/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbi8qKlxuICogVGhlIGtleSBuYW1lIG9mIHRoZSB0YWcuIFlvdSBjYW4gc3BlY2lmeSBhIHZhbHVlIHRoYXQgaXMgMSB0byAxMjggVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aCBhbmQgY2Fubm90IGJlIHByZWZpeGVkIHdpdGggYXdzOi4gWW91IGNhbiB1c2UgYW55IG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyczogdGhlIHNldCBvZiBVbmljb2RlIGxldHRlcnMsIGRpZ2l0cywgd2hpdGVzcGFjZSwgXywgLiwgLywgPSwgKywgYW5kIC0uXG4gKi9cbktleTogc3RyaW5nXG4vKipcbiAqIFRoZSB2YWx1ZSBmb3IgdGhlIHRhZy4gWW91IGNhbiBzcGVjaWZ5IGEgdmFsdWUgdGhhdCBpcyAwIHRvIDI1NiBVbmljb2RlIGNoYXJhY3RlcnMgaW4gbGVuZ3RoIGFuZCBjYW5ub3QgYmUgcHJlZml4ZWQgd2l0aCBhd3M6LiBZb3UgY2FuIHVzZSBhbnkgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzOiB0aGUgc2V0IG9mIFVuaWNvZGUgbGV0dGVycywgZGlnaXRzLCB3aGl0ZXNwYWNlLCBfLCAuLCAvLCA9LCArLCBhbmQgLS4gXG4gKi9cblZhbHVlOiBzdHJpbmdcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWFwaWdhdGV3YXktYXBpa2V5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWFwaWdhdGV3YXktYXBpa2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBgYEFXUzo6QXBpR2F0ZXdheTo6QXBpS2V5YGAgcmVzb3VyY2UgY3JlYXRlcyBhIHVuaXF1ZSBrZXkgdGhhdCB5b3UgY2FuIGRpc3RyaWJ1dGUgdG8gY2xpZW50cyB3aG8gYXJlIGV4ZWN1dGluZyBBUEkgR2F0ZXdheSBgYE1ldGhvZGBgIHJlc291cmNlcyB0aGF0IHJlcXVpcmUgYW4gQVBJIGtleS4gVG8gc3BlY2lmeSB3aGljaCBBUEkga2V5IGNsaWVudHMgbXVzdCB1c2UsIG1hcCB0aGUgQVBJIGtleSB3aXRoIHRoZSBgYFJlc3RBcGlgYCBhbmQgYGBTdGFnZWBgIHJlc291cmNlcyB0aGF0IGluY2x1ZGUgdGhlIG1ldGhvZHMgdGhhdCByZXF1aXJlIGEga2V5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfQVBJR0FURVdBWV9BUElLRVkge1xuQVBJS2V5SWQ/OiBzdHJpbmdcbkN1c3RvbWVySWQ/OiBzdHJpbmdcbkRlc2NyaXB0aW9uPzogc3RyaW5nXG5FbmFibGVkPzogYm9vbGVhblxuR2VuZXJhdGVEaXN0aW5jdElkPzogYm9vbGVhblxuLyoqXG4gKiBBIG5hbWUgZm9yIHRoZSBBUEkga2V5LiBJZiB5b3UgZG9uJ3Qgc3BlY2lmeSBhIG5hbWUsIENGTiBnZW5lcmF0ZXMgYSB1bmlxdWUgcGh5c2ljYWwgSUQgYW5kIHVzZXMgdGhhdCBJRCBmb3IgdGhlIEFQSSBrZXkgbmFtZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbTmFtZSBUeXBlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1uYW1lLmh0bWwpLlxuICogIElmIHlvdSBzcGVjaWZ5IGEgbmFtZSwgeW91IGNhbm5vdCBwZXJmb3JtIHVwZGF0ZXMgdGhhdCByZXF1aXJlIHJlcGxhY2VtZW50IG9mIHRoaXMgcmVzb3VyY2UuIFlvdSBjYW4gcGVyZm9ybSB1cGRhdGVzIHRoYXQgcmVxdWlyZSBubyBvciBzb21lIGludGVycnVwdGlvbi4gSWYgeW91IG11c3QgcmVwbGFjZSB0aGUgcmVzb3VyY2UsIHNwZWNpZnkgYSBuZXcgbmFtZS5cbiAqL1xuTmFtZT86IHN0cmluZ1xuU3RhZ2VLZXlzPzogU3RhZ2VLZXlbXVxuVGFncz86IFRhZ1tdXG5WYWx1ZT86IHN0cmluZ1xufVxuLyoqXG4gKiBgYFN0YWdlS2V5YGAgaXMgYSBwcm9wZXJ0eSBvZiB0aGUgW0FXUzo6QXBpR2F0ZXdheTo6QXBpS2V5XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtYXBpZ2F0ZXdheS1hcGlrZXkuaHRtbCkgcmVzb3VyY2UgdGhhdCBzcGVjaWZpZXMgdGhlIHN0YWdlIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBBUEkga2V5LiBUaGlzIGFzc29jaWF0aW9uIGFsbG93cyBvbmx5IGNsaWVudHMgd2l0aCB0aGUga2V5IHRvIG1ha2UgcmVxdWVzdHMgdG8gbWV0aG9kcyBpbiB0aGF0IHN0YWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YWdlS2V5IHtcblJlc3RBcGlJZD86IHN0cmluZ1xuU3RhZ2VOYW1lPzogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIFRoZSBrZXkgbmFtZSBvZiB0aGUgdGFnLiBZb3UgY2FuIHNwZWNpZnkgYSB2YWx1ZSB0aGF0IGlzIDEgdG8gMTI4IFVuaWNvZGUgY2hhcmFjdGVycyBpbiBsZW5ndGggYW5kIGNhbm5vdCBiZSBwcmVmaXhlZCB3aXRoIGF3czouIFlvdSBjYW4gdXNlIGFueSBvZiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnM6IHRoZSBzZXQgb2YgVW5pY29kZSBsZXR0ZXJzLCBkaWdpdHMsIHdoaXRlc3BhY2UsIF8sIC4sIC8sID0sICssIGFuZCAtLlxuICovXG5LZXk6IHN0cmluZ1xuLyoqXG4gKiBUaGUgdmFsdWUgZm9yIHRoZSB0YWcuIFlvdSBjYW4gc3BlY2lmeSBhIHZhbHVlIHRoYXQgaXMgMCB0byAyNTYgVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aCBhbmQgY2Fubm90IGJlIHByZWZpeGVkIHdpdGggYXdzOi4gWW91IGNhbiB1c2UgYW55IG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyczogdGhlIHNldCBvZiBVbmljb2RlIGxldHRlcnMsIGRpZ2l0cywgd2hpdGVzcGFjZSwgXywgLiwgLywgPSwgKywgYW5kIC0uIFxuICovXG5WYWx1ZTogc3RyaW5nXG59XG4iXX0=
@@ -2,45 +2,15 @@
2
2
  * The ``AWS::ApiGateway::Authorizer`` resource creates an authorization layer that API Gateway activates for methods that have authorization enabled. API Gateway activates the authorizer when a client calls those methods.
3
3
  */
4
4
  export interface _AWS_APIGATEWAY_AUTHORIZER {
5
- /**
6
- * The string identifier of the associated RestApi.
7
- */
8
5
  RestApiId: string;
9
6
  AuthorizerId?: string;
10
- /**
11
- * Optional customer-defined field, used in OpenAPI imports and exports without functional impact.
12
- */
13
7
  AuthType?: string;
14
- /**
15
- * Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, specify null.
16
- */
17
8
  AuthorizerCredentials?: string;
18
- /**
19
- * The TTL in seconds of cached authorizer results. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway will cache authorizer responses. If this field is not set, the default value is 300. The maximum value is 3600, or 1 hour.
20
- */
21
9
  AuthorizerResultTtlInSeconds?: number;
22
- /**
23
- * Specifies the authorizer's Uniform Resource Identifier (URI). For ``TOKEN`` or ``REQUEST`` authorizers, this must be a well-formed Lambda function URI, for example, ``arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations``. In general, the URI has this form ``arn:aws:apigateway:{region}:lambda:path/{service_api}``, where ``{region}`` is the same as the region hosting the Lambda function, ``path`` indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial ``/``. For Lambda functions, this is usually of the form ``/2015-03-31/functions/[FunctionARN]/invocations``.
24
- */
25
10
  AuthorizerUri?: string;
26
- /**
27
- * The identity source for which authorization is requested. For a ``TOKEN`` or ``COGNITO_USER_POOLS`` authorizer, this is required and specifies the request header mapping expression for the custom header holding the authorization token submitted by the client. For example, if the token header name is ``Auth``, the header mapping expression is ``method.request.header.Auth``. For the ``REQUEST`` authorizer, this is required when authorization caching is enabled. The value is a comma-separated string of one or more mapping expressions of the specified request parameters. For example, if an ``Auth`` header, a ``Name`` query string parameter are defined as identity sources, this value is ``method.request.header.Auth, method.request.querystring.Name``. These parameters will be used to derive the authorization caching key and to perform runtime validation of the ``REQUEST`` authorizer by verifying all of the identity-related request parameters are present, not null and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function, otherwise, it returns a 401 Unauthorized response without calling the Lambda function. The valid value is a string of comma-separated mapping expressions of the specified request parameters. When the authorization caching is not enabled, this property is optional.
28
- */
29
11
  IdentitySource?: string;
30
- /**
31
- * A validation expression for the incoming identity token. For ``TOKEN`` authorizers, this value is a regular expression. For ``COGNITO_USER_POOLS`` authorizers, API Gateway will match the ``aud`` field of the incoming token from the client against the specified regular expression. It will invoke the authorizer's Lambda function when there is a match. Otherwise, it will return a 401 Unauthorized response without calling the Lambda function. The validation expression does not apply to the ``REQUEST`` authorizer.
32
- */
33
12
  IdentityValidationExpression?: string;
34
- /**
35
- * The name of the authorizer.
36
- */
37
13
  Name: string;
38
- /**
39
- * A list of the Amazon Cognito user pool ARNs for the ``COGNITO_USER_POOLS`` authorizer. Each element is of this format: ``arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}``. For a ``TOKEN`` or ``REQUEST`` authorizer, this is not defined.
40
- */
41
14
  ProviderARNs?: string[];
42
- /**
43
- * The authorizer type. Valid values are ``TOKEN`` for a Lambda function using a single authorization token submitted in a custom header, ``REQUEST`` for a Lambda function using incoming request parameters, and ``COGNITO_USER_POOLS`` for using an Amazon Cognito user pool.
44
- */
45
15
  Type: string;
46
16
  }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWFwaWdhdGV3YXktYXV0aG9yaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1hcGlnYXRld2F5LWF1dGhvcml6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGBgQVdTOjpBcGlHYXRld2F5OjpBdXRob3JpemVyYGAgcmVzb3VyY2UgY3JlYXRlcyBhbiBhdXRob3JpemF0aW9uIGxheWVyIHRoYXQgQVBJIEdhdGV3YXkgYWN0aXZhdGVzIGZvciBtZXRob2RzIHRoYXQgaGF2ZSBhdXRob3JpemF0aW9uIGVuYWJsZWQuIEFQSSBHYXRld2F5IGFjdGl2YXRlcyB0aGUgYXV0aG9yaXplciB3aGVuIGEgY2xpZW50IGNhbGxzIHRob3NlIG1ldGhvZHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19BUElHQVRFV0FZX0FVVEhPUklaRVIge1xuLyoqXG4gKiBUaGUgc3RyaW5nIGlkZW50aWZpZXIgb2YgdGhlIGFzc29jaWF0ZWQgUmVzdEFwaS5cbiAqL1xuUmVzdEFwaUlkOiBzdHJpbmdcbkF1dGhvcml6ZXJJZD86IHN0cmluZ1xuLyoqXG4gKiBPcHRpb25hbCBjdXN0b21lci1kZWZpbmVkIGZpZWxkLCB1c2VkIGluIE9wZW5BUEkgaW1wb3J0cyBhbmQgZXhwb3J0cyB3aXRob3V0IGZ1bmN0aW9uYWwgaW1wYWN0LlxuICovXG5BdXRoVHlwZT86IHN0cmluZ1xuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIHJlcXVpcmVkIGNyZWRlbnRpYWxzIGFzIGFuIElBTSByb2xlIGZvciBBUEkgR2F0ZXdheSB0byBpbnZva2UgdGhlIGF1dGhvcml6ZXIuIFRvIHNwZWNpZnkgYW4gSUFNIHJvbGUgZm9yIEFQSSBHYXRld2F5IHRvIGFzc3VtZSwgdXNlIHRoZSByb2xlJ3MgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikuIFRvIHVzZSByZXNvdXJjZS1iYXNlZCBwZXJtaXNzaW9ucyBvbiB0aGUgTGFtYmRhIGZ1bmN0aW9uLCBzcGVjaWZ5IG51bGwuXG4gKi9cbkF1dGhvcml6ZXJDcmVkZW50aWFscz86IHN0cmluZ1xuLyoqXG4gKiBUaGUgVFRMIGluIHNlY29uZHMgb2YgY2FjaGVkIGF1dGhvcml6ZXIgcmVzdWx0cy4gSWYgaXQgZXF1YWxzIDAsIGF1dGhvcml6YXRpb24gY2FjaGluZyBpcyBkaXNhYmxlZC4gSWYgaXQgaXMgZ3JlYXRlciB0aGFuIDAsIEFQSSBHYXRld2F5IHdpbGwgY2FjaGUgYXV0aG9yaXplciByZXNwb25zZXMuIElmIHRoaXMgZmllbGQgaXMgbm90IHNldCwgdGhlIGRlZmF1bHQgdmFsdWUgaXMgMzAwLiBUaGUgbWF4aW11bSB2YWx1ZSBpcyAzNjAwLCBvciAxIGhvdXIuXG4gKi9cbkF1dGhvcml6ZXJSZXN1bHRUdGxJblNlY29uZHM/OiBudW1iZXJcbi8qKlxuICogU3BlY2lmaWVzIHRoZSBhdXRob3JpemVyJ3MgVW5pZm9ybSBSZXNvdXJjZSBJZGVudGlmaWVyIChVUkkpLiBGb3IgYGBUT0tFTmBgIG9yIGBgUkVRVUVTVGBgIGF1dGhvcml6ZXJzLCB0aGlzIG11c3QgYmUgYSB3ZWxsLWZvcm1lZCBMYW1iZGEgZnVuY3Rpb24gVVJJLCBmb3IgZXhhbXBsZSwgYGBhcm46YXdzOmFwaWdhdGV3YXk6dXMtd2VzdC0yOmxhbWJkYTpwYXRoLzIwMTUtMDMtMzEvZnVuY3Rpb25zL2Fybjphd3M6bGFtYmRhOnVzLXdlc3QtMjp7YWNjb3VudF9pZH06ZnVuY3Rpb246e2xhbWJkYV9mdW5jdGlvbl9uYW1lfS9pbnZvY2F0aW9uc2BgLiBJbiBnZW5lcmFsLCB0aGUgVVJJIGhhcyB0aGlzIGZvcm0gYGBhcm46YXdzOmFwaWdhdGV3YXk6e3JlZ2lvbn06bGFtYmRhOnBhdGgve3NlcnZpY2VfYXBpfWBgLCB3aGVyZSBgYHtyZWdpb259YGAgaXMgdGhlIHNhbWUgYXMgdGhlIHJlZ2lvbiBob3N0aW5nIHRoZSBMYW1iZGEgZnVuY3Rpb24sIGBgcGF0aGBgIGluZGljYXRlcyB0aGF0IHRoZSByZW1haW5pbmcgc3Vic3RyaW5nIGluIHRoZSBVUkkgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgdGhlIHBhdGggdG8gdGhlIHJlc291cmNlLCBpbmNsdWRpbmcgdGhlIGluaXRpYWwgYGAvYGAuIEZvciBMYW1iZGEgZnVuY3Rpb25zLCB0aGlzIGlzIHVzdWFsbHkgb2YgdGhlIGZvcm0gYGAvMjAxNS0wMy0zMS9mdW5jdGlvbnMvW0Z1bmN0aW9uQVJOXS9pbnZvY2F0aW9uc2BgLlxuICovXG5BdXRob3JpemVyVXJpPzogc3RyaW5nXG4vKipcbiAqIFRoZSBpZGVudGl0eSBzb3VyY2UgZm9yIHdoaWNoIGF1dGhvcml6YXRpb24gaXMgcmVxdWVzdGVkLiBGb3IgYSBgYFRPS0VOYGAgb3IgYGBDT0dOSVRPX1VTRVJfUE9PTFNgYCBhdXRob3JpemVyLCB0aGlzIGlzIHJlcXVpcmVkIGFuZCBzcGVjaWZpZXMgdGhlIHJlcXVlc3QgaGVhZGVyIG1hcHBpbmcgZXhwcmVzc2lvbiBmb3IgdGhlIGN1c3RvbSBoZWFkZXIgaG9sZGluZyB0aGUgYXV0aG9yaXphdGlvbiB0b2tlbiBzdWJtaXR0ZWQgYnkgdGhlIGNsaWVudC4gRm9yIGV4YW1wbGUsIGlmIHRoZSB0b2tlbiBoZWFkZXIgbmFtZSBpcyBgYEF1dGhgYCwgdGhlIGhlYWRlciBtYXBwaW5nIGV4cHJlc3Npb24gaXMgYGBtZXRob2QucmVxdWVzdC5oZWFkZXIuQXV0aGBgLiBGb3IgdGhlIGBgUkVRVUVTVGBgIGF1dGhvcml6ZXIsIHRoaXMgaXMgcmVxdWlyZWQgd2hlbiBhdXRob3JpemF0aW9uIGNhY2hpbmcgaXMgZW5hYmxlZC4gVGhlIHZhbHVlIGlzIGEgY29tbWEtc2VwYXJhdGVkIHN0cmluZyBvZiBvbmUgb3IgbW9yZSBtYXBwaW5nIGV4cHJlc3Npb25zIG9mIHRoZSBzcGVjaWZpZWQgcmVxdWVzdCBwYXJhbWV0ZXJzLiBGb3IgZXhhbXBsZSwgaWYgYW4gYGBBdXRoYGAgaGVhZGVyLCBhIGBgTmFtZWBgIHF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXIgYXJlIGRlZmluZWQgYXMgaWRlbnRpdHkgc291cmNlcywgdGhpcyB2YWx1ZSBpcyBgYG1ldGhvZC5yZXF1ZXN0LmhlYWRlci5BdXRoLCBtZXRob2QucmVxdWVzdC5xdWVyeXN0cmluZy5OYW1lYGAuIFRoZXNlIHBhcmFtZXRlcnMgd2lsbCBiZSB1c2VkIHRvIGRlcml2ZSB0aGUgYXV0aG9yaXphdGlvbiBjYWNoaW5nIGtleSBhbmQgdG8gcGVyZm9ybSBydW50aW1lIHZhbGlkYXRpb24gb2YgdGhlIGBgUkVRVUVTVGBgIGF1dGhvcml6ZXIgYnkgdmVyaWZ5aW5nIGFsbCBvZiB0aGUgaWRlbnRpdHktcmVsYXRlZCByZXF1ZXN0IHBhcmFtZXRlcnMgYXJlIHByZXNlbnQsIG5vdCBudWxsIGFuZCBub24tZW1wdHkuIE9ubHkgd2hlbiB0aGlzIGlzIHRydWUgZG9lcyB0aGUgYXV0aG9yaXplciBpbnZva2UgdGhlIGF1dGhvcml6ZXIgTGFtYmRhIGZ1bmN0aW9uLCBvdGhlcndpc2UsIGl0IHJldHVybnMgYSA0MDEgVW5hdXRob3JpemVkIHJlc3BvbnNlIHdpdGhvdXQgY2FsbGluZyB0aGUgTGFtYmRhIGZ1bmN0aW9uLiBUaGUgdmFsaWQgdmFsdWUgaXMgYSBzdHJpbmcgb2YgY29tbWEtc2VwYXJhdGVkIG1hcHBpbmcgZXhwcmVzc2lvbnMgb2YgdGhlIHNwZWNpZmllZCByZXF1ZXN0IHBhcmFtZXRlcnMuIFdoZW4gdGhlIGF1dGhvcml6YXRpb24gY2FjaGluZyBpcyBub3QgZW5hYmxlZCwgdGhpcyBwcm9wZXJ0eSBpcyBvcHRpb25hbC5cbiAqL1xuSWRlbnRpdHlTb3VyY2U/OiBzdHJpbmdcbi8qKlxuICogQSB2YWxpZGF0aW9uIGV4cHJlc3Npb24gZm9yIHRoZSBpbmNvbWluZyBpZGVudGl0eSB0b2tlbi4gRm9yIGBgVE9LRU5gYCBhdXRob3JpemVycywgdGhpcyB2YWx1ZSBpcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbi4gRm9yIGBgQ09HTklUT19VU0VSX1BPT0xTYGAgYXV0aG9yaXplcnMsIEFQSSBHYXRld2F5IHdpbGwgbWF0Y2ggdGhlIGBgYXVkYGAgZmllbGQgb2YgdGhlIGluY29taW5nIHRva2VuIGZyb20gdGhlIGNsaWVudCBhZ2FpbnN0IHRoZSBzcGVjaWZpZWQgcmVndWxhciBleHByZXNzaW9uLiBJdCB3aWxsIGludm9rZSB0aGUgYXV0aG9yaXplcidzIExhbWJkYSBmdW5jdGlvbiB3aGVuIHRoZXJlIGlzIGEgbWF0Y2guIE90aGVyd2lzZSwgaXQgd2lsbCByZXR1cm4gYSA0MDEgVW5hdXRob3JpemVkIHJlc3BvbnNlIHdpdGhvdXQgY2FsbGluZyB0aGUgTGFtYmRhIGZ1bmN0aW9uLiBUaGUgdmFsaWRhdGlvbiBleHByZXNzaW9uIGRvZXMgbm90IGFwcGx5IHRvIHRoZSBgYFJFUVVFU1RgYCBhdXRob3JpemVyLlxuICovXG5JZGVudGl0eVZhbGlkYXRpb25FeHByZXNzaW9uPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBhdXRob3JpemVyLlxuICovXG5OYW1lOiBzdHJpbmdcbi8qKlxuICogQSBsaXN0IG9mIHRoZSBBbWF6b24gQ29nbml0byB1c2VyIHBvb2wgQVJOcyBmb3IgdGhlIGBgQ09HTklUT19VU0VSX1BPT0xTYGAgYXV0aG9yaXplci4gRWFjaCBlbGVtZW50IGlzIG9mIHRoaXMgZm9ybWF0OiBgYGFybjphd3M6Y29nbml0by1pZHA6e3JlZ2lvbn06e2FjY291bnRfaWR9OnVzZXJwb29sL3t1c2VyX3Bvb2xfaWR9YGAuIEZvciBhIGBgVE9LRU5gYCBvciBgYFJFUVVFU1RgYCBhdXRob3JpemVyLCB0aGlzIGlzIG5vdCBkZWZpbmVkLlxuICovXG5Qcm92aWRlckFSTnM/OiBzdHJpbmdbXVxuLyoqXG4gKiBUaGUgYXV0aG9yaXplciB0eXBlLiBWYWxpZCB2YWx1ZXMgYXJlIGBgVE9LRU5gYCBmb3IgYSBMYW1iZGEgZnVuY3Rpb24gdXNpbmcgYSBzaW5nbGUgYXV0aG9yaXphdGlvbiB0b2tlbiBzdWJtaXR0ZWQgaW4gYSBjdXN0b20gaGVhZGVyLCBgYFJFUVVFU1RgYCBmb3IgYSBMYW1iZGEgZnVuY3Rpb24gdXNpbmcgaW5jb21pbmcgcmVxdWVzdCBwYXJhbWV0ZXJzLCBhbmQgYGBDT0dOSVRPX1VTRVJfUE9PTFNgYCBmb3IgdXNpbmcgYW4gQW1hem9uIENvZ25pdG8gdXNlciBwb29sLlxuICovXG5UeXBlOiBzdHJpbmdcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWFwaWdhdGV3YXktYXV0aG9yaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1hcGlnYXRld2F5LWF1dGhvcml6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGBgQVdTOjpBcGlHYXRld2F5OjpBdXRob3JpemVyYGAgcmVzb3VyY2UgY3JlYXRlcyBhbiBhdXRob3JpemF0aW9uIGxheWVyIHRoYXQgQVBJIEdhdGV3YXkgYWN0aXZhdGVzIGZvciBtZXRob2RzIHRoYXQgaGF2ZSBhdXRob3JpemF0aW9uIGVuYWJsZWQuIEFQSSBHYXRld2F5IGFjdGl2YXRlcyB0aGUgYXV0aG9yaXplciB3aGVuIGEgY2xpZW50IGNhbGxzIHRob3NlIG1ldGhvZHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19BUElHQVRFV0FZX0FVVEhPUklaRVIge1xuUmVzdEFwaUlkOiBzdHJpbmdcbkF1dGhvcml6ZXJJZD86IHN0cmluZ1xuQXV0aFR5cGU/OiBzdHJpbmdcbkF1dGhvcml6ZXJDcmVkZW50aWFscz86IHN0cmluZ1xuQXV0aG9yaXplclJlc3VsdFR0bEluU2Vjb25kcz86IG51bWJlclxuQXV0aG9yaXplclVyaT86IHN0cmluZ1xuSWRlbnRpdHlTb3VyY2U/OiBzdHJpbmdcbklkZW50aXR5VmFsaWRhdGlvbkV4cHJlc3Npb24/OiBzdHJpbmdcbk5hbWU6IHN0cmluZ1xuUHJvdmlkZXJBUk5zPzogc3RyaW5nW11cblR5cGU6IHN0cmluZ1xufVxuIl19
@@ -2,20 +2,8 @@
2
2
  * The ``AWS::ApiGateway::BasePathMapping`` resource creates a base path that clients who call your API must use in the invocation URL.
3
3
  */
4
4
  export interface _AWS_APIGATEWAY_BASEPATHMAPPING {
5
- /**
6
- * The base path name that callers of the API must provide as part of the URL after the domain name.
7
- */
8
5
  BasePath?: string;
9
- /**
10
- * The domain name of the BasePathMapping resource to be described.
11
- */
12
6
  DomainName: string;
13
- /**
14
- * The string identifier of the associated RestApi.
15
- */
16
7
  RestApiId?: string;
17
- /**
18
- * The name of the associated stage.
19
- */
20
8
  Stage?: string;
21
9
  }