aws-cdk 2.1007.0 → 3.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.
- package/THIRD_PARTY_LICENSES +24 -6
- package/build-info.json +2 -2
- package/db.json.gz +0 -0
- package/lib/api/aws-auth.d.ts +1 -0
- package/lib/api/{logs/index.js → aws-auth.js} +2 -3
- package/lib/api/bootstrap.d.ts +1 -0
- package/lib/api/bootstrap.js +18 -0
- package/lib/api/cloud-assembly.d.ts +1 -0
- package/lib/api/cloud-assembly.js +18 -0
- package/lib/api/cloudformation.d.ts +1 -0
- package/lib/api/cloudformation.js +18 -0
- package/lib/api/context.d.ts +1 -40
- package/lib/api/context.js +16 -80
- package/lib/api/deployments.d.ts +1 -0
- package/lib/api/deployments.js +18 -0
- package/lib/api/environment.d.ts +1 -0
- package/lib/api/environment.js +18 -0
- package/lib/api/garbage-collection.d.ts +1 -0
- package/lib/api/garbage-collection.js +18 -0
- package/lib/api/hotswap.d.ts +1 -0
- package/lib/api/hotswap.js +18 -0
- package/lib/api/index.d.ts +5 -1
- package/lib/api/index.js +6 -2
- package/lib/api/logs-monitor.d.ts +1 -0
- package/lib/api/logs-monitor.js +18 -0
- package/lib/api/notices.d.ts +1 -0
- package/lib/api/notices.js +18 -0
- package/lib/api/plugin.d.ts +1 -0
- package/lib/api/{garbage-collection/index.js → plugin.js} +2 -2
- package/lib/api/resource-import.d.ts +1 -0
- package/lib/api/resource-import.js +18 -0
- package/lib/api/rwlock.d.ts +1 -0
- package/lib/api/{resource-import/index.js → rwlock.js} +2 -3
- package/lib/api/settings.d.ts +1 -26
- package/lib/api/settings.js +16 -103
- package/lib/api/stack-events.d.ts +1 -0
- package/lib/api/stack-events.js +18 -0
- package/lib/api/tags.d.ts +1 -9
- package/lib/api/tags.js +16 -8
- package/lib/api/toolkit-info.d.ts +1 -52
- package/lib/api/toolkit-info.js +16 -152
- package/lib/api/tree.d.ts +1 -31
- package/lib/api/tree.js +16 -35
- package/lib/api/work-graph.d.ts +1 -0
- package/lib/api/work-graph.js +18 -0
- package/lib/api-private.d.ts +3 -0
- package/lib/api-private.js +22 -0
- package/lib/cli/cdk-toolkit.d.ts +6 -5
- package/lib/cli/cdk-toolkit.js +74 -44
- package/lib/cli/cli.d.ts +1 -1
- package/lib/cli/cli.js +21 -19
- package/lib/cli/io-host/cli-io-host.js +2 -2
- package/lib/cli/pretty-print-error.js +3 -1
- package/lib/cli/util/npm.d.ts +4 -1
- package/lib/cli/util/npm.js +25 -13
- package/lib/cli/version.d.ts +1 -1
- package/lib/cli/version.js +21 -25
- package/lib/commands/context.js +3 -2
- package/lib/commands/init/init.js +3 -2
- package/lib/commands/list-stacks.js +4 -4
- package/lib/context-providers/ami.d.ts +1 -13
- package/lib/context-providers/ami.js +16 -48
- package/lib/context-providers/availability-zones.d.ts +1 -13
- package/lib/context-providers/availability-zones.js +16 -25
- package/lib/context-providers/cc-api-provider.d.ts +1 -30
- package/lib/context-providers/cc-api-provider.js +16 -142
- package/lib/context-providers/endpoint-service-availability-zones.d.ts +1 -13
- package/lib/context-providers/endpoint-service-availability-zones.js +16 -31
- package/lib/context-providers/hosted-zones.d.ts +1 -12
- package/lib/context-providers/hosted-zones.js +16 -65
- package/lib/context-providers/index.d.ts +1 -44
- package/lib/context-providers/index.js +15 -126
- package/lib/context-providers/keys.d.ts +1 -13
- package/lib/context-providers/keys.js +16 -50
- package/lib/context-providers/load-balancers.d.ts +1 -20
- package/lib/context-providers/load-balancers.js +16 -154
- package/lib/context-providers/security-groups.d.ts +1 -9
- package/lib/context-providers/security-groups.js +16 -66
- package/lib/context-providers/ssm-parameters.d.ts +1 -25
- package/lib/context-providers/ssm-parameters.js +16 -57
- package/lib/context-providers/vpcs.d.ts +1 -13
- package/lib/context-providers/vpcs.js +16 -285
- package/lib/cxapp/cloud-assembly.d.ts +79 -0
- package/lib/cxapp/cloud-assembly.js +108 -0
- package/lib/{api/cxapp → cxapp}/cloud-executable.d.ts +6 -4
- package/lib/cxapp/cloud-executable.js +92 -0
- package/lib/{api/cxapp → cxapp}/environments.d.ts +1 -2
- package/lib/{api/cxapp → cxapp}/environments.js +2 -2
- package/lib/cxapp/exec.d.ts +14 -0
- package/lib/cxapp/exec.js +157 -0
- package/lib/cxapp/index.d.ts +4 -0
- package/lib/{api/bootstrap → cxapp}/index.js +5 -3
- package/lib/index.js +133605 -124560
- package/lib/init-templates/.init-version.json +1 -1
- package/lib/init-templates/.recommended-feature-flags.json +2 -1
- package/lib/legacy-aws-auth.d.ts +74 -0
- package/lib/legacy-aws-auth.js +40 -0
- package/lib/legacy-exports-source.d.ts +13 -18
- package/lib/legacy-exports-source.js +42 -49
- package/lib/legacy-exports.d.ts +3 -6
- package/lib/legacy-exports.js +5 -5
- package/lib/legacy-types.d.ts +31 -0
- package/lib/legacy-types.js +3 -0
- package/package.json +8 -7
- package/lib/api/aws-auth/account-cache.d.ts +0 -36
- package/lib/api/aws-auth/account-cache.js +0 -99
- package/lib/api/aws-auth/awscli-compatible.d.ts +0 -42
- package/lib/api/aws-auth/awscli-compatible.js +0 -263
- package/lib/api/aws-auth/cached.d.ts +0 -11
- package/lib/api/aws-auth/cached.js +0 -26
- package/lib/api/aws-auth/credential-plugins.d.ts +0 -36
- package/lib/api/aws-auth/credential-plugins.js +0 -152
- package/lib/api/aws-auth/index.d.ts +0 -3
- package/lib/api/aws-auth/index.js +0 -20
- package/lib/api/aws-auth/provider-caching.d.ts +0 -13
- package/lib/api/aws-auth/provider-caching.js +0 -24
- package/lib/api/aws-auth/sdk-logger.d.ts +0 -69
- package/lib/api/aws-auth/sdk-logger.js +0 -124
- package/lib/api/aws-auth/sdk-provider.d.ts +0 -207
- package/lib/api/aws-auth/sdk-provider.js +0 -357
- package/lib/api/aws-auth/sdk.d.ts +0 -229
- package/lib/api/aws-auth/sdk.js +0 -373
- package/lib/api/aws-auth/tracing.d.ts +0 -11
- package/lib/api/aws-auth/tracing.js +0 -60
- package/lib/api/aws-auth/user-agent.d.ts +0 -7
- package/lib/api/aws-auth/user-agent.js +0 -20
- package/lib/api/aws-auth/util.d.ts +0 -6
- package/lib/api/aws-auth/util.js +0 -23
- package/lib/api/bootstrap/bootstrap-environment.d.ts +0 -35
- package/lib/api/bootstrap/bootstrap-environment.js +0 -321
- package/lib/api/bootstrap/bootstrap-props.d.ts +0 -130
- package/lib/api/bootstrap/bootstrap-props.js +0 -14
- package/lib/api/bootstrap/deploy-bootstrap.d.ts +0 -39
- package/lib/api/bootstrap/deploy-bootstrap.js +0 -141
- package/lib/api/bootstrap/index.d.ts +0 -2
- package/lib/api/bootstrap/legacy-template.d.ts +0 -2
- package/lib/api/bootstrap/legacy-template.js +0 -82
- package/lib/api/cloudformation/evaluate-cloudformation-template.d.ts +0 -85
- package/lib/api/cloudformation/evaluate-cloudformation-template.js +0 -440
- package/lib/api/cloudformation/index.d.ts +0 -4
- package/lib/api/cloudformation/index.js +0 -21
- package/lib/api/cloudformation/nested-stack-helpers.d.ts +0 -19
- package/lib/api/cloudformation/nested-stack-helpers.js +0 -86
- package/lib/api/cloudformation/stack-helpers.d.ts +0 -88
- package/lib/api/cloudformation/stack-helpers.js +0 -158
- package/lib/api/cloudformation/template-body-parameter.d.ts +0 -22
- package/lib/api/cloudformation/template-body-parameter.js +0 -104
- package/lib/api/cxapp/cloud-assembly.d.ts +0 -137
- package/lib/api/cxapp/cloud-assembly.js +0 -305
- package/lib/api/cxapp/cloud-executable.js +0 -89
- package/lib/api/cxapp/exec.d.ts +0 -57
- package/lib/api/cxapp/exec.js +0 -279
- package/lib/api/deployments/asset-manifest-builder.d.ts +0 -8
- package/lib/api/deployments/asset-manifest-builder.js +0 -35
- package/lib/api/deployments/asset-publishing.d.ts +0 -60
- package/lib/api/deployments/asset-publishing.js +0 -141
- package/lib/api/deployments/assets.d.ts +0 -11
- package/lib/api/deployments/assets.js +0 -109
- package/lib/api/deployments/cfn-api.d.ts +0 -138
- package/lib/api/deployments/cfn-api.js +0 -438
- package/lib/api/deployments/checks.d.ts +0 -9
- package/lib/api/deployments/checks.js +0 -72
- package/lib/api/deployments/deploy-stack.d.ts +0 -155
- package/lib/api/deployments/deploy-stack.js +0 -478
- package/lib/api/deployments/deployment-method.d.ts +0 -24
- package/lib/api/deployments/deployment-method.js +0 -3
- package/lib/api/deployments/deployment-result.d.ts +0 -21
- package/lib/api/deployments/deployment-result.js +0 -10
- package/lib/api/deployments/deployments.d.ts +0 -296
- package/lib/api/deployments/deployments.js +0 -331
- package/lib/api/deployments/hotswap-deployments.d.ts +0 -17
- package/lib/api/deployments/hotswap-deployments.js +0 -441
- package/lib/api/deployments/index.d.ts +0 -5
- package/lib/api/deployments/index.js +0 -22
- package/lib/api/environment/environment-access.d.ts +0 -140
- package/lib/api/environment/environment-access.js +0 -202
- package/lib/api/environment/environment-resources.d.ts +0 -75
- package/lib/api/environment/environment-resources.js +0 -207
- package/lib/api/environment/index.d.ts +0 -3
- package/lib/api/environment/index.js +0 -20
- package/lib/api/environment/placeholders.d.ts +0 -10
- package/lib/api/environment/placeholders.js +0 -23
- package/lib/api/garbage-collection/garbage-collector.d.ts +0 -158
- package/lib/api/garbage-collection/garbage-collector.js +0 -599
- package/lib/api/garbage-collection/index.d.ts +0 -1
- package/lib/api/garbage-collection/progress-printer.d.ts +0 -23
- package/lib/api/garbage-collection/progress-printer.js +0 -70
- package/lib/api/garbage-collection/stack-refresh.d.ts +0 -49
- package/lib/api/garbage-collection/stack-refresh.js +0 -151
- package/lib/api/hotswap/appsync-mapping-templates.d.ts +0 -4
- package/lib/api/hotswap/appsync-mapping-templates.js +0 -162
- package/lib/api/hotswap/code-build-projects.d.ts +0 -4
- package/lib/api/hotswap/code-build-projects.js +0 -62
- package/lib/api/hotswap/common.d.ts +0 -89
- package/lib/api/hotswap/common.js +0 -128
- package/lib/api/hotswap/ecs-services.d.ts +0 -4
- package/lib/api/hotswap/ecs-services.js +0 -159
- package/lib/api/hotswap/lambda-functions.d.ts +0 -4
- package/lib/api/hotswap/lambda-functions.js +0 -297
- package/lib/api/hotswap/s3-bucket-deployments.d.ts +0 -5
- package/lib/api/hotswap/s3-bucket-deployments.js +0 -117
- package/lib/api/hotswap/stepfunctions-state-machines.d.ts +0 -4
- package/lib/api/hotswap/stepfunctions-state-machines.js +0 -48
- package/lib/api/logs/find-cloudwatch-logs.d.ts +0 -25
- package/lib/api/logs/find-cloudwatch-logs.js +0 -95
- package/lib/api/logs/index.d.ts +0 -2
- package/lib/api/logs/logs-monitor.d.ts +0 -76
- package/lib/api/logs/logs-monitor.js +0 -187
- package/lib/api/plugin/context-provider-plugin.d.ts +0 -6
- package/lib/api/plugin/context-provider-plugin.js +0 -7
- package/lib/api/plugin/index.d.ts +0 -3
- package/lib/api/plugin/index.js +0 -20
- package/lib/api/plugin/mode.d.ts +0 -4
- package/lib/api/plugin/mode.js +0 -9
- package/lib/api/plugin/plugin.d.ts +0 -63
- package/lib/api/plugin/plugin.js +0 -102
- package/lib/api/resource-import/importer.d.ts +0 -215
- package/lib/api/resource-import/importer.js +0 -322
- package/lib/api/resource-import/index.d.ts +0 -2
- package/lib/api/resource-import/migrator.d.ts +0 -26
- package/lib/api/resource-import/migrator.js +0 -71
- package/lib/api/stack-events/index.d.ts +0 -3
- package/lib/api/stack-events/index.js +0 -20
- package/lib/api/stack-events/stack-activity-monitor.d.ts +0 -100
- package/lib/api/stack-events/stack-activity-monitor.js +0 -142
- package/lib/api/stack-events/stack-event-poller.d.ts +0 -69
- package/lib/api/stack-events/stack-event-poller.js +0 -128
- package/lib/api/stack-events/stack-progress-monitor.d.ts +0 -48
- package/lib/api/stack-events/stack-progress-monitor.js +0 -94
- package/lib/api/stack-events/stack-status.d.ts +0 -42
- package/lib/api/stack-events/stack-status.js +0 -88
- package/lib/api/util/rwlock.d.ts +0 -65
- package/lib/api/util/rwlock.js +0 -179
- package/lib/api/work-graph/index.d.ts +0 -3
- package/lib/api/work-graph/index.js +0 -20
- package/lib/api/work-graph/work-graph-builder.d.ts +0 -34
- package/lib/api/work-graph/work-graph-builder.js +0 -168
- package/lib/api/work-graph/work-graph-types.d.ts +0 -50
- package/lib/api/work-graph/work-graph-types.js +0 -13
- package/lib/api/work-graph/work-graph.d.ts +0 -72
- package/lib/api/work-graph/work-graph.js +0 -346
- package/lib/cli/activity-printer/base.d.ts +0 -50
- package/lib/cli/activity-printer/base.js +0 -114
- package/lib/cli/activity-printer/current.d.ts +0 -26
- package/lib/cli/activity-printer/current.js +0 -118
- package/lib/cli/activity-printer/display.d.ts +0 -13
- package/lib/cli/activity-printer/display.js +0 -80
- package/lib/cli/activity-printer/history.d.ts +0 -32
- package/lib/cli/activity-printer/history.js +0 -108
- package/lib/cli/activity-printer/index.d.ts +0 -3
- package/lib/cli/activity-printer/index.js +0 -20
- package/lib/notices.d.ts +0 -203
- package/lib/notices.js +0 -411
|
@@ -1,50 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
* Plugin to search AMIs for the current account
|
|
8
|
-
*/
|
|
9
|
-
class AmiContextProviderPlugin {
|
|
10
|
-
constructor(aws, io) {
|
|
11
|
-
this.aws = aws;
|
|
12
|
-
this.io = io;
|
|
13
|
-
}
|
|
14
|
-
async getValue(args) {
|
|
15
|
-
const region = args.region;
|
|
16
|
-
const account = args.account;
|
|
17
|
-
// Normally we'd do this only as 'debug', but searching AMIs typically takes dozens
|
|
18
|
-
// of seconds, so be little more verbose about it so users know what is going on.
|
|
19
|
-
await this.io.info(`Searching for AMI in ${account}:${region}`);
|
|
20
|
-
await this.io.debug(`AMI search parameters: ${JSON.stringify(args)}`);
|
|
21
|
-
const ec2 = (await (0, sdk_provider_1.initContextProviderSdk)(this.aws, args)).ec2();
|
|
22
|
-
const response = await ec2.describeImages({
|
|
23
|
-
Owners: args.owners,
|
|
24
|
-
Filters: Object.entries(args.filters).map(([key, values]) => ({
|
|
25
|
-
Name: key,
|
|
26
|
-
Values: values,
|
|
27
|
-
})),
|
|
28
|
-
});
|
|
29
|
-
const images = [...(response.Images || [])].filter((i) => i.ImageId !== undefined);
|
|
30
|
-
if (images.length === 0) {
|
|
31
|
-
throw new api_1.ContextProviderError('No AMI found that matched the search criteria');
|
|
32
|
-
}
|
|
33
|
-
// Return the most recent one
|
|
34
|
-
// Note: Date.parse() is not going to respect the timezone of the string,
|
|
35
|
-
// but since we only care about the relative values that is okay.
|
|
36
|
-
images.sort(descending((i) => Date.parse(i.CreationDate || '1970')));
|
|
37
|
-
await this.io.debug(`Selected image '${images[0].ImageId}' created at '${images[0].CreationDate}'`);
|
|
38
|
-
return images[0].ImageId;
|
|
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]; } };
|
|
39
7
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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("../../../@aws-cdk/tmp-toolkit-helpers/src/context-providers/ami"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1pLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYW1pLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrR0FBZ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuLi8uLi8uLi9AYXdzLWNkay90bXAtdG9vbGtpdC1oZWxwZXJzL3NyYy9jb250ZXh0LXByb3ZpZGVycy9hbWknO1xuIl19
|
|
@@ -1,13 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import type { IContextProviderMessages } from '.';
|
|
3
|
-
import { type SdkProvider } from '../api/aws-auth/sdk-provider';
|
|
4
|
-
import type { ContextProviderPlugin } from '../api/plugin';
|
|
5
|
-
/**
|
|
6
|
-
* Plugin to retrieve the Availability Zones for the current account
|
|
7
|
-
*/
|
|
8
|
-
export declare class AZContextProviderPlugin implements ContextProviderPlugin {
|
|
9
|
-
private readonly aws;
|
|
10
|
-
private readonly io;
|
|
11
|
-
constructor(aws: SdkProvider, io: IContextProviderMessages);
|
|
12
|
-
getValue(args: AvailabilityZonesContextQuery): Promise<(string | undefined)[]>;
|
|
13
|
-
}
|
|
1
|
+
export * from '../../../@aws-cdk/tmp-toolkit-helpers/src/context-providers/availability-zones';
|
|
@@ -1,27 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
*/
|
|
8
|
-
class AZContextProviderPlugin {
|
|
9
|
-
constructor(aws, io) {
|
|
10
|
-
this.aws = aws;
|
|
11
|
-
this.io = io;
|
|
12
|
-
}
|
|
13
|
-
async getValue(args) {
|
|
14
|
-
const region = args.region;
|
|
15
|
-
const account = args.account;
|
|
16
|
-
await this.io.debug(`Reading AZs for ${account}:${region}`);
|
|
17
|
-
const ec2 = (await (0, sdk_provider_1.initContextProviderSdk)(this.aws, args)).ec2();
|
|
18
|
-
const response = await ec2.describeAvailabilityZones({});
|
|
19
|
-
if (!response.AvailabilityZones) {
|
|
20
|
-
return [];
|
|
21
|
-
}
|
|
22
|
-
const azs = response.AvailabilityZones.filter((zone) => zone.State === 'available').map((zone) => zone.ZoneName);
|
|
23
|
-
return azs;
|
|
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]; } };
|
|
24
7
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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("../../../@aws-cdk/tmp-toolkit-helpers/src/context-providers/availability-zones"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhaWxhYmlsaXR5LXpvbmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXZhaWxhYmlsaXR5LXpvbmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpSEFBK0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuLi8uLi8uLi9AYXdzLWNkay90bXAtdG9vbGtpdC1oZWxwZXJzL3NyYy9jb250ZXh0LXByb3ZpZGVycy9hdmFpbGFiaWxpdHktem9uZXMnO1xuIl19
|
|
@@ -1,30 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { type SdkProvider } from '../api/aws-auth/sdk-provider';
|
|
3
|
-
import type { ContextProviderPlugin } from '../api/plugin';
|
|
4
|
-
export declare class CcApiContextProviderPlugin implements ContextProviderPlugin {
|
|
5
|
-
private readonly aws;
|
|
6
|
-
constructor(aws: SdkProvider);
|
|
7
|
-
/**
|
|
8
|
-
* This returns a data object with the value from CloudControl API result.
|
|
9
|
-
*
|
|
10
|
-
* See the documentation in the Cloud Assembly Schema for the semantics of
|
|
11
|
-
* each query parameter.
|
|
12
|
-
*/
|
|
13
|
-
getValue(args: CcApiContextQuery): Promise<any>;
|
|
14
|
-
/**
|
|
15
|
-
* Calls getResource from CC API to get the resource.
|
|
16
|
-
* See https://docs.aws.amazon.com/cli/latest/reference/cloudcontrol/get-resource.html
|
|
17
|
-
*
|
|
18
|
-
* Will always return exactly one resource, or fail.
|
|
19
|
-
*/
|
|
20
|
-
private getResource;
|
|
21
|
-
/**
|
|
22
|
-
* Calls listResources from CC API to get the resources and apply args.propertyMatch to find the resources.
|
|
23
|
-
* See https://docs.aws.amazon.com/cli/latest/reference/cloudcontrol/list-resources.html
|
|
24
|
-
*
|
|
25
|
-
* Will return 0 or more resources.
|
|
26
|
-
*
|
|
27
|
-
* Does not currently paginate through more than one result page.
|
|
28
|
-
*/
|
|
29
|
-
private listResources;
|
|
30
|
-
}
|
|
1
|
+
export * from '../../../@aws-cdk/tmp-toolkit-helpers/src/context-providers/cc-api-provider';
|
|
@@ -1,144 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const util_1 = require("../util");
|
|
8
|
-
class CcApiContextProviderPlugin {
|
|
9
|
-
constructor(aws) {
|
|
10
|
-
this.aws = aws;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* This returns a data object with the value from CloudControl API result.
|
|
14
|
-
*
|
|
15
|
-
* See the documentation in the Cloud Assembly Schema for the semantics of
|
|
16
|
-
* each query parameter.
|
|
17
|
-
*/
|
|
18
|
-
async getValue(args) {
|
|
19
|
-
// Validate input
|
|
20
|
-
if (args.exactIdentifier && args.propertyMatch) {
|
|
21
|
-
throw new api_1.ContextProviderError(`Provider protocol error: specify either exactIdentifier or propertyMatch, but not both (got ${JSON.stringify(args)})`);
|
|
22
|
-
}
|
|
23
|
-
if (args.ignoreErrorOnMissingContext && args.dummyValue === undefined) {
|
|
24
|
-
throw new api_1.ContextProviderError(`Provider protocol error: if ignoreErrorOnMissingContext is set, a dummyValue must be supplied (got ${JSON.stringify(args)})`);
|
|
25
|
-
}
|
|
26
|
-
if (args.dummyValue !== undefined && (!Array.isArray(args.dummyValue) || !args.dummyValue.every(isObject))) {
|
|
27
|
-
throw new api_1.ContextProviderError(`Provider protocol error: dummyValue must be an array of objects (got ${JSON.stringify(args.dummyValue)})`);
|
|
28
|
-
}
|
|
29
|
-
// Do the lookup
|
|
30
|
-
const cloudControl = (await (0, sdk_provider_1.initContextProviderSdk)(this.aws, args)).cloudControl();
|
|
31
|
-
try {
|
|
32
|
-
let resources;
|
|
33
|
-
if (args.exactIdentifier) {
|
|
34
|
-
// use getResource to get the exact indentifier
|
|
35
|
-
resources = await this.getResource(cloudControl, args.typeName, args.exactIdentifier);
|
|
36
|
-
}
|
|
37
|
-
else if (args.propertyMatch) {
|
|
38
|
-
// use listResource
|
|
39
|
-
resources = await this.listResources(cloudControl, args.typeName, args.propertyMatch, args.expectedMatchCount);
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
throw new api_1.ContextProviderError(`Provider protocol error: neither exactIdentifier nor propertyMatch is specified in ${JSON.stringify(args)}.`);
|
|
43
|
-
}
|
|
44
|
-
return resources.map((r) => (0, util_1.getResultObj)(r.properties, r.identifier, args.propertiesToReturn));
|
|
45
|
-
}
|
|
46
|
-
catch (err) {
|
|
47
|
-
if (err instanceof ZeroResourcesFoundError && args.ignoreErrorOnMissingContext) {
|
|
48
|
-
// We've already type-checked dummyValue.
|
|
49
|
-
return args.dummyValue;
|
|
50
|
-
}
|
|
51
|
-
throw err;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Calls getResource from CC API to get the resource.
|
|
56
|
-
* See https://docs.aws.amazon.com/cli/latest/reference/cloudcontrol/get-resource.html
|
|
57
|
-
*
|
|
58
|
-
* Will always return exactly one resource, or fail.
|
|
59
|
-
*/
|
|
60
|
-
async getResource(cc, typeName, exactIdentifier) {
|
|
61
|
-
try {
|
|
62
|
-
const result = await cc.getResource({
|
|
63
|
-
TypeName: typeName,
|
|
64
|
-
Identifier: exactIdentifier,
|
|
65
|
-
});
|
|
66
|
-
if (!result.ResourceDescription) {
|
|
67
|
-
throw new api_1.ContextProviderError('Unexpected CloudControl API behavior: returned empty response');
|
|
68
|
-
}
|
|
69
|
-
return [foundResourceFromCcApi(result.ResourceDescription)];
|
|
70
|
-
}
|
|
71
|
-
catch (err) {
|
|
72
|
-
if (err instanceof client_cloudcontrol_1.ResourceNotFoundException || err.name === 'ResourceNotFoundException') {
|
|
73
|
-
throw new ZeroResourcesFoundError(`No resource of type ${typeName} with identifier: ${exactIdentifier}`);
|
|
74
|
-
}
|
|
75
|
-
if (!(err instanceof api_1.ContextProviderError)) {
|
|
76
|
-
throw new api_1.ContextProviderError(`Encountered CC API error while getting ${typeName} resource ${exactIdentifier}: ${err.message}`);
|
|
77
|
-
}
|
|
78
|
-
throw err;
|
|
79
|
-
}
|
|
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]; } };
|
|
80
7
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
TypeName: typeName,
|
|
93
|
-
});
|
|
94
|
-
const found = (result.ResourceDescriptions ?? [])
|
|
95
|
-
.map(foundResourceFromCcApi)
|
|
96
|
-
.filter((r) => {
|
|
97
|
-
return Object.entries(propertyMatch).every(([propPath, expected]) => {
|
|
98
|
-
const actual = (0, util_1.findJsonValue)(r.properties, propPath);
|
|
99
|
-
return propertyMatchesFilter(actual, expected);
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
|
-
if ((expectedMatchCount === 'at-least-one' || expectedMatchCount === 'exactly-one') && found.length === 0) {
|
|
103
|
-
throw new ZeroResourcesFoundError(`Could not find any resources matching ${JSON.stringify(propertyMatch)}`);
|
|
104
|
-
}
|
|
105
|
-
if ((expectedMatchCount === 'at-most-one' || expectedMatchCount === 'exactly-one') && found.length > 1) {
|
|
106
|
-
throw new api_1.ContextProviderError(`Found ${found.length} resources matching ${JSON.stringify(propertyMatch)}; please narrow the search criteria`);
|
|
107
|
-
}
|
|
108
|
-
return found;
|
|
109
|
-
}
|
|
110
|
-
catch (err) {
|
|
111
|
-
if (!(err instanceof api_1.ContextProviderError) && !(err instanceof ZeroResourcesFoundError)) {
|
|
112
|
-
throw new api_1.ContextProviderError(`Encountered CC API error while listing ${typeName} resources matching ${JSON.stringify(propertyMatch)}: ${err.message}`);
|
|
113
|
-
}
|
|
114
|
-
throw err;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
exports.CcApiContextProviderPlugin = CcApiContextProviderPlugin;
|
|
119
|
-
/**
|
|
120
|
-
* Convert a CC API response object into a nicer object (parse the JSON)
|
|
121
|
-
*/
|
|
122
|
-
function foundResourceFromCcApi(desc) {
|
|
123
|
-
return {
|
|
124
|
-
identifier: desc.Identifier ?? '*MISSING*',
|
|
125
|
-
properties: JSON.parse(desc.Properties ?? '{}'),
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Whether the given property value matches the given filter
|
|
130
|
-
*
|
|
131
|
-
* For now we just check for strict equality, but we can implement pattern matching and fuzzy matching here later
|
|
132
|
-
*/
|
|
133
|
-
function propertyMatchesFilter(actual, expected) {
|
|
134
|
-
return expected === actual;
|
|
135
|
-
}
|
|
136
|
-
function isObject(x) {
|
|
137
|
-
return typeof x === 'object' && x !== null && !Array.isArray(x);
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* A specific lookup failure indicating 0 resources found that can be recovered
|
|
141
|
-
*/
|
|
142
|
-
class ZeroResourcesFoundError extends Error {
|
|
143
|
-
}
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2MtYXBpLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2MtYXBpLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLHNFQUF5RTtBQUN6RSx1RUFBcUY7QUFFckYsK0RBQXdGO0FBRXhGLGtDQUFzRDtBQUV0RCxNQUFhLDBCQUEwQjtJQUNyQyxZQUE2QixHQUFnQjtRQUFoQixRQUFHLEdBQUgsR0FBRyxDQUFhO0lBQzdDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBdUI7UUFDM0MsaUJBQWlCO1FBQ2pCLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDL0MsTUFBTSxJQUFJLDBCQUFvQixDQUFDLCtGQUErRixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6SixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsMkJBQTJCLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN0RSxNQUFNLElBQUksMEJBQW9CLENBQUMsc0dBQXNHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hLLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssU0FBUyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMzRyxNQUFNLElBQUksMEJBQW9CLENBQUMsd0VBQXdFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3SSxDQUFDO1FBRUQsZ0JBQWdCO1FBQ2hCLE1BQU0sWUFBWSxHQUFHLENBQUMsTUFB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QVksdUJBQXVCLENBQUMsRUFBRSxDQUFDO2dCQUN4RixNQUFNLElBQUksMEJBQW9CLENBQUMsMENBQTBDLFFBQVEsdUJBQXVCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDM0osQ0FBQztZQUNELE1BQU0sR0FBRyxDQUFDO1FBQ1osQ0FBQztJQUNILENBQUM7Q0FDRjtBQTFIRCxnRUEwSEM7QUFFRDs7R0FFRztBQUNILFNBQVMsc0JBQXNCLENBQUMsSUFBeUI7SUFDdkQsT0FBTztRQUNMLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxJQUFJLFdBQVc7UUFDMUMsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUM7S0FDaEQsQ0FBQztBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUyxxQkFBcUIsQ0FBQyxNQUFlLEVBQUUsUUFBaUI7SUFDL0QsT0FBTyxRQUFRLEtBQUssTUFBTSxDQUFDO0FBQzdCLENBQUM7QUFFRCxTQUFTLFFBQVEsQ0FBQyxDQUFVO0lBQzFCLE9BQU8sT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xFLENBQUM7QUFVRDs7R0FFRztBQUNILE1BQU0sdUJBQXdCLFNBQVEsS0FBSztDQUMxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2NBcGlDb250ZXh0UXVlcnkgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZURlc2NyaXB0aW9uIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkY29udHJvbCc7XG5pbXBvcnQgeyBSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkY29udHJvbCc7XG5pbXBvcnQgeyBDb250ZXh0UHJvdmlkZXJFcnJvciB9IGZyb20gJy4uLy4uLy4uL0Bhd3MtY2RrL3RtcC10b29sa2l0LWhlbHBlcnMvc3JjL2FwaSc7XG5pbXBvcnQgdHlwZSB7IElDbG91ZENvbnRyb2xDbGllbnQgfSBmcm9tICcuLi9hcGknO1xuaW1wb3J0IHsgdHlwZSBTZGtQcm92aWRlciwgaW5pdENvbnRleHRQcm92aWRlclNkayB9IGZyb20gJy4uL2FwaS9hd3MtYXV0aC9zZGstcHJvdmlkZXInO1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuLi9hcGkvcGx1Z2luJztcbmltcG9ydCB7IGZpbmRKc29uVmFsdWUsIGdldFJlc3VsdE9iaiB9IGZyb20gJy4uL3V0aWwnO1xuXG5leHBvcnQgY2xhc3MgQ2NBcGlDb250ZXh0UHJvdmlkZXJQbHVnaW4gaW1wbGVtZW50cyBDb250ZXh0UHJvdmlkZXJQbHVnaW4ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGF3czogU2RrUHJvdmlkZXIpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIHJldHVybnMgYSBkYXRhIG9iamVjdCB3aXRoIHRoZSB2YWx1ZSBmcm9tIENsb3VkQ29udHJvbCBBUEkgcmVzdWx0LlxuICAgKlxuICAgKiBTZWUgdGhlIGRvY3VtZW50YXRpb24gaW4gdGhlIENsb3VkIEFzc2VtYmx5IFNjaGVtYSBmb3IgdGhlIHNlbWFudGljcyBvZlxuICAgKiBlYWNoIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRWYWx1ZShhcmdzOiBDY0FwaUNvbnRleHRRdWVyeSkge1xuICAgIC8vIFZhbGlkYXRlIGlucHV0XG4gICAgaWYgKGFyZ3MuZXhhY3RJZGVudGlmaWVyICYmIGFyZ3MucHJvcGVydHlNYXRjaCkge1xuICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKGBQcm92aWRlciBwcm90b2NvbCBlcnJvcjogc3BlY2lmeSBlaXRoZXIgZXhhY3RJZGVudGlmaWVyIG9yIHByb3BlcnR5TWF0Y2gsIGJ1dCBub3QgYm90aCAoZ290ICR7SlNPTi5zdHJpbmdpZnkoYXJncyl9KWApO1xuICAgIH1cbiAgICBpZiAoYXJncy5pZ25vcmVFcnJvck9uTWlzc2luZ0NvbnRleHQgJiYgYXJncy5kdW1teVZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcihgUHJvdmlkZXIgcHJvdG9jb2wgZXJyb3I6IGlmIGlnbm9yZUVycm9yT25NaXNzaW5nQ29udGV4dCBpcyBzZXQsIGEgZHVtbXlWYWx1ZSBtdXN0IGJlIHN1cHBsaWVkIChnb3QgJHtKU09OLnN0cmluZ2lmeShhcmdzKX0pYCk7XG4gICAgfVxuICAgIGlmIChhcmdzLmR1bW15VmFsdWUgIT09IHVuZGVmaW5lZCAmJiAoIUFycmF5LmlzQXJyYXkoYXJncy5kdW1teVZhbHVlKSB8fCAhYXJncy5kdW1teVZhbHVlLmV2ZXJ5KGlzT2JqZWN0KSkpIHtcbiAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcihgUHJvdmlkZXIgcHJvdG9jb2wgZXJyb3I6IGR1bW15VmFsdWUgbXVzdCBiZSBhbiBhcnJheSBvZiBvYmplY3RzIChnb3QgJHtKU09OLnN0cmluZ2lmeShhcmdzLmR1bW15VmFsdWUpfSlgKTtcbiAgICB9XG5cbiAgICAvLyBEbyB0aGUgbG9va3VwXG4gICAgY29uc3QgY2xvdWRDb250cm9sID0gKGF3YWl0IGluaXRDb250ZXh0UHJvdmlkZXJTZGsodGhpcy5hd3MsIGFyZ3MpKS5jbG91ZENvbnRyb2woKTtcblxuICAgIHRyeSB7XG4gICAgICBsZXQgcmVzb3VyY2VzOiBGb3VuZFJlc291cmNlW107XG4gICAgICBpZiAoYXJncy5leGFjdElkZW50aWZpZXIpIHtcbiAgICAgICAgLy8gdXNlIGdldFJlc291cmNlIHRvIGdldCB0aGUgZXhhY3QgaW5kZW50aWZpZXJcbiAgICAgICAgcmVzb3VyY2VzID0gYXdhaXQgdGhpcy5nZXRSZXNvdXJjZShjbG91ZENvbnRyb2wsIGFyZ3MudHlwZU5hbWUsIGFyZ3MuZXhhY3RJZGVudGlmaWVyKTtcbiAgICAgIH0gZWxzZSBpZiAoYXJncy5wcm9wZXJ0eU1hdGNoKSB7XG4gICAgICAgIC8vIHVzZSBsaXN0UmVzb3VyY2VcbiAgICAgICAgcmVzb3VyY2VzID0gYXdhaXQgdGhpcy5saXN0UmVzb3VyY2VzKGNsb3VkQ29udHJvbCwgYXJncy50eXBlTmFtZSwgYXJncy5wcm9wZXJ0eU1hdGNoLCBhcmdzLmV4cGVjdGVkTWF0Y2hDb3VudCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoYFByb3ZpZGVyIHByb3RvY29sIGVycm9yOiBuZWl0aGVyIGV4YWN0SWRlbnRpZmllciBub3IgcHJvcGVydHlNYXRjaCBpcyBzcGVjaWZpZWQgaW4gJHtKU09OLnN0cmluZ2lmeShhcmdzKX0uYCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXNvdXJjZXMubWFwKChyKSA9PiBnZXRSZXN1bHRPYmooci5wcm9wZXJ0aWVzLCByLmlkZW50aWZpZXIsIGFyZ3MucHJvcGVydGllc1RvUmV0dXJuKSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgWmVyb1Jlc291cmNlc0ZvdW5kRXJyb3IgJiYgYXJncy5pZ25vcmVFcnJvck9uTWlzc2luZ0NvbnRleHQpIHtcbiAgICAgICAgLy8gV2UndmUgYWxyZWFkeSB0eXBlLWNoZWNrZWQgZHVtbXlWYWx1ZS5cbiAgICAgICAgcmV0dXJuIGFyZ3MuZHVtbXlWYWx1ZTtcbiAgICAgIH1cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FsbHMgZ2V0UmVzb3VyY2UgZnJvbSBDQyBBUEkgdG8gZ2V0IHRoZSByZXNvdXJjZS5cbiAgICogU2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jbGkvbGF0ZXN0L3JlZmVyZW5jZS9jbG91ZGNvbnRyb2wvZ2V0LXJlc291cmNlLmh0bWxcbiAgICpcbiAgICogV2lsbCBhbHdheXMgcmV0dXJuIGV4YWN0bHkgb25lIHJlc291cmNlLCBvciBmYWlsLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBnZXRSZXNvdXJjZShcbiAgICBjYzogSUNsb3VkQ29udHJvbENsaWVudCxcbiAgICB0eXBlTmFtZTogc3RyaW5nLFxuICAgIGV4YWN0SWRlbnRpZmllcjogc3RyaW5nLFxuICApOiBQcm9taXNlPEZvdW5kUmVzb3VyY2VbXT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjYy5nZXRSZXNvdXJjZSh7XG4gICAgICAgIFR5cGVOYW1lOiB0eXBlTmFtZSxcbiAgICAgICAgSWRlbnRpZmllcjogZXhhY3RJZGVudGlmaWVyLFxuICAgICAgfSk7XG4gICAgICBpZiAoIXJlc3VsdC5SZXNvdXJjZURlc2NyaXB0aW9uKSB7XG4gICAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcignVW5leHBlY3RlZCBDbG91ZENvbnRyb2wgQVBJIGJlaGF2aW9yOiByZXR1cm5lZCBlbXB0eSByZXNwb25zZScpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gW2ZvdW5kUmVzb3VyY2VGcm9tQ2NBcGkocmVzdWx0LlJlc291cmNlRGVzY3JpcHRpb24pXTtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIFJlc291cmNlTm90Rm91bmRFeGNlcHRpb24gfHwgKGVyciBhcyBhbnkpLm5hbWUgPT09ICdSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgWmVyb1Jlc291cmNlc0ZvdW5kRXJyb3IoYE5vIHJlc291cmNlIG9mIHR5cGUgJHt0eXBlTmFtZX0gd2l0aCBpZGVudGlmaWVyOiAke2V4YWN0SWRlbnRpZmllcn1gKTtcbiAgICAgIH1cbiAgICAgIGlmICghKGVyciBpbnN0YW5jZW9mIENvbnRleHRQcm92aWRlckVycm9yKSkge1xuICAgICAgICB0aHJvdyBuZXcgQ29udGV4dFByb3ZpZGVyRXJyb3IoYEVuY291bnRlcmVkIENDIEFQSSBlcnJvciB3aGlsZSBnZXR0aW5nICR7dHlwZU5hbWV9IHJlc291cmNlICR7ZXhhY3RJZGVudGlmaWVyfTogJHtlcnIubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FsbHMgbGlzdFJlc291cmNlcyBmcm9tIENDIEFQSSB0byBnZXQgdGhlIHJlc291cmNlcyBhbmQgYXBwbHkgYXJncy5wcm9wZXJ0eU1hdGNoIHRvIGZpbmQgdGhlIHJlc291cmNlcy5cbiAgICogU2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jbGkvbGF0ZXN0L3JlZmVyZW5jZS9jbG91ZGNvbnRyb2wvbGlzdC1yZXNvdXJjZXMuaHRtbFxuICAgKlxuICAgKiBXaWxsIHJldHVybiAwIG9yIG1vcmUgcmVzb3VyY2VzLlxuICAgKlxuICAgKiBEb2VzIG5vdCBjdXJyZW50bHkgcGFnaW5hdGUgdGhyb3VnaCBtb3JlIHRoYW4gb25lIHJlc3VsdCBwYWdlLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBsaXN0UmVzb3VyY2VzKFxuICAgIGNjOiBJQ2xvdWRDb250cm9sQ2xpZW50LFxuICAgIHR5cGVOYW1lOiBzdHJpbmcsXG4gICAgcHJvcGVydHlNYXRjaDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgZXhwZWN0ZWRNYXRjaENvdW50PzogQ2NBcGlDb250ZXh0UXVlcnlbJ2V4cGVjdGVkTWF0Y2hDb3VudCddLFxuICApOiBQcm9taXNlPEZvdW5kUmVzb3VyY2VbXT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjYy5saXN0UmVzb3VyY2VzKHtcbiAgICAgICAgVHlwZU5hbWU6IHR5cGVOYW1lLFxuXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGZvdW5kID0gKHJlc3VsdC5SZXNvdXJjZURlc2NyaXB0aW9ucyA/PyBbXSlcbiAgICAgICAgLm1hcChmb3VuZFJlc291cmNlRnJvbUNjQXBpKVxuICAgICAgICAuZmlsdGVyKChyKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHByb3BlcnR5TWF0Y2gpLmV2ZXJ5KChbcHJvcFBhdGgsIGV4cGVjdGVkXSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWN0dWFsID0gZmluZEpzb25WYWx1ZShyLnByb3BlcnRpZXMsIHByb3BQYXRoKTtcbiAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0eU1hdGNoZXNGaWx0ZXIoYWN0dWFsLCBleHBlY3RlZCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICBpZiAoKGV4cGVjdGVkTWF0Y2hDb3VudCA9PT0gJ2F0LWxlYXN0LW9uZScgfHwgZXhwZWN0ZWRNYXRjaENvdW50ID09PSAnZXhhY3RseS1vbmUnKSAmJiBmb3VuZC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IFplcm9SZXNvdXJjZXNGb3VuZEVycm9yKGBDb3VsZCBub3QgZmluZCBhbnkgcmVzb3VyY2VzIG1hdGNoaW5nICR7SlNPTi5zdHJpbmdpZnkocHJvcGVydHlNYXRjaCl9YCk7XG4gICAgICB9XG4gICAgICBpZiAoKGV4cGVjdGVkTWF0Y2hDb3VudCA9PT0gJ2F0LW1vc3Qtb25lJyB8fCBleHBlY3RlZE1hdGNoQ291bnQgPT09ICdleGFjdGx5LW9uZScpICYmIGZvdW5kLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKGBGb3VuZCAke2ZvdW5kLmxlbmd0aH0gcmVzb3VyY2VzIG1hdGNoaW5nICR7SlNPTi5zdHJpbmdpZnkocHJvcGVydHlNYXRjaCl9OyBwbGVhc2UgbmFycm93IHRoZSBzZWFyY2ggY3JpdGVyaWFgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZvdW5kO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBpZiAoIShlcnIgaW5zdGFuY2VvZiBDb250ZXh0UHJvdmlkZXJFcnJvcikgJiYgIShlcnIgaW5zdGFuY2VvZiBaZXJvUmVzb3VyY2VzRm91bmRFcnJvcikpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKGBFbmNvdW50ZXJlZCBDQyBBUEkgZXJyb3Igd2hpbGUgbGlzdGluZyAke3R5cGVOYW1lfSByZXNvdXJjZXMgbWF0Y2hpbmcgJHtKU09OLnN0cmluZ2lmeShwcm9wZXJ0eU1hdGNoKX06ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQ29udmVydCBhIENDIEFQSSByZXNwb25zZSBvYmplY3QgaW50byBhIG5pY2VyIG9iamVjdCAocGFyc2UgdGhlIEpTT04pXG4gKi9cbmZ1bmN0aW9uIGZvdW5kUmVzb3VyY2VGcm9tQ2NBcGkoZGVzYzogUmVzb3VyY2VEZXNjcmlwdGlvbik6IEZvdW5kUmVzb3VyY2Uge1xuICByZXR1cm4ge1xuICAgIGlkZW50aWZpZXI6IGRlc2MuSWRlbnRpZmllciA/PyAnKk1JU1NJTkcqJyxcbiAgICBwcm9wZXJ0aWVzOiBKU09OLnBhcnNlKGRlc2MuUHJvcGVydGllcyA/PyAne30nKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRoZSBnaXZlbiBwcm9wZXJ0eSB2YWx1ZSBtYXRjaGVzIHRoZSBnaXZlbiBmaWx0ZXJcbiAqXG4gKiBGb3Igbm93IHdlIGp1c3QgY2hlY2sgZm9yIHN0cmljdCBlcXVhbGl0eSwgYnV0IHdlIGNhbiBpbXBsZW1lbnQgcGF0dGVybiBtYXRjaGluZyBhbmQgZnV6enkgbWF0Y2hpbmcgaGVyZSBsYXRlclxuICovXG5mdW5jdGlvbiBwcm9wZXJ0eU1hdGNoZXNGaWx0ZXIoYWN0dWFsOiB1bmtub3duLCBleHBlY3RlZDogdW5rbm93bikge1xuICByZXR1cm4gZXhwZWN0ZWQgPT09IGFjdHVhbDtcbn1cblxuZnVuY3Rpb24gaXNPYmplY3QoeDogdW5rbm93bik6IHggaXMge1trZXk6IHN0cmluZ106IHVua25vd259IHtcbiAgcmV0dXJuIHR5cGVvZiB4ID09PSAnb2JqZWN0JyAmJiB4ICE9PSBudWxsICYmICFBcnJheS5pc0FycmF5KHgpO1xufVxuXG4vKipcbiAqIEEgcGFyc2VkIHZlcnNpb24gb2YgdGhlIHJldHVybiB2YWx1ZSBmcm9tIENDQVBJXG4gKi9cbmludGVyZmFjZSBGb3VuZFJlc291cmNlIHtcbiAgcmVhZG9ubHkgaWRlbnRpZmllcjogc3RyaW5nO1xuICByZWFkb25seSBwcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqXG4gKiBBIHNwZWNpZmljIGxvb2t1cCBmYWlsdXJlIGluZGljYXRpbmcgMCByZXNvdXJjZXMgZm91bmQgdGhhdCBjYW4gYmUgcmVjb3ZlcmVkXG4gKi9cbmNsYXNzIFplcm9SZXNvdXJjZXNGb3VuZEVycm9yIGV4dGVuZHMgRXJyb3Ige1xufVxuIl19
|
|
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("../../../@aws-cdk/tmp-toolkit-helpers/src/context-providers/cc-api-provider"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2MtYXBpLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2MtYXBpLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4R0FBNEYiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuLi8uLi8uLi9AYXdzLWNkay90bXAtdG9vbGtpdC1oZWxwZXJzL3NyYy9jb250ZXh0LXByb3ZpZGVycy9jYy1hcGktcHJvdmlkZXInO1xuIl19
|
|
@@ -1,13 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import type { IContextProviderMessages } from '.';
|
|
3
|
-
import { type SdkProvider } from '../api/aws-auth/sdk-provider';
|
|
4
|
-
import type { ContextProviderPlugin } from '../api/plugin';
|
|
5
|
-
/**
|
|
6
|
-
* Plugin to retrieve the Availability Zones for an endpoint service
|
|
7
|
-
*/
|
|
8
|
-
export declare class EndpointServiceAZContextProviderPlugin implements ContextProviderPlugin {
|
|
9
|
-
private readonly aws;
|
|
10
|
-
private readonly io;
|
|
11
|
-
constructor(aws: SdkProvider, io: IContextProviderMessages);
|
|
12
|
-
getValue(args: EndpointServiceAvailabilityZonesContextQuery): Promise<string[] | undefined>;
|
|
13
|
-
}
|
|
1
|
+
export * from '../../../@aws-cdk/tmp-toolkit-helpers/src/context-providers/endpoint-service-availability-zones';
|
|
@@ -1,33 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
*/
|
|
8
|
-
class EndpointServiceAZContextProviderPlugin {
|
|
9
|
-
constructor(aws, io) {
|
|
10
|
-
this.aws = aws;
|
|
11
|
-
this.io = io;
|
|
12
|
-
}
|
|
13
|
-
async getValue(args) {
|
|
14
|
-
const region = args.region;
|
|
15
|
-
const account = args.account;
|
|
16
|
-
const serviceName = args.serviceName;
|
|
17
|
-
await this.io.debug(`Reading AZs for ${account}:${region}:${serviceName}`);
|
|
18
|
-
const ec2 = (await (0, sdk_provider_1.initContextProviderSdk)(this.aws, args)).ec2();
|
|
19
|
-
const response = await ec2.describeVpcEndpointServices({
|
|
20
|
-
ServiceNames: [serviceName],
|
|
21
|
-
});
|
|
22
|
-
// expect a service in the response
|
|
23
|
-
if (!response.ServiceDetails || response.ServiceDetails.length === 0) {
|
|
24
|
-
await this.io.debug(`Could not retrieve service details for ${account}:${region}:${serviceName}`);
|
|
25
|
-
return [];
|
|
26
|
-
}
|
|
27
|
-
const azs = response.ServiceDetails[0].AvailabilityZones;
|
|
28
|
-
await this.io.debug(`Endpoint service ${account}:${region}:${serviceName} is available in availability zones ${azs}`);
|
|
29
|
-
return azs;
|
|
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]; } };
|
|
30
7
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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("../../../@aws-cdk/tmp-toolkit-helpers/src/context-providers/endpoint-service-availability-zones"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kcG9pbnQtc2VydmljZS1hdmFpbGFiaWxpdHktem9uZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbmRwb2ludC1zZXJ2aWNlLWF2YWlsYWJpbGl0eS16b25lcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsa0lBQWdIIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi4vLi4vLi4vQGF3cy1jZGsvdG1wLXRvb2xraXQtaGVscGVycy9zcmMvY29udGV4dC1wcm92aWRlcnMvZW5kcG9pbnQtc2VydmljZS1hdmFpbGFiaWxpdHktem9uZXMnO1xuIl19
|
|
@@ -1,12 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import type { IContextProviderMessages } from '.';
|
|
3
|
-
import { type SdkProvider } from '../api/aws-auth/sdk-provider';
|
|
4
|
-
import type { ContextProviderPlugin } from '../api/plugin';
|
|
5
|
-
export declare class HostedZoneContextProviderPlugin implements ContextProviderPlugin {
|
|
6
|
-
private readonly aws;
|
|
7
|
-
private readonly io;
|
|
8
|
-
constructor(aws: SdkProvider, io: IContextProviderMessages);
|
|
9
|
-
getValue(args: HostedZoneContextQuery): Promise<object>;
|
|
10
|
-
private filterZones;
|
|
11
|
-
private isHostedZoneQuery;
|
|
12
|
-
}
|
|
1
|
+
export * from '../../../@aws-cdk/tmp-toolkit-helpers/src/context-providers/hosted-zones';
|
|
@@ -1,67 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
constructor(aws, io) {
|
|
8
|
-
this.aws = aws;
|
|
9
|
-
this.io = io;
|
|
10
|
-
}
|
|
11
|
-
async getValue(args) {
|
|
12
|
-
const account = args.account;
|
|
13
|
-
const region = args.region;
|
|
14
|
-
if (!this.isHostedZoneQuery(args)) {
|
|
15
|
-
throw new api_1.ContextProviderError(`HostedZoneProvider requires domainName property to be set in ${args}`);
|
|
16
|
-
}
|
|
17
|
-
const domainName = args.domainName;
|
|
18
|
-
await this.io.debug(`Reading hosted zone ${account}:${region}:${domainName}`);
|
|
19
|
-
const r53 = (await (0, sdk_provider_1.initContextProviderSdk)(this.aws, args)).route53();
|
|
20
|
-
const response = await r53.listHostedZonesByName({ DNSName: domainName });
|
|
21
|
-
if (!response.HostedZones) {
|
|
22
|
-
throw new api_1.ContextProviderError(`Hosted Zone not found in account ${account}, region ${region}: ${domainName}`);
|
|
23
|
-
}
|
|
24
|
-
const candidateZones = await this.filterZones(r53, response.HostedZones, args);
|
|
25
|
-
if (candidateZones.length !== 1) {
|
|
26
|
-
const filteProps = `dns:${domainName}, privateZone:${args.privateZone}, vpcId:${args.vpcId}`;
|
|
27
|
-
throw new api_1.ContextProviderError(`Found zones: ${JSON.stringify(candidateZones)} for ${filteProps}, but wanted exactly 1 zone`);
|
|
28
|
-
}
|
|
29
|
-
return {
|
|
30
|
-
Id: candidateZones[0].Id,
|
|
31
|
-
Name: candidateZones[0].Name,
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
async filterZones(r53, zones, props) {
|
|
35
|
-
let candidates = [];
|
|
36
|
-
const domainName = props.domainName.endsWith('.') ? props.domainName : `${props.domainName}.`;
|
|
37
|
-
await this.io.debug(`Found the following zones ${JSON.stringify(zones)}`);
|
|
38
|
-
candidates = zones.filter((zone) => zone.Name === domainName);
|
|
39
|
-
await this.io.debug(`Found the following matched name zones ${JSON.stringify(candidates)}`);
|
|
40
|
-
if (props.privateZone) {
|
|
41
|
-
candidates = candidates.filter((zone) => zone.Config && zone.Config.PrivateZone);
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
candidates = candidates.filter((zone) => !zone.Config || !zone.Config.PrivateZone);
|
|
45
|
-
}
|
|
46
|
-
if (props.vpcId) {
|
|
47
|
-
const vpcZones = [];
|
|
48
|
-
for (const zone of candidates) {
|
|
49
|
-
const data = await r53.getHostedZone({ Id: zone.Id });
|
|
50
|
-
if (!data.VPCs) {
|
|
51
|
-
await this.io.debug(`Expected VPC for private zone but no VPC found ${zone.Id}`);
|
|
52
|
-
continue;
|
|
53
|
-
}
|
|
54
|
-
if (data.VPCs.map((vpc) => vpc.VPCId).includes(props.vpcId)) {
|
|
55
|
-
vpcZones.push(zone);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return vpcZones;
|
|
59
|
-
}
|
|
60
|
-
return candidates;
|
|
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]; } };
|
|
61
7
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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("../../../@aws-cdk/tmp-toolkit-helpers/src/context-providers/hosted-zones"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdGVkLXpvbmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaG9zdGVkLXpvbmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyR0FBeUYiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuLi8uLi8uLi9AYXdzLWNkay90bXAtdG9vbGtpdC1oZWxwZXJzL3NyYy9jb250ZXh0LXByb3ZpZGVycy9ob3N0ZWQtem9uZXMnO1xuIl19
|
|
@@ -1,44 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import type { IoHelper } from '../../../@aws-cdk/tmp-toolkit-helpers/src/api/io/private';
|
|
3
|
-
import type { SdkProvider } from '../api';
|
|
4
|
-
import type { Context } from '../api/context';
|
|
5
|
-
import type { ContextProviderPlugin } from '../api/plugin/context-provider-plugin';
|
|
6
|
-
type ContextProviderFactory = ((sdk: SdkProvider, io: IContextProviderMessages) => ContextProviderPlugin);
|
|
7
|
-
export interface IContextProviderMessages {
|
|
8
|
-
/**
|
|
9
|
-
* A message that is presented to users in normal mode of operation.
|
|
10
|
-
*
|
|
11
|
-
* Should be used sparingly. The Context Provider framework already provides useful output by default.
|
|
12
|
-
* This can be uses in exceptionally situations, e.g. if a lookup call is expected to take a long time.
|
|
13
|
-
*/
|
|
14
|
-
info(message: string): Promise<void>;
|
|
15
|
-
/**
|
|
16
|
-
* A message that helps users debugging the context provider.
|
|
17
|
-
*
|
|
18
|
-
* Should be used in most cases to note on current action.
|
|
19
|
-
*/
|
|
20
|
-
debug(message: string): Promise<void>;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Iterate over the list of missing context values and invoke the appropriate providers from the map to retrieve them
|
|
24
|
-
*/
|
|
25
|
-
export declare function provideContextValues(missingValues: cxschema.MissingContext[], context: Context, sdk: SdkProvider, ioHelper: IoHelper): Promise<void>;
|
|
26
|
-
/**
|
|
27
|
-
* Register a context provider
|
|
28
|
-
*
|
|
29
|
-
* A context provider cannot reuse the SDKs authentication mechanisms.
|
|
30
|
-
*/
|
|
31
|
-
export declare function registerContextProvider(name: string, provider: ContextProviderPlugin): void;
|
|
32
|
-
/**
|
|
33
|
-
* Register a plugin context provider
|
|
34
|
-
*
|
|
35
|
-
* A plugin provider cannot reuse the SDKs authentication mechanisms.
|
|
36
|
-
*/
|
|
37
|
-
export declare function registerPluginContextProvider(name: string, provider: ContextProviderPlugin): void;
|
|
38
|
-
/**
|
|
39
|
-
* Register a context provider factory
|
|
40
|
-
*
|
|
41
|
-
* A context provider factory takes an SdkProvider and returns the context provider plugin.
|
|
42
|
-
*/
|
|
43
|
-
export declare function registerContextProviderFactory(name: string, provider: ContextProviderFactory): void;
|
|
44
|
-
export {};
|
|
1
|
+
export * from '../../../@aws-cdk/tmp-toolkit-helpers/src/context-providers';
|