@aws-cdk/toolkit-lib 0.3.7 → 1.0.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 (181) hide show
  1. package/README.md +70 -51
  2. package/api-extractor.json +1 -1
  3. package/build-info.json +2 -2
  4. package/db.json.gz +0 -0
  5. package/lib/actions/deploy/index.d.ts +106 -34
  6. package/lib/actions/deploy/index.js +2 -17
  7. package/lib/actions/deploy/private/deploy-options.d.ts +1 -90
  8. package/lib/actions/deploy/private/deploy-options.js +1 -1
  9. package/lib/actions/deploy/private/helpers.d.ts +1 -6
  10. package/lib/actions/deploy/private/helpers.js +1 -9
  11. package/lib/actions/diff/index.d.ts +1 -9
  12. package/lib/actions/diff/index.js +1 -1
  13. package/lib/actions/diff/private/helpers.d.ts +2 -1
  14. package/lib/actions/diff/private/helpers.js +6 -6
  15. package/lib/actions/drift/index.d.ts +52 -0
  16. package/lib/actions/drift/index.js +3 -0
  17. package/lib/actions/index.d.ts +1 -0
  18. package/lib/actions/index.js +2 -1
  19. package/lib/actions/watch/index.d.ts +7 -1
  20. package/lib/actions/watch/index.js +1 -1
  21. package/lib/api/aws-auth/awscli-compatible.d.ts +4 -4
  22. package/lib/api/aws-auth/awscli-compatible.js +7 -9
  23. package/lib/api/aws-auth/base-credentials.d.ts +109 -0
  24. package/lib/api/aws-auth/base-credentials.js +79 -0
  25. package/lib/api/aws-auth/credential-plugins.js +3 -3
  26. package/lib/api/aws-auth/index.d.ts +1 -0
  27. package/lib/api/aws-auth/index.js +2 -1
  28. package/lib/api/aws-auth/private/index.d.ts +0 -1
  29. package/lib/api/aws-auth/private/index.js +1 -2
  30. package/lib/api/aws-auth/sdk-provider.d.ts +23 -27
  31. package/lib/api/aws-auth/sdk-provider.js +19 -16
  32. package/lib/api/aws-auth/sdk.d.ts +9 -5
  33. package/lib/api/aws-auth/sdk.js +6 -3
  34. package/lib/api/aws-auth/types.d.ts +7 -87
  35. package/lib/api/aws-auth/types.js +1 -74
  36. package/lib/api/bootstrap/bootstrap-environment.d.ts +1 -1
  37. package/lib/api/bootstrap/bootstrap-environment.js +8 -9
  38. package/lib/api/bootstrap/deploy-bootstrap.d.ts +1 -1
  39. package/lib/api/bootstrap/deploy-bootstrap.js +4 -5
  40. package/lib/api/cloud-assembly/context-store.d.ts +78 -0
  41. package/lib/api/cloud-assembly/context-store.js +160 -0
  42. package/lib/api/cloud-assembly/environment.d.ts +19 -16
  43. package/lib/api/cloud-assembly/environment.js +21 -12
  44. package/lib/api/cloud-assembly/index.d.ts +1 -0
  45. package/lib/api/cloud-assembly/index.js +2 -1
  46. package/lib/api/cloud-assembly/private/context-aware-source.d.ts +3 -10
  47. package/lib/api/cloud-assembly/private/context-aware-source.js +6 -11
  48. package/lib/api/cloud-assembly/private/exec.d.ts +1 -1
  49. package/lib/api/cloud-assembly/private/exec.js +2 -5
  50. package/lib/api/cloud-assembly/private/helpers.d.ts +9 -0
  51. package/lib/api/cloud-assembly/private/helpers.js +44 -0
  52. package/lib/api/cloud-assembly/private/index.d.ts +0 -1
  53. package/lib/api/cloud-assembly/private/index.js +1 -2
  54. package/lib/api/cloud-assembly/private/prepare-source.d.ts +27 -16
  55. package/lib/api/cloud-assembly/private/prepare-source.js +49 -46
  56. package/lib/api/cloud-assembly/private/stack-assembly.d.ts +1 -1
  57. package/lib/api/cloud-assembly/private/stack-assembly.js +1 -1
  58. package/lib/api/cloud-assembly/source-builder.d.ts +142 -14
  59. package/lib/api/cloud-assembly/source-builder.js +307 -1
  60. package/lib/api/cloud-assembly/stack-assembly.js +3 -4
  61. package/lib/api/cloudformation/template-body-parameter.d.ts +1 -1
  62. package/lib/api/cloudformation/template-body-parameter.js +4 -5
  63. package/lib/api/context.d.ts +1 -1
  64. package/lib/api/context.js +1 -1
  65. package/lib/api/deployments/asset-publishing.js +15 -16
  66. package/lib/api/deployments/assets.d.ts +1 -1
  67. package/lib/api/deployments/assets.js +4 -5
  68. package/lib/api/deployments/cfn-api.d.ts +1 -1
  69. package/lib/api/deployments/cfn-api.js +14 -15
  70. package/lib/api/deployments/checks.d.ts +1 -1
  71. package/lib/api/deployments/checks.js +3 -4
  72. package/lib/api/deployments/deploy-stack.d.ts +14 -3
  73. package/lib/api/deployments/deploy-stack.js +73 -49
  74. package/lib/api/deployments/deployments.d.ts +13 -2
  75. package/lib/api/deployments/deployments.js +10 -9
  76. package/lib/api/deployments/index.d.ts +0 -1
  77. package/lib/api/deployments/index.js +1 -2
  78. package/lib/api/diff/diff-formatter.d.ts +3 -3
  79. package/lib/api/diff/diff-formatter.js +6 -6
  80. package/lib/api/drift/drift-formatter.d.ts +81 -0
  81. package/lib/api/drift/drift-formatter.js +201 -0
  82. package/lib/api/drift/drift.d.ts +12 -0
  83. package/lib/api/drift/drift.js +63 -0
  84. package/lib/api/drift/index.d.ts +2 -0
  85. package/lib/api/drift/index.js +19 -0
  86. package/lib/api/environment/environment-access.d.ts +1 -1
  87. package/lib/api/environment/environment-access.js +3 -4
  88. package/lib/api/environment/environment-resources.d.ts +1 -1
  89. package/lib/api/environment/environment-resources.js +5 -6
  90. package/lib/api/garbage-collection/garbage-collector.js +44 -35
  91. package/lib/api/garbage-collection/progress-printer.d.ts +1 -1
  92. package/lib/api/garbage-collection/progress-printer.js +3 -4
  93. package/lib/api/garbage-collection/stack-refresh.d.ts +1 -1
  94. package/lib/api/garbage-collection/stack-refresh.js +3 -4
  95. package/lib/api/hotswap/common.d.ts +9 -4
  96. package/lib/api/hotswap/common.js +11 -4
  97. package/lib/api/hotswap/ecs-services.js +2 -2
  98. package/lib/api/hotswap/hotswap-deployments.js +3 -3
  99. package/lib/api/index.d.ts +1 -0
  100. package/lib/api/index.js +2 -1
  101. package/lib/api/io/io-host.d.ts +15 -1
  102. package/lib/api/io/io-host.js +1 -1
  103. package/lib/api/io/io-message.d.ts +7 -10
  104. package/lib/api/io/io-message.js +1 -1
  105. package/lib/api/io/private/io-default-messages.d.ts +7 -3
  106. package/lib/api/io/private/io-default-messages.js +23 -21
  107. package/lib/api/io/private/io-helper.d.ts +4 -4
  108. package/lib/api/io/private/io-helper.js +18 -14
  109. package/lib/api/io/private/messages.d.ts +18 -14
  110. package/lib/api/io/private/messages.js +52 -54
  111. package/lib/api/io/private/span.d.ts +18 -11
  112. package/lib/api/io/private/span.js +60 -42
  113. package/lib/api/io/toolkit-action.d.ts +1 -1
  114. package/lib/api/io/toolkit-action.js +1 -1
  115. package/lib/api/logs-monitor/find-cloudwatch-logs.js +2 -3
  116. package/lib/api/notices/cached-data-source.js +2 -1
  117. package/lib/api/notices/filter.d.ts +1 -1
  118. package/lib/api/notices/filter.js +2 -3
  119. package/lib/api/notices/notices.d.ts +17 -4
  120. package/lib/api/notices/notices.js +2 -2
  121. package/lib/api/notices/web-data-source.d.ts +30 -3
  122. package/lib/api/notices/web-data-source.js +37 -10
  123. package/lib/api/refactoring/cloudformation.d.ts +7 -5
  124. package/lib/api/refactoring/cloudformation.js +1 -1
  125. package/lib/api/refactoring/digest.d.ts +2 -2
  126. package/lib/api/refactoring/digest.js +25 -61
  127. package/lib/api/refactoring/execution.d.ts +1 -1
  128. package/lib/api/refactoring/execution.js +50 -25
  129. package/lib/api/refactoring/graph.d.ts +15 -0
  130. package/lib/api/refactoring/graph.js +108 -0
  131. package/lib/api/refactoring/index.js +12 -6
  132. package/lib/api/resource-import/importer.d.ts +2 -1
  133. package/lib/api/resource-import/importer.js +28 -28
  134. package/lib/api/resource-import/migrator.js +4 -4
  135. package/lib/api/toolkit-info.d.ts +1 -1
  136. package/lib/api/toolkit-info.js +3 -4
  137. package/lib/api/work-graph/work-graph.d.ts +1 -1
  138. package/lib/api/work-graph/work-graph.js +4 -5
  139. package/lib/context-providers/index.d.ts +1 -2
  140. package/lib/context-providers/index.js +6 -4
  141. package/lib/index_bg.wasm +0 -0
  142. package/lib/payloads/context.d.ts +0 -1
  143. package/lib/payloads/context.js +1 -1
  144. package/lib/payloads/deploy.d.ts +2 -2
  145. package/lib/payloads/deploy.js +1 -1
  146. package/lib/payloads/destroy.d.ts +3 -3
  147. package/lib/payloads/destroy.js +1 -1
  148. package/lib/payloads/diff.d.ts +46 -5
  149. package/lib/payloads/diff.js +1 -1
  150. package/lib/payloads/drift.d.ts +12 -0
  151. package/lib/payloads/drift.js +3 -0
  152. package/lib/payloads/gc.d.ts +12 -0
  153. package/lib/payloads/gc.js +3 -0
  154. package/lib/payloads/import.d.ts +45 -0
  155. package/lib/payloads/import.js +3 -0
  156. package/lib/payloads/index.d.ts +3 -0
  157. package/lib/payloads/index.js +4 -1
  158. package/lib/payloads/rollback.d.ts +2 -2
  159. package/lib/payloads/rollback.js +1 -1
  160. package/lib/payloads/stack-activity.d.ts +2 -2
  161. package/lib/payloads/stack-activity.js +1 -1
  162. package/lib/payloads/types.d.ts +10 -0
  163. package/lib/payloads/types.js +1 -1
  164. package/lib/toolkit/non-interactive-io-host.js +2 -2
  165. package/lib/toolkit/private/index.d.ts +2 -1
  166. package/lib/toolkit/private/index.js +1 -1
  167. package/lib/toolkit/toolkit.d.ts +9 -2
  168. package/lib/toolkit/toolkit.js +169 -92
  169. package/lib/util/objects.d.ts +4 -0
  170. package/lib/util/objects.js +8 -1
  171. package/package.json +13 -16
  172. package/lib/actions/import/index.d.ts +0 -21
  173. package/lib/actions/import/index.js +0 -3
  174. package/lib/api/aws-auth/proxy-agent.d.ts +0 -13
  175. package/lib/api/aws-auth/proxy-agent.js +0 -54
  176. package/lib/api/cloud-assembly/private/source-builder.d.ts +0 -52
  177. package/lib/api/cloud-assembly/private/source-builder.js +0 -262
  178. package/lib/api/deployments/deployment-method.d.ts +0 -24
  179. package/lib/api/deployments/deployment-method.js +0 -3
  180. package/lib/api/shared-private.d.ts +0 -8
  181. package/lib/api/shared-private.js +0 -32
