cdk-ecr-deployment 4.2.7 → 4.2.9
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/.jsii +5569 -56
- package/.yarn/install-state.gz +0 -0
- package/README.md +17 -26
- package/examples/Dockerfile +5 -0
- package/examples/README.md +40 -0
- package/examples/docker-image-asset.ts +36 -0
- package/examples/multi-arch-index.ts +35 -0
- package/examples/private-registry-credentials.ts +45 -0
- package/examples/retry-config.ts +35 -0
- package/examples/s3-archive.ts +38 -0
- package/examples/specific-architecture.ts +38 -0
- package/lambda-bin/bootstrap +0 -0
- package/lib/index.js +3 -3
- package/package.json +5 -1
package/.yarn/install-state.gz
CHANGED
|
Binary file
|
package/README.md
CHANGED
|
@@ -19,7 +19,7 @@ CDK construct to synchronize single docker image between docker registries.
|
|
|
19
19
|
- Copy image or multi-architecture image index from ECR/external registry to (another) ECR/external registry
|
|
20
20
|
- Copy an archive tarball image from s3 to ECR/external registry
|
|
21
21
|
|
|
22
|
-
##
|
|
22
|
+
## Usage
|
|
23
23
|
|
|
24
24
|
```ts
|
|
25
25
|
import { DockerImageAsset } from 'aws-cdk-lib/aws-ecr-assets';
|
|
@@ -82,52 +82,43 @@ new ecrdeploy.ECRDeployment(this, 'DeployDockerImage5', {
|
|
|
82
82
|
});
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
-
##
|
|
85
|
+
## Examples: [examples/](./examples)
|
|
86
|
+
|
|
87
|
+
The [examples/](./examples) directory contains a runnable CDK app per scenario
|
|
88
|
+
(local image asset, specific architecture, multi-arch index, retry config, S3
|
|
89
|
+
archive, and private-registry credentials). See [examples/README.md](./examples/README.md).
|
|
86
90
|
|
|
87
91
|
After cloning the repository, install dependencies and run a full build:
|
|
88
92
|
|
|
89
93
|
```console
|
|
90
|
-
yarn
|
|
94
|
+
yarn install --immutable
|
|
91
95
|
yarn build
|
|
92
96
|
```
|
|
93
97
|
|
|
94
|
-
Then
|
|
98
|
+
Then synth or deploy any example:
|
|
95
99
|
|
|
96
100
|
```shell
|
|
97
|
-
|
|
98
|
-
npx cdk deploy
|
|
101
|
+
npx cdk synth --app "npx ts-node examples/docker-image-asset.ts"
|
|
102
|
+
npx cdk deploy --app "npx ts-node examples/docker-image-asset.ts"
|
|
99
103
|
```
|
|
100
104
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
**Please note that Secrets will occur a cost.**
|
|
105
|
+
The [private-registry-credentials](./examples/private-registry-credentials.ts) example needs a
|
|
106
|
+
Secret in AWS Secrets Manager with your DockerHub credentials (**note: secrets incur a cost**):
|
|
104
107
|
|
|
105
108
|
```console
|
|
106
109
|
aws secretsmanager create-secret --name DockerHubCredentials --secret-string "username:access-token"
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
From the output, copy the ARN of your new secret and export it as env variable
|
|
110
|
-
|
|
111
|
-
```console
|
|
112
110
|
export DOCKERHUB_SECRET_ARN="<ARN>"
|
|
113
111
|
```
|
|
114
112
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
```shell
|
|
118
|
-
# Run the following command to try the sample.
|
|
119
|
-
npx cdk deploy -a "npx ts-node -P tsconfig.dev.json --prefer-ts-exts test/dockerhub-example.ecr-deployment.ts"
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
If your Secret is encrypted, you might have to adjust the example to also grant decrypt permissions.
|
|
113
|
+
If your secret is encrypted, you might have to adjust the example to also grant decrypt permissions.
|
|
123
114
|
|
|
124
115
|
## [API](./API.md)
|
|
125
116
|
|
|
126
|
-
## Tech Details &
|
|
117
|
+
## Tech Details & Contributions
|
|
127
118
|
|
|
128
|
-
The core of this project relies on [containers/image](https://github.com/containers/image) which is used by [Skopeo](https://github.com/containers/skopeo).
|
|
129
|
-
Please take a look at those projects before
|
|
119
|
+
The core of this project relies on [containers/image](https://github.com/containers/container-libs/tree/main/image) (published as the Go module `go.podman.io/image/v5`) which is used by [Skopeo](https://github.com/containers/skopeo).
|
|
120
|
+
Please take a look at those projects before contributing.
|
|
130
121
|
|
|
131
|
-
To support a new docker image source(like docker tarball in s3), you need to implement [image transport interface](https://github.com/containers/
|
|
122
|
+
To support a new docker image source (like docker tarball in s3), you need to implement [image transport interface](https://github.com/containers/container-libs/blob/main/image/types/types.go). You could take a look at [docker-archive](https://github.com/containers/container-libs/blob/main/image/docker/archive/transport.go) transport for a good start.
|
|
132
123
|
|
|
133
124
|
Any error in the custom resource provider will show up in the CloudFormation error log as `Invalid PhysicalResourceId`, because of this: <https://github.com/aws/aws-lambda-go/issues/107>. You need to go into the CloudWatch Log Group to find the real error.
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
# Tiny base used by the Docker image asset examples.
|
|
5
|
+
FROM public.ecr.aws/nginx/nginx:alpine-slim@sha256:5b52c95c8eeda19dfa9dae708c4e66dce9f0910a6ac5e85dc19779160615b5b2
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# cdk-ecr-deployment examples
|
|
2
|
+
|
|
3
|
+
Each file is a self-contained CDK app demonstrating one `ECRDeployment` scenario.
|
|
4
|
+
The header comment in each file explains what it does.
|
|
5
|
+
|
|
6
|
+
| Example | Scenario |
|
|
7
|
+
| -------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
|
|
8
|
+
| [docker-image-asset.ts](./docker-image-asset.ts) | Copy a local Docker image asset (built from [`Dockerfile`](./Dockerfile)) to ECR |
|
|
9
|
+
| [specific-architecture.ts](./specific-architecture.ts) | Copy a single architecture with `imageArch` |
|
|
10
|
+
| [multi-arch-index.ts](./multi-arch-index.ts) | Copy a full multi-arch image index with `copyImageIndex` + `archImageTags` |
|
|
11
|
+
| [retry-config.ts](./retry-config.ts) | Tune ECR PutImage retry/backoff with `retryConfigs` |
|
|
12
|
+
| [s3-archive.ts](./s3-archive.ts) | Copy from a `docker save` tarball stored in S3 via `S3ArchiveName` |
|
|
13
|
+
| [private-registry-credentials.ts](./private-registry-credentials.ts) | Copy from a private registry (DockerHub) using a Secrets Manager secret |
|
|
14
|
+
|
|
15
|
+
## Running
|
|
16
|
+
|
|
17
|
+
First build the project from the repo root:
|
|
18
|
+
|
|
19
|
+
```console
|
|
20
|
+
yarn install --immutable
|
|
21
|
+
yarn build
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Synthesize any example:
|
|
25
|
+
|
|
26
|
+
```console
|
|
27
|
+
npx cdk synth --app "npx ts-node examples/docker-image-asset.ts"
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Deploy it (creates real resources):
|
|
31
|
+
|
|
32
|
+
```console
|
|
33
|
+
npx cdk deploy --app "npx ts-node examples/docker-image-asset.ts"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Prerequisites
|
|
37
|
+
|
|
38
|
+
- **Docker** must be running for the asset-based examples (`docker-image-asset.ts`, `specific-architecture.ts`).
|
|
39
|
+
- **`private-registry-credentials.ts`** needs a Secrets Manager secret with DockerHub credentials. Set `DOCKERHUB_SECRET_ARN` to synth or deploy (the example fails fast without it). Secrets incur a cost.
|
|
40
|
+
- **`s3-archive.ts`** needs a `docker save` tarball uploaded to the referenced S3 bucket/key before deploying.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Example: copy a local Docker image asset into your own ECR repository.
|
|
6
|
+
*
|
|
7
|
+
* The Dockerfile in this directory is built as a CDK `DockerImageAsset` (CDK
|
|
8
|
+
* pushes it to the bootstrapped CDK assets repo), then `ECRDeployment` copies
|
|
9
|
+
* that image into the `TargetRepo` under the `latest` tag.
|
|
10
|
+
*
|
|
11
|
+
* Run:
|
|
12
|
+
* npx cdk synth --app "npx ts-node examples/docker-image-asset.ts"
|
|
13
|
+
*/
|
|
14
|
+
import * as path from 'path';
|
|
15
|
+
import { App, RemovalPolicy, Stack, aws_ecr as ecr, aws_ecr_assets as assets } from 'aws-cdk-lib';
|
|
16
|
+
import * as ecrDeploy from '../src/index';
|
|
17
|
+
|
|
18
|
+
const app = new App();
|
|
19
|
+
const stack = new Stack(app, 'ecr-deploy-docker-image-asset');
|
|
20
|
+
|
|
21
|
+
const repo = new ecr.Repository(stack, 'TargetRepo', {
|
|
22
|
+
removalPolicy: RemovalPolicy.DESTROY,
|
|
23
|
+
emptyOnDelete: true,
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
const image = new assets.DockerImageAsset(stack, 'Image', {
|
|
27
|
+
directory: path.join(__dirname),
|
|
28
|
+
file: 'Dockerfile',
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
new ecrDeploy.ECRDeployment(stack, 'DeployImage', {
|
|
32
|
+
src: new ecrDeploy.DockerImageName(image.imageUri),
|
|
33
|
+
dest: new ecrDeploy.DockerImageName(`${repo.repositoryUri}:latest`),
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
app.synth();
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Example: copy a full multi-architecture image index (manifest list).
|
|
6
|
+
*
|
|
7
|
+
* `copyImageIndex: true` copies every architecture referenced by the source
|
|
8
|
+
* manifest list rather than a single platform. `archImageTags` additionally
|
|
9
|
+
* tags each per-architecture image so they can be pulled individually.
|
|
10
|
+
*
|
|
11
|
+
* Run:
|
|
12
|
+
* npx cdk synth --app "npx ts-node examples/multi-arch-index.ts"
|
|
13
|
+
*/
|
|
14
|
+
import { App, RemovalPolicy, Stack, aws_ecr as ecr } from 'aws-cdk-lib';
|
|
15
|
+
import * as ecrDeploy from '../src/index';
|
|
16
|
+
|
|
17
|
+
const app = new App();
|
|
18
|
+
const stack = new Stack(app, 'ecr-deploy-multi-arch-index');
|
|
19
|
+
|
|
20
|
+
const repo = new ecr.Repository(stack, 'TargetRepo', {
|
|
21
|
+
removalPolicy: RemovalPolicy.DESTROY,
|
|
22
|
+
emptyOnDelete: true,
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
new ecrDeploy.ECRDeployment(stack, 'DeployImageIndex', {
|
|
26
|
+
src: new ecrDeploy.DockerImageName('public.ecr.aws/nginx/nginx:latest'),
|
|
27
|
+
dest: new ecrDeploy.DockerImageName(`${repo.repositoryUri}:nginx-manifest`),
|
|
28
|
+
copyImageIndex: true,
|
|
29
|
+
archImageTags: {
|
|
30
|
+
amd64: 'nginx-amd64',
|
|
31
|
+
arm64: 'nginx-arm64',
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
app.synth();
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Example: copy from a private registry (DockerHub) using credentials stored in
|
|
6
|
+
* AWS Secrets Manager.
|
|
7
|
+
*
|
|
8
|
+
* Pass the secret ARN as the second `DockerImageName` argument. The secret must
|
|
9
|
+
* be either plain text `username:password` or JSON
|
|
10
|
+
* `{"username":"...","password":"..."}`. The deployment lambda is granted
|
|
11
|
+
* `secretsmanager:GetSecretValue` on that secret via `addToPrincipalPolicy`.
|
|
12
|
+
*
|
|
13
|
+
* Provide a real secret (required to synth or deploy):
|
|
14
|
+
* export DOCKERHUB_SECRET_ARN=arn:aws:secretsmanager:<region>:<account>:secret:<name>
|
|
15
|
+
*
|
|
16
|
+
* Run:
|
|
17
|
+
* npx cdk synth --app "npx ts-node examples/private-registry-credentials.ts"
|
|
18
|
+
*/
|
|
19
|
+
import { App, RemovalPolicy, Stack, aws_ecr as ecr, aws_iam as iam, aws_secretsmanager as sm } from 'aws-cdk-lib';
|
|
20
|
+
import * as ecrDeploy from '../src/index';
|
|
21
|
+
|
|
22
|
+
const app = new App();
|
|
23
|
+
const stack = new Stack(app, 'ecr-deploy-private-registry-credentials');
|
|
24
|
+
|
|
25
|
+
const repo = new ecr.Repository(stack, 'TargetRepo', {
|
|
26
|
+
removalPolicy: RemovalPolicy.DESTROY,
|
|
27
|
+
emptyOnDelete: true,
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
const secretArn = process.env.DOCKERHUB_SECRET_ARN;
|
|
31
|
+
if (!secretArn) {
|
|
32
|
+
throw new Error('DOCKERHUB_SECRET_ARN is required; see examples/README.md');
|
|
33
|
+
}
|
|
34
|
+
const dockerHubSecret = sm.Secret.fromSecretCompleteArn(stack, 'DockerHubSecret', secretArn);
|
|
35
|
+
|
|
36
|
+
new ecrDeploy.ECRDeployment(stack, 'DeployFromDockerHub', {
|
|
37
|
+
src: new ecrDeploy.DockerImageName('alpine:latest', dockerHubSecret.secretFullArn),
|
|
38
|
+
dest: new ecrDeploy.DockerImageName(`${repo.repositoryUri}:alpine-from-dockerhub`),
|
|
39
|
+
}).addToPrincipalPolicy(new iam.PolicyStatement({
|
|
40
|
+
effect: iam.Effect.ALLOW,
|
|
41
|
+
actions: ['secretsmanager:GetSecretValue'],
|
|
42
|
+
resources: [dockerHubSecret.secretArn],
|
|
43
|
+
}));
|
|
44
|
+
|
|
45
|
+
app.synth();
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Example: tune retry behaviour for ECR PutImage throttling.
|
|
6
|
+
*
|
|
7
|
+
* ECR allows ~10 PutImage TPS by default, so copying many images in parallel
|
|
8
|
+
* can hit rate limits. `retryConfigs` adds exponential backoff with jitter:
|
|
9
|
+
* `numAttempts` total tries, `baseDelay`/`maxDelay` (seconds) bound the wait.
|
|
10
|
+
*
|
|
11
|
+
* Run:
|
|
12
|
+
* npx cdk synth --app "npx ts-node examples/retry-config.ts"
|
|
13
|
+
*/
|
|
14
|
+
import { App, RemovalPolicy, Stack, aws_ecr as ecr } from 'aws-cdk-lib';
|
|
15
|
+
import * as ecrDeploy from '../src/index';
|
|
16
|
+
|
|
17
|
+
const app = new App();
|
|
18
|
+
const stack = new Stack(app, 'ecr-deploy-retry-config');
|
|
19
|
+
|
|
20
|
+
const repo = new ecr.Repository(stack, 'TargetRepo', {
|
|
21
|
+
removalPolicy: RemovalPolicy.DESTROY,
|
|
22
|
+
emptyOnDelete: true,
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
new ecrDeploy.ECRDeployment(stack, 'DeployImage', {
|
|
26
|
+
src: new ecrDeploy.DockerImageName('public.ecr.aws/nginx/nginx:latest'),
|
|
27
|
+
dest: new ecrDeploy.DockerImageName(`${repo.repositoryUri}:latest`),
|
|
28
|
+
retryConfigs: {
|
|
29
|
+
numAttempts: 3,
|
|
30
|
+
baseDelay: 1,
|
|
31
|
+
maxDelay: 30,
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
app.synth();
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Example: copy an image from a docker-archive tarball stored in S3.
|
|
6
|
+
*
|
|
7
|
+
* `S3ArchiveName(path, ref)` references a `docker save`-format tarball at
|
|
8
|
+
* `s3://<path>`; `ref` selects an image by RepoTag inside the archive (omit it
|
|
9
|
+
* to copy the only image). The deployment lambda needs `s3:GetObject` on the
|
|
10
|
+
* object, granted here via `addToPrincipalPolicy`.
|
|
11
|
+
*
|
|
12
|
+
* Run:
|
|
13
|
+
* npx cdk synth --app "npx ts-node examples/s3-archive.ts"
|
|
14
|
+
*/
|
|
15
|
+
import { App, RemovalPolicy, Stack, aws_ecr as ecr, aws_iam as iam } from 'aws-cdk-lib';
|
|
16
|
+
import * as ecrDeploy from '../src/index';
|
|
17
|
+
|
|
18
|
+
const app = new App();
|
|
19
|
+
const stack = new Stack(app, 'ecr-deploy-s3-archive');
|
|
20
|
+
|
|
21
|
+
const repo = new ecr.Repository(stack, 'TargetRepo', {
|
|
22
|
+
removalPolicy: RemovalPolicy.DESTROY,
|
|
23
|
+
emptyOnDelete: true,
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
const bucket = 'my-bucket';
|
|
27
|
+
const key = 'nginx.tar';
|
|
28
|
+
|
|
29
|
+
new ecrDeploy.ECRDeployment(stack, 'DeployFromS3', {
|
|
30
|
+
src: new ecrDeploy.S3ArchiveName(`${bucket}/${key}`, 'nginx:latest'),
|
|
31
|
+
dest: new ecrDeploy.DockerImageName(`${repo.repositoryUri}:latest`),
|
|
32
|
+
}).addToPrincipalPolicy(new iam.PolicyStatement({
|
|
33
|
+
effect: iam.Effect.ALLOW,
|
|
34
|
+
actions: ['s3:GetObject'],
|
|
35
|
+
resources: [`arn:aws:s3:::${bucket}/${key}`],
|
|
36
|
+
}));
|
|
37
|
+
|
|
38
|
+
app.synth();
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Example: copy a single, specific architecture of an image.
|
|
6
|
+
*
|
|
7
|
+
* When a source reference points at a multi-architecture image, `imageArch`
|
|
8
|
+
* selects exactly one platform to copy (here `arm64`). The arm64 asset is
|
|
9
|
+
* copied to ECR under the `latest-arm64` tag.
|
|
10
|
+
*
|
|
11
|
+
* Run:
|
|
12
|
+
* npx cdk synth --app "npx ts-node examples/specific-architecture.ts"
|
|
13
|
+
*/
|
|
14
|
+
import * as path from 'path';
|
|
15
|
+
import { App, RemovalPolicy, Stack, aws_ecr as ecr, aws_ecr_assets as assets } from 'aws-cdk-lib';
|
|
16
|
+
import * as ecrDeploy from '../src/index';
|
|
17
|
+
|
|
18
|
+
const app = new App();
|
|
19
|
+
const stack = new Stack(app, 'ecr-deploy-specific-architecture');
|
|
20
|
+
|
|
21
|
+
const repo = new ecr.Repository(stack, 'TargetRepo', {
|
|
22
|
+
removalPolicy: RemovalPolicy.DESTROY,
|
|
23
|
+
emptyOnDelete: true,
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
const imageArm = new assets.DockerImageAsset(stack, 'ImageArm', {
|
|
27
|
+
directory: path.join(__dirname),
|
|
28
|
+
file: 'Dockerfile',
|
|
29
|
+
platform: assets.Platform.LINUX_ARM64,
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
new ecrDeploy.ECRDeployment(stack, 'DeployImageArm', {
|
|
33
|
+
src: new ecrDeploy.DockerImageName(imageArm.imageUri),
|
|
34
|
+
dest: new ecrDeploy.DockerImageName(`${repo.repositoryUri}:latest-arm64`),
|
|
35
|
+
imageArch: ['arm64'],
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
app.synth();
|
package/lambda-bin/bootstrap
CHANGED
|
Binary file
|
package/lib/index.js
CHANGED
|
@@ -25,7 +25,7 @@ class DockerImageName {
|
|
|
25
25
|
}
|
|
26
26
|
exports.DockerImageName = DockerImageName;
|
|
27
27
|
_a = JSII_RTTI_SYMBOL_1;
|
|
28
|
-
DockerImageName[_a] = { fqn: "cdk-ecr-deployment.DockerImageName", version: "4.2.
|
|
28
|
+
DockerImageName[_a] = { fqn: "cdk-ecr-deployment.DockerImageName", version: "4.2.9" };
|
|
29
29
|
class S3ArchiveName {
|
|
30
30
|
/**
|
|
31
31
|
* @param p - the S3 bucket name and path of the archive (a S3 URI without the s3://)
|
|
@@ -46,7 +46,7 @@ class S3ArchiveName {
|
|
|
46
46
|
}
|
|
47
47
|
exports.S3ArchiveName = S3ArchiveName;
|
|
48
48
|
_b = JSII_RTTI_SYMBOL_1;
|
|
49
|
-
S3ArchiveName[_b] = { fqn: "cdk-ecr-deployment.S3ArchiveName", version: "4.2.
|
|
49
|
+
S3ArchiveName[_b] = { fqn: "cdk-ecr-deployment.S3ArchiveName", version: "4.2.9" };
|
|
50
50
|
class ECRDeployment extends constructs_1.Construct {
|
|
51
51
|
constructor(scope, id, props) {
|
|
52
52
|
super(scope, id);
|
|
@@ -191,5 +191,5 @@ class ECRDeployment extends constructs_1.Construct {
|
|
|
191
191
|
}
|
|
192
192
|
exports.ECRDeployment = ECRDeployment;
|
|
193
193
|
_c = JSII_RTTI_SYMBOL_1;
|
|
194
|
-
ECRDeployment[_c] = { fqn: "cdk-ecr-deployment.ECRDeployment", version: "4.2.
|
|
194
|
+
ECRDeployment[_c] = { fqn: "cdk-ecr-deployment.ECRDeployment", version: "4.2.9" };
|
|
195
195
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxRUFBcUU7QUFDckUsc0NBQXNDO0FBRXRDLDZCQUE2QjtBQUM3Qiw2Q0FBcUk7QUFFckksdURBQXVEO0FBQ3ZELDJDQUF1QztBQXlIdkMsTUFBYSxlQUFlO0lBQzFCOzs7Ozs7T0FNRztJQUNILFlBQTJCLElBQVksRUFBUyxLQUFjO1FBQW5DLFNBQUksR0FBSixJQUFJLENBQVE7UUFBUyxVQUFLLEdBQUwsS0FBSyxDQUFTO0lBQUksQ0FBQztJQUNuRSxJQUFXLEdBQUcsS0FBYSxPQUFPLFlBQVksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQzs7QUFUOUQsMENBVUM7OztBQUVELE1BQWEsYUFBYTtJQUd4Qjs7Ozs7OztPQU9HO0lBQ0gsWUFBbUIsQ0FBUyxFQUFFLEdBQVksRUFBUyxLQUFjO1FBQWQsVUFBSyxHQUFMLEtBQUssQ0FBUztRQUMvRCxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksR0FBRyxFQUFFLENBQUM7WUFDUixJQUFJLENBQUMsSUFBSSxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFDRCxJQUFXLEdBQUcsS0FBYSxPQUFPLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQzs7QUFqQjFELHNDQWtCQzs7O0FBRUQsTUFBYSxhQUFjLFNBQVEsc0JBQVM7SUFHMUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF5QjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLElBQUksR0FBRyxDQUFDO1FBQzdDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSx3QkFBTSxDQUFDLGlCQUFpQixDQUFDLElBQUks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LElBQUksQ0FBQztRQUN0QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7UUFBQyxDQUFDO1FBRTdGLE9BQU8sV0FBVyxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxXQUFvQjtRQUM5QyxJQUFJLElBQUksR0FBRyxzQ0FBc0MsQ0FBQztRQUVsRCwwRUFBMEU7UUFDMUUsMkVBQTJFO1FBQzNFLDRDQUE0QztRQUM1QyxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLElBQUksbUJBQUssQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztnQkFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtSEFBbUgsQ0FBQyxDQUFDO1lBQ3ZJLENBQUM7WUFFRCxJQUFJLElBQUksSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQztRQUMxQyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOztBQXRKSCxzQ0F1SkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBhd3NfZWMyIGFzIGVjMiwgYXdzX2lhbSBhcyBpYW0sIGF3c19sYW1iZGEgYXMgbGFtYmRhLCBBcm4sIEF3cywgRHVyYXRpb24sIEN1c3RvbVJlc291cmNlLCBTdGFjaywgVG9rZW4gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQsIEFkZFRvUHJpbmNpcGFsUG9saWN5UmVzdWx0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBSdW50aW1lRmFtaWx5IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBFQ1JEZXBsb3ltZW50UHJvcHMge1xuICAvKipcbiAgICogVGhlIHNvdXJjZSBvZiB0aGUgZG9ja2VyIGltYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3JjOiBJSW1hZ2VOYW1lO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVzdGluYXRpb24gb2YgdGhlIGRvY2tlciBpbWFnZS5cbiAgICovXG4gIHJlYWRvbmx5IGRlc3Q6IElJbWFnZU5hbWU7XG5cbiAgLyoqXG4gICAqIFRoZSBpbWFnZSBhcmNoaXRlY3R1cmUgdG8gYmUgY29waWVkLlxuICAgKlxuICAgKiBUaGUgJ2FtZDY0JyBhcmNoaXRlY3R1cmUgd2lsbCBiZSBjb3BpZWQgYnkgZGVmYXVsdC4gU3BlY2lmeSB0aGVcbiAgICogYXJjaGl0ZWN0dXJlIG9yIGFyY2hpdGVjdHVyZXMgdG8gY29weSBoZXJlLlxuICAgKlxuICAgKiBJdCBpcyBjdXJyZW50bHkgbm90IHBvc3NpYmxlIHRvIGNvcHkgbW9yZSB0aGFuIG9uZSBhcmNoaXRlY3R1cmVcbiAgICogYXQgYSB0aW1lOiB0aGUgYXJyYXkgeW91IHNwZWNpZnkgbXVzdCBjb250YWluIGV4YWN0bHkgb25lIHN0cmluZy5cbiAgICpcbiAgICogQGRlZmF1bHQgWydhbWQ2NCddXG4gICAqL1xuICByZWFkb25seSBpbWFnZUFyY2g/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBjb3B5IGEgc291cmNlIGRvY2tlciBpbWFnZSBpbmRleCAobXVsdGktYXJjaCBtYW5pZmVzdCkgdG8gdGhlIGRlc3RpbmF0aW9uLlxuICAgKlxuICAgKiBXaGVuIHRydWUsIGNvcGllcyB0aGUgaW1hZ2UgaW5kZXggYW5kIGFsbCB1bmRlcmx5aW5nIGFyY2hpdGVjdHVyZS1zcGVjaWZpY1xuICAgKiBpbWFnZXMgaW4gYSBzaW5nbGUgb3BlcmF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCBGYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY29weUltYWdlSW5kZXg/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUYWdzIHRvIGFwcGx5IHRvIGluZGl2aWR1YWwgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGltYWdlcyB3aGVuXG4gICAqIGNvcHlJbWFnZUluZGV4IGlzIHRydWUuXG4gICAqXG4gICAqIENhbiBvbmx5IGJlIHNwZWNpZmllZCB3aGVuIGNvcHlJbWFnZUluZGV4IGlzIHRydWUuIE1hcHMgYXJjaGl0ZWN0dXJlIG5hbWVzIHRvXG4gICAqIHRoZWlyIHJlc3BlY3RpdmUgdGFncy4gVGhpcyBtYWtlcyBpbmRpdmlkdWFsIGFyY2hpdGVjdHVyZXMgZGlzY292ZXJhYmxlXG4gICAqIGJ5IGh1bWFuLXJlYWRhYmxlIHRhZ3MgaW4gYWRkaXRpb24gdG8gdGhlIGltYWdlIGluZGV4IHRhZy5cbiAgICpcbiAgICogRm9yIGV4YW1wbGUsIHsgJ2FybTY0JzogJ2ltYWdlLWFybTY0JywgJ2FtZDY0JzogJ2ltYWdlLWFtZDY0JyB9LlxuICAgKi9cbiAgcmVhZG9ubHkgYXJjaEltYWdlVGFncz86IHsgW2FyY2hpdGVjdHVyZTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFJldHJ5IGNvbmZpZ3VyYXRpb24gdG8gYXBwbHkgdG8gd2hlbiBjb3B5aW5nIGltYWdlcyBzdWNoIGFzIHRoZSBudW1iZXIgb2YgcmV0cnkgYXR0ZW10cHMsXG4gICAqIHRoZSBiYXNlIGFtb3VudCBvZiBkZWxheSAoaW4gc2Vjb25kcykgYmV0d2VlbiBlYWNoIHJldHJ5LCBhbmQgdGhlIG1heCBhbW91bnQgb2YgZGVsYXkgKGluIHNlY29uZHMpXG4gICAqIGJldHdlZW4gZWFjaCByZXRyeS5cbiAgICpcbiAgICogRm9yIGV4YW1wbGUsIHsgJ251bUF0dGVtcHRzJzogMywgJ2Jhc2VEZWxheSc6IDEsICdtYXhEZWxheSc6IDUgfVxuICAgKi9cbiAgcmVhZG9ubHkgcmV0cnlDb25maWdzPzogeyBbZmllbGRzOiBzdHJpbmddOiBudW1iZXIgfTtcblxuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiBtZW1vcnkgKGluIE1pQikgdG8gYWxsb2NhdGUgdG8gdGhlIEFXUyBMYW1iZGEgZnVuY3Rpb24gd2hpY2hcbiAgICogcmVwbGljYXRlcyB0aGUgZmlsZXMgZnJvbSB0aGUgQ0RLIGJ1Y2tldCB0byB0aGUgZGVzdGluYXRpb24gYnVja2V0LlxuICAgKlxuICAgKiBJZiB5b3UgYXJlIGRlcGxveWluZyBsYXJnZSBmaWxlcywgeW91IHdpbGwgbmVlZCB0byBpbmNyZWFzZSB0aGlzIG51bWJlclxuICAgKiBhY2NvcmRpbmdseS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSA1MTJcbiAgICovXG4gIHJlYWRvbmx5IG1lbW9yeUxpbWl0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBFeGVjdXRpb24gcm9sZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBmdW5jdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEEgcm9sZSBpcyBhdXRvbWF0aWNhbGx5IGNyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IHJvbGU/OiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBWUEMgbmV0d29yayB0byBwbGFjZSB0aGUgZGVwbG95bWVudCBsYW1iZGEgaGFuZGxlciBpbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb25lXG4gICAqL1xuICByZWFkb25seSB2cGM/OiBlYzIuSVZwYztcblxuICAvKipcbiAgICogV2hlcmUgaW4gdGhlIFZQQyB0byBwbGFjZSB0aGUgZGVwbG95bWVudCBsYW1iZGEgaGFuZGxlci5cbiAgICogT25seSB1c2VkIGlmICd2cGMnIGlzIHN1cHBsaWVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBWcGMgZGVmYXVsdCBzdHJhdGVneSBpZiBub3Qgc3BlY2lmaWVkXG4gICAqL1xuICByZWFkb25seSB2cGNTdWJuZXRzPzogZWMyLlN1Ym5ldFNlbGVjdGlvbjtcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2Ygc2VjdXJpdHkgZ3JvdXBzIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBMYW1iZGEncyBuZXR3b3JrIGludGVyZmFjZXMuXG4gICAqXG4gICAqIE9ubHkgdXNlZCBpZiAndnBjJyBpcyBzdXBwbGllZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBJZiB0aGUgZnVuY3Rpb24gaXMgcGxhY2VkIHdpdGhpbiBhIFZQQyBhbmQgYSBzZWN1cml0eSBncm91cCBpc1xuICAgKiBub3Qgc3BlY2lmaWVkLCBlaXRoZXIgYnkgdGhpcyBvciBzZWN1cml0eUdyb3VwIHByb3AsIGEgZGVkaWNhdGVkIHNlY3VyaXR5XG4gICAqIGdyb3VwIHdpbGwgYmUgY3JlYXRlZCBmb3IgdGhpcyBmdW5jdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBzPzogZWMyLlNlY3VyaXR5R3JvdXBbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJSW1hZ2VOYW1lIHtcbiAgLyoqXG4gICAqICBUaGUgdXJpIG9mIHRoZSBkb2NrZXIgaW1hZ2UuXG4gICAqXG4gICAqICBUaGUgdXJpIHNwZWMgZm9sbG93cyBodHRwczovL2dpdGh1Yi5jb20vY29udGFpbmVycy9za29wZW9cbiAgICovXG4gIHJlYWRvbmx5IHVyaTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY3JlZGVudGlhbHMgb2YgdGhlIGRvY2tlciBpbWFnZS4gRm9ybWF0IGB1c2VyOnBhc3N3b3JkYCBvciBgQVdTIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgYXJuYCBvciBgQVdTIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgbmFtZWAuXG4gICAqXG4gICAqIElmIHNwZWNpZnlpbmcgYW4gQVdTIFNlY3JldHMgTWFuYWdlciBzZWNyZXQsIHRoZSBmb3JtYXQgb2YgdGhlIHNlY3JldCBzaG91bGQgYmUgZWl0aGVyIHBsYWluIHRleHQgKGB1c2VyOnBhc3N3b3JkYCkgb3JcbiAgICogSlNPTiAoYHtcInVzZXJuYW1lXCI6XCI8dXNlcm5hbWU+XCIsXCJwYXNzd29yZFwiOlwiPHBhc3N3b3JkPlwifWApLlxuICAgKlxuICAgKiBGb3IgbW9yZSBkZXRhaWxzIG9uIEpTT04gZm9ybWF0LCBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkVDUy9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvcHJpdmF0ZS1hdXRoLmh0bWxcbiAgICovXG4gIGNyZWRzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgRG9ja2VySW1hZ2VOYW1lIGltcGxlbWVudHMgSUltYWdlTmFtZSB7XG4gIC8qKlxuICAgKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBpbWFnZSwgZS5nLiByZXRyaWV2ZWQgZnJvbSBgRG9ja2VySW1hZ2VBc3NldC5pbWFnZVVyaWBcbiAgICogQHBhcmFtIGNyZWRzIC0gVGhlIGNyZWRlbnRpYWxzIG9mIHRoZSBkb2NrZXIgaW1hZ2UuIEZvcm1hdCBgdXNlcjpwYXNzd29yZGAgb3IgYEFXUyBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IGFybmAgb3IgYEFXUyBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IG5hbWVgLlxuICAgKiAgICAgSWYgc3BlY2lmeWluZyBhbiBBV1MgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCwgdGhlIGZvcm1hdCBvZiB0aGUgc2VjcmV0IHNob3VsZCBiZSBlaXRoZXIgcGxhaW4gdGV4dCAoYHVzZXI6cGFzc3dvcmRgKSBvclxuICAgKiAgICAgSlNPTiAoYHtcInVzZXJuYW1lXCI6XCI8dXNlcm5hbWU+XCIsXCJwYXNzd29yZFwiOlwiPHBhc3N3b3JkPlwifWApLlxuICAgKiAgICAgRm9yIG1vcmUgZGV0YWlscyBvbiBKU09OIGZvcm1hdCwgc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25FQ1MvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3ByaXZhdGUtYXV0aC5odG1sXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBuYW1lOiBzdHJpbmcsIHB1YmxpYyBjcmVkcz86IHN0cmluZykgeyB9XG4gIHB1YmxpYyBnZXQgdXJpKCk6IHN0cmluZyB7IHJldHVybiBgZG9ja2VyOi8vJHt0aGlzLm5hbWV9YDsgfVxufVxuXG5leHBvcnQgY2xhc3MgUzNBcmNoaXZlTmFtZSBpbXBsZW1lbnRzIElJbWFnZU5hbWUge1xuICBwcml2YXRlIG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQHBhcmFtIHAgLSB0aGUgUzMgYnVja2V0IG5hbWUgYW5kIHBhdGggb2YgdGhlIGFyY2hpdmUgKGEgUzMgVVJJIHdpdGhvdXQgdGhlIHMzOi8vKVxuICAgKiBAcGFyYW0gcmVmIC0gYXBwZW5kZWQgdG8gdGhlIGVuZCBvZiB0aGUgbmFtZSB3aXRoIGEgYDpgLCBlLmcuIGA6bGF0ZXN0YFxuICAgKiBAcGFyYW0gY3JlZHMgLSBUaGUgY3JlZGVudGlhbHMgb2YgdGhlIGRvY2tlciBpbWFnZS4gRm9ybWF0IGB1c2VyOnBhc3N3b3JkYCBvciBgQVdTIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgYXJuYCBvciBgQVdTIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgbmFtZWAuXG4gICAqICAgICBJZiBzcGVjaWZ5aW5nIGFuIEFXUyBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0LCB0aGUgZm9ybWF0IG9mIHRoZSBzZWNyZXQgc2hvdWxkIGJlIGVpdGhlciBwbGFpbiB0ZXh0IChgdXNlcjpwYXNzd29yZGApIG9yXG4gICAqICAgICBKU09OIChge1widXNlcm5hbWVcIjpcIjx1c2VybmFtZT5cIixcInBhc3N3b3JkXCI6XCI8cGFzc3dvcmQ+XCJ9YCkuXG4gICAqICAgICBGb3IgbW9yZSBkZXRhaWxzIG9uIEpTT04gZm9ybWF0LCBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkVDUy9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvcHJpdmF0ZS1hdXRoLmh0bWxcbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwOiBzdHJpbmcsIHJlZj86IHN0cmluZywgcHVibGljIGNyZWRzPzogc3RyaW5nKSB7XG4gICAgdGhpcy5uYW1lID0gcDtcbiAgICBpZiAocmVmKSB7XG4gICAgICB0aGlzLm5hbWUgKz0gJzonICsgcmVmO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHVyaSgpOiBzdHJpbmcgeyByZXR1cm4gYHMzOi8vJHt0aGlzLm5hbWV9YDsgfVxufVxuXG5leHBvcnQgY2xhc3MgRUNSRGVwbG95bWVudCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByaXZhdGUgaGFuZGxlcjogbGFtYmRhLlNpbmdsZXRvbkZ1bmN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBFQ1JEZXBsb3ltZW50UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIGNvbnN0IG1lbW9yeUxpbWl0ID0gcHJvcHMubWVtb3J5TGltaXQgPz8gNTEyO1xuICAgIHRoaXMuaGFuZGxlciA9IG5ldyBsYW1iZGEuU2luZ2xldG9uRnVuY3Rpb24odGhpcywgJ0N1c3RvbVJlc291cmNlSGFuZGxlcicsIHtcbiAgICAgIHV1aWQ6IHRoaXMucmVuZGVyU2luZ2xldG9uVXVpZChtZW1vcnlMaW1pdCksXG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJy4uL2xhbWJkYS1iaW4nKSksXG4gICAgICBydW50aW1lOiBuZXcgbGFtYmRhLlJ1bnRpbWUoJ3Byb3ZpZGVkLmFsMjAyMycsIFJ1bnRpbWVGYW1pbHkuT1RIRVIpLCAvLyBub3QgdXNpbmcgUnVudGltZS5QUk9WSURFRF9BTDIwMjMgdG8gc3VwcG9ydCBvbGRlciBDREsgdmVyc2lvbnMgKDwgMi4xMDUuMClcbiAgICAgIGhhbmRsZXI6ICdib290c3RyYXAnLFxuICAgICAgbGFtYmRhUHVycG9zZTogJ0N1c3RvbTo6Q0RLRUNSRGVwbG95bWVudCcsXG4gICAgICBkZXNjcmlwdGlvbjogJ0N1c3RvbSByZXNvdXJjZSBoYW5kbGVyIGZvciBjb3B5aW5nIERvY2tlciBpbWFnZXMgYmV0d2VlbiBkb2NrZXIgcmVnaXN0cmllcy4nLFxuICAgICAgdGltZW91dDogRHVyYXRpb24ubWludXRlcygxNSksXG4gICAgICByb2xlOiBwcm9wcy5yb2xlLFxuICAgICAgbWVtb3J5U2l6ZTogbWVtb3J5TGltaXQsXG4gICAgICB2cGM6IHByb3BzLnZwYyxcbiAgICAgIHZwY1N1Ym5ldHM6IHByb3BzLnZwY1N1Ym5ldHMsXG4gICAgICBzZWN1cml0eUdyb3VwczogcHJvcHMuc2VjdXJpdHlHcm91cHMsXG4gICAgfSk7XG5cbiAgICBjb25zdCBoYW5kbGVyUm9sZSA9IHRoaXMuaGFuZGxlci5yb2xlO1xuICAgIGlmICghaGFuZGxlclJvbGUpIHsgdGhyb3cgbmV3IEVycm9yKCdsYW1iZGEuU2luZ2xldG9uRnVuY3Rpb24gc2hvdWxkIGhhdmUgY3JlYXRlZCBhIFJvbGUnKTsgfVxuXG4gICAgaGFuZGxlclJvbGUuYWRkVG9QcmluY2lwYWxQb2xpY3koXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICdlY3I6R2V0QXV0aG9yaXphdGlvblRva2VuJyxcbiAgICAgICAgICAnZWNyOkJhdGNoQ2hlY2tMYXllckF2YWlsYWJpbGl0eScsXG4gICAgICAgICAgJ2VjcjpHZXREb3dubG9hZFVybEZvckxheWVyJyxcbiAgICAgICAgICAnZWNyOkdldFJlcG9zaXRvcnlQb2xpY3knLFxuICAgICAgICAgICdlY3I6RGVzY3JpYmVSZXBvc2l0b3JpZXMnLFxuICAgICAgICAgICdlY3I6TGlzdEltYWdlcycsXG4gICAgICAgICAgJ2VjcjpEZXNjcmliZUltYWdlcycsXG4gICAgICAgICAgJ2VjcjpCYXRjaEdldEltYWdlJyxcbiAgICAgICAgICAnZWNyOkxpc3RUYWdzRm9yUmVzb3VyY2UnLFxuICAgICAgICAgICdlY3I6RGVzY3JpYmVJbWFnZVNjYW5GaW5kaW5ncycsXG4gICAgICAgICAgJ2VjcjpJbml0aWF0ZUxheWVyVXBsb2FkJyxcbiAgICAgICAgICAnZWNyOlVwbG9hZExheWVyUGFydCcsXG4gICAgICAgICAgJ2VjcjpDb21wbGV0ZUxheWVyVXBsb2FkJyxcbiAgICAgICAgICAnZWNyOlB1dEltYWdlJyxcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgIH0pKTtcbiAgICBoYW5kbGVyUm9sZS5hZGRUb1ByaW5jaXBhbFBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgICdzMzpHZXRPYmplY3QnLFxuICAgICAgXSxcbiAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgfSkpO1xuXG4gICAgLy8gQXV0by1hdHRhY2ggcHVibGljIEVDUiBwZXJtaXNzaW9ucyB3aGVuIHRoZSBkZXN0aW5hdGlvbiBpcyBhIHB1YmxpYyBFQ1IgcmVnaXN0cnkuXG4gICAgLy8gV2hlbiBkZXN0IGlzIHB1YmxpYyBFQ1IsIHRoZSBhdXRoIHRva2VuIHBlcm1pc3Npb25zIGFsc28gY292ZXIgc291cmNlLXNpZGUgYXV0aFxuICAgIC8vIGlmIHRoZSBzb3VyY2UgaGFwcGVucyB0byBiZSBwdWJsaWMgRUNSIHRvby5cbiAgICBpZiAocHJvcHMuZGVzdC51cmkuaW5jbHVkZXMoJ3B1YmxpYy5lY3IuYXdzJykpIHtcbiAgICAgIGhhbmRsZXJSb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgJ2Vjci1wdWJsaWM6R2V0QXV0aG9yaXphdGlvblRva2VuJyxcbiAgICAgICAgICAnc3RzOkdldFNlcnZpY2VCZWFyZXJUb2tlbicsXG4gICAgICAgIF0sXG4gICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICB9KSk7XG5cbiAgICAgIGhhbmRsZXJSb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgJ2Vjci1wdWJsaWM6QmF0Y2hDaGVja0xheWVyQXZhaWxhYmlsaXR5JyxcbiAgICAgICAgICAnZWNyLXB1YmxpYzpJbml0aWF0ZUxheWVyVXBsb2FkJyxcbiAgICAgICAgICAnZWNyLXB1YmxpYzpVcGxvYWRMYXllclBhcnQnLFxuICAgICAgICAgICdlY3ItcHVibGljOkNvbXBsZXRlTGF5ZXJVcGxvYWQnLFxuICAgICAgICAgICdlY3ItcHVibGljOlB1dEltYWdlJyxcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgLy8gUHVibGljIEVDUiBpcyBvbmx5IGF2YWlsYWJsZSBpbiB0aGUgJ2F3cycgcGFydGl0aW9uIChub3QgYXdzLWNuIG9yIGF3cy11cy1nb3YpXG4gICAgICAgICAgQXJuLmZvcm1hdCh7XG4gICAgICAgICAgICBwYXJ0aXRpb246ICdhd3MnLFxuICAgICAgICAgICAgc2VydmljZTogJ2Vjci1wdWJsaWMnLFxuICAgICAgICAgICAgcmVnaW9uOiAnJyxcbiAgICAgICAgICAgIGFjY291bnQ6IEF3cy5BQ0NPVU5UX0lELFxuICAgICAgICAgICAgcmVzb3VyY2U6ICdyZXBvc2l0b3J5JyxcbiAgICAgICAgICAgIHJlc291cmNlTmFtZTogJyonLFxuICAgICAgICAgIH0sIFN0YWNrLm9mKHRoaXMpKSxcbiAgICAgICAgXSxcbiAgICAgIH0pKTtcbiAgICB9IGVsc2UgaWYgKHByb3BzLnNyYy51cmkuaW5jbHVkZXMoJ3B1YmxpYy5lY3IuYXdzJykpIHtcbiAgICAgIC8vIFdoZW4gcmVhZGluZyBmcm9tIHB1YmxpYyBFQ1IsIHRoZSBMYW1iZGEgc3RpbGwgYXV0aGVudGljYXRlcyB2aWFcbiAgICAgIC8vIGVjci1wdWJsaWM6R2V0QXV0aG9yaXphdGlvblRva2VuLiBHcmFudCB0aGUgbWluaW1hbCByZWFkLWF1dGggcGVybWlzc2lvbnMuXG4gICAgICBoYW5kbGVyUm9sZS5hZGRUb1ByaW5jaXBhbFBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICdlY3ItcHVibGljOkdldEF1dGhvcml6YXRpb25Ub2tlbicsXG4gICAgICAgICAgJ3N0czpHZXRTZXJ2aWNlQmVhcmVyVG9rZW4nLFxuICAgICAgICBdLFxuICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgfSkpO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5pbWFnZUFyY2ggJiYgcHJvcHMuY29weUltYWdlSW5kZXgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaW1hZ2VBcmNoIGFuZCBjb3B5SW1hZ2VJbmRleCBjYW5ub3QgYm90aCBiZSBzZXQnKTtcbiAgICB9XG4gICAgaWYgKCFwcm9wcy5jb3B5SW1hZ2VJbmRleCAmJiBwcm9wcy5hcmNoSW1hZ2VUYWdzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FyY2hJbWFnZVRhZ3MgY2FuIG9ubHkgYmUgc3BlY2lmaWVkIHdoZW4gY29weUltYWdlSW5kZXggaXMgdHJ1ZScpO1xuICAgIH1cbiAgICBpZiAocHJvcHMuaW1hZ2VBcmNoICYmIHByb3BzLmltYWdlQXJjaC5sZW5ndGggIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgaW1hZ2VBcmNoIG11c3QgY29udGFpbiBleGFjdGx5IDEgZWxlbWVudCwgZ290ICR7SlNPTi5zdHJpbmdpZnkocHJvcHMuaW1hZ2VBcmNoKX1gKTtcbiAgICB9XG4gICAgY29uc3QgaW1hZ2VBcmNoID0gcHJvcHMuaW1hZ2VBcmNoID8gcHJvcHMuaW1hZ2VBcmNoWzBdIDogJyc7XG5cbiAgICBuZXcgQ3VzdG9tUmVzb3VyY2UodGhpcywgJ0N1c3RvbVJlc291cmNlJywge1xuICAgICAgc2VydmljZVRva2VuOiB0aGlzLmhhbmRsZXIuZnVuY3Rpb25Bcm4sXG4gICAgICAvLyBUaGlzIGhhcyBiZWVuIGNvcHkvcGFzdGVkIGFuZCBpcyBhIHB1cmUgbGllLCBidXQgY2hhbmdpbmcgaXQgaXMgZ29pbmcgdG8gY2hhbmdlIHBlb3BsZSdzIGluZnJhISEgWChcbiAgICAgIHJlc291cmNlVHlwZTogJ0N1c3RvbTo6Q0RLRUNSRGVwbG95bWVudCcsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIFNyY0ltYWdlOiBwcm9wcy5zcmMudXJpLFxuICAgICAgICBTcmNDcmVkczogcHJvcHMuc3JjLmNyZWRzLFxuICAgICAgICBEZXN0SW1hZ2U6IHByb3BzLmRlc3QudXJpLFxuICAgICAgICBEZXN0Q3JlZHM6IHByb3BzLmRlc3QuY3JlZHMsXG4gICAgICAgIC4uLmltYWdlQXJjaCA/IHsgSW1hZ2VBcmNoOiBpbWFnZUFyY2ggfSA6IHt9LFxuICAgICAgICAuLi5wcm9wcy5jb3B5SW1hZ2VJbmRleCA/IHsgQ29weUltYWdlSW5kZXg6IHByb3BzLmNvcHlJbWFnZUluZGV4IH0gOiB7fSxcbiAgICAgICAgLi4ucHJvcHMuYXJjaEltYWdlVGFncyA/IHsgQXJjaEltYWdlVGFnczogSlNPTi5zdHJpbmdpZnkocHJvcHMuYXJjaEltYWdlVGFncykgfSA6IHt9LFxuICAgICAgICAuLi5wcm9wcy5yZXRyeUNvbmZpZ3MgPyB7IFJldHJ5Q29uZmlnczogSlNPTi5zdHJpbmdpZnkocHJvcHMucmV0cnlDb25maWdzKSB9IDoge30sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFkZFRvUHJpbmNpcGFsUG9saWN5KHN0YXRlbWVudDogUG9saWN5U3RhdGVtZW50KTogQWRkVG9QcmluY2lwYWxQb2xpY3lSZXN1bHQge1xuICAgIGNvbnN0IGhhbmRsZXJSb2xlID0gdGhpcy5oYW5kbGVyLnJvbGU7XG4gICAgaWYgKCFoYW5kbGVyUm9sZSkgeyB0aHJvdyBuZXcgRXJyb3IoJ2xhbWJkYS5TaW5nbGV0b25GdW5jdGlvbiBzaG91bGQgaGF2ZSBjcmVhdGVkIGEgUm9sZScpOyB9XG5cbiAgICByZXR1cm4gaGFuZGxlclJvbGUuYWRkVG9QcmluY2lwYWxQb2xpY3koc3RhdGVtZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyU2luZ2xldG9uVXVpZChtZW1vcnlMaW1pdD86IG51bWJlcikge1xuICAgIGxldCB1dWlkID0gJ2JkMDdjOTMwLWVkYjktNDExMi1hMjBmLTAzZjA5NmY1MzY2Nic7XG5cbiAgICAvLyBpZiB1c2VyIHNwZWNpZnkgYSBjdXN0b20gbWVtb3J5IGxpbWl0LCBkZWZpbmUgYW5vdGhlciBzaW5nbGV0b24gaGFuZGxlclxuICAgIC8vIHdpdGggdGhpcyBjb25maWd1cmF0aW9uLiBvdGhlcndpc2UsIGl0IHdvbid0IGJlIHBvc3NpYmxlIHRvIHVzZSBtdWx0aXBsZVxuICAgIC8vIGNvbmZpZ3VyYXRpb25zIHNpbmNlIHdlIGhhdmUgYSBzaW5nbGV0b24uXG4gICAgaWYgKG1lbW9yeUxpbWl0KSB7XG4gICAgICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKG1lbW9yeUxpbWl0KSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NhblxcJ3QgdXNlIHRva2VucyB3aGVuIHNwZWNpZnlpbmcgXCJtZW1vcnlMaW1pdFwiIHNpbmNlIHdlIHVzZSBpdCB0byBpZGVudGlmeSB0aGUgc2luZ2xldG9uIGN1c3RvbSByZXNvdXJjZSBoYW5kbGVyJyk7XG4gICAgICB9XG5cbiAgICAgIHV1aWQgKz0gYC0ke21lbW9yeUxpbWl0LnRvU3RyaW5nKCl9TWlCYDtcbiAgICB9XG5cbiAgICByZXR1cm4gdXVpZDtcbiAgfVxufVxuIl19
|
package/package.json
CHANGED
|
@@ -74,6 +74,10 @@
|
|
|
74
74
|
"aws-cdk-lib": "^2.80.0",
|
|
75
75
|
"constructs": "^10.5.1"
|
|
76
76
|
},
|
|
77
|
+
"resolutions": {
|
|
78
|
+
"@aws-cdk/integ-tests-alpha": "2.257.0-alpha.0",
|
|
79
|
+
"aws-cdk-lib": "2.257.0"
|
|
80
|
+
},
|
|
77
81
|
"keywords": [
|
|
78
82
|
"cdk"
|
|
79
83
|
],
|
|
@@ -89,7 +93,7 @@
|
|
|
89
93
|
"publishConfig": {
|
|
90
94
|
"access": "public"
|
|
91
95
|
},
|
|
92
|
-
"version": "4.2.
|
|
96
|
+
"version": "4.2.9",
|
|
93
97
|
"packageManager": "yarn@4.13.0",
|
|
94
98
|
"jest": {
|
|
95
99
|
"coverageProvider": "v8",
|