From fc705ed2c3951d089387aac8831750f5338620aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Paw=C5=82aszek?= Date: Thu, 8 Aug 2024 14:13:07 +0200 Subject: [PATCH] feat: adding Asana components (PAT only) --- .gitignore | 8 + .npmignore | 1 + .projen/deps.json | 16 +- .projen/tasks.json | 87 +++- .projenrc.ts | 11 +- API.md | 454 ++++++++++++++++- package.json | 26 +- src/asana/index.ts | 7 + src/asana/profile.ts | 57 +++ src/asana/source.ts | 59 +++ src/asana/type.ts | 24 + src/index.ts | 1 + .../TestStack.assets.json | 32 ++ .../TestStack.template.json | 472 ++++++++++++++++++ test/integ/ondemand-asana-to-s3.integ.ts | 48 ++ .../TestStack.assets.json | 10 +- .../TestStack.template.json | 136 ++++- .../TestStack.assets.json | 10 +- .../TestStack.template.json | 136 ++++- .../manifest.json | 8 +- .../TestStack.assets.json | 10 +- .../TestStack.template.json | 136 ++++- .../TestStack.assets.json | 10 +- .../TestStack.template.json | 4 +- .../manifest.json | 2 +- .../TestStack.assets.json | 10 +- .../TestStack.template.json | 136 ++++- .../TestStack.assets.json | 22 +- .../TestStack.template.json | 140 +++++- .../TestStack.assets.json | 22 +- .../TestStack.template.json | 170 ++++++- .../TestStack.assets.json | 10 +- .../TestStack.template.json | 136 ++++- .../TestStack.assets.json | 10 +- .../TestStack.template.json | 136 ++++- .../TestStack.assets.json | 10 +- .../TestStack.template.json | 136 ++++- .../TestStack.assets.json | 10 +- .../TestStack.template.json | 136 ++++- .../TestStack.assets.json | 28 +- .../TestStack.template.json | 152 +++++- .../TestStack.assets.json | 16 +- .../TestStack.template.json | 8 +- yarn.lock | 119 ++--- 44 files changed, 2920 insertions(+), 252 deletions(-) create mode 100644 src/asana/index.ts create mode 100644 src/asana/profile.ts create mode 100644 src/asana/source.ts create mode 100644 src/asana/type.ts create mode 100644 test/integ/ondemand-asana-to-s3.integ.snapshot/TestStack.assets.json create mode 100644 test/integ/ondemand-asana-to-s3.integ.snapshot/TestStack.template.json create mode 100644 test/integ/ondemand-asana-to-s3.integ.ts diff --git a/.gitignore b/.gitignore index 8fdfbec5..7a369fad 100644 --- a/.gitignore +++ b/.gitignore @@ -54,6 +54,14 @@ tsconfig.json !/API.md /assets/ !/src/core/flows/flow-time-updater/flow-time-updater-function.ts +test/integ/ondemand-asana-to-s3.integ.snapshot/asset.* +test/integ/ondemand-asana-to-s3.integ.snapshot/**/asset.* +test/integ/ondemand-asana-to-s3.integ.snapshot/cdk.out +test/integ/ondemand-asana-to-s3.integ.snapshot/**/cdk.out +test/integ/ondemand-asana-to-s3.integ.snapshot/manifest.json +test/integ/ondemand-asana-to-s3.integ.snapshot/**/manifest.json +test/integ/ondemand-asana-to-s3.integ.snapshot/tree.json +test/integ/ondemand-asana-to-s3.integ.snapshot/**/tree.json test/integ/ondemand-googleanalytics4-to-s3.integ.snapshot/asset.* test/integ/ondemand-googleanalytics4-to-s3.integ.snapshot/**/asset.* test/integ/ondemand-googleanalytics4-to-s3.integ.snapshot/cdk.out diff --git a/.npmignore b/.npmignore index cde3197c..076283bb 100644 --- a/.npmignore +++ b/.npmignore @@ -23,6 +23,7 @@ tsconfig.tsbuildinfo /.eslintrc.json !.jsii !/assets/ +test/integ/ondemand-asana-to-s3.integ.snapshot test/integ/ondemand-googleanalytics4-to-s3.integ.snapshot test/integ/ondemand-jdbcsmalldatascale-to-amazonrdsforpostgresql.integ.snapshot test/integ/ondemand-jdbcsmalldatascale-to-s3.integ.snapshot diff --git a/.projen/deps.json b/.projen/deps.json index ec71d942..a4d4a369 100644 --- a/.projen/deps.json +++ b/.projen/deps.json @@ -1,5 +1,9 @@ { "dependencies": [ + { + "name": "@types/aws-lambda", + "type": "build" + }, { "name": "@types/jest", "type": "build" @@ -72,7 +76,7 @@ }, { "name": "jsii", - "version": "~5.2", + "version": "~5.4.30", "type": "build" }, { @@ -96,10 +100,6 @@ "name": "typescript", "type": "build" }, - { - "name": "@types/aws-lambda", - "type": "bundled" - }, { "name": "@aws-cdk/integ-runner", "version": "latest", @@ -112,17 +112,17 @@ }, { "name": "@aws-cdk/aws-glue-alpha", - "version": "2.121.1-alpha.0", + "version": "2.151.0-alpha.0", "type": "peer" }, { "name": "@aws-cdk/aws-redshift-alpha", - "version": "2.121.1-alpha.0", + "version": "2.151.0-alpha.0", "type": "peer" }, { "name": "aws-cdk-lib", - "version": "^2.121.1", + "version": "^2.151.0", "type": "peer" }, { diff --git a/.projen/tasks.json b/.projen/tasks.json index c7d8025d..f5f2ccac 100644 --- a/.projen/tasks.json +++ b/.projen/tasks.json @@ -187,6 +187,69 @@ } ] }, + "integ:ondemand-asana-to-s3:assert": { + "name": "integ:ondemand-asana-to-s3:assert", + "description": "assert the snapshot of integration test 'ondemand-asana-to-s3'", + "steps": [ + { + "exec": "[ -d \"test/integ/ondemand-asana-to-s3.integ.snapshot\" ] || (echo \"No snapshot available for integration test 'ondemand-asana-to-s3'. Run 'projen integ:ondemand-asana-to-s3:deploy' to capture.\" && exit 1)" + }, + { + "exec": "cdk synth --app \"ts-node -P tsconfig.dev.json test/integ/ondemand-asana-to-s3.integ.ts\" --no-notices --no-version-reporting --no-asset-metadata --no-path-metadata -o test/integ/.tmp/ondemand-asana-to-s3.integ/assert.cdk.out > /dev/null" + }, + { + "exec": "diff -r -x asset.* -x cdk.out -x manifest.json -x tree.json test/integ/ondemand-asana-to-s3.integ.snapshot/ test/integ/.tmp/ondemand-asana-to-s3.integ/assert.cdk.out/" + } + ] + }, + "integ:ondemand-asana-to-s3:deploy": { + "name": "integ:ondemand-asana-to-s3:deploy", + "description": "deploy integration test 'ondemand-asana-to-s3' and capture snapshot", + "steps": [ + { + "exec": "rm -fr test/integ/.tmp/ondemand-asana-to-s3.integ/deploy.cdk.out" + }, + { + "exec": "cdk deploy --app \"ts-node -P tsconfig.dev.json test/integ/ondemand-asana-to-s3.integ.ts\" --no-notices --no-version-reporting --no-asset-metadata --no-path-metadata '**' --require-approval=never -o test/integ/.tmp/ondemand-asana-to-s3.integ/deploy.cdk.out" + }, + { + "exec": "rm -fr test/integ/ondemand-asana-to-s3.integ.snapshot" + }, + { + "exec": "mv test/integ/.tmp/ondemand-asana-to-s3.integ/deploy.cdk.out test/integ/ondemand-asana-to-s3.integ.snapshot" + }, + { + "spawn": "integ:ondemand-asana-to-s3:destroy" + } + ] + }, + "integ:ondemand-asana-to-s3:destroy": { + "name": "integ:ondemand-asana-to-s3:destroy", + "description": "destroy integration test 'ondemand-asana-to-s3'", + "steps": [ + { + "exec": "cdk destroy --app test/integ/ondemand-asana-to-s3.integ.snapshot '**' --no-version-reporting" + } + ] + }, + "integ:ondemand-asana-to-s3:snapshot": { + "name": "integ:ondemand-asana-to-s3:snapshot", + "description": "update snapshot for integration test \"ondemand-asana-to-s3\"", + "steps": [ + { + "exec": "cdk synth --app \"ts-node -P tsconfig.dev.json test/integ/ondemand-asana-to-s3.integ.ts\" --no-notices --no-version-reporting --no-asset-metadata --no-path-metadata -o test/integ/ondemand-asana-to-s3.integ.snapshot > /dev/null" + } + ] + }, + "integ:ondemand-asana-to-s3:watch": { + "name": "integ:ondemand-asana-to-s3:watch", + "description": "watch integration test 'ondemand-asana-to-s3' (without updating snapshots)", + "steps": [ + { + "exec": "cdk watch --app \"ts-node -P tsconfig.dev.json test/integ/ondemand-asana-to-s3.integ.ts\" --no-notices --no-version-reporting --no-asset-metadata --no-path-metadata '**' -o test/integ/.tmp/ondemand-asana-to-s3.integ/deploy.cdk.out" + } + ] + }, "integ:ondemand-googleanalytics4-to-s3:assert": { "name": "integ:ondemand-googleanalytics4-to-s3:assert", "description": "assert the snapshot of integration test 'ondemand-googleanalytics4-to-s3'", @@ -1073,6 +1136,9 @@ "name": "integ:snapshot-all", "description": "update snapshot for all integration tests", "steps": [ + { + "spawn": "integ:ondemand-asana-to-s3:snapshot" + }, { "spawn": "integ:ondemand-googleanalytics4-to-s3:snapshot" }, @@ -1276,6 +1342,9 @@ { "spawn": "eslint" }, + { + "spawn": "integ:ondemand-asana-to-s3:assert" + }, { "spawn": "integ:ondemand-googleanalytics4-to-s3:assert" }, @@ -1357,19 +1426,7 @@ }, "steps": [ { - "exec": "npx npm-check-updates@16 --upgrade --target=minor --peer --dep=prod --filter=@types/aws-lambda" - }, - { - "exec": "yarn install --check-files" - }, - { - "exec": "yarn upgrade @types/aws-lambda" - }, - { - "exec": "npx projen" - }, - { - "spawn": "post-upgrade" + "exec": "echo No dependencies to upgrade." } ] }, @@ -1405,13 +1462,13 @@ }, "steps": [ { - "exec": "npx npm-check-updates@16 --upgrade --target=minor --peer --dep=dev --filter=@types/jest,cdklabs-projen-project-types,esbuild,eslint-import-resolver-typescript,eslint-plugin-import,jest,jsii-diff,jsii-docgen,jsii-pacmak,jsii-rosetta,projen,ts-jest,ts-node,typescript" + "exec": "npx npm-check-updates@16 --upgrade --target=minor --peer --dep=dev --filter=@types/aws-lambda,@types/jest,cdklabs-projen-project-types,esbuild,eslint-import-resolver-typescript,eslint-plugin-import,jest,jsii-diff,jsii-docgen,jsii-pacmak,jsii-rosetta,projen,ts-jest,ts-node,typescript" }, { "exec": "yarn install --check-files" }, { - "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser aws-cdk cdklabs-projen-project-types esbuild eslint-import-resolver-typescript eslint-plugin-import eslint jest jest-junit jsii-diff jsii-docgen jsii-pacmak jsii-rosetta jsii projen standard-version ts-jest ts-node typescript @aws-cdk/integ-runner @aws-cdk/integ-tests-alpha" + "exec": "yarn upgrade @types/aws-lambda @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser aws-cdk cdklabs-projen-project-types esbuild eslint-import-resolver-typescript eslint-plugin-import eslint jest jest-junit jsii-diff jsii-docgen jsii-pacmak jsii-rosetta jsii projen standard-version ts-jest ts-node typescript @aws-cdk/integ-runner @aws-cdk/integ-tests-alpha" }, { "exec": "npx projen" diff --git a/.projenrc.ts b/.projenrc.ts index 9b54eb97..02e2269d 100644 --- a/.projenrc.ts +++ b/.projenrc.ts @@ -5,7 +5,8 @@ SPDX-License-Identifier: Apache-2.0 import { CdklabsConstructLibrary } from 'cdklabs-projen-project-types'; import { Stability } from 'projen/lib/cdk'; -const cdkVersion = '2.121.1'; +const cdkVersion = '2.151.0'; + const project = new CdklabsConstructLibrary({ name: '@cdklabs/cdk-appflow', author: 'Amazon Web Services', @@ -17,12 +18,16 @@ const project = new CdklabsConstructLibrary({ repositoryUrl: 'https://github.com/cdklabs/cdk-appflow.git', stability: Stability.EXPERIMENTAL, docgen: true, - bundledDeps: ['@types/aws-lambda'], - devDeps: ['esbuild'], + bundledDeps: [], + devDeps: [ + '@types/aws-lambda', + 'esbuild', + ], peerDeps: [ `@aws-cdk/aws-redshift-alpha@${cdkVersion}-alpha.0`, `@aws-cdk/aws-glue-alpha@${cdkVersion}-alpha.0`, ], + jsiiVersion: '~5.4.30', keywords: [ 'aws', 'appflow', diff --git a/API.md b/API.md index ee69ff7d..5624bb9f 100644 --- a/API.md +++ b/API.md @@ -559,6 +559,284 @@ public readonly credentials: ISecret; --- +### AsanaConnectorProfile + +A class that represents a Asana Connector Profile. + +#### Initializers + +```typescript +import { AsanaConnectorProfile } from '@cdklabs/cdk-appflow' + +new AsanaConnectorProfile(scope: Construct, id: string, props: AsanaConnectorProfileProps) +``` + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| scope | constructs.Construct | *No description.* | +| id | string | *No description.* | +| props | AsanaConnectorProfileProps | *No description.* | + +--- + +##### `scope`Required + +- *Type:* constructs.Construct + +--- + +##### `id`Required + +- *Type:* string + +--- + +##### `props`Required + +- *Type:* AsanaConnectorProfileProps + +--- + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| toString | Returns a string representation of this construct. | +| applyRemovalPolicy | Apply the given removal policy to this resource. | + +--- + +##### `toString` + +```typescript +public toString(): string +``` + +Returns a string representation of this construct. + +##### `applyRemovalPolicy` + +```typescript +public applyRemovalPolicy(policy: RemovalPolicy): void +``` + +Apply the given removal policy to this resource. + +The Removal Policy controls what happens to this resource when it stops +being managed by CloudFormation, either because you've removed it from the +CDK application or because you've made a change that requires the resource +to be replaced. + +The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS +account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). + +###### `policy`Required + +- *Type:* aws-cdk-lib.RemovalPolicy + +--- + +#### Static Functions + +| **Name** | **Description** | +| --- | --- | +| isConstruct | Checks if `x` is a construct. | +| isOwnedResource | Returns true if the construct was created by CDK, and false otherwise. | +| isResource | Check whether the given construct is a Resource. | +| fromConnectionProfileArn | *No description.* | +| fromConnectionProfileName | *No description.* | + +--- + +##### ~~`isConstruct`~~ + +```typescript +import { AsanaConnectorProfile } from '@cdklabs/cdk-appflow' + +AsanaConnectorProfile.isConstruct(x: any) +``` + +Checks if `x` is a construct. + +###### `x`Required + +- *Type:* any + +Any object. + +--- + +##### `isOwnedResource` + +```typescript +import { AsanaConnectorProfile } from '@cdklabs/cdk-appflow' + +AsanaConnectorProfile.isOwnedResource(construct: IConstruct) +``` + +Returns true if the construct was created by CDK, and false otherwise. + +###### `construct`Required + +- *Type:* constructs.IConstruct + +--- + +##### `isResource` + +```typescript +import { AsanaConnectorProfile } from '@cdklabs/cdk-appflow' + +AsanaConnectorProfile.isResource(construct: IConstruct) +``` + +Check whether the given construct is a Resource. + +###### `construct`Required + +- *Type:* constructs.IConstruct + +--- + +##### `fromConnectionProfileArn` + +```typescript +import { AsanaConnectorProfile } from '@cdklabs/cdk-appflow' + +AsanaConnectorProfile.fromConnectionProfileArn(scope: Construct, id: string, arn: string) +``` + +###### `scope`Required + +- *Type:* constructs.Construct + +--- + +###### `id`Required + +- *Type:* string + +--- + +###### `arn`Required + +- *Type:* string + +--- + +##### `fromConnectionProfileName` + +```typescript +import { AsanaConnectorProfile } from '@cdklabs/cdk-appflow' + +AsanaConnectorProfile.fromConnectionProfileName(scope: Construct, id: string, name: string) +``` + +###### `scope`Required + +- *Type:* constructs.Construct + +--- + +###### `id`Required + +- *Type:* string + +--- + +###### `name`Required + +- *Type:* string + +--- + +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| node | constructs.Node | The tree node. | +| env | aws-cdk-lib.ResourceEnvironment | The environment this resource belongs to. | +| stack | aws-cdk-lib.Stack | The stack in which this resource is defined. | +| arn | string | *No description.* | +| name | string | *No description.* | +| credentials | aws-cdk-lib.aws_secretsmanager.ISecret | *No description.* | + +--- + +##### `node`Required + +```typescript +public readonly node: Node; +``` + +- *Type:* constructs.Node + +The tree node. + +--- + +##### `env`Required + +```typescript +public readonly env: ResourceEnvironment; +``` + +- *Type:* aws-cdk-lib.ResourceEnvironment + +The environment this resource belongs to. + +For resources that are created and managed by the CDK +(generally, those created by creating new class instances like Role, Bucket, etc.), +this is always the same as the environment of the stack they belong to; +however, for imported resources +(those obtained from static methods like fromRoleArn, fromBucketName, etc.), +that might be different than the stack they were imported into. + +--- + +##### `stack`Required + +```typescript +public readonly stack: Stack; +``` + +- *Type:* aws-cdk-lib.Stack + +The stack in which this resource is defined. + +--- + +##### `arn`Required + +```typescript +public readonly arn: string; +``` + +- *Type:* string + +--- + +##### `name`Required + +```typescript +public readonly name: string; +``` + +- *Type:* string + +--- + +##### `credentials`Optional + +```typescript +public readonly credentials: ISecret; +``` + +- *Type:* aws-cdk-lib.aws_secretsmanager.ISecret + +--- + + ### ConnectorProfileBase - *Implements:* IConnectorProfile @@ -7500,6 +7778,108 @@ PostgreSQL table name. --- +### AsanaConnectorProfileProps + +#### Initializer + +```typescript +import { AsanaConnectorProfileProps } from '@cdklabs/cdk-appflow' + +const asanaConnectorProfileProps: AsanaConnectorProfileProps = { ... } +``` + +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| key | aws-cdk-lib.aws_kms.IKey | TODO: think if this should be here as not all connector profiles have that. | +| name | string | *No description.* | +| patToken | aws-cdk-lib.SecretValue | *No description.* | + +--- + +##### `key`Optional + +```typescript +public readonly key: IKey; +``` + +- *Type:* aws-cdk-lib.aws_kms.IKey + +TODO: think if this should be here as not all connector profiles have that. + +--- + +##### `name`Optional + +```typescript +public readonly name: string; +``` + +- *Type:* string + +--- + +##### `patToken`Required + +```typescript +public readonly patToken: SecretValue; +``` + +- *Type:* aws-cdk-lib.SecretValue + +--- + +### AsanaSourceProps + +#### Initializer + +```typescript +import { AsanaSourceProps } from '@cdklabs/cdk-appflow' + +const asanaSourceProps: AsanaSourceProps = { ... } +``` + +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| object | string | *No description.* | +| profile | AsanaConnectorProfile | *No description.* | +| apiVersion | string | *No description.* | + +--- + +##### `object`Required + +```typescript +public readonly object: string; +``` + +- *Type:* string + +--- + +##### `profile`Required + +```typescript +public readonly profile: AsanaConnectorProfile; +``` + +- *Type:* AsanaConnectorProfile + +--- + +##### `apiVersion`Optional + +```typescript +public readonly apiVersion: string; +``` + +- *Type:* string + +--- + ### ConnectorProfileProps #### Initializer @@ -13542,6 +13922,74 @@ The AppFlow type of the connector that this source is implemented for. --- +### AsanaSource + +- *Implements:* ISource + +A class that represents a Asana v3 Source. + +#### Initializers + +```typescript +import { AsanaSource } from '@cdklabs/cdk-appflow' + +new AsanaSource(props: AsanaSourceProps) +``` + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| props | AsanaSourceProps | *No description.* | + +--- + +##### `props`Required + +- *Type:* AsanaSourceProps + +--- + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| bind | *No description.* | + +--- + +##### `bind` + +```typescript +public bind(flow: IFlow): SourceFlowConfigProperty +``` + +###### `flow`Required + +- *Type:* IFlow + +--- + + +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| connectorType | ConnectorType | The AppFlow type of the connector that this source is implemented for. | + +--- + +##### `connectorType`Required + +```typescript +public readonly connectorType: ConnectorType; +``` + +- *Type:* ConnectorType + +The AppFlow type of the connector that this source is implemented for. + +--- + + ### ConnectorType #### Initializers @@ -17012,7 +17460,7 @@ The AppFlow type of the connector that this source is implemented for. - *Extends:* aws-cdk-lib.IResource -- *Implemented By:* AmazonRdsForPostgreSqlConnectorProfile, ConnectorProfileBase, GoogleAdsConnectorProfile, GoogleAnalytics4ConnectorProfile, GoogleBigQueryConnectorProfile, JdbcSmallDataScaleConnectorProfile, MailchimpConnectorProfile, MarketoConnectorProfile, MicrosoftDynamics365ConnectorProfile, MicrosoftSharepointOnlineConnectorProfile, RedshiftConnectorProfile, SAPOdataConnectorProfile, SalesforceConnectorProfile, SalesforceMarketingCloudConnectorProfile, ServiceNowConnectorProfile, SlackConnectorProfile, SnowflakeConnectorProfile, ZendeskConnectorProfile, IConnectorProfile +- *Implemented By:* AmazonRdsForPostgreSqlConnectorProfile, AsanaConnectorProfile, ConnectorProfileBase, GoogleAdsConnectorProfile, GoogleAnalytics4ConnectorProfile, GoogleBigQueryConnectorProfile, JdbcSmallDataScaleConnectorProfile, MailchimpConnectorProfile, MarketoConnectorProfile, MicrosoftDynamics365ConnectorProfile, MicrosoftSharepointOnlineConnectorProfile, RedshiftConnectorProfile, SAPOdataConnectorProfile, SalesforceConnectorProfile, SalesforceMarketingCloudConnectorProfile, ServiceNowConnectorProfile, SlackConnectorProfile, SnowflakeConnectorProfile, ZendeskConnectorProfile, IConnectorProfile #### Properties @@ -17424,7 +17872,7 @@ public bind(flow: IFlow, source: ISource): TaskProperty[] - *Extends:* IVertex -- *Implemented By:* GoogleAdsSource, GoogleAnalytics4Source, GoogleBigQuerySource, JdbcSmallDataScaleSource, MailchimpSource, MarketoSource, MicrosoftDynamics365Source, MicrosoftSharepointOnlineSource, S3Source, SAPOdataSource, SalesforceMarketingCloudSource, SalesforceSource, ServiceNowSource, SlackSource, ZendeskSource, ISource +- *Implemented By:* AsanaSource, GoogleAdsSource, GoogleAnalytics4Source, GoogleBigQuerySource, JdbcSmallDataScaleSource, MailchimpSource, MarketoSource, MicrosoftDynamics365Source, MicrosoftSharepointOnlineSource, S3Source, SAPOdataSource, SalesforceMarketingCloudSource, SalesforceSource, ServiceNowSource, SlackSource, ZendeskSource, ISource A source of an AppFlow flow. @@ -17523,7 +17971,7 @@ A representation of a validation operation, that is an operation testing records ### IVertex -- *Implemented By:* AmazonRdsForPostgreSqlDestination, EventBridgeDestination, GoogleAdsSource, GoogleAnalytics4Source, GoogleBigQuerySource, JdbcSmallDataScaleSource, MailchimpSource, MarketoSource, MicrosoftDynamics365Source, MicrosoftSharepointOnlineSource, RedshiftDestination, S3Destination, S3Source, SAPOdataDestination, SAPOdataSource, SalesforceDestination, SalesforceMarketingCloudSource, SalesforceSource, ServiceNowSource, SlackSource, SnowflakeDestination, ZendeskSource, IDestination, ISource, IVertex +- *Implemented By:* AmazonRdsForPostgreSqlDestination, AsanaSource, EventBridgeDestination, GoogleAdsSource, GoogleAnalytics4Source, GoogleBigQuerySource, JdbcSmallDataScaleSource, MailchimpSource, MarketoSource, MicrosoftDynamics365Source, MicrosoftSharepointOnlineSource, RedshiftDestination, S3Destination, S3Source, SAPOdataDestination, SAPOdataSource, SalesforceDestination, SalesforceMarketingCloudSource, SalesforceSource, ServiceNowSource, SlackSource, SnowflakeDestination, ZendeskSource, IDestination, ISource, IVertex An interface representing a vertex, i.e. a source or a destination of an AppFlow flow. diff --git a/package.json b/package.json index e04b5f5d..cb42e199 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,11 @@ "eject": "npx projen eject", "eslint": "npx projen eslint", "integ": "npx projen integ", + "integ:ondemand-asana-to-s3:assert": "npx projen integ:ondemand-asana-to-s3:assert", + "integ:ondemand-asana-to-s3:deploy": "npx projen integ:ondemand-asana-to-s3:deploy", + "integ:ondemand-asana-to-s3:destroy": "npx projen integ:ondemand-asana-to-s3:destroy", + "integ:ondemand-asana-to-s3:snapshot": "npx projen integ:ondemand-asana-to-s3:snapshot", + "integ:ondemand-asana-to-s3:watch": "npx projen integ:ondemand-asana-to-s3:watch", "integ:ondemand-googleanalytics4-to-s3:assert": "npx projen integ:ondemand-googleanalytics4-to-s3:assert", "integ:ondemand-googleanalytics4-to-s3:deploy": "npx projen integ:ondemand-googleanalytics4-to-s3:deploy", "integ:ondemand-googleanalytics4-to-s3:destroy": "npx projen integ:ondemand-googleanalytics4-to-s3:destroy", @@ -117,16 +122,17 @@ "organization": true }, "devDependencies": { - "@aws-cdk/aws-glue-alpha": "2.121.1-alpha.0", - "@aws-cdk/aws-redshift-alpha": "2.121.1-alpha.0", + "@aws-cdk/aws-glue-alpha": "2.151.0-alpha.0", + "@aws-cdk/aws-redshift-alpha": "2.151.0-alpha.0", "@aws-cdk/integ-runner": "latest", "@aws-cdk/integ-tests-alpha": "latest", + "@types/aws-lambda": "^8.10.143", "@types/jest": "^27", "@types/node": "^18", "@typescript-eslint/eslint-plugin": "^7", "@typescript-eslint/parser": "^7", "aws-cdk": "^2", - "aws-cdk-lib": "2.121.1", + "aws-cdk-lib": "2.151.0", "cdklabs-projen-project-types": "^0.1.200", "constructs": "10.0.5", "esbuild": "^0.23.0", @@ -135,7 +141,7 @@ "eslint-plugin-import": "^2.29.1", "jest": "^27", "jest-junit": "^15", - "jsii": "~5.2", + "jsii": "~5.4.30", "jsii-diff": "^1.102.0", "jsii-docgen": "^8.0.56", "jsii-pacmak": "^1.102.0", @@ -147,17 +153,11 @@ "typescript": "^5.2.2" }, "peerDependencies": { - "@aws-cdk/aws-glue-alpha": "2.121.1-alpha.0", - "@aws-cdk/aws-redshift-alpha": "2.121.1-alpha.0", - "aws-cdk-lib": "^2.121.1", + "@aws-cdk/aws-glue-alpha": "2.151.0-alpha.0", + "@aws-cdk/aws-redshift-alpha": "2.151.0-alpha.0", + "aws-cdk-lib": "^2.151.0", "constructs": "^10.0.5" }, - "dependencies": { - "@types/aws-lambda": "^8.10.143" - }, - "bundledDependencies": [ - "@types/aws-lambda" - ], "keywords": [ "appflow", "aws", diff --git a/src/asana/index.ts b/src/asana/index.ts new file mode 100644 index 00000000..e8112703 --- /dev/null +++ b/src/asana/index.ts @@ -0,0 +1,7 @@ +/* +Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +SPDX-License-Identifier: Apache-2.0 +*/ +export * from './type'; +export * from './profile'; +export * from './source'; \ No newline at end of file diff --git a/src/asana/profile.ts b/src/asana/profile.ts new file mode 100644 index 00000000..f913b3a8 --- /dev/null +++ b/src/asana/profile.ts @@ -0,0 +1,57 @@ +/* +Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +SPDX-License-Identifier: Apache-2.0 +*/ +import { SecretValue } from 'aws-cdk-lib'; +import { CfnConnectorProfile } from 'aws-cdk-lib/aws-appflow'; +import { Construct } from 'constructs'; +import { AsanaConnectorType } from './type'; +import { ConnectorAuthenticationType } from '../core/connectors/connector-authentication-type'; +import { ConnectorProfileBase, ConnectorProfileProps } from '../core/connectors/connector-profile'; + +export interface AsanaConnectorProfileProps extends ConnectorProfileProps { + readonly patToken: SecretValue; +} + +/** + * A class that represents a Asana Connector Profile. + * + */ +export class AsanaConnectorProfile extends ConnectorProfileBase { + + public static fromConnectionProfileArn(scope: Construct, id: string, arn: string) { + return this._fromConnectorProfileAttributes(scope, id, { arn }) as AsanaConnectorProfile; + } + + public static fromConnectionProfileName(scope: Construct, id: string, name: string) { + return this._fromConnectorProfileAttributes(scope, id, { name }) as AsanaConnectorProfile; + } + + constructor(scope: Construct, id: string, props: AsanaConnectorProfileProps) { + super(scope, id, props, AsanaConnectorType.instance); + } + + protected buildConnectorProfileProperties(_props: ConnectorProfileProps): CfnConnectorProfile.ConnectorProfilePropertiesProperty { + return { + customConnector: { + profileProperties: { }, + }, + }; + } + + protected buildConnectorProfileCredentials(props: ConnectorProfileProps): CfnConnectorProfile.ConnectorProfileCredentialsProperty { + const properties = (props as AsanaConnectorProfileProps); + + return { + customConnector: { + authenticationType: ConnectorAuthenticationType.CUSTOM, + custom: { + credentialsMap: { + patToken: properties.patToken.unsafeUnwrap(), + }, + customAuthenticationType: 'PAT', + }, + }, + }; + } +} \ No newline at end of file diff --git a/src/asana/source.ts b/src/asana/source.ts new file mode 100644 index 00000000..0d7b7e71 --- /dev/null +++ b/src/asana/source.ts @@ -0,0 +1,59 @@ +/* +Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +SPDX-License-Identifier: Apache-2.0 +*/ +import { CfnFlow } from 'aws-cdk-lib/aws-appflow'; +import { IConstruct } from 'constructs'; +import { AsanaConnectorProfile } from './profile'; +import { AsanaConnectorType } from './type'; +import { ConnectorType } from '../core/connectors/connector-type'; +import { IFlow } from '../core/flows'; +import { ISource } from '../core/vertices'; + +export interface AsanaSourceProps { + readonly profile: AsanaConnectorProfile; + readonly object: string; + readonly apiVersion?: string; +} + +/** + * A class that represents a Asana v3 Source + */ +export class AsanaSource implements ISource { + private static readonly apiVersion: string = '1.0'; + + /** + * The AppFlow type of the connector that this source is implemented for + */ + public readonly connectorType: ConnectorType = AsanaConnectorType.instance; + + constructor(private readonly props: AsanaSourceProps) {} + + bind(flow: IFlow): CfnFlow.SourceFlowConfigProperty { + this.tryAddNodeDependency(flow, this.props.profile); + + return { + apiVersion: this.props.apiVersion ?? AsanaSource.apiVersion, + connectorType: this.connectorType.asProfileConnectorType, + connectorProfileName: this.props.profile.name, + sourceConnectorProperties: this.buildSourceConnectorProperties(), + }; + } + + private buildSourceConnectorProperties(): CfnFlow.SourceConnectorPropertiesProperty { + return { + customConnector: { + entityName: this.props.object, + }, + }; + } + + private tryAddNodeDependency( + scope: IConstruct, + resource?: IConstruct | string, + ) { + if (resource && typeof resource !== 'string') { + scope.node.addDependency(resource); + } + } +} diff --git a/src/asana/type.ts b/src/asana/type.ts new file mode 100644 index 00000000..0914b70e --- /dev/null +++ b/src/asana/type.ts @@ -0,0 +1,24 @@ +/* +Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +SPDX-License-Identifier: Apache-2.0 +*/ +import { ConnectorType } from '../core/connectors/connector-type'; + +/** + * @internal + */ +export class AsanaConnectorType extends ConnectorType { + + public static get instance(): ConnectorType { + if (!AsanaConnectorType.actualInstance) { + AsanaConnectorType.actualInstance = new AsanaConnectorType(); + } + return AsanaConnectorType.actualInstance; + } + + private static actualInstance: ConnectorType; + + constructor() { + super('Asana', true); + } +} \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 9389fa9b..b8af1846 100644 --- a/src/index.ts +++ b/src/index.ts @@ -5,6 +5,7 @@ SPDX-License-Identifier: Apache-2.0 export * from './core'; export * from './amazonrdsforpostgresql'; +export * from './asana'; export * from './eventbridge'; export * from './googleanalytics4'; export * from './googlebigquery'; diff --git a/test/integ/ondemand-asana-to-s3.integ.snapshot/TestStack.assets.json b/test/integ/ondemand-asana-to-s3.integ.snapshot/TestStack.assets.json new file mode 100644 index 00000000..59aa77ef --- /dev/null +++ b/test/integ/ondemand-asana-to-s3.integ.snapshot/TestStack.assets.json @@ -0,0 +1,32 @@ +{ + "version": "36.0.0", + "files": { + "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6": { + "source": { + "path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", + "packaging": "zip" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + }, + "99b90d8d72bc84463ed65323f4e755875ece33ca0ffa2826f29e21ca8ecbca4b": { + "source": { + "path": "TestStack.template.json", + "packaging": "file" + }, + "destinations": { + "current_account-current_region": { + "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", + "objectKey": "99b90d8d72bc84463ed65323f4e755875ece33ca0ffa2826f29e21ca8ecbca4b.json", + "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" + } + } + } + }, + "dockerImages": {} +} \ No newline at end of file diff --git a/test/integ/ondemand-asana-to-s3.integ.snapshot/TestStack.template.json b/test/integ/ondemand-asana-to-s3.integ.snapshot/TestStack.template.json new file mode 100644 index 00000000..ae7eae0d --- /dev/null +++ b/test/integ/ondemand-asana-to-s3.integ.snapshot/TestStack.template.json @@ -0,0 +1,472 @@ +{ + "Resources": { + "TestConnectorProfileD7470107": { + "Type": "AWS::AppFlow::ConnectorProfile", + "Properties": { + "ConnectionMode": "Public", + "ConnectorLabel": "Asana", + "ConnectorProfileConfig": { + "ConnectorProfileCredentials": { + "CustomConnector": { + "AuthenticationType": "CUSTOM", + "Custom": { + "CredentialsMap": { + "patToken": { + "Fn::Join": [ + "", + [ + "{{resolve:secretsmanager:arn:", + { + "Ref": "AWS::Partition" + }, + ":secretsmanager:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":secret:appflow/asana:SecretString:patToken::}}" + ] + ] + } + }, + "CustomAuthenticationType": "PAT" + } + } + }, + "ConnectorProfileProperties": { + "CustomConnector": { + "ProfileProperties": {} + } + } + }, + "ConnectorProfileName": "TestConnectorProfile", + "ConnectorType": "CustomConnector" + } + }, + "TestBucket560B80BC": { + "Type": "AWS::S3::Bucket", + "Properties": { + "Tags": [ + { + "Key": "aws-cdk:auto-delete-objects", + "Value": "true" + } + ] + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "TestBucketPolicyBA12ED38": { + "Type": "AWS::S3::BucketPolicy", + "Properties": { + "Bucket": { + "Ref": "TestBucket560B80BC" + }, + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "s3:PutBucketPolicy", + "s3:GetBucket*", + "s3:List*", + "s3:DeleteObject*" + ], + "Effect": "Allow", + "Principal": { + "AWS": { + "Fn::GetAtt": [ + "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092", + "Arn" + ] + } + }, + "Resource": [ + { + "Fn::GetAtt": [ + "TestBucket560B80BC", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "TestBucket560B80BC", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + }, + { + "Action": [ + "s3:PutObject", + "s3:AbortMultipartUpload", + "s3:ListMultipartUploadParts", + "s3:ListBucketMultipartUploads", + "s3:GetBucketAcl", + "s3:PutObjectAcl" + ], + "Condition": { + "StringEquals": { + "aws:SourceAccount": { + "Ref": "AWS::AccountId" + } + } + }, + "Effect": "Allow", + "Principal": { + "Service": "appflow.amazonaws.com" + }, + "Resource": [ + { + "Fn::GetAtt": [ + "TestBucket560B80BC", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "TestBucket560B80BC", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + } + ], + "Version": "2012-10-17" + } + } + }, + "TestBucketAutoDeleteObjectsCustomResource8FEAABD5": { + "Type": "Custom::S3AutoDeleteObjects", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F", + "Arn" + ] + }, + "BucketName": { + "Ref": "TestBucket560B80BC" + } + }, + "DependsOn": [ + "TestBucketPolicyBA12ED38" + ], + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ] + }, + "ManagedPolicyArns": [ + { + "Fn::Sub": "arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + } + ] + } + }, + "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip" + }, + "Timeout": 900, + "MemorySize": 128, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092", + "Arn" + ] + }, + "Runtime": { + "Fn::FindInMap": [ + "LatestNodeRuntimeMap", + { + "Ref": "AWS::Region" + }, + "value" + ] + }, + "Description": { + "Fn::Join": [ + "", + [ + "Lambda function for auto-deleting objects in ", + { + "Ref": "TestBucket560B80BC" + }, + " S3 bucket." + ] + ] + } + }, + "DependsOn": [ + "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092" + ] + }, + "OnDemandFlow4ECA54C5": { + "Type": "AWS::AppFlow::Flow", + "Properties": { + "DestinationFlowConfigList": [ + { + "ConnectorType": "S3", + "DestinationConnectorProperties": { + "S3": { + "BucketName": { + "Ref": "TestBucket560B80BC" + } + } + } + } + ], + "FlowName": "OnDemandFlow", + "SourceFlowConfig": { + "ApiVersion": "1.0", + "ConnectorProfileName": "TestConnectorProfile", + "ConnectorType": "CustomConnector", + "SourceConnectorProperties": { + "CustomConnector": { + "EntityName": { + "Fn::Join": [ + "", + [ + "{{resolve:secretsmanager:arn:", + { + "Ref": "AWS::Partition" + }, + ":secretsmanager:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":secret:appflow/asana:SecretString:object::}}" + ] + ] + } + } + } + }, + "Tasks": [ + { + "ConnectorOperator": { + "CustomConnector": "NO_OP" + }, + "SourceFields": [], + "TaskProperties": [ + { + "Key": "EXCLUDE_SOURCE_FIELDS_LIST", + "Value": "[]" + } + ], + "TaskType": "Map_all" + } + ], + "TriggerConfig": { + "TriggerType": "OnDemand" + } + }, + "DependsOn": [ + "TestBucketAutoDeleteObjectsCustomResource8FEAABD5", + "TestBucketPolicyBA12ED38", + "TestBucket560B80BC", + "TestConnectorProfileD7470107" + ] + } + }, + "Mappings": { + "LatestNodeRuntimeMap": { + "af-south-1": { + "value": "nodejs20.x" + }, + "ap-east-1": { + "value": "nodejs20.x" + }, + "ap-northeast-1": { + "value": "nodejs20.x" + }, + "ap-northeast-2": { + "value": "nodejs20.x" + }, + "ap-northeast-3": { + "value": "nodejs20.x" + }, + "ap-south-1": { + "value": "nodejs20.x" + }, + "ap-south-2": { + "value": "nodejs20.x" + }, + "ap-southeast-1": { + "value": "nodejs20.x" + }, + "ap-southeast-2": { + "value": "nodejs20.x" + }, + "ap-southeast-3": { + "value": "nodejs20.x" + }, + "ap-southeast-4": { + "value": "nodejs20.x" + }, + "ap-southeast-5": { + "value": "nodejs20.x" + }, + "ap-southeast-7": { + "value": "nodejs20.x" + }, + "ca-central-1": { + "value": "nodejs20.x" + }, + "ca-west-1": { + "value": "nodejs20.x" + }, + "cn-north-1": { + "value": "nodejs18.x" + }, + "cn-northwest-1": { + "value": "nodejs18.x" + }, + "eu-central-1": { + "value": "nodejs20.x" + }, + "eu-central-2": { + "value": "nodejs20.x" + }, + "eu-isoe-west-1": { + "value": "nodejs18.x" + }, + "eu-north-1": { + "value": "nodejs20.x" + }, + "eu-south-1": { + "value": "nodejs20.x" + }, + "eu-south-2": { + "value": "nodejs20.x" + }, + "eu-west-1": { + "value": "nodejs20.x" + }, + "eu-west-2": { + "value": "nodejs20.x" + }, + "eu-west-3": { + "value": "nodejs20.x" + }, + "il-central-1": { + "value": "nodejs20.x" + }, + "me-central-1": { + "value": "nodejs20.x" + }, + "me-south-1": { + "value": "nodejs20.x" + }, + "mx-central-1": { + "value": "nodejs20.x" + }, + "sa-east-1": { + "value": "nodejs20.x" + }, + "us-east-1": { + "value": "nodejs20.x" + }, + "us-east-2": { + "value": "nodejs20.x" + }, + "us-gov-east-1": { + "value": "nodejs18.x" + }, + "us-gov-west-1": { + "value": "nodejs18.x" + }, + "us-iso-east-1": { + "value": "nodejs18.x" + }, + "us-iso-west-1": { + "value": "nodejs18.x" + }, + "us-isob-east-1": { + "value": "nodejs18.x" + }, + "us-west-1": { + "value": "nodejs20.x" + }, + "us-west-2": { + "value": "nodejs20.x" + } + } + }, + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/test/integ/ondemand-asana-to-s3.integ.ts b/test/integ/ondemand-asana-to-s3.integ.ts new file mode 100644 index 00000000..e903a673 --- /dev/null +++ b/test/integ/ondemand-asana-to-s3.integ.ts @@ -0,0 +1,48 @@ +/* +Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +SPDX-License-Identifier: Apache-2.0 +*/ +import { App, RemovalPolicy, Stack } from 'aws-cdk-lib'; +import { Bucket } from 'aws-cdk-lib/aws-s3'; +import { Secret } from 'aws-cdk-lib/aws-secretsmanager'; +import { + Mapping, + OnDemandFlow, + S3Destination, + AsanaConnectorProfile, + AsanaSource, +} from '../../src'; + +const app = new App({ + treeMetadata: false, +}); + +const stack = new Stack(app, 'TestStack'); + +const secret = Secret.fromSecretNameV2(stack, 'TestSecret', 'appflow/asana'); + +const profile = new AsanaConnectorProfile(stack, 'TestConnectorProfile', { + patToken: secret.secretValueFromJson('patToken'), +}); + +const source = new AsanaSource({ + profile: profile, + object: secret.secretValueFromJson('object').toString(), +}); + +const bucket = new Bucket(stack, 'TestBucket', { + autoDeleteObjects: true, + removalPolicy: RemovalPolicy.DESTROY, +}); + +const destination = new S3Destination({ + location: { bucket }, +}); + +new OnDemandFlow(stack, 'OnDemandFlow', { + source: source, + destination: destination, + mappings: [Mapping.mapAll()], +}); + +app.synth(); \ No newline at end of file diff --git a/test/integ/ondemand-googleanalytics4-to-s3.integ.snapshot/TestStack.assets.json b/test/integ/ondemand-googleanalytics4-to-s3.integ.snapshot/TestStack.assets.json index e8760ee8..565ccc1b 100644 --- a/test/integ/ondemand-googleanalytics4-to-s3.integ.snapshot/TestStack.assets.json +++ b/test/integ/ondemand-googleanalytics4-to-s3.integ.snapshot/TestStack.assets.json @@ -1,20 +1,20 @@ { "version": "36.0.0", "files": { - "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6": { + "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6": { "source": { - "path": "asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6", + "path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", "packaging": "zip" }, "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", + "objectKey": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "ee9761a5e2a7233f6e6315d676d7f9ec38288571346d71bd986f8c7c875c7e14": { + "2ea312c67e9de1ffc6cc7a7242d9c0dc8a2f13f03308d829b5334435120fa7f0": { "source": { "path": "TestStack.template.json", "packaging": "file" @@ -22,7 +22,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "ee9761a5e2a7233f6e6315d676d7f9ec38288571346d71bd986f8c7c875c7e14.json", + "objectKey": "2ea312c67e9de1ffc6cc7a7242d9c0dc8a2f13f03308d829b5334435120fa7f0.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/test/integ/ondemand-googleanalytics4-to-s3.integ.snapshot/TestStack.template.json b/test/integ/ondemand-googleanalytics4-to-s3.integ.snapshot/TestStack.template.json index c9c6ced2..6302aa17 100644 --- a/test/integ/ondemand-googleanalytics4-to-s3.integ.snapshot/TestStack.template.json +++ b/test/integ/ondemand-googleanalytics4-to-s3.integ.snapshot/TestStack.template.json @@ -243,7 +243,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip" + "S3Key": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip" }, "Timeout": 900, "MemorySize": 128, @@ -254,7 +254,15 @@ "Arn" ] }, - "Runtime": "nodejs18.x", + "Runtime": { + "Fn::FindInMap": [ + "LatestNodeRuntimeMap", + { + "Ref": "AWS::Region" + }, + "value" + ] + }, "Description": { "Fn::Join": [ "", @@ -402,6 +410,130 @@ ] } }, + "Mappings": { + "LatestNodeRuntimeMap": { + "af-south-1": { + "value": "nodejs20.x" + }, + "ap-east-1": { + "value": "nodejs20.x" + }, + "ap-northeast-1": { + "value": "nodejs20.x" + }, + "ap-northeast-2": { + "value": "nodejs20.x" + }, + "ap-northeast-3": { + "value": "nodejs20.x" + }, + "ap-south-1": { + "value": "nodejs20.x" + }, + "ap-south-2": { + "value": "nodejs20.x" + }, + "ap-southeast-1": { + "value": "nodejs20.x" + }, + "ap-southeast-2": { + "value": "nodejs20.x" + }, + "ap-southeast-3": { + "value": "nodejs20.x" + }, + "ap-southeast-4": { + "value": "nodejs20.x" + }, + "ap-southeast-5": { + "value": "nodejs20.x" + }, + "ap-southeast-7": { + "value": "nodejs20.x" + }, + "ca-central-1": { + "value": "nodejs20.x" + }, + "ca-west-1": { + "value": "nodejs20.x" + }, + "cn-north-1": { + "value": "nodejs18.x" + }, + "cn-northwest-1": { + "value": "nodejs18.x" + }, + "eu-central-1": { + "value": "nodejs20.x" + }, + "eu-central-2": { + "value": "nodejs20.x" + }, + "eu-isoe-west-1": { + "value": "nodejs18.x" + }, + "eu-north-1": { + "value": "nodejs20.x" + }, + "eu-south-1": { + "value": "nodejs20.x" + }, + "eu-south-2": { + "value": "nodejs20.x" + }, + "eu-west-1": { + "value": "nodejs20.x" + }, + "eu-west-2": { + "value": "nodejs20.x" + }, + "eu-west-3": { + "value": "nodejs20.x" + }, + "il-central-1": { + "value": "nodejs20.x" + }, + "me-central-1": { + "value": "nodejs20.x" + }, + "me-south-1": { + "value": "nodejs20.x" + }, + "mx-central-1": { + "value": "nodejs20.x" + }, + "sa-east-1": { + "value": "nodejs20.x" + }, + "us-east-1": { + "value": "nodejs20.x" + }, + "us-east-2": { + "value": "nodejs20.x" + }, + "us-gov-east-1": { + "value": "nodejs18.x" + }, + "us-gov-west-1": { + "value": "nodejs18.x" + }, + "us-iso-east-1": { + "value": "nodejs18.x" + }, + "us-iso-west-1": { + "value": "nodejs18.x" + }, + "us-isob-east-1": { + "value": "nodejs18.x" + }, + "us-west-1": { + "value": "nodejs20.x" + }, + "us-west-2": { + "value": "nodejs20.x" + } + } + }, "Parameters": { "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", diff --git a/test/integ/ondemand-jdbcsmalldatascale-to-s3.integ.snapshot/TestStack.assets.json b/test/integ/ondemand-jdbcsmalldatascale-to-s3.integ.snapshot/TestStack.assets.json index 764b8c7d..4b65c2d9 100644 --- a/test/integ/ondemand-jdbcsmalldatascale-to-s3.integ.snapshot/TestStack.assets.json +++ b/test/integ/ondemand-jdbcsmalldatascale-to-s3.integ.snapshot/TestStack.assets.json @@ -1,20 +1,20 @@ { "version": "36.0.0", "files": { - "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6": { + "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6": { "source": { - "path": "asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6", + "path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", "packaging": "zip" }, "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", + "objectKey": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "85e6c489b6ba6b249b35b568479083f37b5159ea1c2713c1812dfda7f164f585": { + "532819537ceb30d89ceb283dc40f262ad262d89482a0756490279fea67d480e2": { "source": { "path": "TestStack.template.json", "packaging": "file" @@ -22,7 +22,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "85e6c489b6ba6b249b35b568479083f37b5159ea1c2713c1812dfda7f164f585.json", + "objectKey": "532819537ceb30d89ceb283dc40f262ad262d89482a0756490279fea67d480e2.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/test/integ/ondemand-jdbcsmalldatascale-to-s3.integ.snapshot/TestStack.template.json b/test/integ/ondemand-jdbcsmalldatascale-to-s3.integ.snapshot/TestStack.template.json index 3fc06986..fb819646 100644 --- a/test/integ/ondemand-jdbcsmalldatascale-to-s3.integ.snapshot/TestStack.template.json +++ b/test/integ/ondemand-jdbcsmalldatascale-to-s3.integ.snapshot/TestStack.template.json @@ -302,7 +302,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip" + "S3Key": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip" }, "Timeout": 900, "MemorySize": 128, @@ -313,7 +313,15 @@ "Arn" ] }, - "Runtime": "nodejs18.x", + "Runtime": { + "Fn::FindInMap": [ + "LatestNodeRuntimeMap", + { + "Ref": "AWS::Region" + }, + "value" + ] + }, "Description": { "Fn::Join": [ "", @@ -415,6 +423,130 @@ ] } }, + "Mappings": { + "LatestNodeRuntimeMap": { + "af-south-1": { + "value": "nodejs20.x" + }, + "ap-east-1": { + "value": "nodejs20.x" + }, + "ap-northeast-1": { + "value": "nodejs20.x" + }, + "ap-northeast-2": { + "value": "nodejs20.x" + }, + "ap-northeast-3": { + "value": "nodejs20.x" + }, + "ap-south-1": { + "value": "nodejs20.x" + }, + "ap-south-2": { + "value": "nodejs20.x" + }, + "ap-southeast-1": { + "value": "nodejs20.x" + }, + "ap-southeast-2": { + "value": "nodejs20.x" + }, + "ap-southeast-3": { + "value": "nodejs20.x" + }, + "ap-southeast-4": { + "value": "nodejs20.x" + }, + "ap-southeast-5": { + "value": "nodejs20.x" + }, + "ap-southeast-7": { + "value": "nodejs20.x" + }, + "ca-central-1": { + "value": "nodejs20.x" + }, + "ca-west-1": { + "value": "nodejs20.x" + }, + "cn-north-1": { + "value": "nodejs18.x" + }, + "cn-northwest-1": { + "value": "nodejs18.x" + }, + "eu-central-1": { + "value": "nodejs20.x" + }, + "eu-central-2": { + "value": "nodejs20.x" + }, + "eu-isoe-west-1": { + "value": "nodejs18.x" + }, + "eu-north-1": { + "value": "nodejs20.x" + }, + "eu-south-1": { + "value": "nodejs20.x" + }, + "eu-south-2": { + "value": "nodejs20.x" + }, + "eu-west-1": { + "value": "nodejs20.x" + }, + "eu-west-2": { + "value": "nodejs20.x" + }, + "eu-west-3": { + "value": "nodejs20.x" + }, + "il-central-1": { + "value": "nodejs20.x" + }, + "me-central-1": { + "value": "nodejs20.x" + }, + "me-south-1": { + "value": "nodejs20.x" + }, + "mx-central-1": { + "value": "nodejs20.x" + }, + "sa-east-1": { + "value": "nodejs20.x" + }, + "us-east-1": { + "value": "nodejs20.x" + }, + "us-east-2": { + "value": "nodejs20.x" + }, + "us-gov-east-1": { + "value": "nodejs18.x" + }, + "us-gov-west-1": { + "value": "nodejs18.x" + }, + "us-iso-east-1": { + "value": "nodejs18.x" + }, + "us-iso-west-1": { + "value": "nodejs18.x" + }, + "us-isob-east-1": { + "value": "nodejs18.x" + }, + "us-west-1": { + "value": "nodejs20.x" + }, + "us-west-2": { + "value": "nodejs20.x" + } + } + }, "Parameters": { "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", diff --git a/test/integ/ondemand-jdbcsmalldatascale-to-s3.integ.snapshot/manifest.json b/test/integ/ondemand-jdbcsmalldatascale-to-s3.integ.snapshot/manifest.json index 0ee3782f..b66123ea 100644 --- a/test/integ/ondemand-jdbcsmalldatascale-to-s3.integ.snapshot/manifest.json +++ b/test/integ/ondemand-jdbcsmalldatascale-to-s3.integ.snapshot/manifest.json @@ -18,7 +18,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/85e6c489b6ba6b249b35b568479083f37b5159ea1c2713c1812dfda7f164f585.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/532819537ceb30d89ceb283dc40f262ad262d89482a0756490279fea67d480e2.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ @@ -58,6 +58,12 @@ "data": "TestBucketAutoDeleteObjectsCustomResource8FEAABD5" } ], + "/TestStack/LatestNodeRuntimeMap": [ + { + "type": "aws:cdk:logicalId", + "data": "LatestNodeRuntimeMap" + } + ], "/TestStack/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role": [ { "type": "aws:cdk:logicalId", diff --git a/test/integ/ondemand-mailchimp-to-s3.integ.snapshot/TestStack.assets.json b/test/integ/ondemand-mailchimp-to-s3.integ.snapshot/TestStack.assets.json index e83f0f06..93276e8c 100644 --- a/test/integ/ondemand-mailchimp-to-s3.integ.snapshot/TestStack.assets.json +++ b/test/integ/ondemand-mailchimp-to-s3.integ.snapshot/TestStack.assets.json @@ -1,20 +1,20 @@ { "version": "36.0.0", "files": { - "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6": { + "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6": { "source": { - "path": "asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6", + "path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", "packaging": "zip" }, "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", + "objectKey": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "64ba6764fdb9ee3b0ec9dd13c4647232d7f266b5a78766fb889bfe9c30747721": { + "d221bc6829242f33fb824716a6a9e09db02f0c425682ea8ff164aaf6eeabe707": { "source": { "path": "TestStack.template.json", "packaging": "file" @@ -22,7 +22,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "64ba6764fdb9ee3b0ec9dd13c4647232d7f266b5a78766fb889bfe9c30747721.json", + "objectKey": "d221bc6829242f33fb824716a6a9e09db02f0c425682ea8ff164aaf6eeabe707.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/test/integ/ondemand-mailchimp-to-s3.integ.snapshot/TestStack.template.json b/test/integ/ondemand-mailchimp-to-s3.integ.snapshot/TestStack.template.json index 230a9b36..fcf4db95 100644 --- a/test/integ/ondemand-mailchimp-to-s3.integ.snapshot/TestStack.template.json +++ b/test/integ/ondemand-mailchimp-to-s3.integ.snapshot/TestStack.template.json @@ -223,7 +223,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip" + "S3Key": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip" }, "Timeout": 900, "MemorySize": 128, @@ -234,7 +234,15 @@ "Arn" ] }, - "Runtime": "nodejs18.x", + "Runtime": { + "Fn::FindInMap": [ + "LatestNodeRuntimeMap", + { + "Ref": "AWS::Region" + }, + "value" + ] + }, "Description": { "Fn::Join": [ "", @@ -305,6 +313,130 @@ ] } }, + "Mappings": { + "LatestNodeRuntimeMap": { + "af-south-1": { + "value": "nodejs20.x" + }, + "ap-east-1": { + "value": "nodejs20.x" + }, + "ap-northeast-1": { + "value": "nodejs20.x" + }, + "ap-northeast-2": { + "value": "nodejs20.x" + }, + "ap-northeast-3": { + "value": "nodejs20.x" + }, + "ap-south-1": { + "value": "nodejs20.x" + }, + "ap-south-2": { + "value": "nodejs20.x" + }, + "ap-southeast-1": { + "value": "nodejs20.x" + }, + "ap-southeast-2": { + "value": "nodejs20.x" + }, + "ap-southeast-3": { + "value": "nodejs20.x" + }, + "ap-southeast-4": { + "value": "nodejs20.x" + }, + "ap-southeast-5": { + "value": "nodejs20.x" + }, + "ap-southeast-7": { + "value": "nodejs20.x" + }, + "ca-central-1": { + "value": "nodejs20.x" + }, + "ca-west-1": { + "value": "nodejs20.x" + }, + "cn-north-1": { + "value": "nodejs18.x" + }, + "cn-northwest-1": { + "value": "nodejs18.x" + }, + "eu-central-1": { + "value": "nodejs20.x" + }, + "eu-central-2": { + "value": "nodejs20.x" + }, + "eu-isoe-west-1": { + "value": "nodejs18.x" + }, + "eu-north-1": { + "value": "nodejs20.x" + }, + "eu-south-1": { + "value": "nodejs20.x" + }, + "eu-south-2": { + "value": "nodejs20.x" + }, + "eu-west-1": { + "value": "nodejs20.x" + }, + "eu-west-2": { + "value": "nodejs20.x" + }, + "eu-west-3": { + "value": "nodejs20.x" + }, + "il-central-1": { + "value": "nodejs20.x" + }, + "me-central-1": { + "value": "nodejs20.x" + }, + "me-south-1": { + "value": "nodejs20.x" + }, + "mx-central-1": { + "value": "nodejs20.x" + }, + "sa-east-1": { + "value": "nodejs20.x" + }, + "us-east-1": { + "value": "nodejs20.x" + }, + "us-east-2": { + "value": "nodejs20.x" + }, + "us-gov-east-1": { + "value": "nodejs18.x" + }, + "us-gov-west-1": { + "value": "nodejs18.x" + }, + "us-iso-east-1": { + "value": "nodejs18.x" + }, + "us-iso-west-1": { + "value": "nodejs18.x" + }, + "us-isob-east-1": { + "value": "nodejs18.x" + }, + "us-west-1": { + "value": "nodejs20.x" + }, + "us-west-2": { + "value": "nodejs20.x" + } + } + }, "Parameters": { "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", diff --git a/test/integ/ondemand-microsoftdynamics365-to-s3.integ.snapshot/TestStack.assets.json b/test/integ/ondemand-microsoftdynamics365-to-s3.integ.snapshot/TestStack.assets.json index bb96311c..176a3e74 100644 --- a/test/integ/ondemand-microsoftdynamics365-to-s3.integ.snapshot/TestStack.assets.json +++ b/test/integ/ondemand-microsoftdynamics365-to-s3.integ.snapshot/TestStack.assets.json @@ -1,21 +1,21 @@ { "version": "36.0.0", "files": { - "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6": { + "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6": { "source": { - "path": "asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6", + "path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", "packaging": "zip" }, "destinations": { "current_account-us-east-1": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", - "objectKey": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", + "objectKey": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip", "region": "us-east-1", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1" } } }, - "2c0e6f8d668b207ae36fefe56aefb498b434801e17454f6dbe84cdaf18c5bc6a": { + "71a287a54e5f2c6d27d3c67dbaa6a5a45bdb20ff32f2cb3f63bed9b1bb964956": { "source": { "path": "TestStack.template.json", "packaging": "file" @@ -23,7 +23,7 @@ "destinations": { "current_account-us-east-1": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1", - "objectKey": "2c0e6f8d668b207ae36fefe56aefb498b434801e17454f6dbe84cdaf18c5bc6a.json", + "objectKey": "71a287a54e5f2c6d27d3c67dbaa6a5a45bdb20ff32f2cb3f63bed9b1bb964956.json", "region": "us-east-1", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1" } diff --git a/test/integ/ondemand-microsoftdynamics365-to-s3.integ.snapshot/TestStack.template.json b/test/integ/ondemand-microsoftdynamics365-to-s3.integ.snapshot/TestStack.template.json index 001cc06a..b158cf7d 100644 --- a/test/integ/ondemand-microsoftdynamics365-to-s3.integ.snapshot/TestStack.template.json +++ b/test/integ/ondemand-microsoftdynamics365-to-s3.integ.snapshot/TestStack.template.json @@ -264,7 +264,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1" }, - "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip" + "S3Key": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip" }, "Timeout": 900, "MemorySize": 128, @@ -275,7 +275,7 @@ "Arn" ] }, - "Runtime": "nodejs18.x", + "Runtime": "nodejs20.x", "Description": { "Fn::Join": [ "", diff --git a/test/integ/ondemand-microsoftdynamics365-to-s3.integ.snapshot/manifest.json b/test/integ/ondemand-microsoftdynamics365-to-s3.integ.snapshot/manifest.json index 29df2dab..fcf7e9b1 100644 --- a/test/integ/ondemand-microsoftdynamics365-to-s3.integ.snapshot/manifest.json +++ b/test/integ/ondemand-microsoftdynamics365-to-s3.integ.snapshot/manifest.json @@ -18,7 +18,7 @@ "validateOnSynth": false, "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-us-east-1", "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-us-east-1", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/2c0e6f8d668b207ae36fefe56aefb498b434801e17454f6dbe84cdaf18c5bc6a.json", + "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/71a287a54e5f2c6d27d3c67dbaa6a5a45bdb20ff32f2cb3f63bed9b1bb964956.json", "requiresBootstrapStackVersion": 6, "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", "additionalDependencies": [ diff --git a/test/integ/ondemand-microsoftsharepointonline-to-s3.integ.snapshot/TestStack.assets.json b/test/integ/ondemand-microsoftsharepointonline-to-s3.integ.snapshot/TestStack.assets.json index 8e557ee6..88ca9d4e 100644 --- a/test/integ/ondemand-microsoftsharepointonline-to-s3.integ.snapshot/TestStack.assets.json +++ b/test/integ/ondemand-microsoftsharepointonline-to-s3.integ.snapshot/TestStack.assets.json @@ -1,20 +1,20 @@ { "version": "36.0.0", "files": { - "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6": { + "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6": { "source": { - "path": "asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6", + "path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", "packaging": "zip" }, "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", + "objectKey": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "f75ed7000b3fc5212768e1703cb08000c56265ae42736a4ae63d7ce978b67374": { + "8eede5efa341871e439a6c48121a592749d86283fce3c03cab0b12d3c4580a9f": { "source": { "path": "TestStack.template.json", "packaging": "file" @@ -22,7 +22,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "f75ed7000b3fc5212768e1703cb08000c56265ae42736a4ae63d7ce978b67374.json", + "objectKey": "8eede5efa341871e439a6c48121a592749d86283fce3c03cab0b12d3c4580a9f.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/test/integ/ondemand-microsoftsharepointonline-to-s3.integ.snapshot/TestStack.template.json b/test/integ/ondemand-microsoftsharepointonline-to-s3.integ.snapshot/TestStack.template.json index 78f46804..b0ec42bd 100644 --- a/test/integ/ondemand-microsoftsharepointonline-to-s3.integ.snapshot/TestStack.template.json +++ b/test/integ/ondemand-microsoftsharepointonline-to-s3.integ.snapshot/TestStack.template.json @@ -241,7 +241,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip" + "S3Key": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip" }, "Timeout": 900, "MemorySize": 128, @@ -252,7 +252,15 @@ "Arn" ] }, - "Runtime": "nodejs18.x", + "Runtime": { + "Fn::FindInMap": [ + "LatestNodeRuntimeMap", + { + "Ref": "AWS::Region" + }, + "value" + ] + }, "Description": { "Fn::Join": [ "", @@ -370,6 +378,130 @@ ] } }, + "Mappings": { + "LatestNodeRuntimeMap": { + "af-south-1": { + "value": "nodejs20.x" + }, + "ap-east-1": { + "value": "nodejs20.x" + }, + "ap-northeast-1": { + "value": "nodejs20.x" + }, + "ap-northeast-2": { + "value": "nodejs20.x" + }, + "ap-northeast-3": { + "value": "nodejs20.x" + }, + "ap-south-1": { + "value": "nodejs20.x" + }, + "ap-south-2": { + "value": "nodejs20.x" + }, + "ap-southeast-1": { + "value": "nodejs20.x" + }, + "ap-southeast-2": { + "value": "nodejs20.x" + }, + "ap-southeast-3": { + "value": "nodejs20.x" + }, + "ap-southeast-4": { + "value": "nodejs20.x" + }, + "ap-southeast-5": { + "value": "nodejs20.x" + }, + "ap-southeast-7": { + "value": "nodejs20.x" + }, + "ca-central-1": { + "value": "nodejs20.x" + }, + "ca-west-1": { + "value": "nodejs20.x" + }, + "cn-north-1": { + "value": "nodejs18.x" + }, + "cn-northwest-1": { + "value": "nodejs18.x" + }, + "eu-central-1": { + "value": "nodejs20.x" + }, + "eu-central-2": { + "value": "nodejs20.x" + }, + "eu-isoe-west-1": { + "value": "nodejs18.x" + }, + "eu-north-1": { + "value": "nodejs20.x" + }, + "eu-south-1": { + "value": "nodejs20.x" + }, + "eu-south-2": { + "value": "nodejs20.x" + }, + "eu-west-1": { + "value": "nodejs20.x" + }, + "eu-west-2": { + "value": "nodejs20.x" + }, + "eu-west-3": { + "value": "nodejs20.x" + }, + "il-central-1": { + "value": "nodejs20.x" + }, + "me-central-1": { + "value": "nodejs20.x" + }, + "me-south-1": { + "value": "nodejs20.x" + }, + "mx-central-1": { + "value": "nodejs20.x" + }, + "sa-east-1": { + "value": "nodejs20.x" + }, + "us-east-1": { + "value": "nodejs20.x" + }, + "us-east-2": { + "value": "nodejs20.x" + }, + "us-gov-east-1": { + "value": "nodejs18.x" + }, + "us-gov-west-1": { + "value": "nodejs18.x" + }, + "us-iso-east-1": { + "value": "nodejs18.x" + }, + "us-iso-west-1": { + "value": "nodejs18.x" + }, + "us-isob-east-1": { + "value": "nodejs18.x" + }, + "us-west-1": { + "value": "nodejs20.x" + }, + "us-west-2": { + "value": "nodejs20.x" + } + } + }, "Parameters": { "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", diff --git a/test/integ/ondemand-s3-to-snowflake.integ.snapshot/TestStack.assets.json b/test/integ/ondemand-s3-to-snowflake.integ.snapshot/TestStack.assets.json index 0e8fc6e2..36aeec6d 100644 --- a/test/integ/ondemand-s3-to-snowflake.integ.snapshot/TestStack.assets.json +++ b/test/integ/ondemand-s3-to-snowflake.integ.snapshot/TestStack.assets.json @@ -1,41 +1,41 @@ { "version": "36.0.0", "files": { - "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6": { + "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6": { "source": { - "path": "asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6", + "path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", "packaging": "zip" }, "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", + "objectKey": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "3fb6287214999ddeafa7cd0e3e58bc5144c8678bb720f3b5e45e8fd32f333eb3": { + "3322b7049fb0ed2b7cbb644a2ada8d1116ff80c32dca89e6ada846b5de26f961": { "source": { - "path": "asset.3fb6287214999ddeafa7cd0e3e58bc5144c8678bb720f3b5e45e8fd32f333eb3.zip", + "path": "asset.3322b7049fb0ed2b7cbb644a2ada8d1116ff80c32dca89e6ada846b5de26f961.zip", "packaging": "file" }, "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3fb6287214999ddeafa7cd0e3e58bc5144c8678bb720f3b5e45e8fd32f333eb3.zip", + "objectKey": "3322b7049fb0ed2b7cbb644a2ada8d1116ff80c32dca89e6ada846b5de26f961.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "e976a796f036a5efbf44b99e44cfb5a961df08d8dbf7cd37e60bf216fb982a00": { + "0158f40002a8c211635388a87874fd4dcc3d68f525fe08a0fe0f014069ae539c": { "source": { - "path": "asset.e976a796f036a5efbf44b99e44cfb5a961df08d8dbf7cd37e60bf216fb982a00", + "path": "asset.0158f40002a8c211635388a87874fd4dcc3d68f525fe08a0fe0f014069ae539c", "packaging": "zip" }, "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "e976a796f036a5efbf44b99e44cfb5a961df08d8dbf7cd37e60bf216fb982a00.zip", + "objectKey": "0158f40002a8c211635388a87874fd4dcc3d68f525fe08a0fe0f014069ae539c.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } @@ -53,7 +53,7 @@ } } }, - "95e8ce4a546f3d6512ae5d9ecbad91a3b733ee750d900cd891ecb02c5fb39bc2": { + "28c3461d55f1a4ad4ce0bb3a3e878a84420bffd5145ad14207446c34c8684cbc": { "source": { "path": "TestStack.template.json", "packaging": "file" @@ -61,7 +61,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "95e8ce4a546f3d6512ae5d9ecbad91a3b733ee750d900cd891ecb02c5fb39bc2.json", + "objectKey": "28c3461d55f1a4ad4ce0bb3a3e878a84420bffd5145ad14207446c34c8684cbc.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/test/integ/ondemand-s3-to-snowflake.integ.snapshot/TestStack.template.json b/test/integ/ondemand-s3-to-snowflake.integ.snapshot/TestStack.template.json index f64bde59..feeca69e 100644 --- a/test/integ/ondemand-s3-to-snowflake.integ.snapshot/TestStack.template.json +++ b/test/integ/ondemand-s3-to-snowflake.integ.snapshot/TestStack.template.json @@ -156,7 +156,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip" + "S3Key": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip" }, "Timeout": 900, "MemorySize": 128, @@ -167,7 +167,15 @@ "Arn" ] }, - "Runtime": "nodejs18.x", + "Runtime": { + "Fn::FindInMap": [ + "LatestNodeRuntimeMap", + { + "Ref": "AWS::Region" + }, + "value" + ] + }, "Description": { "Fn::Join": [ "", @@ -192,7 +200,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3fb6287214999ddeafa7cd0e3e58bc5144c8678bb720f3b5e45e8fd32f333eb3.zip" + "S3Key": "3322b7049fb0ed2b7cbb644a2ada8d1116ff80c32dca89e6ada846b5de26f961.zip" }, "Description": "/opt/awscli/aws" } @@ -358,7 +366,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "e976a796f036a5efbf44b99e44cfb5a961df08d8dbf7cd37e60bf216fb982a00.zip" + "S3Key": "0158f40002a8c211635388a87874fd4dcc3d68f525fe08a0fe0f014069ae539c.zip" }, "Environment": { "Variables": { @@ -711,6 +719,130 @@ ] } }, + "Mappings": { + "LatestNodeRuntimeMap": { + "af-south-1": { + "value": "nodejs20.x" + }, + "ap-east-1": { + "value": "nodejs20.x" + }, + "ap-northeast-1": { + "value": "nodejs20.x" + }, + "ap-northeast-2": { + "value": "nodejs20.x" + }, + "ap-northeast-3": { + "value": "nodejs20.x" + }, + "ap-south-1": { + "value": "nodejs20.x" + }, + "ap-south-2": { + "value": "nodejs20.x" + }, + "ap-southeast-1": { + "value": "nodejs20.x" + }, + "ap-southeast-2": { + "value": "nodejs20.x" + }, + "ap-southeast-3": { + "value": "nodejs20.x" + }, + "ap-southeast-4": { + "value": "nodejs20.x" + }, + "ap-southeast-5": { + "value": "nodejs20.x" + }, + "ap-southeast-7": { + "value": "nodejs20.x" + }, + "ca-central-1": { + "value": "nodejs20.x" + }, + "ca-west-1": { + "value": "nodejs20.x" + }, + "cn-north-1": { + "value": "nodejs18.x" + }, + "cn-northwest-1": { + "value": "nodejs18.x" + }, + "eu-central-1": { + "value": "nodejs20.x" + }, + "eu-central-2": { + "value": "nodejs20.x" + }, + "eu-isoe-west-1": { + "value": "nodejs18.x" + }, + "eu-north-1": { + "value": "nodejs20.x" + }, + "eu-south-1": { + "value": "nodejs20.x" + }, + "eu-south-2": { + "value": "nodejs20.x" + }, + "eu-west-1": { + "value": "nodejs20.x" + }, + "eu-west-2": { + "value": "nodejs20.x" + }, + "eu-west-3": { + "value": "nodejs20.x" + }, + "il-central-1": { + "value": "nodejs20.x" + }, + "me-central-1": { + "value": "nodejs20.x" + }, + "me-south-1": { + "value": "nodejs20.x" + }, + "mx-central-1": { + "value": "nodejs20.x" + }, + "sa-east-1": { + "value": "nodejs20.x" + }, + "us-east-1": { + "value": "nodejs20.x" + }, + "us-east-2": { + "value": "nodejs20.x" + }, + "us-gov-east-1": { + "value": "nodejs18.x" + }, + "us-gov-west-1": { + "value": "nodejs18.x" + }, + "us-iso-east-1": { + "value": "nodejs18.x" + }, + "us-iso-west-1": { + "value": "nodejs18.x" + }, + "us-isob-east-1": { + "value": "nodejs18.x" + }, + "us-west-1": { + "value": "nodejs20.x" + }, + "us-west-2": { + "value": "nodejs20.x" + } + } + }, "Parameters": { "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", diff --git a/test/integ/ondemand-salesforce-to-redshift.integ.snapshot/TestStack.assets.json b/test/integ/ondemand-salesforce-to-redshift.integ.snapshot/TestStack.assets.json index 4811a185..995f4a8a 100644 --- a/test/integ/ondemand-salesforce-to-redshift.integ.snapshot/TestStack.assets.json +++ b/test/integ/ondemand-salesforce-to-redshift.integ.snapshot/TestStack.assets.json @@ -1,15 +1,15 @@ { "version": "36.0.0", "files": { - "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6": { + "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6": { "source": { - "path": "asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6", + "path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", "packaging": "zip" }, "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", + "objectKey": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } @@ -27,33 +27,33 @@ } } }, - "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94": { + "d9861ea7a45affd23e47a614acb2fddc6e45c20a891284c958187dafbf9ee36b": { "source": { - "path": "asset.7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94", + "path": "asset.d9861ea7a45affd23e47a614acb2fddc6e45c20a891284c958187dafbf9ee36b", "packaging": "zip" }, "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", + "objectKey": "d9861ea7a45affd23e47a614acb2fddc6e45c20a891284c958187dafbf9ee36b.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "ed6cd104ff5f101d06dae8cb2b87cc6e6d69b9a22055b467ea6cae10ff023023": { + "97f30e67419a1676a2215492723e5add1aa491caf0cbe2dd878fc4fab0468cd4": { "source": { - "path": "asset.ed6cd104ff5f101d06dae8cb2b87cc6e6d69b9a22055b467ea6cae10ff023023", + "path": "asset.97f30e67419a1676a2215492723e5add1aa491caf0cbe2dd878fc4fab0468cd4", "packaging": "zip" }, "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "ed6cd104ff5f101d06dae8cb2b87cc6e6d69b9a22055b467ea6cae10ff023023.zip", + "objectKey": "97f30e67419a1676a2215492723e5add1aa491caf0cbe2dd878fc4fab0468cd4.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "ad6641ba06a646432fa289b98f36bbe1f87c1aec7d517520d44ab10cb2fd7c30": { + "66b90eeb28fb0c4218074216b8bcba8b94052904355a41821980bd1747a31b07": { "source": { "path": "TestStack.template.json", "packaging": "file" @@ -61,7 +61,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "ad6641ba06a646432fa289b98f36bbe1f87c1aec7d517520d44ab10cb2fd7c30.json", + "objectKey": "66b90eeb28fb0c4218074216b8bcba8b94052904355a41821980bd1747a31b07.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/test/integ/ondemand-salesforce-to-redshift.integ.snapshot/TestStack.template.json b/test/integ/ondemand-salesforce-to-redshift.integ.snapshot/TestStack.template.json index b75ce5c3..2a169a81 100644 --- a/test/integ/ondemand-salesforce-to-redshift.integ.snapshot/TestStack.template.json +++ b/test/integ/ondemand-salesforce-to-redshift.integ.snapshot/TestStack.template.json @@ -218,7 +218,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip" + "S3Key": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip" }, "Timeout": 900, "MemorySize": 128, @@ -229,7 +229,15 @@ "Arn" ] }, - "Runtime": "nodejs18.x", + "Runtime": { + "Fn::FindInMap": [ + "LatestNodeRuntimeMap", + { + "Ref": "AWS::Region" + }, + "value" + ] + }, "Description": { "Fn::Join": [ "", @@ -825,7 +833,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip" + "S3Key": "d9861ea7a45affd23e47a614acb2fddc6e45c20a891284c958187dafbf9ee36b.zip" }, "Description": "AWS CDK resource provider framework - onEvent (TestStack/TestTable/Resource/Provider)", "Environment": { @@ -845,7 +853,15 @@ "Arn" ] }, - "Runtime": "nodejs18.x", + "Runtime": { + "Fn::FindInMap": [ + "LatestNodeRuntimeMap", + { + "Ref": "AWS::Region" + }, + "value" + ] + }, "Timeout": 900 }, "DependsOn": [ @@ -968,7 +984,15 @@ "Arn" ] }, - "Runtime": "nodejs18.x", + "Runtime": { + "Fn::FindInMap": [ + "LatestNodeRuntimeMap", + { + "Ref": "AWS::Region" + }, + "value" + ] + }, "Timeout": 60 }, "DependsOn": [ @@ -1237,7 +1261,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "ed6cd104ff5f101d06dae8cb2b87cc6e6d69b9a22055b467ea6cae10ff023023.zip" + "S3Key": "97f30e67419a1676a2215492723e5add1aa491caf0cbe2dd878fc4fab0468cd4.zip" }, "Handler": "index.handler", "Role": { @@ -1246,7 +1270,15 @@ "Arn" ] }, - "Runtime": "nodejs18.x", + "Runtime": { + "Fn::FindInMap": [ + "LatestNodeRuntimeMap", + { + "Ref": "AWS::Region" + }, + "value" + ] + }, "Timeout": 120 }, "DependsOn": [ @@ -1473,6 +1505,130 @@ ] } }, + "Mappings": { + "LatestNodeRuntimeMap": { + "af-south-1": { + "value": "nodejs20.x" + }, + "ap-east-1": { + "value": "nodejs20.x" + }, + "ap-northeast-1": { + "value": "nodejs20.x" + }, + "ap-northeast-2": { + "value": "nodejs20.x" + }, + "ap-northeast-3": { + "value": "nodejs20.x" + }, + "ap-south-1": { + "value": "nodejs20.x" + }, + "ap-south-2": { + "value": "nodejs20.x" + }, + "ap-southeast-1": { + "value": "nodejs20.x" + }, + "ap-southeast-2": { + "value": "nodejs20.x" + }, + "ap-southeast-3": { + "value": "nodejs20.x" + }, + "ap-southeast-4": { + "value": "nodejs20.x" + }, + "ap-southeast-5": { + "value": "nodejs20.x" + }, + "ap-southeast-7": { + "value": "nodejs20.x" + }, + "ca-central-1": { + "value": "nodejs20.x" + }, + "ca-west-1": { + "value": "nodejs20.x" + }, + "cn-north-1": { + "value": "nodejs18.x" + }, + "cn-northwest-1": { + "value": "nodejs18.x" + }, + "eu-central-1": { + "value": "nodejs20.x" + }, + "eu-central-2": { + "value": "nodejs20.x" + }, + "eu-isoe-west-1": { + "value": "nodejs18.x" + }, + "eu-north-1": { + "value": "nodejs20.x" + }, + "eu-south-1": { + "value": "nodejs20.x" + }, + "eu-south-2": { + "value": "nodejs20.x" + }, + "eu-west-1": { + "value": "nodejs20.x" + }, + "eu-west-2": { + "value": "nodejs20.x" + }, + "eu-west-3": { + "value": "nodejs20.x" + }, + "il-central-1": { + "value": "nodejs20.x" + }, + "me-central-1": { + "value": "nodejs20.x" + }, + "me-south-1": { + "value": "nodejs20.x" + }, + "mx-central-1": { + "value": "nodejs20.x" + }, + "sa-east-1": { + "value": "nodejs20.x" + }, + "us-east-1": { + "value": "nodejs20.x" + }, + "us-east-2": { + "value": "nodejs20.x" + }, + "us-gov-east-1": { + "value": "nodejs18.x" + }, + "us-gov-west-1": { + "value": "nodejs18.x" + }, + "us-iso-east-1": { + "value": "nodejs18.x" + }, + "us-iso-west-1": { + "value": "nodejs18.x" + }, + "us-isob-east-1": { + "value": "nodejs18.x" + }, + "us-west-1": { + "value": "nodejs20.x" + }, + "us-west-2": { + "value": "nodejs20.x" + } + } + }, "Parameters": { "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", diff --git a/test/integ/ondemand-salesforce-to-s3.integ.snapshot/TestStack.assets.json b/test/integ/ondemand-salesforce-to-s3.integ.snapshot/TestStack.assets.json index 205f1cf7..170ba1c8 100644 --- a/test/integ/ondemand-salesforce-to-s3.integ.snapshot/TestStack.assets.json +++ b/test/integ/ondemand-salesforce-to-s3.integ.snapshot/TestStack.assets.json @@ -1,20 +1,20 @@ { "version": "36.0.0", "files": { - "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6": { + "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6": { "source": { - "path": "asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6", + "path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", "packaging": "zip" }, "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", + "objectKey": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "748cc2c3d57a4902c33bb1f3352cdc31a77c9dc4124fc89225d0e8632aee6779": { + "d7dd40c8f35d1faa379c9b865827bc504b760f92640ac78c67acbb4c6e5db6b7": { "source": { "path": "TestStack.template.json", "packaging": "file" @@ -22,7 +22,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "748cc2c3d57a4902c33bb1f3352cdc31a77c9dc4124fc89225d0e8632aee6779.json", + "objectKey": "d7dd40c8f35d1faa379c9b865827bc504b760f92640ac78c67acbb4c6e5db6b7.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/test/integ/ondemand-salesforce-to-s3.integ.snapshot/TestStack.template.json b/test/integ/ondemand-salesforce-to-s3.integ.snapshot/TestStack.template.json index bf46ada7..94d81060 100644 --- a/test/integ/ondemand-salesforce-to-s3.integ.snapshot/TestStack.template.json +++ b/test/integ/ondemand-salesforce-to-s3.integ.snapshot/TestStack.template.json @@ -236,7 +236,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip" + "S3Key": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip" }, "Timeout": 900, "MemorySize": 128, @@ -247,7 +247,15 @@ "Arn" ] }, - "Runtime": "nodejs18.x", + "Runtime": { + "Fn::FindInMap": [ + "LatestNodeRuntimeMap", + { + "Ref": "AWS::Region" + }, + "value" + ] + }, "Description": { "Fn::Join": [ "", @@ -450,6 +458,130 @@ } } }, + "Mappings": { + "LatestNodeRuntimeMap": { + "af-south-1": { + "value": "nodejs20.x" + }, + "ap-east-1": { + "value": "nodejs20.x" + }, + "ap-northeast-1": { + "value": "nodejs20.x" + }, + "ap-northeast-2": { + "value": "nodejs20.x" + }, + "ap-northeast-3": { + "value": "nodejs20.x" + }, + "ap-south-1": { + "value": "nodejs20.x" + }, + "ap-south-2": { + "value": "nodejs20.x" + }, + "ap-southeast-1": { + "value": "nodejs20.x" + }, + "ap-southeast-2": { + "value": "nodejs20.x" + }, + "ap-southeast-3": { + "value": "nodejs20.x" + }, + "ap-southeast-4": { + "value": "nodejs20.x" + }, + "ap-southeast-5": { + "value": "nodejs20.x" + }, + "ap-southeast-7": { + "value": "nodejs20.x" + }, + "ca-central-1": { + "value": "nodejs20.x" + }, + "ca-west-1": { + "value": "nodejs20.x" + }, + "cn-north-1": { + "value": "nodejs18.x" + }, + "cn-northwest-1": { + "value": "nodejs18.x" + }, + "eu-central-1": { + "value": "nodejs20.x" + }, + "eu-central-2": { + "value": "nodejs20.x" + }, + "eu-isoe-west-1": { + "value": "nodejs18.x" + }, + "eu-north-1": { + "value": "nodejs20.x" + }, + "eu-south-1": { + "value": "nodejs20.x" + }, + "eu-south-2": { + "value": "nodejs20.x" + }, + "eu-west-1": { + "value": "nodejs20.x" + }, + "eu-west-2": { + "value": "nodejs20.x" + }, + "eu-west-3": { + "value": "nodejs20.x" + }, + "il-central-1": { + "value": "nodejs20.x" + }, + "me-central-1": { + "value": "nodejs20.x" + }, + "me-south-1": { + "value": "nodejs20.x" + }, + "mx-central-1": { + "value": "nodejs20.x" + }, + "sa-east-1": { + "value": "nodejs20.x" + }, + "us-east-1": { + "value": "nodejs20.x" + }, + "us-east-2": { + "value": "nodejs20.x" + }, + "us-gov-east-1": { + "value": "nodejs18.x" + }, + "us-gov-west-1": { + "value": "nodejs18.x" + }, + "us-iso-east-1": { + "value": "nodejs18.x" + }, + "us-iso-west-1": { + "value": "nodejs18.x" + }, + "us-isob-east-1": { + "value": "nodejs18.x" + }, + "us-west-1": { + "value": "nodejs20.x" + }, + "us-west-2": { + "value": "nodejs20.x" + } + } + }, "Parameters": { "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", diff --git a/test/integ/ondemand-sapodata-to-s3.integ.snapshot/TestStack.assets.json b/test/integ/ondemand-sapodata-to-s3.integ.snapshot/TestStack.assets.json index 9b73ea5e..6beba03f 100644 --- a/test/integ/ondemand-sapodata-to-s3.integ.snapshot/TestStack.assets.json +++ b/test/integ/ondemand-sapodata-to-s3.integ.snapshot/TestStack.assets.json @@ -1,20 +1,20 @@ { "version": "36.0.0", "files": { - "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6": { + "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6": { "source": { - "path": "asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6", + "path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", "packaging": "zip" }, "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", + "objectKey": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "c4821d8564fc871b9aaaf002f65f53d8a120316b55096ae3c0efde62a02853e2": { + "451c09a79a7447bfd2abfb39793cae3d7fa286610e4ebadfc8d0ab3f30f9cecf": { "source": { "path": "TestStack.template.json", "packaging": "file" @@ -22,7 +22,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "c4821d8564fc871b9aaaf002f65f53d8a120316b55096ae3c0efde62a02853e2.json", + "objectKey": "451c09a79a7447bfd2abfb39793cae3d7fa286610e4ebadfc8d0ab3f30f9cecf.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/test/integ/ondemand-sapodata-to-s3.integ.snapshot/TestStack.template.json b/test/integ/ondemand-sapodata-to-s3.integ.snapshot/TestStack.template.json index 1958f4d1..ef3a0165 100644 --- a/test/integ/ondemand-sapodata-to-s3.integ.snapshot/TestStack.template.json +++ b/test/integ/ondemand-sapodata-to-s3.integ.snapshot/TestStack.template.json @@ -316,7 +316,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip" + "S3Key": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip" }, "Timeout": 900, "MemorySize": 128, @@ -327,7 +327,15 @@ "Arn" ] }, - "Runtime": "nodejs18.x", + "Runtime": { + "Fn::FindInMap": [ + "LatestNodeRuntimeMap", + { + "Ref": "AWS::Region" + }, + "value" + ] + }, "Description": { "Fn::Join": [ "", @@ -416,6 +424,130 @@ ] } }, + "Mappings": { + "LatestNodeRuntimeMap": { + "af-south-1": { + "value": "nodejs20.x" + }, + "ap-east-1": { + "value": "nodejs20.x" + }, + "ap-northeast-1": { + "value": "nodejs20.x" + }, + "ap-northeast-2": { + "value": "nodejs20.x" + }, + "ap-northeast-3": { + "value": "nodejs20.x" + }, + "ap-south-1": { + "value": "nodejs20.x" + }, + "ap-south-2": { + "value": "nodejs20.x" + }, + "ap-southeast-1": { + "value": "nodejs20.x" + }, + "ap-southeast-2": { + "value": "nodejs20.x" + }, + "ap-southeast-3": { + "value": "nodejs20.x" + }, + "ap-southeast-4": { + "value": "nodejs20.x" + }, + "ap-southeast-5": { + "value": "nodejs20.x" + }, + "ap-southeast-7": { + "value": "nodejs20.x" + }, + "ca-central-1": { + "value": "nodejs20.x" + }, + "ca-west-1": { + "value": "nodejs20.x" + }, + "cn-north-1": { + "value": "nodejs18.x" + }, + "cn-northwest-1": { + "value": "nodejs18.x" + }, + "eu-central-1": { + "value": "nodejs20.x" + }, + "eu-central-2": { + "value": "nodejs20.x" + }, + "eu-isoe-west-1": { + "value": "nodejs18.x" + }, + "eu-north-1": { + "value": "nodejs20.x" + }, + "eu-south-1": { + "value": "nodejs20.x" + }, + "eu-south-2": { + "value": "nodejs20.x" + }, + "eu-west-1": { + "value": "nodejs20.x" + }, + "eu-west-2": { + "value": "nodejs20.x" + }, + "eu-west-3": { + "value": "nodejs20.x" + }, + "il-central-1": { + "value": "nodejs20.x" + }, + "me-central-1": { + "value": "nodejs20.x" + }, + "me-south-1": { + "value": "nodejs20.x" + }, + "mx-central-1": { + "value": "nodejs20.x" + }, + "sa-east-1": { + "value": "nodejs20.x" + }, + "us-east-1": { + "value": "nodejs20.x" + }, + "us-east-2": { + "value": "nodejs20.x" + }, + "us-gov-east-1": { + "value": "nodejs18.x" + }, + "us-gov-west-1": { + "value": "nodejs18.x" + }, + "us-iso-east-1": { + "value": "nodejs18.x" + }, + "us-iso-west-1": { + "value": "nodejs18.x" + }, + "us-isob-east-1": { + "value": "nodejs18.x" + }, + "us-west-1": { + "value": "nodejs20.x" + }, + "us-west-2": { + "value": "nodejs20.x" + } + } + }, "Parameters": { "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", diff --git a/test/integ/ondemand-slack-to-s3.integ.snapshot/TestStack.assets.json b/test/integ/ondemand-slack-to-s3.integ.snapshot/TestStack.assets.json index c6d3fb37..07f36ece 100644 --- a/test/integ/ondemand-slack-to-s3.integ.snapshot/TestStack.assets.json +++ b/test/integ/ondemand-slack-to-s3.integ.snapshot/TestStack.assets.json @@ -1,20 +1,20 @@ { "version": "36.0.0", "files": { - "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6": { + "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6": { "source": { - "path": "asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6", + "path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", "packaging": "zip" }, "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", + "objectKey": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "a4eb809da1c2bd505a450f6717f859993a6c3baa5b5013b0b9c61d6e169b64de": { + "b102a1c737a4f30648645a4b0d8713c824fdb507298da5e4ad3ee7b3e9681320": { "source": { "path": "TestStack.template.json", "packaging": "file" @@ -22,7 +22,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "a4eb809da1c2bd505a450f6717f859993a6c3baa5b5013b0b9c61d6e169b64de.json", + "objectKey": "b102a1c737a4f30648645a4b0d8713c824fdb507298da5e4ad3ee7b3e9681320.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/test/integ/ondemand-slack-to-s3.integ.snapshot/TestStack.template.json b/test/integ/ondemand-slack-to-s3.integ.snapshot/TestStack.template.json index 9185456b..4e336482 100644 --- a/test/integ/ondemand-slack-to-s3.integ.snapshot/TestStack.template.json +++ b/test/integ/ondemand-slack-to-s3.integ.snapshot/TestStack.template.json @@ -216,7 +216,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip" + "S3Key": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip" }, "Timeout": 900, "MemorySize": 128, @@ -227,7 +227,15 @@ "Arn" ] }, - "Runtime": "nodejs18.x", + "Runtime": { + "Fn::FindInMap": [ + "LatestNodeRuntimeMap", + { + "Ref": "AWS::Region" + }, + "value" + ] + }, "Description": { "Fn::Join": [ "", @@ -316,6 +324,130 @@ ] } }, + "Mappings": { + "LatestNodeRuntimeMap": { + "af-south-1": { + "value": "nodejs20.x" + }, + "ap-east-1": { + "value": "nodejs20.x" + }, + "ap-northeast-1": { + "value": "nodejs20.x" + }, + "ap-northeast-2": { + "value": "nodejs20.x" + }, + "ap-northeast-3": { + "value": "nodejs20.x" + }, + "ap-south-1": { + "value": "nodejs20.x" + }, + "ap-south-2": { + "value": "nodejs20.x" + }, + "ap-southeast-1": { + "value": "nodejs20.x" + }, + "ap-southeast-2": { + "value": "nodejs20.x" + }, + "ap-southeast-3": { + "value": "nodejs20.x" + }, + "ap-southeast-4": { + "value": "nodejs20.x" + }, + "ap-southeast-5": { + "value": "nodejs20.x" + }, + "ap-southeast-7": { + "value": "nodejs20.x" + }, + "ca-central-1": { + "value": "nodejs20.x" + }, + "ca-west-1": { + "value": "nodejs20.x" + }, + "cn-north-1": { + "value": "nodejs18.x" + }, + "cn-northwest-1": { + "value": "nodejs18.x" + }, + "eu-central-1": { + "value": "nodejs20.x" + }, + "eu-central-2": { + "value": "nodejs20.x" + }, + "eu-isoe-west-1": { + "value": "nodejs18.x" + }, + "eu-north-1": { + "value": "nodejs20.x" + }, + "eu-south-1": { + "value": "nodejs20.x" + }, + "eu-south-2": { + "value": "nodejs20.x" + }, + "eu-west-1": { + "value": "nodejs20.x" + }, + "eu-west-2": { + "value": "nodejs20.x" + }, + "eu-west-3": { + "value": "nodejs20.x" + }, + "il-central-1": { + "value": "nodejs20.x" + }, + "me-central-1": { + "value": "nodejs20.x" + }, + "me-south-1": { + "value": "nodejs20.x" + }, + "mx-central-1": { + "value": "nodejs20.x" + }, + "sa-east-1": { + "value": "nodejs20.x" + }, + "us-east-1": { + "value": "nodejs20.x" + }, + "us-east-2": { + "value": "nodejs20.x" + }, + "us-gov-east-1": { + "value": "nodejs18.x" + }, + "us-gov-west-1": { + "value": "nodejs18.x" + }, + "us-iso-east-1": { + "value": "nodejs18.x" + }, + "us-iso-west-1": { + "value": "nodejs18.x" + }, + "us-isob-east-1": { + "value": "nodejs18.x" + }, + "us-west-1": { + "value": "nodejs20.x" + }, + "us-west-2": { + "value": "nodejs20.x" + } + } + }, "Parameters": { "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", diff --git a/test/integ/onevent-salesforce-to-eventbridge.integ.snapshot/TestStack.assets.json b/test/integ/onevent-salesforce-to-eventbridge.integ.snapshot/TestStack.assets.json index a662d522..985e7ff8 100644 --- a/test/integ/onevent-salesforce-to-eventbridge.integ.snapshot/TestStack.assets.json +++ b/test/integ/onevent-salesforce-to-eventbridge.integ.snapshot/TestStack.assets.json @@ -1,20 +1,20 @@ { "version": "36.0.0", "files": { - "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6": { + "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6": { "source": { - "path": "asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6", + "path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", "packaging": "zip" }, "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", + "objectKey": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "f2f3f4e331388c278eb61f8769664264ff8cd03b4d9efadabc7b1715e2ec1933": { + "90975efa167a1d190e887698a5721b8dc65836c21f81f5831d728c668fba2f03": { "source": { "path": "TestStack.template.json", "packaging": "file" @@ -22,7 +22,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "f2f3f4e331388c278eb61f8769664264ff8cd03b4d9efadabc7b1715e2ec1933.json", + "objectKey": "90975efa167a1d190e887698a5721b8dc65836c21f81f5831d728c668fba2f03.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/test/integ/onevent-salesforce-to-eventbridge.integ.snapshot/TestStack.template.json b/test/integ/onevent-salesforce-to-eventbridge.integ.snapshot/TestStack.template.json index fbd747c2..de9ca984 100644 --- a/test/integ/onevent-salesforce-to-eventbridge.integ.snapshot/TestStack.template.json +++ b/test/integ/onevent-salesforce-to-eventbridge.integ.snapshot/TestStack.template.json @@ -236,7 +236,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip" + "S3Key": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip" }, "Timeout": 900, "MemorySize": 128, @@ -247,7 +247,15 @@ "Arn" ] }, - "Runtime": "nodejs18.x", + "Runtime": { + "Fn::FindInMap": [ + "LatestNodeRuntimeMap", + { + "Ref": "AWS::Region" + }, + "value" + ] + }, "Description": { "Fn::Join": [ "", @@ -359,6 +367,130 @@ ] } }, + "Mappings": { + "LatestNodeRuntimeMap": { + "af-south-1": { + "value": "nodejs20.x" + }, + "ap-east-1": { + "value": "nodejs20.x" + }, + "ap-northeast-1": { + "value": "nodejs20.x" + }, + "ap-northeast-2": { + "value": "nodejs20.x" + }, + "ap-northeast-3": { + "value": "nodejs20.x" + }, + "ap-south-1": { + "value": "nodejs20.x" + }, + "ap-south-2": { + "value": "nodejs20.x" + }, + "ap-southeast-1": { + "value": "nodejs20.x" + }, + "ap-southeast-2": { + "value": "nodejs20.x" + }, + "ap-southeast-3": { + "value": "nodejs20.x" + }, + "ap-southeast-4": { + "value": "nodejs20.x" + }, + "ap-southeast-5": { + "value": "nodejs20.x" + }, + "ap-southeast-7": { + "value": "nodejs20.x" + }, + "ca-central-1": { + "value": "nodejs20.x" + }, + "ca-west-1": { + "value": "nodejs20.x" + }, + "cn-north-1": { + "value": "nodejs18.x" + }, + "cn-northwest-1": { + "value": "nodejs18.x" + }, + "eu-central-1": { + "value": "nodejs20.x" + }, + "eu-central-2": { + "value": "nodejs20.x" + }, + "eu-isoe-west-1": { + "value": "nodejs18.x" + }, + "eu-north-1": { + "value": "nodejs20.x" + }, + "eu-south-1": { + "value": "nodejs20.x" + }, + "eu-south-2": { + "value": "nodejs20.x" + }, + "eu-west-1": { + "value": "nodejs20.x" + }, + "eu-west-2": { + "value": "nodejs20.x" + }, + "eu-west-3": { + "value": "nodejs20.x" + }, + "il-central-1": { + "value": "nodejs20.x" + }, + "me-central-1": { + "value": "nodejs20.x" + }, + "me-south-1": { + "value": "nodejs20.x" + }, + "mx-central-1": { + "value": "nodejs20.x" + }, + "sa-east-1": { + "value": "nodejs20.x" + }, + "us-east-1": { + "value": "nodejs20.x" + }, + "us-east-2": { + "value": "nodejs20.x" + }, + "us-gov-east-1": { + "value": "nodejs18.x" + }, + "us-gov-west-1": { + "value": "nodejs18.x" + }, + "us-iso-east-1": { + "value": "nodejs18.x" + }, + "us-iso-west-1": { + "value": "nodejs18.x" + }, + "us-isob-east-1": { + "value": "nodejs18.x" + }, + "us-west-1": { + "value": "nodejs20.x" + }, + "us-west-2": { + "value": "nodejs20.x" + } + } + }, "Parameters": { "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", diff --git a/test/integ/onschedule-s3-to-salesforce.integ.snapshot/TestStack.assets.json b/test/integ/onschedule-s3-to-salesforce.integ.snapshot/TestStack.assets.json index 10af13c6..fdf2cea0 100644 --- a/test/integ/onschedule-s3-to-salesforce.integ.snapshot/TestStack.assets.json +++ b/test/integ/onschedule-s3-to-salesforce.integ.snapshot/TestStack.assets.json @@ -1,41 +1,41 @@ { "version": "36.0.0", "files": { - "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6": { + "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6": { "source": { - "path": "asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6", + "path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", "packaging": "zip" }, "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", + "objectKey": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "3fb6287214999ddeafa7cd0e3e58bc5144c8678bb720f3b5e45e8fd32f333eb3": { + "3322b7049fb0ed2b7cbb644a2ada8d1116ff80c32dca89e6ada846b5de26f961": { "source": { - "path": "asset.3fb6287214999ddeafa7cd0e3e58bc5144c8678bb720f3b5e45e8fd32f333eb3.zip", + "path": "asset.3322b7049fb0ed2b7cbb644a2ada8d1116ff80c32dca89e6ada846b5de26f961.zip", "packaging": "file" }, "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "3fb6287214999ddeafa7cd0e3e58bc5144c8678bb720f3b5e45e8fd32f333eb3.zip", + "objectKey": "3322b7049fb0ed2b7cbb644a2ada8d1116ff80c32dca89e6ada846b5de26f961.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "e976a796f036a5efbf44b99e44cfb5a961df08d8dbf7cd37e60bf216fb982a00": { + "0158f40002a8c211635388a87874fd4dcc3d68f525fe08a0fe0f014069ae539c": { "source": { - "path": "asset.e976a796f036a5efbf44b99e44cfb5a961df08d8dbf7cd37e60bf216fb982a00", + "path": "asset.0158f40002a8c211635388a87874fd4dcc3d68f525fe08a0fe0f014069ae539c", "packaging": "zip" }, "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "e976a796f036a5efbf44b99e44cfb5a961df08d8dbf7cd37e60bf216fb982a00.zip", + "objectKey": "0158f40002a8c211635388a87874fd4dcc3d68f525fe08a0fe0f014069ae539c.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } @@ -66,20 +66,20 @@ } } }, - "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94": { + "d9861ea7a45affd23e47a614acb2fddc6e45c20a891284c958187dafbf9ee36b": { "source": { - "path": "asset.7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94", + "path": "asset.d9861ea7a45affd23e47a614acb2fddc6e45c20a891284c958187dafbf9ee36b", "packaging": "zip" }, "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", + "objectKey": "d9861ea7a45affd23e47a614acb2fddc6e45c20a891284c958187dafbf9ee36b.zip", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } }, - "0c137355a8cc43952221ec33107bd9a4227440a32cb15451bc70a1bc0da92e3e": { + "c9f6e81561215d9eae6c8e6f0395f27db16bb2ce93637900589fdc9aa1dc25ba": { "source": { "path": "TestStack.template.json", "packaging": "file" @@ -87,7 +87,7 @@ "destinations": { "current_account-current_region": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "0c137355a8cc43952221ec33107bd9a4227440a32cb15451bc70a1bc0da92e3e.json", + "objectKey": "c9f6e81561215d9eae6c8e6f0395f27db16bb2ce93637900589fdc9aa1dc25ba.json", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" } } diff --git a/test/integ/onschedule-s3-to-salesforce.integ.snapshot/TestStack.template.json b/test/integ/onschedule-s3-to-salesforce.integ.snapshot/TestStack.template.json index 4fad729e..c3d4e8e3 100644 --- a/test/integ/onschedule-s3-to-salesforce.integ.snapshot/TestStack.template.json +++ b/test/integ/onschedule-s3-to-salesforce.integ.snapshot/TestStack.template.json @@ -156,7 +156,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip" + "S3Key": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip" }, "Timeout": 900, "MemorySize": 128, @@ -167,7 +167,15 @@ "Arn" ] }, - "Runtime": "nodejs18.x", + "Runtime": { + "Fn::FindInMap": [ + "LatestNodeRuntimeMap", + { + "Ref": "AWS::Region" + }, + "value" + ] + }, "Description": { "Fn::Join": [ "", @@ -192,7 +200,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "3fb6287214999ddeafa7cd0e3e58bc5144c8678bb720f3b5e45e8fd32f333eb3.zip" + "S3Key": "3322b7049fb0ed2b7cbb644a2ada8d1116ff80c32dca89e6ada846b5de26f961.zip" }, "Description": "/opt/awscli/aws" } @@ -358,7 +366,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "e976a796f036a5efbf44b99e44cfb5a961df08d8dbf7cd37e60bf216fb982a00.zip" + "S3Key": "0158f40002a8c211635388a87874fd4dcc3d68f525fe08a0fe0f014069ae539c.zip" }, "Environment": { "Variables": { @@ -806,7 +814,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip" + "S3Key": "d9861ea7a45affd23e47a614acb2fddc6e45c20a891284c958187dafbf9ee36b.zip" }, "Description": "AWS CDK resource provider framework - onEvent (TestStack/com.amazonaws.cdk.custom-resources.flow-time-provider/flow-time-provider)", "Environment": { @@ -826,7 +834,15 @@ "Arn" ] }, - "Runtime": "nodejs18.x", + "Runtime": { + "Fn::FindInMap": [ + "LatestNodeRuntimeMap", + { + "Ref": "AWS::Region" + }, + "value" + ] + }, "Timeout": 900 }, "DependsOn": [ @@ -835,6 +851,130 @@ ] } }, + "Mappings": { + "LatestNodeRuntimeMap": { + "af-south-1": { + "value": "nodejs20.x" + }, + "ap-east-1": { + "value": "nodejs20.x" + }, + "ap-northeast-1": { + "value": "nodejs20.x" + }, + "ap-northeast-2": { + "value": "nodejs20.x" + }, + "ap-northeast-3": { + "value": "nodejs20.x" + }, + "ap-south-1": { + "value": "nodejs20.x" + }, + "ap-south-2": { + "value": "nodejs20.x" + }, + "ap-southeast-1": { + "value": "nodejs20.x" + }, + "ap-southeast-2": { + "value": "nodejs20.x" + }, + "ap-southeast-3": { + "value": "nodejs20.x" + }, + "ap-southeast-4": { + "value": "nodejs20.x" + }, + "ap-southeast-5": { + "value": "nodejs20.x" + }, + "ap-southeast-7": { + "value": "nodejs20.x" + }, + "ca-central-1": { + "value": "nodejs20.x" + }, + "ca-west-1": { + "value": "nodejs20.x" + }, + "cn-north-1": { + "value": "nodejs18.x" + }, + "cn-northwest-1": { + "value": "nodejs18.x" + }, + "eu-central-1": { + "value": "nodejs20.x" + }, + "eu-central-2": { + "value": "nodejs20.x" + }, + "eu-isoe-west-1": { + "value": "nodejs18.x" + }, + "eu-north-1": { + "value": "nodejs20.x" + }, + "eu-south-1": { + "value": "nodejs20.x" + }, + "eu-south-2": { + "value": "nodejs20.x" + }, + "eu-west-1": { + "value": "nodejs20.x" + }, + "eu-west-2": { + "value": "nodejs20.x" + }, + "eu-west-3": { + "value": "nodejs20.x" + }, + "il-central-1": { + "value": "nodejs20.x" + }, + "me-central-1": { + "value": "nodejs20.x" + }, + "me-south-1": { + "value": "nodejs20.x" + }, + "mx-central-1": { + "value": "nodejs20.x" + }, + "sa-east-1": { + "value": "nodejs20.x" + }, + "us-east-1": { + "value": "nodejs20.x" + }, + "us-east-2": { + "value": "nodejs20.x" + }, + "us-gov-east-1": { + "value": "nodejs18.x" + }, + "us-gov-west-1": { + "value": "nodejs18.x" + }, + "us-iso-east-1": { + "value": "nodejs18.x" + }, + "us-iso-west-1": { + "value": "nodejs18.x" + }, + "us-isob-east-1": { + "value": "nodejs18.x" + }, + "us-west-1": { + "value": "nodejs20.x" + }, + "us-west-2": { + "value": "nodejs20.x" + } + } + }, "Parameters": { "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", diff --git a/test/integ/onschedule-salesforce-marketing-cloud-to-s3.integ.snapshot/TestStack.assets.json b/test/integ/onschedule-salesforce-marketing-cloud-to-s3.integ.snapshot/TestStack.assets.json index c6ff351e..1383e117 100644 --- a/test/integ/onschedule-salesforce-marketing-cloud-to-s3.integ.snapshot/TestStack.assets.json +++ b/test/integ/onschedule-salesforce-marketing-cloud-to-s3.integ.snapshot/TestStack.assets.json @@ -1,15 +1,15 @@ { "version": "36.0.0", "files": { - "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6": { + "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6": { "source": { - "path": "asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6", + "path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", "packaging": "zip" }, "destinations": { "current_account-eu-west-2": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-eu-west-2", - "objectKey": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip", + "objectKey": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip", "region": "eu-west-2", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-eu-west-2" } @@ -29,21 +29,21 @@ } } }, - "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94": { + "d9861ea7a45affd23e47a614acb2fddc6e45c20a891284c958187dafbf9ee36b": { "source": { - "path": "asset.7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94", + "path": "asset.d9861ea7a45affd23e47a614acb2fddc6e45c20a891284c958187dafbf9ee36b", "packaging": "zip" }, "destinations": { "current_account-eu-west-2": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-eu-west-2", - "objectKey": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip", + "objectKey": "d9861ea7a45affd23e47a614acb2fddc6e45c20a891284c958187dafbf9ee36b.zip", "region": "eu-west-2", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-eu-west-2" } } }, - "c95ba0f8682b2a6172b7888ca2d491e6ea0aba7a6f38b883e6093866d828c749": { + "bf6903a09f3278ff905d88d52498e309ffb7510413d3d65db04645fc919ac576": { "source": { "path": "TestStack.template.json", "packaging": "file" @@ -51,7 +51,7 @@ "destinations": { "current_account-eu-west-2": { "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-eu-west-2", - "objectKey": "c95ba0f8682b2a6172b7888ca2d491e6ea0aba7a6f38b883e6093866d828c749.json", + "objectKey": "bf6903a09f3278ff905d88d52498e309ffb7510413d3d65db04645fc919ac576.json", "region": "eu-west-2", "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-eu-west-2" } diff --git a/test/integ/onschedule-salesforce-marketing-cloud-to-s3.integ.snapshot/TestStack.template.json b/test/integ/onschedule-salesforce-marketing-cloud-to-s3.integ.snapshot/TestStack.template.json index 1d9f357c..57d11d9c 100644 --- a/test/integ/onschedule-salesforce-marketing-cloud-to-s3.integ.snapshot/TestStack.template.json +++ b/test/integ/onschedule-salesforce-marketing-cloud-to-s3.integ.snapshot/TestStack.template.json @@ -247,7 +247,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-eu-west-2" }, - "S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip" + "S3Key": "faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6.zip" }, "Timeout": 900, "MemorySize": 128, @@ -258,7 +258,7 @@ "Arn" ] }, - "Runtime": "nodejs18.x", + "Runtime": "nodejs20.x", "Description": { "Fn::Join": [ "", @@ -577,7 +577,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-eu-west-2" }, - "S3Key": "7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94.zip" + "S3Key": "d9861ea7a45affd23e47a614acb2fddc6e45c20a891284c958187dafbf9ee36b.zip" }, "Description": "AWS CDK resource provider framework - onEvent (TestStack/com.amazonaws.cdk.custom-resources.flow-time-provider/flow-time-provider)", "Environment": { @@ -597,7 +597,7 @@ "Arn" ] }, - "Runtime": "nodejs18.x", + "Runtime": "nodejs20.x", "Timeout": 900 }, "DependsOn": [ diff --git a/yarn.lock b/yarn.lock index 197a1d71..401200ec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10,30 +10,30 @@ "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.24" -"@aws-cdk/asset-awscli-v1@^2.2.201": - version "2.2.201" - resolved "https://registry.yarnpkg.com/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.201.tgz#a7b51d3ecc8ff3ca9798269eda3a1db2400b506a" - integrity sha512-INZqcwDinNaIdb5CtW3ez5s943nX5stGBQS6VOP2JDlOFP81hM3fds/9NDknipqfUkZM43dx+HgVvkXYXXARCQ== +"@aws-cdk/asset-awscli-v1@^2.2.202": + version "2.2.202" + resolved "https://registry.yarnpkg.com/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.202.tgz#4627201d71f6a5c60db36385ce09cb81005f4b32" + integrity sha512-JqlF0D4+EVugnG5dAsNZMqhu3HW7ehOXm5SDMxMbXNDMdsF0pxtQKNHRl52z1U9igsHmaFpUgSGjbhAJ+0JONg== "@aws-cdk/asset-kubectl-v20@^2.1.2": version "2.1.2" resolved "https://registry.yarnpkg.com/@aws-cdk/asset-kubectl-v20/-/asset-kubectl-v20-2.1.2.tgz#d8e20b5f5dc20128ea2000dc479ca3c7ddc27248" integrity sha512-3M2tELJOxQv0apCIiuKQ4pAbncz9GuLwnKFqxifWfe77wuMxyTRPmxssYHs42ePqzap1LT6GDcPygGs+hHstLg== -"@aws-cdk/asset-node-proxy-agent-v6@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@aws-cdk/asset-node-proxy-agent-v6/-/asset-node-proxy-agent-v6-2.0.1.tgz#6dc9b7cdb22ff622a7176141197962360c33e9ac" - integrity sha512-DDt4SLdLOwWCjGtltH4VCST7hpOI5DzieuhGZsBpZ+AgJdSI2GCjklCXm0GCTwJG/SolkL5dtQXyUKgg9luBDg== +"@aws-cdk/asset-node-proxy-agent-v6@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@aws-cdk/asset-node-proxy-agent-v6/-/asset-node-proxy-agent-v6-2.0.3.tgz#9b5d213b5ce5ad4461f6a4720195ff8de72e6523" + integrity sha512-twhuEG+JPOYCYPx/xy5uH2+VUsIEhPTzDY0F1KuB+ocjWWB/KEDiOVL19nHvbPCB6fhWnkykXEMJ4HHcKvjtvg== -"@aws-cdk/aws-glue-alpha@2.121.1-alpha.0": - version "2.121.1-alpha.0" - resolved "https://registry.yarnpkg.com/@aws-cdk/aws-glue-alpha/-/aws-glue-alpha-2.121.1-alpha.0.tgz#8c5e6b34ccfd35b7512e84c2e6176e88a1482a80" - integrity sha512-ovZeXXCNBCkRdHEfBCbDYOZ1tTbwlV1Njc1iPwP7aMo4BIMSrRzLF5ir+InwKbnRA1FWACyDGXRakue/fuT4aA== +"@aws-cdk/aws-glue-alpha@2.151.0-alpha.0": + version "2.151.0-alpha.0" + resolved "https://registry.yarnpkg.com/@aws-cdk/aws-glue-alpha/-/aws-glue-alpha-2.151.0-alpha.0.tgz#baa92927d046f13aa81bb24bcc8556f887c31979" + integrity sha512-H+OM/AjqxyJFpJcTFZ0qvDXNU4foVb1sk8xGR29kMIHcostusFKGnrk1IkQ8SZEkOKmYuQ3SKl2G2X/NJu4U1g== -"@aws-cdk/aws-redshift-alpha@2.121.1-alpha.0": - version "2.121.1-alpha.0" - resolved "https://registry.yarnpkg.com/@aws-cdk/aws-redshift-alpha/-/aws-redshift-alpha-2.121.1-alpha.0.tgz#21eae9ef3843290919f1e637822b3ab8a74bf1d7" - integrity sha512-PsCtr+IuWoyJgi40iVLCB65kiWOpzI6iG/jlOl9lQkQvDO5Dh19OOtRSTVIoFga6AbcVAVDmhQ/GyEHBWoELZg== +"@aws-cdk/aws-redshift-alpha@2.151.0-alpha.0": + version "2.151.0-alpha.0" + resolved "https://registry.yarnpkg.com/@aws-cdk/aws-redshift-alpha/-/aws-redshift-alpha-2.151.0-alpha.0.tgz#4093c14db56339a7203fe31ac07a842b405aae3a" + integrity sha512-ZEv0k5bo17YPiNhg2sQjgssw6ffO7JrvQ+sY4WQ8Cwi9doJRvRgCcGbxIeGjwzWxf9/lKQGOvAR547udZlryUg== "@aws-cdk/aws-service-spec@0.1.13": version "0.1.13" @@ -741,14 +741,6 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@jsii/check-node@1.101.0": - version "1.101.0" - resolved "https://registry.yarnpkg.com/@jsii/check-node/-/check-node-1.101.0.tgz#175e5a2b9b31f232fd5df2942dacc4b20820aa93" - integrity sha512-io8u1GAF9XGp2crx0C/WGiJeUnHGw5X0du4fisbrNJHmVVFwcJbBMjbfXKWq+JSzl8fo/JV3F1LqtjsnawKA2A== - dependencies: - chalk "^4.1.2" - semver "^7.6.0" - "@jsii/check-node@1.102.0": version "1.102.0" resolved "https://registry.yarnpkg.com/@jsii/check-node/-/check-node-1.102.0.tgz#d5dce81b60411b35d4890e69eee2b86d606c8672" @@ -757,7 +749,7 @@ chalk "^4.1.2" semver "^7.6.3" -"@jsii/spec@1.102.0", "@jsii/spec@^1.101.0", "@jsii/spec@^1.102.0", "@jsii/spec@^1.84.0": +"@jsii/spec@1.102.0", "@jsii/spec@^1.102.0", "@jsii/spec@^1.84.0": version "1.102.0" resolved "https://registry.yarnpkg.com/@jsii/spec/-/spec-1.102.0.tgz#3f9cfcd44e4358ba7259730452e89b2111918524" integrity sha512-/VcmoEyp7HR0xoFz47/fiyZjAv+0gHG4ZwTbgB+umbB88bTbLZadnqBL7T9OIKQbK4w8HNOaRnHwjNBIYIPxWQ== @@ -1316,23 +1308,24 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" -aws-cdk-lib@2.121.1: - version "2.121.1" - resolved "https://registry.yarnpkg.com/aws-cdk-lib/-/aws-cdk-lib-2.121.1.tgz#c4c5029a916fdbc9ae8ed4fd39264143d6326322" - integrity sha512-wrOHDDQqVuH2tRTH7p2LaMPVI3V2bqr8X//Qrhy+hOFA04u2MVetQYev+NgMXPjNzU9IGX2wy1Fs9Y/ntq2sQA== +aws-cdk-lib@2.151.0: + version "2.151.0" + resolved "https://registry.yarnpkg.com/aws-cdk-lib/-/aws-cdk-lib-2.151.0.tgz#44559660430c10da6697320b81c496118ba3ce93" + integrity sha512-SIzzOGSYO+s1f+y2zyGKK8wH5JmN+nkrGOL28iHzmx9lXK0NaT0+d5sjTbzLo2C8iogzbR91yGnIKze0GzZXHg== dependencies: - "@aws-cdk/asset-awscli-v1" "^2.2.201" + "@aws-cdk/asset-awscli-v1" "^2.2.202" "@aws-cdk/asset-kubectl-v20" "^2.1.2" - "@aws-cdk/asset-node-proxy-agent-v6" "^2.0.1" + "@aws-cdk/asset-node-proxy-agent-v6" "^2.0.3" "@balena/dockerignore" "^1.0.2" case "1.6.3" fs-extra "^11.2.0" - ignore "^5.3.0" + ignore "^5.3.1" jsonschema "^1.4.1" + mime-types "^2.1.35" minimatch "^3.1.2" punycode "^2.3.1" - semver "^7.5.4" - table "^6.8.1" + semver "^7.6.2" + table "^6.8.2" yaml "1.10.2" aws-cdk@2.151.0, aws-cdk@^2: @@ -1500,9 +1493,9 @@ camelcase@^6.2.0, camelcase@^6.3.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001646: - version "1.0.30001650" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001650.tgz#dd1eba0938e39536d184c3c99b2569a13788bc16" - integrity sha512-fgEc7hP/LB7iicdXHUI9VsBsMZmUmlVJeQP2qqQW+3lkqVhbmjEU8zp+h5stWeilX+G7uXuIUIIlWlDw9jdt8g== + version "1.0.30001651" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz#52de59529e8b02b1aedcaaf5c05d9e23c0c28138" + integrity sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg== case@1.6.3, case@^1.6.3: version "1.6.3" @@ -2961,11 +2954,6 @@ ignore@^5.2.0, ignore@^5.3.1: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== -ignore@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" - integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== - import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" @@ -3845,26 +3833,7 @@ jsii@1.102.0: typescript "~3.9.10" yargs "^16.2.0" -jsii@~5.2: - version "5.2.51" - resolved "https://registry.yarnpkg.com/jsii/-/jsii-5.2.51.tgz#280853b48e4470eb7aad694f4e4f4bd5d4984992" - integrity sha512-F0tt1K+TaRCtp8tUl5IjlNQkRzqILAOP/amSvh1mVCvdO0RHHPpoLn3mg4l/NL7FU9kl7GzIZuhdpitAUK+73w== - dependencies: - "@jsii/check-node" "1.101.0" - "@jsii/spec" "^1.101.0" - case "^1.6.3" - chalk "^4" - downlevel-dts "^0.11.0" - fast-deep-equal "^3.1.3" - log4js "^6.9.1" - semver "^7.6.2" - semver-intersect "^1.5.0" - sort-json "^2.0.1" - spdx-license-list "^6.9.0" - typescript "~5.2" - yargs "^17.7.2" - -jsii@~5.4.0: +jsii@~5.4.0, jsii@~5.4.30: version "5.4.31" resolved "https://registry.yarnpkg.com/jsii/-/jsii-5.4.31.tgz#afe7ff63182421965cab53f055904b559e47e842" integrity sha512-qxiV/NMucgvHHupZJ36QACejcgZ3qY1FzjVHMOBmDHm+dISZ39p7dH7Hiq2ErMEwCDzdvQgR1OwCsUnrBH6oVQ== @@ -4155,7 +4124,7 @@ mime-db@1.52.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12: +mime-types@^2.1.12, mime-types@^2.1.35: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -4834,11 +4803,6 @@ semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.5.4: - version "7.6.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" - integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== - set-function-length@^1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" @@ -5186,10 +5150,10 @@ symbol-tree@^3.2.4: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== -table@^6.8.1: - version "6.8.1" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" - integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== +table@^6.8.2: + version "6.8.2" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.2.tgz#c5504ccf201213fa227248bdc8c5569716ac6c58" + integrity sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA== dependencies: ajv "^8.0.1" lodash.truncate "^4.4.2" @@ -5440,20 +5404,15 @@ typescript@^5.2.2: integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== typescript@next: - version "5.6.0-dev.20240807" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.6.0-dev.20240807.tgz#2c3eee13cdd8a251607fadd29a7f181758d5191f" - integrity sha512-+5sI7HI0VR04hysSSG6XUTEXoUf4nZTMc+p7WLpdWmxqYVO/dodTdMbWRw+JeKNPW9tXzJ66jrGvED+hfBmizw== + version "5.6.0-dev.20240808" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.6.0-dev.20240808.tgz#f278698319d34e55d0cc3df72d9907b1141b9e46" + integrity sha512-Fn1H6AFLEKTJkakCqVOAkqNoGCSXhYi9GKW13/a5WWOMAdCtzBcdcViWbfNgu96DcSB9mVulqpHe6XCVdzWERg== typescript@~3.9.10: version "3.9.10" resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8" integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q== -typescript@~5.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" - integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== - typescript@~5.4: version "5.4.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611"