@aws-cdk/toolkit-lib 0.1.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.
- package/LICENSE +202 -0
- package/NOTICE +16 -0
- package/README.md +432 -0
- package/build-info.json +4 -0
- package/db.json.gz +0 -0
- package/lib/actions/deploy/index.d.ts +178 -0
- package/lib/actions/deploy/index.js +78 -0
- package/lib/actions/deploy/private/deploy-options.d.ts +78 -0
- package/lib/actions/deploy/private/deploy-options.js +3 -0
- package/lib/actions/deploy/private/helpers.d.ts +15 -0
- package/lib/actions/deploy/private/helpers.js +41 -0
- package/lib/actions/deploy/private/index.d.ts +2 -0
- package/lib/actions/deploy/private/index.js +19 -0
- package/lib/actions/destroy/index.d.ts +17 -0
- package/lib/actions/destroy/index.js +3 -0
- package/lib/actions/diff/index.d.ts +83 -0
- package/lib/actions/diff/index.js +45 -0
- package/lib/actions/diff/private/helpers.d.ts +7 -0
- package/lib/actions/diff/private/helpers.js +20 -0
- package/lib/actions/diff/private/index.d.ts +1 -0
- package/lib/actions/diff/private/index.js +18 -0
- package/lib/actions/import/index.d.ts +21 -0
- package/lib/actions/import/index.js +3 -0
- package/lib/actions/index.d.ts +6 -0
- package/lib/actions/index.js +23 -0
- package/lib/actions/list/index.d.ts +7 -0
- package/lib/actions/list/index.js +3 -0
- package/lib/actions/rollback/index.d.ts +39 -0
- package/lib/actions/rollback/index.js +3 -0
- package/lib/actions/synth/index.d.ts +12 -0
- package/lib/actions/synth/index.js +3 -0
- package/lib/actions/watch/index.d.ts +35 -0
- package/lib/actions/watch/index.js +3 -0
- package/lib/actions/watch/private/helpers.d.ts +4 -0
- package/lib/actions/watch/private/helpers.js +8 -0
- package/lib/actions/watch/private/index.d.ts +1 -0
- package/lib/actions/watch/private/index.js +18 -0
- package/lib/api/aws-auth/index.d.ts +1 -0
- package/lib/api/aws-auth/index.js +18 -0
- package/lib/api/aws-auth/types.d.ts +32 -0
- package/lib/api/aws-auth/types.js +3 -0
- package/lib/api/aws-cdk.d.ts +25 -0
- package/lib/api/aws-cdk.js +9329 -0
- package/lib/api/aws-cdk.js.map +7 -0
- package/lib/api/cloud-assembly/index.d.ts +3 -0
- package/lib/api/cloud-assembly/index.js +20 -0
- package/lib/api/cloud-assembly/private/cached-source.d.ts +15 -0
- package/lib/api/cloud-assembly/private/cached-source.js +25 -0
- package/lib/api/cloud-assembly/private/context-aware-source.d.ts +45 -0
- package/lib/api/cloud-assembly/private/context-aware-source.js +89 -0
- package/lib/api/cloud-assembly/private/exec.d.ts +13 -0
- package/lib/api/cloud-assembly/private/exec.js +56 -0
- package/lib/api/cloud-assembly/private/identity-source.d.ts +10 -0
- package/lib/api/cloud-assembly/private/identity-source.js +17 -0
- package/lib/api/cloud-assembly/private/index.d.ts +8 -0
- package/lib/api/cloud-assembly/private/index.js +25 -0
- package/lib/api/cloud-assembly/private/prepare-source.d.ts +52 -0
- package/lib/api/cloud-assembly/private/prepare-source.js +166 -0
- package/lib/api/cloud-assembly/private/source-builder.d.ts +29 -0
- package/lib/api/cloud-assembly/private/source-builder.js +121 -0
- package/lib/api/cloud-assembly/private/stack-assembly.d.ts +30 -0
- package/lib/api/cloud-assembly/private/stack-assembly.js +94 -0
- package/lib/api/cloud-assembly/private/stack-selectors.d.ts +2 -0
- package/lib/api/cloud-assembly/private/stack-selectors.js +8 -0
- package/lib/api/cloud-assembly/source-builder.d.ts +113 -0
- package/lib/api/cloud-assembly/source-builder.js +3 -0
- package/lib/api/cloud-assembly/stack-selector.d.ts +81 -0
- package/lib/api/cloud-assembly/stack-selector.js +64 -0
- package/lib/api/cloud-assembly/types.d.ts +7 -0
- package/lib/api/cloud-assembly/types.js +3 -0
- package/lib/api/errors.d.ts +44 -0
- package/lib/api/errors.js +82 -0
- package/lib/api/io/index.d.ts +2 -0
- package/lib/api/io/index.js +19 -0
- package/lib/api/io/io-host.d.ts +15 -0
- package/lib/api/io/io-host.js +3 -0
- package/lib/api/io/io-message.d.ts +59 -0
- package/lib/api/io/io-message.js +3 -0
- package/lib/api/io/private/codes.d.ts +37 -0
- package/lib/api/io/private/codes.js +48 -0
- package/lib/api/io/private/index.d.ts +6 -0
- package/lib/api/io/private/index.js +23 -0
- package/lib/api/io/private/level-priority.d.ts +11 -0
- package/lib/api/io/private/level-priority.js +33 -0
- package/lib/api/io/private/logger.d.ts +40 -0
- package/lib/api/io/private/logger.js +211 -0
- package/lib/api/io/private/messages.d.ts +64 -0
- package/lib/api/io/private/messages.js +159 -0
- package/lib/api/io/private/timer.d.ts +29 -0
- package/lib/api/io/private/timer.js +54 -0
- package/lib/api/io/private/types.d.ts +25 -0
- package/lib/api/io/private/types.js +3 -0
- package/lib/index.d.ts +6 -0
- package/lib/index.js +25 -0
- package/lib/index_bg.wasm +0 -0
- package/lib/toolkit/index.d.ts +1 -0
- package/lib/toolkit/index.js +18 -0
- package/lib/toolkit/private/index.d.ts +9 -0
- package/lib/toolkit/private/index.js +3 -0
- package/lib/toolkit/toolkit.d.ts +142 -0
- package/lib/toolkit/toolkit.js +644 -0
- package/package.json +147 -0
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import type { BaseDeployOptions } from './private/deploy-options';
|
|
2
|
+
import type { StackActivityProgress, Tag } from '../../api/aws-cdk';
|
|
3
|
+
export type DeploymentMethod = DirectDeploymentMethod | ChangeSetDeploymentMethod;
|
|
4
|
+
export interface DirectDeploymentMethod {
|
|
5
|
+
/**
|
|
6
|
+
* Use stack APIs to the deploy stack changes
|
|
7
|
+
*/
|
|
8
|
+
readonly method: 'direct';
|
|
9
|
+
}
|
|
10
|
+
export interface ChangeSetDeploymentMethod {
|
|
11
|
+
/**
|
|
12
|
+
* Use change-set APIS to deploy a stack changes
|
|
13
|
+
*/
|
|
14
|
+
readonly method: 'change-set';
|
|
15
|
+
/**
|
|
16
|
+
* Whether to execute the changeset or leave it in review.
|
|
17
|
+
*
|
|
18
|
+
* @default true
|
|
19
|
+
*/
|
|
20
|
+
readonly execute?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Optional name to use for the CloudFormation change set.
|
|
23
|
+
* If not provided, a name will be generated automatically.
|
|
24
|
+
*/
|
|
25
|
+
readonly changeSetName?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* When to build assets
|
|
29
|
+
*/
|
|
30
|
+
export declare enum AssetBuildTime {
|
|
31
|
+
/**
|
|
32
|
+
* Build all assets before deploying the first stack
|
|
33
|
+
*
|
|
34
|
+
* This is intended for expensive Docker image builds; so that if the Docker image build
|
|
35
|
+
* fails, no stacks are unnecessarily deployed (with the attendant wait time).
|
|
36
|
+
*/
|
|
37
|
+
ALL_BEFORE_DEPLOY = "all-before-deploy",
|
|
38
|
+
/**
|
|
39
|
+
* Build assets just-in-time, before publishing
|
|
40
|
+
*/
|
|
41
|
+
JUST_IN_TIME = "just-in-time"
|
|
42
|
+
}
|
|
43
|
+
export declare enum RequireApproval {
|
|
44
|
+
/**
|
|
45
|
+
* Never require any security approvals
|
|
46
|
+
*/
|
|
47
|
+
NEVER = "never",
|
|
48
|
+
/**
|
|
49
|
+
* Any security changes require an approval
|
|
50
|
+
*/
|
|
51
|
+
ANY_CHANGE = "any-change",
|
|
52
|
+
/**
|
|
53
|
+
* Require approval only for changes that are access broadening
|
|
54
|
+
*/
|
|
55
|
+
BROADENING = "broadening"
|
|
56
|
+
}
|
|
57
|
+
export declare enum HotswapMode {
|
|
58
|
+
/**
|
|
59
|
+
* Will fall back to CloudFormation when a non-hotswappable change is detected
|
|
60
|
+
*/
|
|
61
|
+
FALL_BACK = "fall-back",
|
|
62
|
+
/**
|
|
63
|
+
* Will not fall back to CloudFormation when a non-hotswappable change is detected
|
|
64
|
+
*/
|
|
65
|
+
HOTSWAP_ONLY = "hotswap-only",
|
|
66
|
+
/**
|
|
67
|
+
* Will not attempt to hotswap anything and instead go straight to CloudFormation
|
|
68
|
+
*/
|
|
69
|
+
FULL_DEPLOYMENT = "full-deployment"
|
|
70
|
+
}
|
|
71
|
+
export declare class StackParameters {
|
|
72
|
+
/**
|
|
73
|
+
* Use only existing parameters on the stack.
|
|
74
|
+
*/
|
|
75
|
+
static onlyExisting(): StackParameters;
|
|
76
|
+
/**
|
|
77
|
+
* Use exactly these parameters and remove any other existing parameters from the stack.
|
|
78
|
+
*/
|
|
79
|
+
static exactly(params: {
|
|
80
|
+
[name: string]: string | undefined;
|
|
81
|
+
}): StackParameters;
|
|
82
|
+
/**
|
|
83
|
+
* Define additional parameters for the stack, while keeping existing parameters for unspecified values.
|
|
84
|
+
*/
|
|
85
|
+
static withExisting(params: {
|
|
86
|
+
[name: string]: string | undefined;
|
|
87
|
+
}): StackParameters;
|
|
88
|
+
readonly parameters: Map<string, string | undefined>;
|
|
89
|
+
readonly keepExistingParameters: boolean;
|
|
90
|
+
private constructor();
|
|
91
|
+
}
|
|
92
|
+
export interface DeployOptions extends BaseDeployOptions {
|
|
93
|
+
/**
|
|
94
|
+
* ARNs of SNS topics that CloudFormation will notify with stack related events
|
|
95
|
+
*/
|
|
96
|
+
readonly notificationArns?: string[];
|
|
97
|
+
/**
|
|
98
|
+
* Require a confirmation for security relevant changes before continuing with the deployment
|
|
99
|
+
*
|
|
100
|
+
* @default RequireApproval.NEVER
|
|
101
|
+
* @deprecated in future a message containing the full diff will be emitted and a response requested.
|
|
102
|
+
* Approval workflows should be implemented in the `IIoHost`.
|
|
103
|
+
*/
|
|
104
|
+
readonly requireApproval?: RequireApproval;
|
|
105
|
+
/**
|
|
106
|
+
* Tags to pass to CloudFormation for deployment
|
|
107
|
+
*/
|
|
108
|
+
readonly tags?: Tag[];
|
|
109
|
+
/**
|
|
110
|
+
* Stack parameters for CloudFormation used at deploy time
|
|
111
|
+
* @default StackParameters.onlyExisting()
|
|
112
|
+
*/
|
|
113
|
+
readonly parameters?: StackParameters;
|
|
114
|
+
/**
|
|
115
|
+
* Path to file where stack outputs will be written after a successful deploy as JSON
|
|
116
|
+
* @default - Outputs are not written to any file
|
|
117
|
+
*/
|
|
118
|
+
readonly outputsFile?: string;
|
|
119
|
+
/**
|
|
120
|
+
* Build/publish assets for a single stack in parallel
|
|
121
|
+
*
|
|
122
|
+
* Independent of whether stacks are being done in parallel or no.
|
|
123
|
+
*
|
|
124
|
+
* @default true
|
|
125
|
+
*/
|
|
126
|
+
readonly assetParallelism?: boolean;
|
|
127
|
+
/**
|
|
128
|
+
* When to build assets
|
|
129
|
+
*
|
|
130
|
+
* The default is the Docker-friendly default.
|
|
131
|
+
*
|
|
132
|
+
* @default AssetBuildTime.ALL_BEFORE_DEPLOY
|
|
133
|
+
*/
|
|
134
|
+
readonly assetBuildTime?: AssetBuildTime;
|
|
135
|
+
/**
|
|
136
|
+
* Change stack watcher output to CI mode.
|
|
137
|
+
*
|
|
138
|
+
* @deprecated Implement in IoHost instead
|
|
139
|
+
*/
|
|
140
|
+
readonly ci?: boolean;
|
|
141
|
+
/**
|
|
142
|
+
* Display mode for stack deployment progress.
|
|
143
|
+
*
|
|
144
|
+
* @deprecated Implement in IoHost instead
|
|
145
|
+
*/
|
|
146
|
+
readonly progress?: StackActivityProgress;
|
|
147
|
+
/**
|
|
148
|
+
* Represents configuration property overrides for hotswap deployments.
|
|
149
|
+
* Currently only supported by ECS.
|
|
150
|
+
*
|
|
151
|
+
* @default - no overrides
|
|
152
|
+
*/
|
|
153
|
+
readonly hotswapProperties?: HotswapProperties;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Property overrides for ECS hotswaps
|
|
157
|
+
*/
|
|
158
|
+
export interface EcsHotswapProperties {
|
|
159
|
+
/**
|
|
160
|
+
* The lower limit on the number of your service's tasks that must remain
|
|
161
|
+
* in the RUNNING state during a deployment, as a percentage of the desiredCount.
|
|
162
|
+
*/
|
|
163
|
+
readonly minimumHealthyPercent: number;
|
|
164
|
+
/**
|
|
165
|
+
* The upper limit on the number of your service's tasks that are allowed
|
|
166
|
+
* in the RUNNING or PENDING state during a deployment, as a percentage of the desiredCount.
|
|
167
|
+
*/
|
|
168
|
+
readonly maximumHealthyPercent: number;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Property overrides for hotswap deployments.
|
|
172
|
+
*/
|
|
173
|
+
export interface HotswapProperties {
|
|
174
|
+
/**
|
|
175
|
+
* ECS specific hotswap property overrides
|
|
176
|
+
*/
|
|
177
|
+
readonly ecs: EcsHotswapProperties;
|
|
178
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StackParameters = exports.HotswapMode = exports.RequireApproval = exports.AssetBuildTime = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* When to build assets
|
|
6
|
+
*/
|
|
7
|
+
var AssetBuildTime;
|
|
8
|
+
(function (AssetBuildTime) {
|
|
9
|
+
/**
|
|
10
|
+
* Build all assets before deploying the first stack
|
|
11
|
+
*
|
|
12
|
+
* This is intended for expensive Docker image builds; so that if the Docker image build
|
|
13
|
+
* fails, no stacks are unnecessarily deployed (with the attendant wait time).
|
|
14
|
+
*/
|
|
15
|
+
AssetBuildTime["ALL_BEFORE_DEPLOY"] = "all-before-deploy";
|
|
16
|
+
/**
|
|
17
|
+
* Build assets just-in-time, before publishing
|
|
18
|
+
*/
|
|
19
|
+
AssetBuildTime["JUST_IN_TIME"] = "just-in-time";
|
|
20
|
+
})(AssetBuildTime || (exports.AssetBuildTime = AssetBuildTime = {}));
|
|
21
|
+
var RequireApproval;
|
|
22
|
+
(function (RequireApproval) {
|
|
23
|
+
/**
|
|
24
|
+
* Never require any security approvals
|
|
25
|
+
*/
|
|
26
|
+
RequireApproval["NEVER"] = "never";
|
|
27
|
+
/**
|
|
28
|
+
* Any security changes require an approval
|
|
29
|
+
*/
|
|
30
|
+
RequireApproval["ANY_CHANGE"] = "any-change";
|
|
31
|
+
/**
|
|
32
|
+
* Require approval only for changes that are access broadening
|
|
33
|
+
*/
|
|
34
|
+
RequireApproval["BROADENING"] = "broadening";
|
|
35
|
+
})(RequireApproval || (exports.RequireApproval = RequireApproval = {}));
|
|
36
|
+
var HotswapMode;
|
|
37
|
+
(function (HotswapMode) {
|
|
38
|
+
/**
|
|
39
|
+
* Will fall back to CloudFormation when a non-hotswappable change is detected
|
|
40
|
+
*/
|
|
41
|
+
HotswapMode["FALL_BACK"] = "fall-back";
|
|
42
|
+
/**
|
|
43
|
+
* Will not fall back to CloudFormation when a non-hotswappable change is detected
|
|
44
|
+
*/
|
|
45
|
+
HotswapMode["HOTSWAP_ONLY"] = "hotswap-only";
|
|
46
|
+
/**
|
|
47
|
+
* Will not attempt to hotswap anything and instead go straight to CloudFormation
|
|
48
|
+
*/
|
|
49
|
+
HotswapMode["FULL_DEPLOYMENT"] = "full-deployment";
|
|
50
|
+
})(HotswapMode || (exports.HotswapMode = HotswapMode = {}));
|
|
51
|
+
class StackParameters {
|
|
52
|
+
/**
|
|
53
|
+
* Use only existing parameters on the stack.
|
|
54
|
+
*/
|
|
55
|
+
static onlyExisting() {
|
|
56
|
+
return new StackParameters({}, true);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Use exactly these parameters and remove any other existing parameters from the stack.
|
|
60
|
+
*/
|
|
61
|
+
static exactly(params) {
|
|
62
|
+
return new StackParameters(params, false);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Define additional parameters for the stack, while keeping existing parameters for unspecified values.
|
|
66
|
+
*/
|
|
67
|
+
static withExisting(params) {
|
|
68
|
+
return new StackParameters(params, true);
|
|
69
|
+
}
|
|
70
|
+
parameters;
|
|
71
|
+
keepExistingParameters;
|
|
72
|
+
constructor(params, usePreviousParameters = true) {
|
|
73
|
+
this.keepExistingParameters = usePreviousParameters;
|
|
74
|
+
this.parameters = new Map(Object.entries(params));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.StackParameters = StackParameters;
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFnQ0E7O0dBRUc7QUFDSCxJQUFZLGNBYVg7QUFiRCxXQUFZLGNBQWM7SUFDeEI7Ozs7O09BS0c7SUFDSCx5REFBdUMsQ0FBQTtJQUV2Qzs7T0FFRztJQUNILCtDQUE2QixDQUFBO0FBQy9CLENBQUMsRUFiVyxjQUFjLDhCQUFkLGNBQWMsUUFhekI7QUFFRCxJQUFZLGVBYVg7QUFiRCxXQUFZLGVBQWU7SUFDekI7O09BRUc7SUFDSCxrQ0FBZSxDQUFBO0lBQ2Y7O09BRUc7SUFDSCw0Q0FBeUIsQ0FBQTtJQUN6Qjs7T0FFRztJQUNILDRDQUF5QixDQUFBO0FBQzNCLENBQUMsRUFiVyxlQUFlLCtCQUFmLGVBQWUsUUFhMUI7QUFFRCxJQUFZLFdBZVg7QUFmRCxXQUFZLFdBQVc7SUFDckI7O09BRUc7SUFDSCxzQ0FBdUIsQ0FBQTtJQUV2Qjs7T0FFRztJQUNILDRDQUE2QixDQUFBO0lBRTdCOztPQUVHO0lBQ0gsa0RBQW1DLENBQUE7QUFDckMsQ0FBQyxFQWZXLFdBQVcsMkJBQVgsV0FBVyxRQWV0QjtBQUVELE1BQWEsZUFBZTtJQUMxQjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxZQUFZO1FBQ3hCLE9BQU8sSUFBSSxlQUFlLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBOEM7UUFDbEUsT0FBTyxJQUFJLGVBQWUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUE4QztRQUN2RSxPQUFPLElBQUksZUFBZSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRWUsVUFBVSxDQUFrQztJQUM1QyxzQkFBc0IsQ0FBVTtJQUVoRCxZQUFvQixNQUE4QyxFQUFFLHFCQUFxQixHQUFHLElBQUk7UUFDOUYsSUFBSSxDQUFDLHNCQUFzQixHQUFHLHFCQUFxQixDQUFDO1FBQ3BELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7Q0FDRjtBQTdCRCwwQ0E2QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJhc2VEZXBsb3lPcHRpb25zIH0gZnJvbSAnLi9wcml2YXRlL2RlcGxveS1vcHRpb25zJztcbmltcG9ydCB0eXBlIHsgU3RhY2tBY3Rpdml0eVByb2dyZXNzLCBUYWcgfSBmcm9tICcuLi8uLi9hcGkvYXdzLWNkayc7XG5cbmV4cG9ydCB0eXBlIERlcGxveW1lbnRNZXRob2QgPSBEaXJlY3REZXBsb3ltZW50TWV0aG9kIHwgQ2hhbmdlU2V0RGVwbG95bWVudE1ldGhvZDtcblxuZXhwb3J0IGludGVyZmFjZSBEaXJlY3REZXBsb3ltZW50TWV0aG9kIHtcbiAgLyoqXG4gICAqIFVzZSBzdGFjayBBUElzIHRvIHRoZSBkZXBsb3kgc3RhY2sgY2hhbmdlc1xuICAgKi9cbiAgcmVhZG9ubHkgbWV0aG9kOiAnZGlyZWN0Jztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VTZXREZXBsb3ltZW50TWV0aG9kIHtcbiAgLyoqXG4gICAqIFVzZSBjaGFuZ2Utc2V0IEFQSVMgdG8gZGVwbG95IGEgc3RhY2sgY2hhbmdlc1xuICAgKi9cbiAgcmVhZG9ubHkgbWV0aG9kOiAnY2hhbmdlLXNldCc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZXhlY3V0ZSB0aGUgY2hhbmdlc2V0IG9yIGxlYXZlIGl0IGluIHJldmlldy5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhlY3V0ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIG5hbWUgdG8gdXNlIGZvciB0aGUgQ2xvdWRGb3JtYXRpb24gY2hhbmdlIHNldC5cbiAgICogSWYgbm90IHByb3ZpZGVkLCBhIG5hbWUgd2lsbCBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseS5cbiAgICovXG4gIHJlYWRvbmx5IGNoYW5nZVNldE5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogV2hlbiB0byBidWlsZCBhc3NldHNcbiAqL1xuZXhwb3J0IGVudW0gQXNzZXRCdWlsZFRpbWUge1xuICAvKipcbiAgICogQnVpbGQgYWxsIGFzc2V0cyBiZWZvcmUgZGVwbG95aW5nIHRoZSBmaXJzdCBzdGFja1xuICAgKlxuICAgKiBUaGlzIGlzIGludGVuZGVkIGZvciBleHBlbnNpdmUgRG9ja2VyIGltYWdlIGJ1aWxkczsgc28gdGhhdCBpZiB0aGUgRG9ja2VyIGltYWdlIGJ1aWxkXG4gICAqIGZhaWxzLCBubyBzdGFja3MgYXJlIHVubmVjZXNzYXJpbHkgZGVwbG95ZWQgKHdpdGggdGhlIGF0dGVuZGFudCB3YWl0IHRpbWUpLlxuICAgKi9cbiAgQUxMX0JFRk9SRV9ERVBMT1kgPSAnYWxsLWJlZm9yZS1kZXBsb3knLFxuXG4gIC8qKlxuICAgKiBCdWlsZCBhc3NldHMganVzdC1pbi10aW1lLCBiZWZvcmUgcHVibGlzaGluZ1xuICAgKi9cbiAgSlVTVF9JTl9USU1FID0gJ2p1c3QtaW4tdGltZScsXG59XG5cbmV4cG9ydCBlbnVtIFJlcXVpcmVBcHByb3ZhbCB7XG4gIC8qKlxuICAgKiBOZXZlciByZXF1aXJlIGFueSBzZWN1cml0eSBhcHByb3ZhbHNcbiAgICovXG4gIE5FVkVSID0gJ25ldmVyJyxcbiAgLyoqXG4gICAqIEFueSBzZWN1cml0eSBjaGFuZ2VzIHJlcXVpcmUgYW4gYXBwcm92YWxcbiAgICovXG4gIEFOWV9DSEFOR0UgPSAnYW55LWNoYW5nZScsXG4gIC8qKlxuICAgKiBSZXF1aXJlIGFwcHJvdmFsIG9ubHkgZm9yIGNoYW5nZXMgdGhhdCBhcmUgYWNjZXNzIGJyb2FkZW5pbmdcbiAgICovXG4gIEJST0FERU5JTkcgPSAnYnJvYWRlbmluZycsXG59XG5cbmV4cG9ydCBlbnVtIEhvdHN3YXBNb2RlIHtcbiAgLyoqXG4gICAqIFdpbGwgZmFsbCBiYWNrIHRvIENsb3VkRm9ybWF0aW9uIHdoZW4gYSBub24taG90c3dhcHBhYmxlIGNoYW5nZSBpcyBkZXRlY3RlZFxuICAgKi9cbiAgRkFMTF9CQUNLID0gJ2ZhbGwtYmFjaycsXG5cbiAgLyoqXG4gICAqIFdpbGwgbm90IGZhbGwgYmFjayB0byBDbG91ZEZvcm1hdGlvbiB3aGVuIGEgbm9uLWhvdHN3YXBwYWJsZSBjaGFuZ2UgaXMgZGV0ZWN0ZWRcbiAgICovXG4gIEhPVFNXQVBfT05MWSA9ICdob3Rzd2FwLW9ubHknLFxuXG4gIC8qKlxuICAgKiBXaWxsIG5vdCBhdHRlbXB0IHRvIGhvdHN3YXAgYW55dGhpbmcgYW5kIGluc3RlYWQgZ28gc3RyYWlnaHQgdG8gQ2xvdWRGb3JtYXRpb25cbiAgICovXG4gIEZVTExfREVQTE9ZTUVOVCA9ICdmdWxsLWRlcGxveW1lbnQnLFxufVxuXG5leHBvcnQgY2xhc3MgU3RhY2tQYXJhbWV0ZXJzIHtcbiAgLyoqXG4gICAqIFVzZSBvbmx5IGV4aXN0aW5nIHBhcmFtZXRlcnMgb24gdGhlIHN0YWNrLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvbmx5RXhpc3RpbmcoKSB7XG4gICAgcmV0dXJuIG5ldyBTdGFja1BhcmFtZXRlcnMoe30sIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSBleGFjdGx5IHRoZXNlIHBhcmFtZXRlcnMgYW5kIHJlbW92ZSBhbnkgb3RoZXIgZXhpc3RpbmcgcGFyYW1ldGVycyBmcm9tIHRoZSBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZXhhY3RseShwYXJhbXM6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9KSB7XG4gICAgcmV0dXJuIG5ldyBTdGFja1BhcmFtZXRlcnMocGFyYW1zLCBmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIGFkZGl0aW9uYWwgcGFyYW1ldGVycyBmb3IgdGhlIHN0YWNrLCB3aGlsZSBrZWVwaW5nIGV4aXN0aW5nIHBhcmFtZXRlcnMgZm9yIHVuc3BlY2lmaWVkIHZhbHVlcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2l0aEV4aXN0aW5nKHBhcmFtczogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH0pIHtcbiAgICByZXR1cm4gbmV3IFN0YWNrUGFyYW1ldGVycyhwYXJhbXMsIHRydWUpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHBhcmFtZXRlcnM6IE1hcDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD47XG4gIHB1YmxpYyByZWFkb25seSBrZWVwRXhpc3RpbmdQYXJhbWV0ZXJzOiBib29sZWFuO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocGFyYW1zOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSwgdXNlUHJldmlvdXNQYXJhbWV0ZXJzID0gdHJ1ZSkge1xuICAgIHRoaXMua2VlcEV4aXN0aW5nUGFyYW1ldGVycyA9IHVzZVByZXZpb3VzUGFyYW1ldGVycztcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSBuZXcgTWFwKE9iamVjdC5lbnRyaWVzKHBhcmFtcykpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95T3B0aW9ucyBleHRlbmRzIEJhc2VEZXBsb3lPcHRpb25zIHtcbiAgLyoqXG4gICAqIEFSTnMgb2YgU05TIHRvcGljcyB0aGF0IENsb3VkRm9ybWF0aW9uIHdpbGwgbm90aWZ5IHdpdGggc3RhY2sgcmVsYXRlZCBldmVudHNcbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvbkFybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUmVxdWlyZSBhIGNvbmZpcm1hdGlvbiBmb3Igc2VjdXJpdHkgcmVsZXZhbnQgY2hhbmdlcyBiZWZvcmUgY29udGludWluZyB3aXRoIHRoZSBkZXBsb3ltZW50XG4gICAqXG4gICAqIEBkZWZhdWx0IFJlcXVpcmVBcHByb3ZhbC5ORVZFUlxuICAgKiBAZGVwcmVjYXRlZCBpbiBmdXR1cmUgYSBtZXNzYWdlIGNvbnRhaW5pbmcgdGhlIGZ1bGwgZGlmZiB3aWxsIGJlIGVtaXR0ZWQgYW5kIGEgcmVzcG9uc2UgcmVxdWVzdGVkLlxuICAgKiBBcHByb3ZhbCB3b3JrZmxvd3Mgc2hvdWxkIGJlIGltcGxlbWVudGVkIGluIHRoZSBgSUlvSG9zdGAuXG4gICAqL1xuICByZWFkb25seSByZXF1aXJlQXBwcm92YWw/OiBSZXF1aXJlQXBwcm92YWw7XG5cbiAgLyoqXG4gICAqIFRhZ3MgdG8gcGFzcyB0byBDbG91ZEZvcm1hdGlvbiBmb3IgZGVwbG95bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IFRhZ1tdO1xuXG4gIC8qKlxuICAgKiBTdGFjayBwYXJhbWV0ZXJzIGZvciBDbG91ZEZvcm1hdGlvbiB1c2VkIGF0IGRlcGxveSB0aW1lXG4gICAqIEBkZWZhdWx0IFN0YWNrUGFyYW1ldGVycy5vbmx5RXhpc3RpbmcoKVxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVycz86IFN0YWNrUGFyYW1ldGVycztcblxuICAvKipcbiAgICogUGF0aCB0byBmaWxlIHdoZXJlIHN0YWNrIG91dHB1dHMgd2lsbCBiZSB3cml0dGVuIGFmdGVyIGEgc3VjY2Vzc2Z1bCBkZXBsb3kgYXMgSlNPTlxuICAgKiBAZGVmYXVsdCAtIE91dHB1dHMgYXJlIG5vdCB3cml0dGVuIHRvIGFueSBmaWxlXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRzRmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogQnVpbGQvcHVibGlzaCBhc3NldHMgZm9yIGEgc2luZ2xlIHN0YWNrIGluIHBhcmFsbGVsXG4gICAqXG4gICAqIEluZGVwZW5kZW50IG9mIHdoZXRoZXIgc3RhY2tzIGFyZSBiZWluZyBkb25lIGluIHBhcmFsbGVsIG9yIG5vLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhc3NldFBhcmFsbGVsaXNtPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hlbiB0byBidWlsZCBhc3NldHNcbiAgICpcbiAgICogVGhlIGRlZmF1bHQgaXMgdGhlIERvY2tlci1mcmllbmRseSBkZWZhdWx0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBBc3NldEJ1aWxkVGltZS5BTExfQkVGT1JFX0RFUExPWVxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRCdWlsZFRpbWU/OiBBc3NldEJ1aWxkVGltZTtcblxuICAvKipcbiAgICogQ2hhbmdlIHN0YWNrIHdhdGNoZXIgb3V0cHV0IHRvIENJIG1vZGUuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIEltcGxlbWVudCBpbiBJb0hvc3QgaW5zdGVhZFxuICAgKi9cbiAgcmVhZG9ubHkgY2k/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEaXNwbGF5IG1vZGUgZm9yIHN0YWNrIGRlcGxveW1lbnQgcHJvZ3Jlc3MuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIEltcGxlbWVudCBpbiBJb0hvc3QgaW5zdGVhZFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZ3Jlc3M/OiBTdGFja0FjdGl2aXR5UHJvZ3Jlc3M7XG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgY29uZmlndXJhdGlvbiBwcm9wZXJ0eSBvdmVycmlkZXMgZm9yIGhvdHN3YXAgZGVwbG95bWVudHMuXG4gICAqIEN1cnJlbnRseSBvbmx5IHN1cHBvcnRlZCBieSBFQ1MuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gb3ZlcnJpZGVzXG4gICAqL1xuICByZWFkb25seSBob3Rzd2FwUHJvcGVydGllcz86IEhvdHN3YXBQcm9wZXJ0aWVzO1xufVxuXG4vKipcbiAqIFByb3BlcnR5IG92ZXJyaWRlcyBmb3IgRUNTIGhvdHN3YXBzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWNzSG90c3dhcFByb3BlcnRpZXMge1xuICAvKipcbiAgICogVGhlIGxvd2VyIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgeW91ciBzZXJ2aWNlJ3MgdGFza3MgdGhhdCBtdXN0IHJlbWFpblxuICAgKiBpbiB0aGUgUlVOTklORyBzdGF0ZSBkdXJpbmcgYSBkZXBsb3ltZW50LCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIGRlc2lyZWRDb3VudC5cbiAgICovXG4gIHJlYWRvbmx5IG1pbmltdW1IZWFsdGh5UGVyY2VudDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdXBwZXIgbGltaXQgb24gdGhlIG51bWJlciBvZiB5b3VyIHNlcnZpY2UncyB0YXNrcyB0aGF0IGFyZSBhbGxvd2VkXG4gICAqIGluIHRoZSBSVU5OSU5HIG9yIFBFTkRJTkcgc3RhdGUgZHVyaW5nIGEgZGVwbG95bWVudCwgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBkZXNpcmVkQ291bnQuXG4gICAqL1xuICByZWFkb25seSBtYXhpbXVtSGVhbHRoeVBlcmNlbnQ6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0eSBvdmVycmlkZXMgZm9yIGhvdHN3YXAgZGVwbG95bWVudHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSG90c3dhcFByb3BlcnRpZXMge1xuICAvKipcbiAgICogRUNTIHNwZWNpZmljIGhvdHN3YXAgcHJvcGVydHkgb3ZlcnJpZGVzXG4gICAqL1xuICByZWFkb25seSBlY3M6IEVjc0hvdHN3YXBQcm9wZXJ0aWVzO1xufVxuIl19
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { DeploymentMethod, DeployOptions, HotswapMode } from '..';
|
|
2
|
+
import type { CloudWatchLogEventMonitor } from '../../../api/aws-cdk';
|
|
3
|
+
import type { StackSelector } from '../../../api/cloud-assembly';
|
|
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
|
+
* Always deploy, even if templates are identical.
|
|
17
|
+
*
|
|
18
|
+
* @default false
|
|
19
|
+
* @deprecated the options currently covers multiple different functionalities and will be split out in future
|
|
20
|
+
*/
|
|
21
|
+
readonly force?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Deployment method
|
|
24
|
+
*/
|
|
25
|
+
readonly deploymentMethod?: DeploymentMethod;
|
|
26
|
+
/**
|
|
27
|
+
* Whether to perform a 'hotswap' deployment.
|
|
28
|
+
* A 'hotswap' deployment will attempt to short-circuit CloudFormation
|
|
29
|
+
* and update the affected resources like Lambda functions directly.
|
|
30
|
+
*
|
|
31
|
+
* @default - no hotswap
|
|
32
|
+
*/
|
|
33
|
+
readonly hotswap?: HotswapMode;
|
|
34
|
+
/**
|
|
35
|
+
* Rollback failed deployments
|
|
36
|
+
*
|
|
37
|
+
* @default true
|
|
38
|
+
*/
|
|
39
|
+
readonly rollback?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Reuse the assets with the given asset IDs
|
|
42
|
+
*/
|
|
43
|
+
readonly reuseAssets?: string[];
|
|
44
|
+
/**
|
|
45
|
+
* Maximum number of simultaneous deployments (dependency permitting) to execute.
|
|
46
|
+
* The default is '1', which executes all deployments serially.
|
|
47
|
+
*
|
|
48
|
+
* @default 1
|
|
49
|
+
*/
|
|
50
|
+
readonly concurrency?: number;
|
|
51
|
+
/**
|
|
52
|
+
* Whether to send logs from all CloudWatch log groups in the template
|
|
53
|
+
* to the IoHost
|
|
54
|
+
*
|
|
55
|
+
* @default - false
|
|
56
|
+
*/
|
|
57
|
+
readonly traceLogs?: boolean;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Deploy options needed by the watch command.
|
|
61
|
+
* Intentionally not exported because these options are not
|
|
62
|
+
* meant to be public facing.
|
|
63
|
+
*/
|
|
64
|
+
export interface ExtendedDeployOptions extends DeployOptions {
|
|
65
|
+
/**
|
|
66
|
+
* The extra string to append to the User-Agent header when performing AWS SDK calls.
|
|
67
|
+
*
|
|
68
|
+
* @default - nothing extra is appended to the User-Agent header
|
|
69
|
+
*/
|
|
70
|
+
readonly extraUserAgent?: string;
|
|
71
|
+
/**
|
|
72
|
+
* Allows adding CloudWatch log groups to the log monitor via
|
|
73
|
+
* cloudWatchLogMonitor.setLogGroups();
|
|
74
|
+
*
|
|
75
|
+
* @default - not monitoring CloudWatch logs
|
|
76
|
+
*/
|
|
77
|
+
readonly cloudWatchLogMonitor?: CloudWatchLogEventMonitor;
|
|
78
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkZXBsb3ktb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVwbG95bWVudE1ldGhvZCwgRGVwbG95T3B0aW9ucywgSG90c3dhcE1vZGUgfSBmcm9tICcuLic7XG5pbXBvcnQgdHlwZSB7IENsb3VkV2F0Y2hMb2dFdmVudE1vbml0b3IgfSBmcm9tICcuLi8uLi8uLi9hcGkvYXdzLWNkayc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrU2VsZWN0b3IgfSBmcm9tICcuLi8uLi8uLi9hcGkvY2xvdWQtYXNzZW1ibHknO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VEZXBsb3lPcHRpb25zIHtcbiAgLyoqXG4gICAqIENyaXRlcmlhIGZvciBzZWxlY3Rpbmcgc3RhY2tzIHRvIGRlcGxveVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGFsbCBzdGFja3NcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrcz86IFN0YWNrU2VsZWN0b3I7XG5cbiAgLyoqXG4gICAqIFJvbGUgdG8gcGFzcyB0byBDbG91ZEZvcm1hdGlvbiBmb3IgZGVwbG95bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogQWx3YXlzIGRlcGxveSwgZXZlbiBpZiB0ZW1wbGF0ZXMgYXJlIGlkZW50aWNhbC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQGRlcHJlY2F0ZWQgdGhlIG9wdGlvbnMgY3VycmVudGx5IGNvdmVycyBtdWx0aXBsZSBkaWZmZXJlbnQgZnVuY3Rpb25hbGl0aWVzIGFuZCB3aWxsIGJlIHNwbGl0IG91dCBpbiBmdXR1cmVcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGVwbG95bWVudCBtZXRob2RcbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveW1lbnRNZXRob2Q/OiBEZXBsb3ltZW50TWV0aG9kO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHBlcmZvcm0gYSAnaG90c3dhcCcgZGVwbG95bWVudC5cbiAgICogQSAnaG90c3dhcCcgZGVwbG95bWVudCB3aWxsIGF0dGVtcHQgdG8gc2hvcnQtY2lyY3VpdCBDbG91ZEZvcm1hdGlvblxuICAgKiBhbmQgdXBkYXRlIHRoZSBhZmZlY3RlZCByZXNvdXJjZXMgbGlrZSBMYW1iZGEgZnVuY3Rpb25zIGRpcmVjdGx5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGhvdHN3YXBcbiAgICovXG4gIHJlYWRvbmx5IGhvdHN3YXA/OiBIb3Rzd2FwTW9kZTtcblxuICAvKipcbiAgICogUm9sbGJhY2sgZmFpbGVkIGRlcGxveW1lbnRzXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJvbGxiYWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUmV1c2UgdGhlIGFzc2V0cyB3aXRoIHRoZSBnaXZlbiBhc3NldCBJRHNcbiAgICovXG4gIHJlYWRvbmx5IHJldXNlQXNzZXRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE1heGltdW0gbnVtYmVyIG9mIHNpbXVsdGFuZW91cyBkZXBsb3ltZW50cyAoZGVwZW5kZW5jeSBwZXJtaXR0aW5nKSB0byBleGVjdXRlLlxuICAgKiBUaGUgZGVmYXVsdCBpcyAnMScsIHdoaWNoIGV4ZWN1dGVzIGFsbCBkZXBsb3ltZW50cyBzZXJpYWxseS5cbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgY29uY3VycmVuY3k/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc2VuZCBsb2dzIGZyb20gYWxsIENsb3VkV2F0Y2ggbG9nIGdyb3VwcyBpbiB0aGUgdGVtcGxhdGVcbiAgICogdG8gdGhlIElvSG9zdFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSB0cmFjZUxvZ3M/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIERlcGxveSBvcHRpb25zIG5lZWRlZCBieSB0aGUgd2F0Y2ggY29tbWFuZC5cbiAqIEludGVudGlvbmFsbHkgbm90IGV4cG9ydGVkIGJlY2F1c2UgdGhlc2Ugb3B0aW9ucyBhcmUgbm90XG4gKiBtZWFudCB0byBiZSBwdWJsaWMgZmFjaW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuZGVkRGVwbG95T3B0aW9ucyBleHRlbmRzIERlcGxveU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGV4dHJhIHN0cmluZyB0byBhcHBlbmQgdG8gdGhlIFVzZXItQWdlbnQgaGVhZGVyIHdoZW4gcGVyZm9ybWluZyBBV1MgU0RLIGNhbGxzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vdGhpbmcgZXh0cmEgaXMgYXBwZW5kZWQgdG8gdGhlIFVzZXItQWdlbnQgaGVhZGVyXG4gICAqL1xuICByZWFkb25seSBleHRyYVVzZXJBZ2VudD86IHN0cmluZztcblxuICAvKipcbiAgICogQWxsb3dzIGFkZGluZyBDbG91ZFdhdGNoIGxvZyBncm91cHMgdG8gdGhlIGxvZyBtb25pdG9yIHZpYVxuICAgKiBjbG91ZFdhdGNoTG9nTW9uaXRvci5zZXRMb2dHcm91cHMoKTtcbiAgICpcbiAgICogQGRlZmF1bHQgLSBub3QgbW9uaXRvcmluZyBDbG91ZFdhdGNoIGxvZ3NcbiAgICovXG4gIHJlYWRvbmx5IGNsb3VkV2F0Y2hMb2dNb25pdG9yPzogQ2xvdWRXYXRjaExvZ0V2ZW50TW9uaXRvcjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DeployOptions, HotswapProperties } from '..';
|
|
2
|
+
import { Deployments, HotswapPropertyOverrides, type WorkGraph } from '../../../api/aws-cdk';
|
|
3
|
+
export declare function buildParameterMap(parameters?: Map<string, string | undefined>): {
|
|
4
|
+
[name: string]: {
|
|
5
|
+
[name: string]: string | undefined;
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Remove the asset publishing and building from the work graph for assets that are already in place
|
|
10
|
+
*/
|
|
11
|
+
export declare function removePublishedAssets(graph: WorkGraph, deployments: Deployments, options: DeployOptions): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Create the HotswapPropertyOverrides class out of the Interface exposed to users
|
|
14
|
+
*/
|
|
15
|
+
export declare function createHotswapPropertyOverrides(hotswapProperties: HotswapProperties): HotswapPropertyOverrides;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildParameterMap = buildParameterMap;
|
|
4
|
+
exports.removePublishedAssets = removePublishedAssets;
|
|
5
|
+
exports.createHotswapPropertyOverrides = createHotswapPropertyOverrides;
|
|
6
|
+
const aws_cdk_1 = require("../../../api/aws-cdk");
|
|
7
|
+
function buildParameterMap(parameters) {
|
|
8
|
+
const parameterMap = {};
|
|
9
|
+
parameterMap['*'] = {};
|
|
10
|
+
const entries = parameters?.entries() ?? [];
|
|
11
|
+
for (const [key, value] of entries) {
|
|
12
|
+
const [stack, parameter] = key.split(':', 2);
|
|
13
|
+
if (!parameter) {
|
|
14
|
+
parameterMap['*'][stack] = value;
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
if (!parameterMap[stack]) {
|
|
18
|
+
parameterMap[stack] = {};
|
|
19
|
+
}
|
|
20
|
+
parameterMap[stack][parameter] = value;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return parameterMap;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Remove the asset publishing and building from the work graph for assets that are already in place
|
|
27
|
+
*/
|
|
28
|
+
async function removePublishedAssets(graph, deployments, options) {
|
|
29
|
+
await graph.removeUnnecessaryAssets(assetNode => deployments.isSingleAssetPublished(assetNode.assetManifest, assetNode.asset, {
|
|
30
|
+
stack: assetNode.parentStack,
|
|
31
|
+
roleArn: options.roleArn,
|
|
32
|
+
stackName: assetNode.parentStack.stackName,
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Create the HotswapPropertyOverrides class out of the Interface exposed to users
|
|
37
|
+
*/
|
|
38
|
+
function createHotswapPropertyOverrides(hotswapProperties) {
|
|
39
|
+
return new aws_cdk_1.HotswapPropertyOverrides(new aws_cdk_1.EcsHotswapProperties(hotswapProperties.ecs.minimumHealthyPercent, hotswapProperties.ecs.maximumHealthyPercent));
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSw4Q0FvQkM7QUFLRCxzREFNQztBQUtELHdFQUtDO0FBM0NELGtEQUFtSDtBQUVuSCxTQUFnQixpQkFBaUIsQ0FBQyxVQUE0QztJQUM1RSxNQUFNLFlBQVksR0FFZCxFQUFFLENBQUM7SUFDUCxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBRXZCLE1BQU0sT0FBTyxHQUFHLFVBQVUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDNUMsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ25DLE1BQU0sQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFpQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNmLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDbkMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDM0IsQ0FBQztZQUNELFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDO0FBRUQ7O0dBRUc7QUFDSSxLQUFLLFVBQVUscUJBQXFCLENBQUMsS0FBZ0IsRUFBRSxXQUF3QixFQUFFLE9BQXNCO0lBQzVHLE1BQU0sS0FBSyxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRTtRQUM1SCxLQUFLLEVBQUUsU0FBUyxDQUFDLFdBQVc7UUFDNUIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1FBQ3hCLFNBQVMsRUFBRSxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVM7S0FDM0MsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQiw4QkFBOEIsQ0FBQyxpQkFBb0M7SUFDakYsT0FBTyxJQUFJLGtDQUF3QixDQUFDLElBQUksOEJBQW9CLENBQzFELGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsRUFDM0MsaUJBQWlCLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUM1QyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVwbG95T3B0aW9ucywgSG90c3dhcFByb3BlcnRpZXMgfSBmcm9tICcuLic7XG5pbXBvcnQgeyBEZXBsb3ltZW50cywgRWNzSG90c3dhcFByb3BlcnRpZXMsIEhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlcywgdHlwZSBXb3JrR3JhcGggfSBmcm9tICcuLi8uLi8uLi9hcGkvYXdzLWNkayc7XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFBhcmFtZXRlck1hcChwYXJhbWV0ZXJzPzogTWFwPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPik6IHsgW25hbWU6IHN0cmluZ106IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9IH0ge1xuICBjb25zdCBwYXJhbWV0ZXJNYXA6IHtcbiAgICBbbmFtZTogc3RyaW5nXTogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH07XG4gIH0gPSB7fTtcbiAgcGFyYW1ldGVyTWFwWycqJ10gPSB7fTtcblxuICBjb25zdCBlbnRyaWVzID0gcGFyYW1ldGVycz8uZW50cmllcygpID8/IFtdO1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBlbnRyaWVzKSB7XG4gICAgY29uc3QgW3N0YWNrLCBwYXJhbWV0ZXJdID0ga2V5LnNwbGl0KCc6JywgMikgYXMgW3N0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkXTtcbiAgICBpZiAoIXBhcmFtZXRlcikge1xuICAgICAgcGFyYW1ldGVyTWFwWycqJ11bc3RhY2tdID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghcGFyYW1ldGVyTWFwW3N0YWNrXSkge1xuICAgICAgICBwYXJhbWV0ZXJNYXBbc3RhY2tdID0ge307XG4gICAgICB9XG4gICAgICBwYXJhbWV0ZXJNYXBbc3RhY2tdW3BhcmFtZXRlcl0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcGFyYW1ldGVyTWFwO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgYXNzZXQgcHVibGlzaGluZyBhbmQgYnVpbGRpbmcgZnJvbSB0aGUgd29yayBncmFwaCBmb3IgYXNzZXRzIHRoYXQgYXJlIGFscmVhZHkgaW4gcGxhY2VcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbW92ZVB1Ymxpc2hlZEFzc2V0cyhncmFwaDogV29ya0dyYXBoLCBkZXBsb3ltZW50czogRGVwbG95bWVudHMsIG9wdGlvbnM6IERlcGxveU9wdGlvbnMpIHtcbiAgYXdhaXQgZ3JhcGgucmVtb3ZlVW5uZWNlc3NhcnlBc3NldHMoYXNzZXROb2RlID0+IGRlcGxveW1lbnRzLmlzU2luZ2xlQXNzZXRQdWJsaXNoZWQoYXNzZXROb2RlLmFzc2V0TWFuaWZlc3QsIGFzc2V0Tm9kZS5hc3NldCwge1xuICAgIHN0YWNrOiBhc3NldE5vZGUucGFyZW50U3RhY2ssXG4gICAgcm9sZUFybjogb3B0aW9ucy5yb2xlQXJuLFxuICAgIHN0YWNrTmFtZTogYXNzZXROb2RlLnBhcmVudFN0YWNrLnN0YWNrTmFtZSxcbiAgfSkpO1xufVxuXG4vKipcbiAqIENyZWF0ZSB0aGUgSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzIGNsYXNzIG91dCBvZiB0aGUgSW50ZXJmYWNlIGV4cG9zZWQgdG8gdXNlcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlcyhob3Rzd2FwUHJvcGVydGllczogSG90c3dhcFByb3BlcnRpZXMpOiBIb3Rzd2FwUHJvcGVydHlPdmVycmlkZXMge1xuICByZXR1cm4gbmV3IEhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlcyhuZXcgRWNzSG90c3dhcFByb3BlcnRpZXMoXG4gICAgaG90c3dhcFByb3BlcnRpZXMuZWNzLm1pbmltdW1IZWFsdGh5UGVyY2VudCxcbiAgICBob3Rzd2FwUHJvcGVydGllcy5lY3MubWF4aW11bUhlYWx0aHlQZXJjZW50LFxuICApKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./deploy-options"), exports);
|
|
18
|
+
__exportStar(require("./helpers"), exports);
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBQWlDO0FBQ2pDLDRDQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGVwbG95LW9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzJztcblxuIl19
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { StackSelector } from '../../api/cloud-assembly';
|
|
2
|
+
export interface DestroyOptions {
|
|
3
|
+
/**
|
|
4
|
+
* Criteria for selecting stacks to deploy
|
|
5
|
+
*/
|
|
6
|
+
readonly stacks: StackSelector;
|
|
7
|
+
/**
|
|
8
|
+
* The arn of the IAM role to use
|
|
9
|
+
*/
|
|
10
|
+
readonly roleArn?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Change stack watcher output to CI mode.
|
|
13
|
+
*
|
|
14
|
+
* @deprecated Implement in IoHost instead
|
|
15
|
+
*/
|
|
16
|
+
readonly ci?: boolean;
|
|
17
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBEZXN0cm95T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBDcml0ZXJpYSBmb3Igc2VsZWN0aW5nIHN0YWNrcyB0byBkZXBsb3lcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrczogU3RhY2tTZWxlY3RvcjtcblxuICAvKipcbiAgICogVGhlIGFybiBvZiB0aGUgSUFNIHJvbGUgdG8gdXNlXG4gICAqL1xuICByZWFkb25seSByb2xlQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDaGFuZ2Ugc3RhY2sgd2F0Y2hlciBvdXRwdXQgdG8gQ0kgbW9kZS5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgSW1wbGVtZW50IGluIElvSG9zdCBpbnN0ZWFkXG4gICAqL1xuICByZWFkb25seSBjaT86IGJvb2xlYW47XG59XG4iXX0=
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { StackSelector } from '../../api/cloud-assembly';
|
|
2
|
+
export interface CloudFormationDiffOptions {
|
|
3
|
+
/**
|
|
4
|
+
* Whether to run the diff against the template after the CloudFormation Transforms inside it have been executed
|
|
5
|
+
* (as opposed to the original template, the default, which contains the unprocessed Transforms).
|
|
6
|
+
*
|
|
7
|
+
* @default false
|
|
8
|
+
*/
|
|
9
|
+
readonly compareAgainstProcessedTemplate?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface ChangeSetDiffOptions extends CloudFormationDiffOptions {
|
|
12
|
+
/**
|
|
13
|
+
* Enable falling back to template-based diff in case creating the changeset is not possible or results in an error.
|
|
14
|
+
*
|
|
15
|
+
* Should be used for stacks containing nested stacks or when change set permissions aren't available.
|
|
16
|
+
*
|
|
17
|
+
* @default true
|
|
18
|
+
*/
|
|
19
|
+
readonly fallbackToTemplate?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Additional parameters for CloudFormation when creating a diff change set
|
|
22
|
+
*
|
|
23
|
+
* @default {}
|
|
24
|
+
*/
|
|
25
|
+
readonly parameters?: {
|
|
26
|
+
[name: string]: string | undefined;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export declare class DiffMethod {
|
|
30
|
+
readonly method: 'change-set' | 'template-only' | 'local-file';
|
|
31
|
+
readonly options: ChangeSetDiffOptions | CloudFormationDiffOptions | {
|
|
32
|
+
path: string;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Use a changeset to compute the diff.
|
|
36
|
+
*
|
|
37
|
+
* This will create, analyze, and subsequently delete a changeset against the CloudFormation stack.
|
|
38
|
+
*/
|
|
39
|
+
static ChangeSet(options?: ChangeSetDiffOptions): DiffMethod;
|
|
40
|
+
static TemplateOnly(options?: CloudFormationDiffOptions): DiffMethod;
|
|
41
|
+
static LocalFile(path: string): DiffMethod;
|
|
42
|
+
private constructor();
|
|
43
|
+
}
|
|
44
|
+
export interface DiffOptions {
|
|
45
|
+
/**
|
|
46
|
+
* Select the stacks
|
|
47
|
+
*/
|
|
48
|
+
readonly stacks: StackSelector;
|
|
49
|
+
/**
|
|
50
|
+
* The mode to create a stack diff.
|
|
51
|
+
*
|
|
52
|
+
* Use changeset diff for the highest fidelity, including analyze resource replacements.
|
|
53
|
+
* In this mode, diff will use the deploy role instead of the lookup role.
|
|
54
|
+
*
|
|
55
|
+
* Use template-only diff for a faster, less accurate diff that doesn't require
|
|
56
|
+
* permissions to create a change-set.
|
|
57
|
+
*
|
|
58
|
+
* Use local-template diff for a fast, local-only diff that doesn't require
|
|
59
|
+
* any permissions or internet access.
|
|
60
|
+
*
|
|
61
|
+
* @default DiffMode.ChangeSet
|
|
62
|
+
*/
|
|
63
|
+
readonly method: DiffMethod;
|
|
64
|
+
/**
|
|
65
|
+
* Strict diff mode
|
|
66
|
+
* When enabled, this will not filter out AWS::CDK::Metadata resources, mangled non-ASCII characters, or the CheckBootstrapVersionRule.
|
|
67
|
+
*
|
|
68
|
+
* @default false
|
|
69
|
+
*/
|
|
70
|
+
readonly strict?: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* How many lines of context to show in the diff
|
|
73
|
+
*
|
|
74
|
+
* @default 3
|
|
75
|
+
*/
|
|
76
|
+
readonly contextLines?: number;
|
|
77
|
+
/**
|
|
78
|
+
* Only include broadened security changes in the diff
|
|
79
|
+
*
|
|
80
|
+
* @default false
|
|
81
|
+
*/
|
|
82
|
+
readonly securityOnly?: boolean;
|
|
83
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DiffMethod = void 0;
|
|
4
|
+
class DiffMethod {
|
|
5
|
+
method;
|
|
6
|
+
options;
|
|
7
|
+
/**
|
|
8
|
+
* Use a changeset to compute the diff.
|
|
9
|
+
*
|
|
10
|
+
* This will create, analyze, and subsequently delete a changeset against the CloudFormation stack.
|
|
11
|
+
*/
|
|
12
|
+
static ChangeSet(options = {}) {
|
|
13
|
+
return new class extends DiffMethod {
|
|
14
|
+
options;
|
|
15
|
+
constructor(opts) {
|
|
16
|
+
super('change-set', opts);
|
|
17
|
+
this.options = opts;
|
|
18
|
+
}
|
|
19
|
+
}(options);
|
|
20
|
+
}
|
|
21
|
+
static TemplateOnly(options = {}) {
|
|
22
|
+
return new class extends DiffMethod {
|
|
23
|
+
options;
|
|
24
|
+
constructor(opts) {
|
|
25
|
+
super('template-only', opts);
|
|
26
|
+
this.options = opts;
|
|
27
|
+
}
|
|
28
|
+
}(options);
|
|
29
|
+
}
|
|
30
|
+
static LocalFile(path) {
|
|
31
|
+
return new class extends DiffMethod {
|
|
32
|
+
options;
|
|
33
|
+
constructor(opts) {
|
|
34
|
+
super('local-file', opts);
|
|
35
|
+
this.options = opts;
|
|
36
|
+
}
|
|
37
|
+
}({ path });
|
|
38
|
+
}
|
|
39
|
+
constructor(method, options) {
|
|
40
|
+
this.method = method;
|
|
41
|
+
this.options = options;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.DiffMethod = DiffMethod;
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE4QkEsTUFBYSxVQUFVO0lBcUNIO0lBQ0E7SUFyQ2xCOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQWdDLEVBQUU7UUFDeEQsT0FBTyxJQUFJLEtBQU0sU0FBUSxVQUFVO1lBQ1IsT0FBTyxDQUF1QjtZQUN2RCxZQUFtQixJQUEwQjtnQkFDM0MsS0FBSyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDdEIsQ0FBQztTQUNGLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRU0sTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFxQyxFQUFFO1FBQ2hFLE9BQU8sSUFBSSxLQUFNLFNBQVEsVUFBVTtZQUNSLE9BQU8sQ0FBNEI7WUFDNUQsWUFBbUIsSUFBK0I7Z0JBQ2hELEtBQUssQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLENBQUM7U0FDRixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVNLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBWTtRQUNsQyxPQUFPLElBQUksS0FBTSxTQUFRLFVBQVU7WUFDUixPQUFPLENBQW1CO1lBQ25ELFlBQW1CLElBQXNCO2dCQUN2QyxLQUFLLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUN0QixDQUFDO1NBQ0YsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDZCxDQUFDO0lBRUQsWUFDa0IsTUFBcUQsRUFDckQsT0FBNEU7UUFENUUsV0FBTSxHQUFOLE1BQU0sQ0FBK0M7UUFDckQsWUFBTyxHQUFQLE9BQU8sQ0FBcUU7SUFFOUYsQ0FBQztDQUNGO0FBekNELGdDQXlDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU3RhY2tTZWxlY3RvciB9IGZyb20gJy4uLy4uL2FwaS9jbG91ZC1hc3NlbWJseSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRGb3JtYXRpb25EaWZmT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHJ1biB0aGUgZGlmZiBhZ2FpbnN0IHRoZSB0ZW1wbGF0ZSBhZnRlciB0aGUgQ2xvdWRGb3JtYXRpb24gVHJhbnNmb3JtcyBpbnNpZGUgaXQgaGF2ZSBiZWVuIGV4ZWN1dGVkXG4gICAqIChhcyBvcHBvc2VkIHRvIHRoZSBvcmlnaW5hbCB0ZW1wbGF0ZSwgdGhlIGRlZmF1bHQsIHdoaWNoIGNvbnRhaW5zIHRoZSB1bnByb2Nlc3NlZCBUcmFuc2Zvcm1zKS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNvbXBhcmVBZ2FpbnN0UHJvY2Vzc2VkVGVtcGxhdGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYW5nZVNldERpZmZPcHRpb25zIGV4dGVuZHMgQ2xvdWRGb3JtYXRpb25EaWZmT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBFbmFibGUgZmFsbGluZyBiYWNrIHRvIHRlbXBsYXRlLWJhc2VkIGRpZmYgaW4gY2FzZSBjcmVhdGluZyB0aGUgY2hhbmdlc2V0IGlzIG5vdCBwb3NzaWJsZSBvciByZXN1bHRzIGluIGFuIGVycm9yLlxuICAgKlxuICAgKiBTaG91bGQgYmUgdXNlZCBmb3Igc3RhY2tzIGNvbnRhaW5pbmcgbmVzdGVkIHN0YWNrcyBvciB3aGVuIGNoYW5nZSBzZXQgcGVybWlzc2lvbnMgYXJlbid0IGF2YWlsYWJsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZmFsbGJhY2tUb1RlbXBsYXRlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZvciBDbG91ZEZvcm1hdGlvbiB3aGVuIGNyZWF0aW5nIGEgZGlmZiBjaGFuZ2Ugc2V0XG4gICAqXG4gICAqIEBkZWZhdWx0IHt9XG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH07XG59XG5cbmV4cG9ydCBjbGFzcyBEaWZmTWV0aG9kIHtcbiAgLyoqXG4gICAqIFVzZSBhIGNoYW5nZXNldCB0byBjb21wdXRlIHRoZSBkaWZmLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgY3JlYXRlLCBhbmFseXplLCBhbmQgc3Vic2VxdWVudGx5IGRlbGV0ZSBhIGNoYW5nZXNldCBhZ2FpbnN0IHRoZSBDbG91ZEZvcm1hdGlvbiBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgQ2hhbmdlU2V0KG9wdGlvbnM6IENoYW5nZVNldERpZmZPcHRpb25zID0ge30pOiBEaWZmTWV0aG9kIHtcbiAgICByZXR1cm4gbmV3IGNsYXNzIGV4dGVuZHMgRGlmZk1ldGhvZCB7XG4gICAgICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgb3B0aW9uczogQ2hhbmdlU2V0RGlmZk9wdGlvbnM7XG4gICAgICBwdWJsaWMgY29uc3RydWN0b3Iob3B0czogQ2hhbmdlU2V0RGlmZk9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIoJ2NoYW5nZS1zZXQnLCBvcHRzKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0cztcbiAgICAgIH1cbiAgICB9KG9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBUZW1wbGF0ZU9ubHkob3B0aW9uczogQ2xvdWRGb3JtYXRpb25EaWZmT3B0aW9ucyA9IHt9KTogRGlmZk1ldGhvZCB7XG4gICAgcmV0dXJuIG5ldyBjbGFzcyBleHRlbmRzIERpZmZNZXRob2Qge1xuICAgICAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IG9wdGlvbnM6IENsb3VkRm9ybWF0aW9uRGlmZk9wdGlvbnM7XG4gICAgICBwdWJsaWMgY29uc3RydWN0b3Iob3B0czogQ2xvdWRGb3JtYXRpb25EaWZmT3B0aW9ucykge1xuICAgICAgICBzdXBlcigndGVtcGxhdGUtb25seScsIG9wdHMpO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRzO1xuICAgICAgfVxuICAgIH0ob3B0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIExvY2FsRmlsZShwYXRoOiBzdHJpbmcpOiBEaWZmTWV0aG9kIHtcbiAgICByZXR1cm4gbmV3IGNsYXNzIGV4dGVuZHMgRGlmZk1ldGhvZCB7XG4gICAgICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgb3B0aW9uczogeyBwYXRoOiBzdHJpbmcgfTtcbiAgICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihvcHRzOiB7IHBhdGg6IHN0cmluZyB9KSB7XG4gICAgICAgIHN1cGVyKCdsb2NhbC1maWxlJywgb3B0cyk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdHM7XG4gICAgICB9XG4gICAgfSh7IHBhdGggfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBtZXRob2Q6ICdjaGFuZ2Utc2V0JyB8ICd0ZW1wbGF0ZS1vbmx5JyB8ICdsb2NhbC1maWxlJyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgb3B0aW9uczogQ2hhbmdlU2V0RGlmZk9wdGlvbnMgfCBDbG91ZEZvcm1hdGlvbkRpZmZPcHRpb25zIHwgeyBwYXRoOiBzdHJpbmcgfSxcbiAgKSB7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaWZmT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTZWxlY3QgdGhlIHN0YWNrc1xuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tzOiBTdGFja1NlbGVjdG9yO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9kZSB0byBjcmVhdGUgYSBzdGFjayBkaWZmLlxuICAgKlxuICAgKiBVc2UgY2hhbmdlc2V0IGRpZmYgZm9yIHRoZSBoaWdoZXN0IGZpZGVsaXR5LCBpbmNsdWRpbmcgYW5hbHl6ZSByZXNvdXJjZSByZXBsYWNlbWVudHMuXG4gICAqIEluIHRoaXMgbW9kZSwgZGlmZiB3aWxsIHVzZSB0aGUgZGVwbG95IHJvbGUgaW5zdGVhZCBvZiB0aGUgbG9va3VwIHJvbGUuXG4gICAqXG4gICAqIFVzZSB0ZW1wbGF0ZS1vbmx5IGRpZmYgZm9yIGEgZmFzdGVyLCBsZXNzIGFjY3VyYXRlIGRpZmYgdGhhdCBkb2Vzbid0IHJlcXVpcmVcbiAgICogcGVybWlzc2lvbnMgdG8gY3JlYXRlIGEgY2hhbmdlLXNldC5cbiAgICpcbiAgICogVXNlIGxvY2FsLXRlbXBsYXRlIGRpZmYgZm9yIGEgZmFzdCwgbG9jYWwtb25seSBkaWZmIHRoYXQgZG9lc24ndCByZXF1aXJlXG4gICAqIGFueSBwZXJtaXNzaW9ucyBvciBpbnRlcm5ldCBhY2Nlc3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IERpZmZNb2RlLkNoYW5nZVNldFxuICAgKi9cbiAgcmVhZG9ubHkgbWV0aG9kOiBEaWZmTWV0aG9kO1xuXG4gIC8qKlxuICAgKiBTdHJpY3QgZGlmZiBtb2RlXG4gICAqIFdoZW4gZW5hYmxlZCwgdGhpcyB3aWxsIG5vdCBmaWx0ZXIgb3V0IEFXUzo6Q0RLOjpNZXRhZGF0YSByZXNvdXJjZXMsIG1hbmdsZWQgbm9uLUFTQ0lJIGNoYXJhY3RlcnMsIG9yIHRoZSBDaGVja0Jvb3RzdHJhcFZlcnNpb25SdWxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RyaWN0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSG93IG1hbnkgbGluZXMgb2YgY29udGV4dCB0byBzaG93IGluIHRoZSBkaWZmXG4gICAqXG4gICAqIEBkZWZhdWx0IDNcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHRMaW5lcz86IG51bWJlcjtcblxuICAvKipcbiAgICogT25seSBpbmNsdWRlIGJyb2FkZW5lZCBzZWN1cml0eSBjaGFuZ2VzIGluIHRoZSBkaWZmXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eU9ubHk/OiBib29sZWFuO1xufVxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DescribeChangeSetOutput } from '@aws-cdk/cloudformation-diff';
|
|
2
|
+
import * as cxapi from '@aws-cdk/cx-api';
|
|
3
|
+
import { RequireApproval } from '../../deploy';
|
|
4
|
+
/**
|
|
5
|
+
* Return whether the diff has security-impacting changes that need confirmation
|
|
6
|
+
*/
|
|
7
|
+
export declare function diffRequiresApproval(oldTemplate: any, newTemplate: cxapi.CloudFormationStackArtifact, requireApproval: RequireApproval, changeSet?: DescribeChangeSetOutput): boolean;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.diffRequiresApproval = diffRequiresApproval;
|
|
4
|
+
const cloudformation_diff_1 = require("@aws-cdk/cloudformation-diff");
|
|
5
|
+
const errors_1 = require("../../../api/errors");
|
|
6
|
+
const deploy_1 = require("../../deploy");
|
|
7
|
+
/**
|
|
8
|
+
* Return whether the diff has security-impacting changes that need confirmation
|
|
9
|
+
*/
|
|
10
|
+
function diffRequiresApproval(oldTemplate, newTemplate, requireApproval, changeSet) {
|
|
11
|
+
// @todo return or print the full diff.
|
|
12
|
+
const diff = (0, cloudformation_diff_1.fullDiff)(oldTemplate, newTemplate.template, changeSet);
|
|
13
|
+
switch (requireApproval) {
|
|
14
|
+
case deploy_1.RequireApproval.NEVER: return false;
|
|
15
|
+
case deploy_1.RequireApproval.ANY_CHANGE: return diff.permissionsAnyChanges;
|
|
16
|
+
case deploy_1.RequireApproval.BROADENING: return diff.permissionsBroadened;
|
|
17
|
+
default: throw new errors_1.ToolkitError(`Unrecognized approval level: ${requireApproval}`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSxvREFlQztBQXZCRCxzRUFBaUY7QUFFakYsZ0RBQW1EO0FBQ25ELHlDQUErQztBQUUvQzs7R0FFRztBQUNILFNBQWdCLG9CQUFvQixDQUNsQyxXQUFnQixFQUNoQixXQUE4QyxFQUM5QyxlQUFnQyxFQUNoQyxTQUFtQztJQUVuQyx1Q0FBdUM7SUFDdkMsTUFBTSxJQUFJLEdBQUcsSUFBQSw4QkFBUSxFQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRXBFLFFBQVEsZUFBZSxFQUFFLENBQUM7UUFDeEIsS0FBSyx3QkFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDO1FBQ3pDLEtBQUssd0JBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztRQUNuRSxLQUFLLHdCQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7UUFDbEUsT0FBTyxDQUFDLENBQUMsTUFBTSxJQUFJLHFCQUFZLENBQUMsZ0NBQWdDLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDckYsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXNjcmliZUNoYW5nZVNldE91dHB1dCwgZnVsbERpZmYgfSBmcm9tICdAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmJztcbmltcG9ydCAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi8uLi8uLi9hcGkvZXJyb3JzJztcbmltcG9ydCB7IFJlcXVpcmVBcHByb3ZhbCB9IGZyb20gJy4uLy4uL2RlcGxveSc7XG5cbi8qKlxuICogUmV0dXJuIHdoZXRoZXIgdGhlIGRpZmYgaGFzIHNlY3VyaXR5LWltcGFjdGluZyBjaGFuZ2VzIHRoYXQgbmVlZCBjb25maXJtYXRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpZmZSZXF1aXJlc0FwcHJvdmFsKFxuICBvbGRUZW1wbGF0ZTogYW55LFxuICBuZXdUZW1wbGF0ZTogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LFxuICByZXF1aXJlQXBwcm92YWw6IFJlcXVpcmVBcHByb3ZhbCxcbiAgY2hhbmdlU2V0PzogRGVzY3JpYmVDaGFuZ2VTZXRPdXRwdXQsXG4pOiBib29sZWFuIHtcbiAgLy8gQHRvZG8gcmV0dXJuIG9yIHByaW50IHRoZSBmdWxsIGRpZmYuXG4gIGNvbnN0IGRpZmYgPSBmdWxsRGlmZihvbGRUZW1wbGF0ZSwgbmV3VGVtcGxhdGUudGVtcGxhdGUsIGNoYW5nZVNldCk7XG5cbiAgc3dpdGNoIChyZXF1aXJlQXBwcm92YWwpIHtcbiAgICBjYXNlIFJlcXVpcmVBcHByb3ZhbC5ORVZFUjogcmV0dXJuIGZhbHNlO1xuICAgIGNhc2UgUmVxdWlyZUFwcHJvdmFsLkFOWV9DSEFOR0U6IHJldHVybiBkaWZmLnBlcm1pc3Npb25zQW55Q2hhbmdlcztcbiAgICBjYXNlIFJlcXVpcmVBcHByb3ZhbC5CUk9BREVOSU5HOiByZXR1cm4gZGlmZi5wZXJtaXNzaW9uc0Jyb2FkZW5lZDtcbiAgICBkZWZhdWx0OiB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGBVbnJlY29nbml6ZWQgYXBwcm92YWwgbGV2ZWw6ICR7cmVxdWlyZUFwcHJvdmFsfWApO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './helpers';
|