package/README.md CHANGED
@@ -1,20 +1,4 @@
1
1
  # AWS CDK Toolkit Library
2
- <!--BEGIN STABILITY BANNER-->
3
-
4
- ---
5
-
6
- ![@aws-cdk/toolkit-lib: Developer Preview](./assets/toolkit--lib-developer_preview-important.svg)
7
-
8
- > The APIs in this module are experimental and under active development.
9
- > They are subject to non-backward compatible changes or removal in future versions.
10
- > The package follows the [Semantic Versioning](https://semver.org/) model for [major version zero](https://semver.org/#spec-item-4).
11
- > Accordingly, breaking changes will be introduced in minor versions and announced in the release notes.
12
- > This means that while you may use them, you may need to update
13
- > your source code when upgrading to a newer version of this package.
14
-
15
- ---
16
-
17
- <!--END STABILITY BANNER-->
18
2
 
19
3
  The AWS Cloud Development Kit (AWS CDK) Toolkit Library enables you to perform CDK actions requiring programmatic access on AWS. You can use the AWS CDK Toolkit Library to implement actions such as bootstrapping, synthesizing, and deploying through code rather than command-line interface (CLI) commands. With this library, you can create custom tools, build specialized CLI applications, and integrate CDK programmatic access capabilities into your development workflows.
20
4
 
@@ -54,7 +38,7 @@ The _Cloud Assembly Source_ is a fundamental CDK Toolkit component that defines
54
38
  For example, CDK apps may need to be synthesized multiple times with additional context values before they are ready.
55
39
  Once created, you can use your _Cloud Assembly Source_ to perform actions with the CDK Toolkit.
56
40
 
57
- The following is an example of creating a _Cloud Assembly Source_ using an inline _assembly builder function_:
41
+ The following is an example of creating a _Cloud Assembly Source_ using the _assembly builder function_:
58
42
 
59
43
  ```ts
60
44
  import * as core from 'aws-cdk-lib/core';
@@ -112,24 +96,25 @@ because the _Cloud Assembly_ does not have to be produced multiple times.
112
96
 
113
97
  ```ts
114
98
  declare const cdk: Toolkit;
115
- declare const cx: ICloudAssemblySource;
99
+ declare const source: ICloudAssemblySource;
116
100
 
117
101
  // Will run the CDK app defined in the Cloud Assembly Source
118
102
  // This is an expensive and slow operation
119
- const cxSnap = await cdk.synth(cx, {
103
+ // But its result can be stored and re-used
104
+ const cx = await cdk.synth(source, {
120
105
  validateStacks: true, // set to `false` to not throw an error if stacks in the assembly contain error annotations
121
106
  })
122
107
 
123
108
  // Will use the previously synthesized Cloud Assembly
124
109
  // This is now a cheap and fast operation
125
- const cxSnap = await cdk.list(cxSnap);
110
+ const appDetails = await cdk.list(cx);
126
111
  ```
127
112
 
128
- You can also use the snapshot to query information about the synthesized _Cloud Assembly_:
113
+ You can also query information about the synthesized _Cloud Assembly_:
129
114
 
130
115
  ```ts
131
- declare const cloudAssembly = await cxSnap.produce();
132
- declare const template = cloudAssembly.getStack("my-stack").template;
116
+ const cloudAssembly = await cx.produce();
117
+ const template = cloudAssembly.getStack("my-stack").template;
133
118
  ```
134
119
 
135
120
  ### list
@@ -149,6 +134,23 @@ const details = await cdk.list(cx, {
149
134
  });
150
135
  ```
151
136
 
137
+ ### diff
138
+
139
+ You can create a diff of your app to gain detailed insights into what will be changing in the next deployment.
140
+
141
+ ```ts
142
+ declare const cdk: Toolkit;
143
+ declare const cx: ICloudAssemblySource;
144
+
145
+ const stackDiffs = await cdk.diff(cx, {
146
+ // optionally provide a stack selector to control which stacks you want to create a diff for
147
+ stacks: {
148
+ strategy: StackSelectionStrategy.PATTERN_MUST_MATCH,
149
+ patterns: ["my-stack"],
150
+ }
151
+ });
152
+ ```
153
+
152
154
  ### deploy
153
155
 
154
156
  Deployment is the process of provisioning or updating your infrastructure in AWS using the CloudFormation templates and assets produced during synthesis.
@@ -194,6 +196,28 @@ await cdk.watch(cx, {
194
196
  })
195
197
  ```
196
198
 
199
+ ### drift
200
+
201
+ Drift detection is crucial for maintaining infrastructure reliability.
202
+ It identifies when your deployed resources have been modified outside of your CDK code.
203
+ This allows you to quickly address unauthorized changes.
204
+ Such changes could lead to security vulnerabilities, compliance issues, or unexpected behavior in your cloud environment.
205
+
206
+ Use the drift operation to detect such drift in your CDK applications:
207
+
208
+ ```ts
209
+ declare const cdk: Toolkit;
210
+ declare const cx: ICloudAssemblySource;
211
+
212
+ const stackDrifts = await cdk.drift(cx, {
213
+ // optionally provide a stack selector to control which stacks are checked for drift
214
+ stacks: {
215
+ strategy: StackSelectionStrategy.PATTERN_MUST_MATCH,
216
+ patterns: ["my-stack"],
217
+ }
218
+ });
219
+ ```
220
+
197
221
  ### destroy
198
222
 
199
223
  Use the destroy feature to remove CDK stacks and their associated resources from AWS:
@@ -247,36 +271,40 @@ The CDK Toolkit awaits the completion of each call, allowing clients to perform
247
271
  When you implement an `IoHost` interface, you can either process these communications (for example, logging to CloudWatch or prompting users for input) or return immediately without taking action.
248
272
  If your implementation doesn’t provide a response to a request, the CDK Toolkit proceeds with a default value.
249
273
 
250
- #### Default IoHost
274
+ #### Default `NonInteractiveIoHost`
251
275
 
252
- By default the CDK Toolkit Library will use a `IoHost` implantation that mimics the behavior of the AWS CDK Toolkit CLI.
276
+ By default the CDK Toolkit Library will use a `NonInteractiveIoHost ` implementation that mimics the behavior of the AWS CDK Toolkit CLI.
277
+ This `NonInteractiveIoHost` is available for you as a base implementation to extend on.
253
278
 
254
279
  ### Configure your AWS profile
255
280
 
256
281
  The Toolkit internally uses AWS SDK Clients to make necessary API calls to AWS.
257
- Authentication configuration is loaded automatically from the environment, but you can explicitly specify the profile to be used:
282
+ Authentication configuration is loaded automatically from the environment, but you can explicitly specify the base credentials to be used:
258
283
 
259
284
  ```ts
260
- import { Toolkit } from '@aws-cdk/toolkit-lib';
285
+ import { Toolkit, BaseCredentials } from '@aws-cdk/toolkit-lib';
261
286
 
262
287
  const cdk = new Toolkit({
263
- sdkConfig: { profile: "my-profile" },
288
+ sdkConfig: {
289
+ baseCredentials: BaseCredentials.awsCliCompatible({ profile: "my-profile" })
290
+ },
264
291
  });
265
292
  ```
266
293
 
267
294
  ### Configure a proxy for SDK calls
268
295
 
269
296
  The Toolkit internally uses AWS SDK Clients to make necessary API calls to AWS.
270
- You can specify a proxy configuration for all SDK calls:
297
+ You can specify a Node.js Agent to configure SDK calls.
298
+ This allows you to configure third-party packages like [`proxy-agent`](https://www.npmjs.com/package/proxy-agent) to proxy all SDK calls:
271
299
 
272
300
  ```ts
301
+ import { ProxyAgent } from 'proxy-agent';
273
302
  import { Toolkit } from '@aws-cdk/toolkit-lib';
274
303
 
275
304
  const cdk = new Toolkit({
276
305
  sdkConfig: {
277
306
  httpOptions: {
278
- proxyAddress: "https://example.com",
279
- caBundlePath: "path/to/ca/bundle",
307
+ agent: new ProxyAgent(),
280
308
  },
281
309
  },
282
310
  });
@@ -316,7 +344,8 @@ await cdk.fromCdkApp("ts-node app.ts");
316
344
  await cdk.fromCdkApp("python app.py");
317
345
  ```
318
346
 
319
- Alternatively a inline `AssemblyBuilder` function can be used to build a CDK app on-the-fly.
347
+ The `AssemblyBuilder` function provides basic Toolkit features like Lookups, but otherwise allows you to implement any custom source.
348
+ For example you build an inline CDK app on-the-fly:
320
349
 
321
350
  ```ts
322
351
  declare const cdk: Toolkit;
@@ -331,6 +360,11 @@ const cx = await cdk.fromAssemblyBuilder(async () => {
331
360
  });
332
361
  ```
333
362
 
363
+ > Note that synthesis using the `AssemblyBuilder` is not safe to be performed
364
+ > concurrently, since it mutates the globally shared `process.env`. You can set
365
+ > `clobberEnv: false` to avoid this, but your builder function will need to do a
366
+ > bit more work. See the documentation of `clobberEnv` for an example.
367
+
334
368
  Existing _Cloud Assembly_ directories can be used as source like this:
335
369
 
336
370
  ```ts
@@ -407,26 +441,11 @@ try {
407
441
  });
408
442
 
409
443
  } catch (error) {
410
-
411
- if (ToolkitError.isAuthenticationError(error)) {
412
- // Handle credential issues
413
- console.error('AWS credentials error:', error.message);
414
-
415
- } else if (ToolkitError.isAssemblyError(error)) {
416
- // Handle errors from your CDK app
417
- console.error('CDK app error:', error.message);
418
-
419
- } else if (ToolkitError.isContextProviderError(error)) {
420
- // Handle errors from context providers
421
- console.error('Context provider error:', error.message);
422
-
423
- } else if (ToolkitError.isToolkitError(error)) {
424
- // Handle all other Toolkit errors
425
- console.error('Generic Toolkit error:', error.message);
426
-
444
+ // Handle user error
445
+ if (ToolkitError.isToolkitError(error) && error.source === 'user') {
446
+ console.error('Hey, something is wrong with your app!', error.message);
427
447
  } else {
428
- // Handle unexpected errors
429
- console.error('Unexpected error:', error);
448
+ throw error;
430
449
  }
431
450
  }
432
451
  ```
@@ -30,7 +30,7 @@
30
30
  "logLevel": "none"
31
31
  },
32
32
  "ae-forgotten-export": {
33
- "logLevel": "warning"
33
+ "logLevel": "error"
34
34
  }
35
35
  },
36
36
  "tsdocMessageReporting": {
package/build-info.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
- "comment": "Generated at 2025-05-21T09:27:47Z by build-info.sh",
3
- "commit": "6de56b2"
2
+ "comment": "Generated at 2025-05-30T08:19:52Z by build-info.sh",
3
+ "commit": "60506e5"
4
4
  }
package/db.json.gz CHANGED
Binary file
@@ -1,16 +1,16 @@
1
- import type { BaseDeployOptions } from './private/deploy-options';
1
+ import type { StackSelector } from '../../api/cloud-assembly';
2
2
  import type { Tag } from '../../api/tags';
3
- export type DeploymentMethod = DirectDeploymentMethod | ChangeSetDeploymentMethod;
4
- export interface DirectDeploymentMethod {
5
- /**
6
- * Use stack APIs to the deploy stack changes
7
- */
3
+ export type DeploymentMethod = DirectDeployment | ChangeSetDeployment | HotswapDeployment;
4
+ /**
5
+ * Use stack APIs to the deploy stack changes
6
+ */
7
+ export interface DirectDeployment {
8
8
  readonly method: 'direct';
9
9
  }
10
- export interface ChangeSetDeploymentMethod {
11
- /**
12
- * Use change-set APIS to deploy a stack changes
13
- */
10
+ /**
11
+ * Use change-set APIs to deploy a stack changes
12
+ */
13
+ export interface ChangeSetDeployment {
14
14
  readonly method: 'change-set';
15
15
  /**
16
16
  * Whether to execute the changeset or leave it in review.
@@ -23,6 +23,34 @@ export interface ChangeSetDeploymentMethod {
23
23
  * If not provided, a name will be generated automatically.
24
24
  */
25
25
  readonly changeSetName?: string;
26
+ /**
27
+ * Indicates if the change set imports resources that already exist.
28
+ *
29
+ * @default false
30
+ */
31
+ readonly importExistingResources?: boolean;
32
+ }
33
+ /**
34
+ * Perform a 'hotswap' deployment to deploy a stack changes
35
+ *
36
+ * A 'hotswap' deployment will attempt to short-circuit CloudFormation
37
+ * and update the affected resources like Lambda functions directly.
38
+ */
39
+ export interface HotswapDeployment {
40
+ readonly method: 'hotswap';
41
+ /**
42
+ * Represents configuration property overrides for hotswap deployments.
43
+ * Currently only supported by ECS.
44
+ *
45
+ * @default - no overrides
46
+ */
47
+ readonly properties?: HotswapProperties;
48
+ /**
49
+ * Fall back to a CloudFormation deployment when a non-hotswappable change is detected
50
+ *
51
+ * @default - do not fall back to a CloudFormation deployment
52
+ */
53
+ readonly fallback?: DirectDeployment | ChangeSetDeployment;
26
54
  }
27
55
  /**
28
56
  * When to build assets
@@ -40,20 +68,6 @@ export declare enum AssetBuildTime {
40
68
  */
41
69
  JUST_IN_TIME = "just-in-time"
42
70
  }
43
- export declare enum HotswapMode {
44
- /**
45
- * Will fall back to CloudFormation when a non-hotswappable change is detected
46
- */
47
- FALL_BACK = "fall-back",
48
- /**
49
- * Will not fall back to CloudFormation when a non-hotswappable change is detected
50
- */
51
- HOTSWAP_ONLY = "hotswap-only",
52
- /**
53
- * Will not attempt to hotswap anything and instead go straight to CloudFormation
54
- */
55
- FULL_DEPLOYMENT = "full-deployment"
56
- }
57
71
  export declare class StackParameters {
58
72
  /**
59
73
  * Use only existing parameters on the stack.
@@ -75,6 +89,67 @@ export declare class StackParameters {
75
89
  readonly keepExistingParameters: boolean;
76
90
  private constructor();
77
91
  }
92
+ export interface BaseDeployOptions {
93
+ /**
94
+ * Criteria for selecting stacks to deploy
95
+ *
96
+ * @default - all stacks
97
+ */
98
+ readonly stacks?: StackSelector;
99
+ /**
100
+ * Role to pass to CloudFormation for deployment
101
+ */
102
+ readonly roleArn?: string;
103
+ /**
104
+ * Deploy even if the deployed template is identical to the one we are about to deploy.
105
+ *
106
+ * @default false
107
+ */
108
+ readonly forceDeployment?: boolean;
109
+ /**
110
+ * Deployment method
111
+ *
112
+ * @default ChangeSetDeployment
113
+ */
114
+ readonly deploymentMethod?: DeploymentMethod;
115
+ /**
116
+ * Rollback failed deployments
117
+ *
118
+ * @default true
119
+ */
120
+ readonly rollback?: boolean;
121
+ /**
122
+ * Automatically orphan resources that failed during rollback
123
+ *
124
+ * Has no effect if `rollback` is `false`.
125
+ *
126
+ * @default false
127
+ */
128
+ readonly orphanFailedResourcesDuringRollback?: boolean;
129
+ /**
130
+ * Force asset publishing even if the assets have not changed
131
+ * @default false
132
+ */
133
+ readonly forceAssetPublishing?: boolean;
134
+ /**
135
+ * Reuse the assets with the given asset IDs
136
+ */
137
+ readonly reuseAssets?: string[];
138
+ /**
139
+ * Maximum number of simultaneous deployments (dependency permitting) to execute.
140
+ * The default is '1', which executes all deployments serially.
141
+ *
142
+ * @default 1
143
+ */
144
+ readonly concurrency?: number;
145
+ /**
146
+ * Whether to send logs from all CloudWatch log groups in the template
147
+ * to the IoHost
148
+ *
149
+ * @default - false
150
+ */
151
+ readonly traceLogs?: boolean;
152
+ }
78
153
  export interface DeployOptions extends BaseDeployOptions {
79
154
  /**
80
155
  * ARNs of SNS topics that CloudFormation will notify with stack related events
@@ -110,13 +185,6 @@ export interface DeployOptions extends BaseDeployOptions {
110
185
  * @default AssetBuildTime.ALL_BEFORE_DEPLOY
111
186
  */
112
187
  readonly assetBuildTime?: AssetBuildTime;
113
- /**
114
- * Represents configuration property overrides for hotswap deployments.
115
- * Currently only supported by ECS.
116
- *
117
- * @default - no overrides
118
- */
119
- readonly hotswapProperties?: HotswapProperties;
120
188
  }
121
189
  /**
122
190
  * Property overrides for ECS hotswaps
@@ -126,12 +194,16 @@ export interface EcsHotswapProperties {
126
194
  * The lower limit on the number of your service's tasks that must remain
127
195
  * in the RUNNING state during a deployment, as a percentage of the desiredCount.
128
196
  */
129
- readonly minimumHealthyPercent: number;
197
+ readonly minimumHealthyPercent?: number;
130
198
  /**
131
199
  * The upper limit on the number of your service's tasks that are allowed
132
200
  * in the RUNNING or PENDING state during a deployment, as a percentage of the desiredCount.
133
201
  */
134
- readonly maximumHealthyPercent: number;
202
+ readonly maximumHealthyPercent?: number;
203
+ /**
204
+ * The number of seconds to wait for a single service to reach stable state.
205
+ */
206
+ readonly stabilizationTimeoutSeconds?: number;
135
207
  }
136
208
  /**
137
209
  * Property overrides for hotswap deployments.
@@ -140,5 +212,5 @@ export interface HotswapProperties {
140
212
  /**
141
213
  * ECS specific hotswap property overrides
142
214
  */
143
- readonly ecs: EcsHotswapProperties;
215
+ readonly ecs?: EcsHotswapProperties;
144
216
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StackParameters = exports.HotswapMode = exports.AssetBuildTime = void 0;
3
+ exports.StackParameters = exports.AssetBuildTime = void 0;
4
4
  /**
5
5
  * When to build assets
6
6
  */
@@ -18,21 +18,6 @@ var AssetBuildTime;
18
18
  */
19
19
  AssetBuildTime["JUST_IN_TIME"] = "just-in-time";
20
20
  })(AssetBuildTime || (exports.AssetBuildTime = AssetBuildTime = {}));
21
- var HotswapMode;
22
- (function (HotswapMode) {
23
- /**
24
- * Will fall back to CloudFormation when a non-hotswappable change is detected
25
- */
26
- HotswapMode["FALL_BACK"] = "fall-back";
27
- /**
28
- * Will not fall back to CloudFormation when a non-hotswappable change is detected
29
- */
30
- HotswapMode["HOTSWAP_ONLY"] = "hotswap-only";
31
- /**
32
- * Will not attempt to hotswap anything and instead go straight to CloudFormation
33
- */
34
- HotswapMode["FULL_DEPLOYMENT"] = "full-deployment";
35
- })(HotswapMode || (exports.HotswapMode = HotswapMode = {}));
36
21
  class StackParameters {
37
22
  /**
38
23
  * Use only existing parameters on the stack.
@@ -60,4 +45,4 @@ class StackParameters {
60
45
  }
61
46
  }
62
47
  exports.StackParameters = StackParameters;
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFnQ0E7O0dBRUc7QUFDSCxJQUFZLGNBYVg7QUFiRCxXQUFZLGNBQWM7SUFDeEI7Ozs7O09BS0c7SUFDSCx5REFBdUMsQ0FBQTtJQUV2Qzs7T0FFRztJQUNILCtDQUE2QixDQUFBO0FBQy9CLENBQUMsRUFiVyxjQUFjLDhCQUFkLGNBQWMsUUFhekI7QUFFRCxJQUFZLFdBZVg7QUFmRCxXQUFZLFdBQVc7SUFDckI7O09BRUc7SUFDSCxzQ0FBdUIsQ0FBQTtJQUV2Qjs7T0FFRztJQUNILDRDQUE2QixDQUFBO0lBRTdCOztPQUVHO0lBQ0gsa0RBQW1DLENBQUE7QUFDckMsQ0FBQyxFQWZXLFdBQVcsMkJBQVgsV0FBVyxRQWV0QjtBQUVELE1BQWEsZUFBZTtJQUMxQjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxZQUFZO1FBQ3hCLE9BQU8sSUFBSSxlQUFlLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBOEM7UUFDbEUsT0FBTyxJQUFJLGVBQWUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUE4QztRQUN2RSxPQUFPLElBQUksZUFBZSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRWUsVUFBVSxDQUFrQztJQUM1QyxzQkFBc0IsQ0FBVTtJQUVoRCxZQUFvQixNQUE4QyxFQUFFLHFCQUFxQixHQUFHLElBQUk7UUFDOUYsSUFBSSxDQUFDLHNCQUFzQixHQUFHLHFCQUFxQixDQUFDO1FBQ3BELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7Q0FDRjtBQTdCRCwwQ0E2QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJhc2VEZXBsb3lPcHRpb25zIH0gZnJvbSAnLi9wcml2YXRlL2RlcGxveS1vcHRpb25zJztcbmltcG9ydCB0eXBlIHsgVGFnIH0gZnJvbSAnLi4vLi4vYXBpL3RhZ3MnO1xuXG5leHBvcnQgdHlwZSBEZXBsb3ltZW50TWV0aG9kID0gRGlyZWN0RGVwbG95bWVudE1ldGhvZCB8IENoYW5nZVNldERlcGxveW1lbnRNZXRob2Q7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlyZWN0RGVwbG95bWVudE1ldGhvZCB7XG4gIC8qKlxuICAgKiBVc2Ugc3RhY2sgQVBJcyB0byB0aGUgZGVwbG95IHN0YWNrIGNoYW5nZXNcbiAgICovXG4gIHJlYWRvbmx5IG1ldGhvZDogJ2RpcmVjdCc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlU2V0RGVwbG95bWVudE1ldGhvZCB7XG4gIC8qKlxuICAgKiBVc2UgY2hhbmdlLXNldCBBUElTIHRvIGRlcGxveSBhIHN0YWNrIGNoYW5nZXNcbiAgICovXG4gIHJlYWRvbmx5IG1ldGhvZDogJ2NoYW5nZS1zZXQnO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGV4ZWN1dGUgdGhlIGNoYW5nZXNldCBvciBsZWF2ZSBpdCBpbiByZXZpZXcuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGV4ZWN1dGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBuYW1lIHRvIHVzZSBmb3IgdGhlIENsb3VkRm9ybWF0aW9uIGNoYW5nZSBzZXQuXG4gICAqIElmIG5vdCBwcm92aWRlZCwgYSBuYW1lIHdpbGwgYmUgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkuXG4gICAqL1xuICByZWFkb25seSBjaGFuZ2VTZXROYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFdoZW4gdG8gYnVpbGQgYXNzZXRzXG4gKi9cbmV4cG9ydCBlbnVtIEFzc2V0QnVpbGRUaW1lIHtcbiAgLyoqXG4gICAqIEJ1aWxkIGFsbCBhc3NldHMgYmVmb3JlIGRlcGxveWluZyB0aGUgZmlyc3Qgc3RhY2tcbiAgICpcbiAgICogVGhpcyBpcyBpbnRlbmRlZCBmb3IgZXhwZW5zaXZlIERvY2tlciBpbWFnZSBidWlsZHM7IHNvIHRoYXQgaWYgdGhlIERvY2tlciBpbWFnZSBidWlsZFxuICAgKiBmYWlscywgbm8gc3RhY2tzIGFyZSB1bm5lY2Vzc2FyaWx5IGRlcGxveWVkICh3aXRoIHRoZSBhdHRlbmRhbnQgd2FpdCB0aW1lKS5cbiAgICovXG4gIEFMTF9CRUZPUkVfREVQTE9ZID0gJ2FsbC1iZWZvcmUtZGVwbG95JyxcblxuICAvKipcbiAgICogQnVpbGQgYXNzZXRzIGp1c3QtaW4tdGltZSwgYmVmb3JlIHB1Ymxpc2hpbmdcbiAgICovXG4gIEpVU1RfSU5fVElNRSA9ICdqdXN0LWluLXRpbWUnLFxufVxuXG5leHBvcnQgZW51bSBIb3Rzd2FwTW9kZSB7XG4gIC8qKlxuICAgKiBXaWxsIGZhbGwgYmFjayB0byBDbG91ZEZvcm1hdGlvbiB3aGVuIGEgbm9uLWhvdHN3YXBwYWJsZSBjaGFuZ2UgaXMgZGV0ZWN0ZWRcbiAgICovXG4gIEZBTExfQkFDSyA9ICdmYWxsLWJhY2snLFxuXG4gIC8qKlxuICAgKiBXaWxsIG5vdCBmYWxsIGJhY2sgdG8gQ2xvdWRGb3JtYXRpb24gd2hlbiBhIG5vbi1ob3Rzd2FwcGFibGUgY2hhbmdlIGlzIGRldGVjdGVkXG4gICAqL1xuICBIT1RTV0FQX09OTFkgPSAnaG90c3dhcC1vbmx5JyxcblxuICAvKipcbiAgICogV2lsbCBub3QgYXR0ZW1wdCB0byBob3Rzd2FwIGFueXRoaW5nIGFuZCBpbnN0ZWFkIGdvIHN0cmFpZ2h0IHRvIENsb3VkRm9ybWF0aW9uXG4gICAqL1xuICBGVUxMX0RFUExPWU1FTlQgPSAnZnVsbC1kZXBsb3ltZW50Jyxcbn1cblxuZXhwb3J0IGNsYXNzIFN0YWNrUGFyYW1ldGVycyB7XG4gIC8qKlxuICAgKiBVc2Ugb25seSBleGlzdGluZyBwYXJhbWV0ZXJzIG9uIHRoZSBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb25seUV4aXN0aW5nKCkge1xuICAgIHJldHVybiBuZXcgU3RhY2tQYXJhbWV0ZXJzKHt9LCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgZXhhY3RseSB0aGVzZSBwYXJhbWV0ZXJzIGFuZCByZW1vdmUgYW55IG90aGVyIGV4aXN0aW5nIHBhcmFtZXRlcnMgZnJvbSB0aGUgc3RhY2suXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGV4YWN0bHkocGFyYW1zOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSkge1xuICAgIHJldHVybiBuZXcgU3RhY2tQYXJhbWV0ZXJzKHBhcmFtcywgZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgZm9yIHRoZSBzdGFjaywgd2hpbGUga2VlcGluZyBleGlzdGluZyBwYXJhbWV0ZXJzIGZvciB1bnNwZWNpZmllZCB2YWx1ZXMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGhFeGlzdGluZyhwYXJhbXM6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9KSB7XG4gICAgcmV0dXJuIG5ldyBTdGFja1BhcmFtZXRlcnMocGFyYW1zLCB0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBwYXJhbWV0ZXJzOiBNYXA8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+O1xuICBwdWJsaWMgcmVhZG9ubHkga2VlcEV4aXN0aW5nUGFyYW1ldGVyczogYm9vbGVhbjtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHBhcmFtczogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH0sIHVzZVByZXZpb3VzUGFyYW1ldGVycyA9IHRydWUpIHtcbiAgICB0aGlzLmtlZXBFeGlzdGluZ1BhcmFtZXRlcnMgPSB1c2VQcmV2aW91c1BhcmFtZXRlcnM7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gbmV3IE1hcChPYmplY3QuZW50cmllcyhwYXJhbXMpKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveU9wdGlvbnMgZXh0ZW5kcyBCYXNlRGVwbG95T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBUk5zIG9mIFNOUyB0b3BpY3MgdGhhdCBDbG91ZEZvcm1hdGlvbiB3aWxsIG5vdGlmeSB3aXRoIHN0YWNrIHJlbGF0ZWQgZXZlbnRzXG4gICAqL1xuICByZWFkb25seSBub3RpZmljYXRpb25Bcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRhZ3MgdG8gcGFzcyB0byBDbG91ZEZvcm1hdGlvbiBmb3IgZGVwbG95bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IFRhZ1tdO1xuXG4gIC8qKlxuICAgKiBTdGFjayBwYXJhbWV0ZXJzIGZvciBDbG91ZEZvcm1hdGlvbiB1c2VkIGF0IGRlcGxveSB0aW1lXG4gICAqIEBkZWZhdWx0IFN0YWNrUGFyYW1ldGVycy5vbmx5RXhpc3RpbmcoKVxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVycz86IFN0YWNrUGFyYW1ldGVycztcblxuICAvKipcbiAgICogUGF0aCB0byBmaWxlIHdoZXJlIHN0YWNrIG91dHB1dHMgd2lsbCBiZSB3cml0dGVuIGFmdGVyIGEgc3VjY2Vzc2Z1bCBkZXBsb3kgYXMgSlNPTlxuICAgKiBAZGVmYXVsdCAtIE91dHB1dHMgYXJlIG5vdCB3cml0dGVuIHRvIGFueSBmaWxlXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRzRmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogQnVpbGQvcHVibGlzaCBhc3NldHMgZm9yIGEgc2luZ2xlIHN0YWNrIGluIHBhcmFsbGVsXG4gICAqXG4gICAqIEluZGVwZW5kZW50IG9mIHdoZXRoZXIgc3RhY2tzIGFyZSBiZWluZyBkb25lIGluIHBhcmFsbGVsIG9yIG5vLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhc3NldFBhcmFsbGVsaXNtPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hlbiB0byBidWlsZCBhc3NldHNcbiAgICpcbiAgICogVGhlIGRlZmF1bHQgaXMgdGhlIERvY2tlci1mcmllbmRseSBkZWZhdWx0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBBc3NldEJ1aWxkVGltZS5BTExfQkVGT1JFX0RFUExPWVxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRCdWlsZFRpbWU/OiBBc3NldEJ1aWxkVGltZTtcblxuICAvKipcbiAgICogUmVwcmVzZW50cyBjb25maWd1cmF0aW9uIHByb3BlcnR5IG92ZXJyaWRlcyBmb3IgaG90c3dhcCBkZXBsb3ltZW50cy5cbiAgICogQ3VycmVudGx5IG9ubHkgc3VwcG9ydGVkIGJ5IEVDUy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBvdmVycmlkZXNcbiAgICovXG4gIHJlYWRvbmx5IGhvdHN3YXBQcm9wZXJ0aWVzPzogSG90c3dhcFByb3BlcnRpZXM7XG59XG5cbi8qKlxuICogUHJvcGVydHkgb3ZlcnJpZGVzIGZvciBFQ1MgaG90c3dhcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFY3NIb3Rzd2FwUHJvcGVydGllcyB7XG4gIC8qKlxuICAgKiBUaGUgbG93ZXIgbGltaXQgb24gdGhlIG51bWJlciBvZiB5b3VyIHNlcnZpY2UncyB0YXNrcyB0aGF0IG11c3QgcmVtYWluXG4gICAqIGluIHRoZSBSVU5OSU5HIHN0YXRlIGR1cmluZyBhIGRlcGxveW1lbnQsIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgZGVzaXJlZENvdW50LlxuICAgKi9cbiAgcmVhZG9ubHkgbWluaW11bUhlYWx0aHlQZXJjZW50OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB1cHBlciBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIHlvdXIgc2VydmljZSdzIHRhc2tzIHRoYXQgYXJlIGFsbG93ZWRcbiAgICogaW4gdGhlIFJVTk5JTkcgb3IgUEVORElORyBzdGF0ZSBkdXJpbmcgYSBkZXBsb3ltZW50LCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIGRlc2lyZWRDb3VudC5cbiAgICovXG4gIHJlYWRvbmx5IG1heGltdW1IZWFsdGh5UGVyY2VudDogbnVtYmVyO1xufVxuXG4vKipcbiAqIFByb3BlcnR5IG92ZXJyaWRlcyBmb3IgaG90c3dhcCBkZXBsb3ltZW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIb3Rzd2FwUHJvcGVydGllcyB7XG4gIC8qKlxuICAgKiBFQ1Mgc3BlY2lmaWMgaG90c3dhcCBwcm9wZXJ0eSBvdmVycmlkZXNcbiAgICovXG4gIHJlYWRvbmx5IGVjczogRWNzSG90c3dhcFByb3BlcnRpZXM7XG59XG4iXX0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFnRUE7O0dBRUc7QUFDSCxJQUFZLGNBYVg7QUFiRCxXQUFZLGNBQWM7SUFDeEI7Ozs7O09BS0c7SUFDSCx5REFBdUMsQ0FBQTtJQUV2Qzs7T0FFRztJQUNILCtDQUE2QixDQUFBO0FBQy9CLENBQUMsRUFiVyxjQUFjLDhCQUFkLGNBQWMsUUFhekI7QUFFRCxNQUFhLGVBQWU7SUFDMUI7O09BRUc7SUFDSSxNQUFNLENBQUMsWUFBWTtRQUN4QixPQUFPLElBQUksZUFBZSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQThDO1FBQ2xFLE9BQU8sSUFBSSxlQUFlLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBOEM7UUFDdkUsT0FBTyxJQUFJLGVBQWUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVlLFVBQVUsQ0FBa0M7SUFDNUMsc0JBQXNCLENBQVU7SUFFaEQsWUFBb0IsTUFBOEMsRUFBRSxxQkFBcUIsR0FBRyxJQUFJO1FBQzlGLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxxQkFBcUIsQ0FBQztRQUNwRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0Y7QUE3QkQsMENBNkJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCB0eXBlIHsgVGFnIH0gZnJvbSAnLi4vLi4vYXBpL3RhZ3MnO1xuXG5leHBvcnQgdHlwZSBEZXBsb3ltZW50TWV0aG9kID0gRGlyZWN0RGVwbG95bWVudCB8IENoYW5nZVNldERlcGxveW1lbnQgfCBIb3Rzd2FwRGVwbG95bWVudDtcblxuLyoqXG4gKiBVc2Ugc3RhY2sgQVBJcyB0byB0aGUgZGVwbG95IHN0YWNrIGNoYW5nZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEaXJlY3REZXBsb3ltZW50IHtcbiAgcmVhZG9ubHkgbWV0aG9kOiAnZGlyZWN0Jztcbn1cblxuLyoqXG4gKiBVc2UgY2hhbmdlLXNldCBBUElzIHRvIGRlcGxveSBhIHN0YWNrIGNoYW5nZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VTZXREZXBsb3ltZW50IHtcbiAgcmVhZG9ubHkgbWV0aG9kOiAnY2hhbmdlLXNldCc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZXhlY3V0ZSB0aGUgY2hhbmdlc2V0IG9yIGxlYXZlIGl0IGluIHJldmlldy5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhlY3V0ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIG5hbWUgdG8gdXNlIGZvciB0aGUgQ2xvdWRGb3JtYXRpb24gY2hhbmdlIHNldC5cbiAgICogSWYgbm90IHByb3ZpZGVkLCBhIG5hbWUgd2lsbCBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseS5cbiAgICovXG4gIHJlYWRvbmx5IGNoYW5nZVNldE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgY2hhbmdlIHNldCBpbXBvcnRzIHJlc291cmNlcyB0aGF0IGFscmVhZHkgZXhpc3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBpbXBvcnRFeGlzdGluZ1Jlc291cmNlcz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUGVyZm9ybSBhICdob3Rzd2FwJyBkZXBsb3ltZW50IHRvIGRlcGxveSBhIHN0YWNrIGNoYW5nZXNcbiAqXG4gKiBBICdob3Rzd2FwJyBkZXBsb3ltZW50IHdpbGwgYXR0ZW1wdCB0byBzaG9ydC1jaXJjdWl0IENsb3VkRm9ybWF0aW9uXG4gKiBhbmQgdXBkYXRlIHRoZSBhZmZlY3RlZCByZXNvdXJjZXMgbGlrZSBMYW1iZGEgZnVuY3Rpb25zIGRpcmVjdGx5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhvdHN3YXBEZXBsb3ltZW50IHtcbiAgcmVhZG9ubHkgbWV0aG9kOiAnaG90c3dhcCc7XG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgY29uZmlndXJhdGlvbiBwcm9wZXJ0eSBvdmVycmlkZXMgZm9yIGhvdHN3YXAgZGVwbG95bWVudHMuXG4gICAqIEN1cnJlbnRseSBvbmx5IHN1cHBvcnRlZCBieSBFQ1MuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gb3ZlcnJpZGVzXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0aWVzPzogSG90c3dhcFByb3BlcnRpZXM7XG5cbiAgLyoqXG4gICAqIEZhbGwgYmFjayB0byBhIENsb3VkRm9ybWF0aW9uIGRlcGxveW1lbnQgd2hlbiBhIG5vbi1ob3Rzd2FwcGFibGUgY2hhbmdlIGlzIGRldGVjdGVkXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZG8gbm90IGZhbGwgYmFjayB0byBhIENsb3VkRm9ybWF0aW9uIGRlcGxveW1lbnRcbiAgICovXG4gIHJlYWRvbmx5IGZhbGxiYWNrPzogRGlyZWN0RGVwbG95bWVudCB8IENoYW5nZVNldERlcGxveW1lbnQ7XG59XG5cbi8qKlxuICogV2hlbiB0byBidWlsZCBhc3NldHNcbiAqL1xuZXhwb3J0IGVudW0gQXNzZXRCdWlsZFRpbWUge1xuICAvKipcbiAgICogQnVpbGQgYWxsIGFzc2V0cyBiZWZvcmUgZGVwbG95aW5nIHRoZSBmaXJzdCBzdGFja1xuICAgKlxuICAgKiBUaGlzIGlzIGludGVuZGVkIGZvciBleHBlbnNpdmUgRG9ja2VyIGltYWdlIGJ1aWxkczsgc28gdGhhdCBpZiB0aGUgRG9ja2VyIGltYWdlIGJ1aWxkXG4gICAqIGZhaWxzLCBubyBzdGFja3MgYXJlIHVubmVjZXNzYXJpbHkgZGVwbG95ZWQgKHdpdGggdGhlIGF0dGVuZGFudCB3YWl0IHRpbWUpLlxuICAgKi9cbiAgQUxMX0JFRk9SRV9ERVBMT1kgPSAnYWxsLWJlZm9yZS1kZXBsb3knLFxuXG4gIC8qKlxuICAgKiBCdWlsZCBhc3NldHMganVzdC1pbi10aW1lLCBiZWZvcmUgcHVibGlzaGluZ1xuICAgKi9cbiAgSlVTVF9JTl9USU1FID0gJ2p1c3QtaW4tdGltZScsXG59XG5cbmV4cG9ydCBjbGFzcyBTdGFja1BhcmFtZXRlcnMge1xuICAvKipcbiAgICogVXNlIG9ubHkgZXhpc3RpbmcgcGFyYW1ldGVycyBvbiB0aGUgc3RhY2suXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9ubHlFeGlzdGluZygpIHtcbiAgICByZXR1cm4gbmV3IFN0YWNrUGFyYW1ldGVycyh7fSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIGV4YWN0bHkgdGhlc2UgcGFyYW1ldGVycyBhbmQgcmVtb3ZlIGFueSBvdGhlciBleGlzdGluZyBwYXJhbWV0ZXJzIGZyb20gdGhlIHN0YWNrLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBleGFjdGx5KHBhcmFtczogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH0pIHtcbiAgICByZXR1cm4gbmV3IFN0YWNrUGFyYW1ldGVycyhwYXJhbXMsIGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZvciB0aGUgc3RhY2ssIHdoaWxlIGtlZXBpbmcgZXhpc3RpbmcgcGFyYW1ldGVycyBmb3IgdW5zcGVjaWZpZWQgdmFsdWVzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoRXhpc3RpbmcocGFyYW1zOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSkge1xuICAgIHJldHVybiBuZXcgU3RhY2tQYXJhbWV0ZXJzKHBhcmFtcywgdHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgcGFyYW1ldGVyczogTWFwPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgcHVibGljIHJlYWRvbmx5IGtlZXBFeGlzdGluZ1BhcmFtZXRlcnM6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihwYXJhbXM6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9LCB1c2VQcmV2aW91c1BhcmFtZXRlcnMgPSB0cnVlKSB7XG4gICAgdGhpcy5rZWVwRXhpc3RpbmdQYXJhbWV0ZXJzID0gdXNlUHJldmlvdXNQYXJhbWV0ZXJzO1xuICAgIHRoaXMucGFyYW1ldGVycyA9IG5ldyBNYXAoT2JqZWN0LmVudHJpZXMocGFyYW1zKSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlRGVwbG95T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBDcml0ZXJpYSBmb3Igc2VsZWN0aW5nIHN0YWNrcyB0byBkZXBsb3lcbiAgICpcbiAgICogQGRlZmF1bHQgLSBhbGwgc3RhY2tzXG4gICAqL1xuICByZWFkb25seSBzdGFja3M/OiBTdGFja1NlbGVjdG9yO1xuXG4gIC8qKlxuICAgKiBSb2xlIHRvIHBhc3MgdG8gQ2xvdWRGb3JtYXRpb24gZm9yIGRlcGxveW1lbnRcbiAgICovXG4gIHJlYWRvbmx5IHJvbGVBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlcGxveSBldmVuIGlmIHRoZSBkZXBsb3llZCB0ZW1wbGF0ZSBpcyBpZGVudGljYWwgdG8gdGhlIG9uZSB3ZSBhcmUgYWJvdXQgdG8gZGVwbG95LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZm9yY2VEZXBsb3ltZW50PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGVwbG95bWVudCBtZXRob2RcbiAgICpcbiAgICogQGRlZmF1bHQgQ2hhbmdlU2V0RGVwbG95bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgZGVwbG95bWVudE1ldGhvZD86IERlcGxveW1lbnRNZXRob2Q7XG5cbiAgLyoqXG4gICAqIFJvbGxiYWNrIGZhaWxlZCBkZXBsb3ltZW50c1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSByb2xsYmFjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgb3JwaGFuIHJlc291cmNlcyB0aGF0IGZhaWxlZCBkdXJpbmcgcm9sbGJhY2tcbiAgICpcbiAgICogSGFzIG5vIGVmZmVjdCBpZiBgcm9sbGJhY2tgIGlzIGBmYWxzZWAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBvcnBoYW5GYWlsZWRSZXNvdXJjZXNEdXJpbmdSb2xsYmFjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEZvcmNlIGFzc2V0IHB1Ymxpc2hpbmcgZXZlbiBpZiB0aGUgYXNzZXRzIGhhdmUgbm90IGNoYW5nZWRcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlQXNzZXRQdWJsaXNoaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUmV1c2UgdGhlIGFzc2V0cyB3aXRoIHRoZSBnaXZlbiBhc3NldCBJRHNcbiAgICovXG4gIHJlYWRvbmx5IHJldXNlQXNzZXRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE1heGltdW0gbnVtYmVyIG9mIHNpbXVsdGFuZW91cyBkZXBsb3ltZW50cyAoZGVwZW5kZW5jeSBwZXJtaXR0aW5nKSB0byBleGVjdXRlLlxuICAgKiBUaGUgZGVmYXVsdCBpcyAnMScsIHdoaWNoIGV4ZWN1dGVzIGFsbCBkZXBsb3ltZW50cyBzZXJpYWxseS5cbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgY29uY3VycmVuY3k/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc2VuZCBsb2dzIGZyb20gYWxsIENsb3VkV2F0Y2ggbG9nIGdyb3VwcyBpbiB0aGUgdGVtcGxhdGVcbiAgICogdG8gdGhlIElvSG9zdFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSB0cmFjZUxvZ3M/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveU9wdGlvbnMgZXh0ZW5kcyBCYXNlRGVwbG95T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBUk5zIG9mIFNOUyB0b3BpY3MgdGhhdCBDbG91ZEZvcm1hdGlvbiB3aWxsIG5vdGlmeSB3aXRoIHN0YWNrIHJlbGF0ZWQgZXZlbnRzXG4gICAqL1xuICByZWFkb25seSBub3RpZmljYXRpb25Bcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRhZ3MgdG8gcGFzcyB0byBDbG91ZEZvcm1hdGlvbiBmb3IgZGVwbG95bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IFRhZ1tdO1xuXG4gIC8qKlxuICAgKiBTdGFjayBwYXJhbWV0ZXJzIGZvciBDbG91ZEZvcm1hdGlvbiB1c2VkIGF0IGRlcGxveSB0aW1lXG4gICAqIEBkZWZhdWx0IFN0YWNrUGFyYW1ldGVycy5vbmx5RXhpc3RpbmcoKVxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVycz86IFN0YWNrUGFyYW1ldGVycztcblxuICAvKipcbiAgICogUGF0aCB0byBmaWxlIHdoZXJlIHN0YWNrIG91dHB1dHMgd2lsbCBiZSB3cml0dGVuIGFmdGVyIGEgc3VjY2Vzc2Z1bCBkZXBsb3kgYXMgSlNPTlxuICAgKiBAZGVmYXVsdCAtIE91dHB1dHMgYXJlIG5vdCB3cml0dGVuIHRvIGFueSBmaWxlXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRzRmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogQnVpbGQvcHVibGlzaCBhc3NldHMgZm9yIGEgc2luZ2xlIHN0YWNrIGluIHBhcmFsbGVsXG4gICAqXG4gICAqIEluZGVwZW5kZW50IG9mIHdoZXRoZXIgc3RhY2tzIGFyZSBiZWluZyBkb25lIGluIHBhcmFsbGVsIG9yIG5vLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhc3NldFBhcmFsbGVsaXNtPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hlbiB0byBidWlsZCBhc3NldHNcbiAgICpcbiAgICogVGhlIGRlZmF1bHQgaXMgdGhlIERvY2tlci1mcmllbmRseSBkZWZhdWx0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBBc3NldEJ1aWxkVGltZS5BTExfQkVGT1JFX0RFUExPWVxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRCdWlsZFRpbWU/OiBBc3NldEJ1aWxkVGltZTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0eSBvdmVycmlkZXMgZm9yIEVDUyBob3Rzd2Fwc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEVjc0hvdHN3YXBQcm9wZXJ0aWVzIHtcbiAgLyoqXG4gICAqIFRoZSBsb3dlciBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIHlvdXIgc2VydmljZSdzIHRhc2tzIHRoYXQgbXVzdCByZW1haW5cbiAgICogaW4gdGhlIFJVTk5JTkcgc3RhdGUgZHVyaW5nIGEgZGVwbG95bWVudCwgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBkZXNpcmVkQ291bnQuXG4gICAqL1xuICByZWFkb25seSBtaW5pbXVtSGVhbHRoeVBlcmNlbnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB1cHBlciBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIHlvdXIgc2VydmljZSdzIHRhc2tzIHRoYXQgYXJlIGFsbG93ZWRcbiAgICogaW4gdGhlIFJVTk5JTkcgb3IgUEVORElORyBzdGF0ZSBkdXJpbmcgYSBkZXBsb3ltZW50LCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIGRlc2lyZWRDb3VudC5cbiAgICovXG4gIHJlYWRvbmx5IG1heGltdW1IZWFsdGh5UGVyY2VudD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBzZWNvbmRzIHRvIHdhaXQgZm9yIGEgc2luZ2xlIHNlcnZpY2UgdG8gcmVhY2ggc3RhYmxlIHN0YXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhYmlsaXphdGlvblRpbWVvdXRTZWNvbmRzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFByb3BlcnR5IG92ZXJyaWRlcyBmb3IgaG90c3dhcCBkZXBsb3ltZW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIb3Rzd2FwUHJvcGVydGllcyB7XG4gIC8qKlxuICAgKiBFQ1Mgc3BlY2lmaWMgaG90c3dhcCBwcm9wZXJ0eSBvdmVycmlkZXNcbiAgICovXG4gIHJlYWRvbmx5IGVjcz86IEVjc0hvdHN3YXBQcm9wZXJ0aWVzO1xufVxuIl19
@@ -1,90 +1 @@
1
- import type { DeploymentMethod, DeployOptions, HotswapMode } from '..';
2
- import type { StackSelector } from '../../../api/cloud-assembly';
3
- import type { CloudWatchLogEventMonitor } from '../../../api/logs-monitor/logs-monitor';
4
- export interface BaseDeployOptions {
5
- /**
6
- * Criteria for selecting stacks to deploy
7
- *
8
- * @default - all stacks
9
- */
10
- readonly stacks?: StackSelector;
11
- /**
12
- * Role to pass to CloudFormation for deployment
13
- */
14
- readonly roleArn?: string;
15
- /**
16
- * Deploy even if the deployed template is identical to the one we are about to deploy.
17
- *
18
- * @default false
19
- */
20
- readonly forceDeployment?: boolean;
21
- /**
22
- * Deployment method
23
- */
24
- readonly deploymentMethod?: DeploymentMethod;
25
- /**
26
- * Whether to perform a 'hotswap' deployment.
27
- * A 'hotswap' deployment will attempt to short-circuit CloudFormation
28
- * and update the affected resources like Lambda functions directly.
29
- *
30
- * @default - no hotswap
31
- */
32
- readonly hotswap?: HotswapMode;
33
- /**
34
- * Rollback failed deployments
35
- *
36
- * @default true
37
- */
38
- readonly rollback?: boolean;
39
- /**
40
- * Automatically orphan resources that failed during rollback
41
- *
42
- * Has no effect if `rollback` is `false`.
43
- *
44
- * @default false
45
- */
46
- readonly orphanFailedResourcesDuringRollback?: boolean;
47
- /**
48
- * Force asset publishing even if the assets have not changed
49
- * @default false
50
- */
51
- readonly forceAssetPublishing?: boolean;
52
- /**
53
- * Reuse the assets with the given asset IDs
54
- */
55
- readonly reuseAssets?: string[];
56
- /**
57
- * Maximum number of simultaneous deployments (dependency permitting) to execute.
58
- * The default is '1', which executes all deployments serially.
59
- *
60
- * @default 1
61
- */
62
- readonly concurrency?: number;
63
- /**
64
- * Whether to send logs from all CloudWatch log groups in the template
65
- * to the IoHost
66
- *
67
- * @default - false
68
- */
69
- readonly traceLogs?: boolean;
70
- }
71
- /**
72
- * Deploy options needed by the watch command.
73
- * Intentionally not exported because these options are not
74
- * meant to be public facing.
75
- */
76
- export interface ExtendedDeployOptions extends DeployOptions {
77
- /**
78
- * The extra string to append to the User-Agent header when performing AWS SDK calls.
79
- *
80
- * @default - nothing extra is appended to the User-Agent header
81
- */
82
- readonly extraUserAgent?: string;
83
- /**
84
- * Allows adding CloudWatch log groups to the log monitor via
85
- * cloudWatchLogMonitor.setLogGroups();
86
- *
87
- * @default - not monitoring CloudWatch logs
88
- */
89
- readonly cloudWatchLogMonitor?: CloudWatchLogEventMonitor;
90
- }
1
+ export {};
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkZXBsb3ktb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZXBsb3ltZW50TWV0aG9kLCBEZXBsb3lPcHRpb25zLCBIb3Rzd2FwTW9kZSB9IGZyb20gJy4uJztcbmltcG9ydCB0eXBlIHsgU3RhY2tTZWxlY3RvciB9IGZyb20gJy4uLy4uLy4uL2FwaS9jbG91ZC1hc3NlbWJseSc7XG5pbXBvcnQgdHlwZSB7IENsb3VkV2F0Y2hMb2dFdmVudE1vbml0b3IgfSBmcm9tICcuLi8uLi8uLi9hcGkvbG9ncy1tb25pdG9yL2xvZ3MtbW9uaXRvcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZURlcGxveU9wdGlvbnMge1xuICAvKipcbiAgICogQ3JpdGVyaWEgZm9yIHNlbGVjdGluZyBzdGFja3MgdG8gZGVwbG95XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYWxsIHN0YWNrc1xuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tzPzogU3RhY2tTZWxlY3RvcjtcblxuICAvKipcbiAgICogUm9sZSB0byBwYXNzIHRvIENsb3VkRm9ybWF0aW9uIGZvciBkZXBsb3ltZW50XG4gICAqL1xuICByZWFkb25seSByb2xlQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZXBsb3kgZXZlbiBpZiB0aGUgZGVwbG95ZWQgdGVtcGxhdGUgaXMgaWRlbnRpY2FsIHRvIHRoZSBvbmUgd2UgYXJlIGFib3V0IHRvIGRlcGxveS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlRGVwbG95bWVudD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIERlcGxveW1lbnQgbWV0aG9kXG4gICAqL1xuICByZWFkb25seSBkZXBsb3ltZW50TWV0aG9kPzogRGVwbG95bWVudE1ldGhvZDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBwZXJmb3JtIGEgJ2hvdHN3YXAnIGRlcGxveW1lbnQuXG4gICAqIEEgJ2hvdHN3YXAnIGRlcGxveW1lbnQgd2lsbCBhdHRlbXB0IHRvIHNob3J0LWNpcmN1aXQgQ2xvdWRGb3JtYXRpb25cbiAgICogYW5kIHVwZGF0ZSB0aGUgYWZmZWN0ZWQgcmVzb3VyY2VzIGxpa2UgTGFtYmRhIGZ1bmN0aW9ucyBkaXJlY3RseS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBob3Rzd2FwXG4gICAqL1xuICByZWFkb25seSBob3Rzd2FwPzogSG90c3dhcE1vZGU7XG5cbiAgLyoqXG4gICAqIFJvbGxiYWNrIGZhaWxlZCBkZXBsb3ltZW50c1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSByb2xsYmFjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgb3JwaGFuIHJlc291cmNlcyB0aGF0IGZhaWxlZCBkdXJpbmcgcm9sbGJhY2tcbiAgICpcbiAgICogSGFzIG5vIGVmZmVjdCBpZiBgcm9sbGJhY2tgIGlzIGBmYWxzZWAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBvcnBoYW5GYWlsZWRSZXNvdXJjZXNEdXJpbmdSb2xsYmFjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEZvcmNlIGFzc2V0IHB1Ymxpc2hpbmcgZXZlbiBpZiB0aGUgYXNzZXRzIGhhdmUgbm90IGNoYW5nZWRcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlQXNzZXRQdWJsaXNoaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUmV1c2UgdGhlIGFzc2V0cyB3aXRoIHRoZSBnaXZlbiBhc3NldCBJRHNcbiAgICovXG4gIHJlYWRvbmx5IHJldXNlQXNzZXRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE1heGltdW0gbnVtYmVyIG9mIHNpbXVsdGFuZW91cyBkZXBsb3ltZW50cyAoZGVwZW5kZW5jeSBwZXJtaXR0aW5nKSB0byBleGVjdXRlLlxuICAgKiBUaGUgZGVmYXVsdCBpcyAnMScsIHdoaWNoIGV4ZWN1dGVzIGFsbCBkZXBsb3ltZW50cyBzZXJpYWxseS5cbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgY29uY3VycmVuY3k/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc2VuZCBsb2dzIGZyb20gYWxsIENsb3VkV2F0Y2ggbG9nIGdyb3VwcyBpbiB0aGUgdGVtcGxhdGVcbiAgICogdG8gdGhlIElvSG9zdFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSB0cmFjZUxvZ3M/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIERlcGxveSBvcHRpb25zIG5lZWRlZCBieSB0aGUgd2F0Y2ggY29tbWFuZC5cbiAqIEludGVudGlvbmFsbHkgbm90IGV4cG9ydGVkIGJlY2F1c2UgdGhlc2Ugb3B0aW9ucyBhcmUgbm90XG4gKiBtZWFudCB0byBiZSBwdWJsaWMgZmFjaW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuZGVkRGVwbG95T3B0aW9ucyBleHRlbmRzIERlcGxveU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGV4dHJhIHN0cmluZyB0byBhcHBlbmQgdG8gdGhlIFVzZXItQWdlbnQgaGVhZGVyIHdoZW4gcGVyZm9ybWluZyBBV1MgU0RLIGNhbGxzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vdGhpbmcgZXh0cmEgaXMgYXBwZW5kZWQgdG8gdGhlIFVzZXItQWdlbnQgaGVhZGVyXG4gICAqL1xuICByZWFkb25seSBleHRyYVVzZXJBZ2VudD86IHN0cmluZztcblxuICAvKipcbiAgICogQWxsb3dzIGFkZGluZyBDbG91ZFdhdGNoIGxvZyBncm91cHMgdG8gdGhlIGxvZyBtb25pdG9yIHZpYVxuICAgKiBjbG91ZFdhdGNoTG9nTW9uaXRvci5zZXRMb2dHcm91cHMoKTtcbiAgICpcbiAgICogQGRlZmF1bHQgLSBub3QgbW9uaXRvcmluZyBDbG91ZFdhdGNoIGxvZ3NcbiAgICovXG4gIHJlYWRvbmx5IGNsb3VkV2F0Y2hMb2dNb25pdG9yPzogQ2xvdWRXYXRjaExvZ0V2ZW50TW9uaXRvcjtcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkZXBsb3ktb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZXBsb3lPcHRpb25zIH0gZnJvbSAnLi4nO1xuaW1wb3J0IHR5cGUgeyBDbG91ZFdhdGNoTG9nRXZlbnRNb25pdG9yIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2xvZ3MtbW9uaXRvci9sb2dzLW1vbml0b3InO1xuXG4vKipcbiAqIERlcGxveSBvcHRpb25zIG5lZWRlZCBieSB0aGUgd2F0Y2ggY29tbWFuZC5cbiAqXG4gKiBUaGVzZSBvcHRpb25zIGFyZSBub3QgcHVibGljIGZhY2luZy5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcml2YXRlRGVwbG95T3B0aW9ucyBleHRlbmRzIERlcGxveU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGV4dHJhIHN0cmluZyB0byBhcHBlbmQgdG8gdGhlIFVzZXItQWdlbnQgaGVhZGVyIHdoZW4gcGVyZm9ybWluZyBBV1MgU0RLIGNhbGxzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vdGhpbmcgZXh0cmEgaXMgYXBwZW5kZWQgdG8gdGhlIFVzZXItQWdlbnQgaGVhZGVyXG4gICAqL1xuICByZWFkb25seSBleHRyYVVzZXJBZ2VudD86IHN0cmluZztcblxuICAvKipcbiAgICogQWxsb3dzIGFkZGluZyBDbG91ZFdhdGNoIGxvZyBncm91cHMgdG8gdGhlIGxvZyBtb25pdG9yIHZpYVxuICAgKiBjbG91ZFdhdGNoTG9nTW9uaXRvci5zZXRMb2dHcm91cHMoKTtcbiAgICpcbiAgICogQGRlZmF1bHQgLSBub3QgbW9uaXRvcmluZyBDbG91ZFdhdGNoIGxvZ3NcbiAgICovXG4gIHJlYWRvbmx5IGNsb3VkV2F0Y2hMb2dNb25pdG9yPzogQ2xvdWRXYXRjaExvZ0V2ZW50TW9uaXRvcjtcbn1cbiJdfQ==
@@ -1,6 +1,5 @@
1
- import type { DeployOptions, HotswapProperties } from '..';
1
+ import type { DeployOptions } from '..';
2
2
  import type { Deployments } from '../../../api/deployments';
3
- import { HotswapPropertyOverrides } from '../../../api/hotswap';
4
3
  import type { WorkGraph } from '../../../api/work-graph';
5
4
  export declare function buildParameterMap(parameters?: Map<string, string | undefined>): {
6
5
  [name: string]: {
@@ -11,7 +10,3 @@ export declare function buildParameterMap(parameters?: Map<string, string | unde
11
10
  * Remove the asset publishing and building from the work graph for assets that are already in place
12
11
  */
13
12
  export declare function removePublishedAssetsFromWorkGraph(graph: WorkGraph, deployments: Deployments, options: DeployOptions): Promise<void>;
14
- /**
15
- * Create the HotswapPropertyOverrides class out of the Interface exposed to users
16
- */
17
- export declare function createHotswapPropertyOverrides(hotswapProperties: HotswapProperties): HotswapPropertyOverrides;
@@ -2,8 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildParameterMap = buildParameterMap;
4
4
  exports.removePublishedAssetsFromWorkGraph = removePublishedAssetsFromWorkGraph;
5
- exports.createHotswapPropertyOverrides = createHotswapPropertyOverrides;
6
- const hotswap_1 = require("../../../api/hotswap");
7
5
  function buildParameterMap(parameters) {
8
6
  const parameterMap = {};
9
7
  parameterMap['*'] = {};
@@ -32,10 +30,4 @@ async function removePublishedAssetsFromWorkGraph(graph, deployments, options) {
32
30
  stackName: assetNode.parentStack.stackName,
33
31
  }));
34
32
  }
35
- /**
36
- * Create the HotswapPropertyOverrides class out of the Interface exposed to users
37
- */
38
- function createHotswapPropertyOverrides(hotswapProperties) {
39
- return new hotswap_1.HotswapPropertyOverrides(new hotswap_1.EcsHotswapProperties(hotswapProperties.ecs.minimumHealthyPercent, hotswapProperties.ecs.maximumHealthyPercent));
40
- }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFLQSw4Q0FvQkM7QUFLRCxnRkFNQztBQUtELHdFQUtDO0FBNUNELGtEQUFzRjtBQUd0RixTQUFnQixpQkFBaUIsQ0FBQyxVQUE0QztJQUM1RSxNQUFNLFlBQVksR0FFZCxFQUFFLENBQUM7SUFDUCxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBRXZCLE1BQU0sT0FBTyxHQUFHLFVBQVUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDNUMsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ25DLE1BQU0sQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFpQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNmLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDbkMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDM0IsQ0FBQztZQUNELFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDO0FBRUQ7O0dBRUc7QUFDSSxLQUFLLFVBQVUsa0NBQWtDLENBQUMsS0FBZ0IsRUFBRSxXQUF3QixFQUFFLE9BQXNCO0lBQ3pILE1BQU0sS0FBSyxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRTtRQUM1SCxLQUFLLEVBQUUsU0FBUyxDQUFDLFdBQVc7UUFDNUIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1FBQ3hCLFNBQVMsRUFBRSxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVM7S0FDM0MsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQiw4QkFBOEIsQ0FBQyxpQkFBb0M7SUFDakYsT0FBTyxJQUFJLGtDQUF3QixDQUFDLElBQUksOEJBQW9CLENBQzFELGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsRUFDM0MsaUJBQWlCLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUM1QyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZXBsb3lPcHRpb25zLCBIb3Rzd2FwUHJvcGVydGllcyB9IGZyb20gJy4uJztcbmltcG9ydCB0eXBlIHsgRGVwbG95bWVudHMgfSBmcm9tICcuLi8uLi8uLi9hcGkvZGVwbG95bWVudHMnO1xuaW1wb3J0IHsgRWNzSG90c3dhcFByb3BlcnRpZXMsIEhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlcyB9IGZyb20gJy4uLy4uLy4uL2FwaS9ob3Rzd2FwJztcbmltcG9ydCB0eXBlIHsgV29ya0dyYXBoIH0gZnJvbSAnLi4vLi4vLi4vYXBpL3dvcmstZ3JhcGgnO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRQYXJhbWV0ZXJNYXAocGFyYW1ldGVycz86IE1hcDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4pOiB7IFtuYW1lOiBzdHJpbmddOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSB9IHtcbiAgY29uc3QgcGFyYW1ldGVyTWFwOiB7XG4gICAgW25hbWU6IHN0cmluZ106IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9O1xuICB9ID0ge307XG4gIHBhcmFtZXRlck1hcFsnKiddID0ge307XG5cbiAgY29uc3QgZW50cmllcyA9IHBhcmFtZXRlcnM/LmVudHJpZXMoKSA/PyBbXTtcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgZW50cmllcykge1xuICAgIGNvbnN0IFtzdGFjaywgcGFyYW1ldGVyXSA9IGtleS5zcGxpdCgnOicsIDIpIGFzIFtzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZF07XG4gICAgaWYgKCFwYXJhbWV0ZXIpIHtcbiAgICAgIHBhcmFtZXRlck1hcFsnKiddW3N0YWNrXSA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIXBhcmFtZXRlck1hcFtzdGFja10pIHtcbiAgICAgICAgcGFyYW1ldGVyTWFwW3N0YWNrXSA9IHt9O1xuICAgICAgfVxuICAgICAgcGFyYW1ldGVyTWFwW3N0YWNrXVtwYXJhbWV0ZXJdID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHBhcmFtZXRlck1hcDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGFzc2V0IHB1Ymxpc2hpbmcgYW5kIGJ1aWxkaW5nIGZyb20gdGhlIHdvcmsgZ3JhcGggZm9yIGFzc2V0cyB0aGF0IGFyZSBhbHJlYWR5IGluIHBsYWNlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW1vdmVQdWJsaXNoZWRBc3NldHNGcm9tV29ya0dyYXBoKGdyYXBoOiBXb3JrR3JhcGgsIGRlcGxveW1lbnRzOiBEZXBsb3ltZW50cywgb3B0aW9uczogRGVwbG95T3B0aW9ucykge1xuICBhd2FpdCBncmFwaC5yZW1vdmVVbm5lY2Vzc2FyeUFzc2V0cyhhc3NldE5vZGUgPT4gZGVwbG95bWVudHMuaXNTaW5nbGVBc3NldFB1Ymxpc2hlZChhc3NldE5vZGUuYXNzZXRNYW5pZmVzdCwgYXNzZXROb2RlLmFzc2V0LCB7XG4gICAgc3RhY2s6IGFzc2V0Tm9kZS5wYXJlbnRTdGFjayxcbiAgICByb2xlQXJuOiBvcHRpb25zLnJvbGVBcm4sXG4gICAgc3RhY2tOYW1lOiBhc3NldE5vZGUucGFyZW50U3RhY2suc3RhY2tOYW1lLFxuICB9KSk7XG59XG5cbi8qKlxuICogQ3JlYXRlIHRoZSBIb3Rzd2FwUHJvcGVydHlPdmVycmlkZXMgY2xhc3Mgb3V0IG9mIHRoZSBJbnRlcmZhY2UgZXhwb3NlZCB0byB1c2Vyc1xuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzKGhvdHN3YXBQcm9wZXJ0aWVzOiBIb3Rzd2FwUHJvcGVydGllcyk6IEhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlcyB7XG4gIHJldHVybiBuZXcgSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzKG5ldyBFY3NIb3Rzd2FwUHJvcGVydGllcyhcbiAgICBob3Rzd2FwUHJvcGVydGllcy5lY3MubWluaW11bUhlYWx0aHlQZXJjZW50LFxuICAgIGhvdHN3YXBQcm9wZXJ0aWVzLmVjcy5tYXhpbXVtSGVhbHRoeVBlcmNlbnQsXG4gICkpO1xufVxuIl19
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSw4Q0FvQkM7QUFLRCxnRkFNQztBQS9CRCxTQUFnQixpQkFBaUIsQ0FBQyxVQUE0QztJQUM1RSxNQUFNLFlBQVksR0FFZCxFQUFFLENBQUM7SUFDUCxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBRXZCLE1BQU0sT0FBTyxHQUFHLFVBQVUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDNUMsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ25DLE1BQU0sQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFpQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNmLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDbkMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDM0IsQ0FBQztZQUNELFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDO0FBRUQ7O0dBRUc7QUFDSSxLQUFLLFVBQVUsa0NBQWtDLENBQUMsS0FBZ0IsRUFBRSxXQUF3QixFQUFFLE9BQXNCO0lBQ3pILE1BQU0sS0FBSyxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRTtRQUM1SCxLQUFLLEVBQUUsU0FBUyxDQUFDLFdBQVc7UUFDNUIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1FBQ3hCLFNBQVMsRUFBRSxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVM7S0FDM0MsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZXBsb3lPcHRpb25zIH0gZnJvbSAnLi4nO1xuaW1wb3J0IHR5cGUgeyBEZXBsb3ltZW50cyB9IGZyb20gJy4uLy4uLy4uL2FwaS9kZXBsb3ltZW50cyc7XG5pbXBvcnQgdHlwZSB7IFdvcmtHcmFwaCB9IGZyb20gJy4uLy4uLy4uL2FwaS93b3JrLWdyYXBoJztcblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUGFyYW1ldGVyTWFwKHBhcmFtZXRlcnM/OiBNYXA8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+KTogeyBbbmFtZTogc3RyaW5nXTogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH0gfSB7XG4gIGNvbnN0IHBhcmFtZXRlck1hcDoge1xuICAgIFtuYW1lOiBzdHJpbmddOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfTtcbiAgfSA9IHt9O1xuICBwYXJhbWV0ZXJNYXBbJyonXSA9IHt9O1xuXG4gIGNvbnN0IGVudHJpZXMgPSBwYXJhbWV0ZXJzPy5lbnRyaWVzKCkgPz8gW107XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGVudHJpZXMpIHtcbiAgICBjb25zdCBbc3RhY2ssIHBhcmFtZXRlcl0gPSBrZXkuc3BsaXQoJzonLCAyKSBhcyBbc3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWRdO1xuICAgIGlmICghcGFyYW1ldGVyKSB7XG4gICAgICBwYXJhbWV0ZXJNYXBbJyonXVtzdGFja10gPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFwYXJhbWV0ZXJNYXBbc3RhY2tdKSB7XG4gICAgICAgIHBhcmFtZXRlck1hcFtzdGFja10gPSB7fTtcbiAgICAgIH1cbiAgICAgIHBhcmFtZXRlck1hcFtzdGFja11bcGFyYW1ldGVyXSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwYXJhbWV0ZXJNYXA7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBhc3NldCBwdWJsaXNoaW5nIGFuZCBidWlsZGluZyBmcm9tIHRoZSB3b3JrIGdyYXBoIGZvciBhc3NldHMgdGhhdCBhcmUgYWxyZWFkeSBpbiBwbGFjZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVtb3ZlUHVibGlzaGVkQXNzZXRzRnJvbVdvcmtHcmFwaChncmFwaDogV29ya0dyYXBoLCBkZXBsb3ltZW50czogRGVwbG95bWVudHMsIG9wdGlvbnM6IERlcGxveU9wdGlvbnMpIHtcbiAgYXdhaXQgZ3JhcGgucmVtb3ZlVW5uZWNlc3NhcnlBc3NldHMoYXNzZXROb2RlID0+IGRlcGxveW1lbnRzLmlzU2luZ2xlQXNzZXRQdWJsaXNoZWQoYXNzZXROb2RlLmFzc2V0TWFuaWZlc3QsIGFzc2V0Tm9kZS5hc3NldCwge1xuICAgIHN0YWNrOiBhc3NldE5vZGUucGFyZW50U3RhY2ssXG4gICAgcm9sZUFybjogb3B0aW9ucy5yb2xlQXJuLFxuICAgIHN0YWNrTmFtZTogYXNzZXROb2RlLnBhcmVudFN0YWNrLnN0YWNrTmFtZSxcbiAgfSkpO1xufVxuIl19