From 45b68d5c7905559b70ef41867060ea42f03a3015 Mon Sep 17 00:00:00 2001 From: Pahud Hsieh Date: Sun, 29 Mar 2020 03:06:03 +0800 Subject: [PATCH 01/15] feat(applicationautoscaling): add PredefinedMetric for Lambda provisioned concurrency autoscaling (#6394) feat(applicationautoscaling): add PredefinedMetric for Lambda provisioned concurrency autoscaling (#6394 ) Closes #6369 --- .../aws-applicationautoscaling/README.md | 39 +++++++++++++++ .../lib/target-tracking-scaling-policy.ts | 49 +++++++++++++++++++ .../test/test.target-tracking.ts | 24 +++++++++ 3 files changed, 112 insertions(+) diff --git a/packages/@aws-cdk/aws-applicationautoscaling/README.md b/packages/@aws-cdk/aws-applicationautoscaling/README.md index 8f91543dbb0a5..899c8e8832666 100644 --- a/packages/@aws-cdk/aws-applicationautoscaling/README.md +++ b/packages/@aws-cdk/aws-applicationautoscaling/README.md @@ -157,3 +157,42 @@ capacity.scaleOnSchedule('AllowDownscalingAtNight', { schedule: autoscaling.Schedule.cron({ hour: '20', minute: '0' }), minCapacity: 1 }); +``` + +## Examples + +### Lambda Provisioned Concurrency Auto Scaling + +```ts + const handler = new lambda.Function(this, 'MyFunction', { + runtime: lambda.Runtime.PYTHON_3_7, + handler: 'index.handler', + code: new lambda.InlineCode(` +import json, time +def handler(event, context): + time.sleep(1) + return { + 'statusCode': 200, + 'body': json.dumps('Hello CDK from Lambda!') + }`), + reservedConcurrentExecutions: 2, + }); + + const fnVer = handler.addVersion('CDKLambdaVersion', undefined, 'demo alias', 10); + + new apigateway.LambdaRestApi(this, 'API', { handler: fnVer }) + + const target = new applicationautoscaling.ScalableTarget(this, 'ScalableTarget', { + serviceNamespace: applicationautoscaling.ServiceNamespace.LAMBDA, + maxCapacity: 100, + minCapacity: 10, + resourceId: `function:${handler.functionName}:${fnVer.version}`, + scalableDimension: 'lambda:function:ProvisionedConcurrency', + }) +s + target.scaleToTrackMetric('PceTracking', { + targetValue: 0.9, + predefinedMetric: applicationautoscaling.PredefinedMetric.LAMBDA_PROVISIONED_CONCURRENCY_UTILIZATION, + }) + } + ``` diff --git a/packages/@aws-cdk/aws-applicationautoscaling/lib/target-tracking-scaling-policy.ts b/packages/@aws-cdk/aws-applicationautoscaling/lib/target-tracking-scaling-policy.ts index f2f2a5bed2dfe..7ed301349a23f 100644 --- a/packages/@aws-cdk/aws-applicationautoscaling/lib/target-tracking-scaling-policy.ts +++ b/packages/@aws-cdk/aws-applicationautoscaling/lib/target-tracking-scaling-policy.ts @@ -173,15 +173,64 @@ function renderCustomMetric(metric?: cloudwatch.IMetric): CfnScalingPolicy.Custo * One of the predefined autoscaling metrics */ export enum PredefinedMetric { + /** + * DYNAMODB_READ_CAPACITY_UTILIZATIO + * @see https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PredefinedMetricSpecification.html + */ DYNAMODB_READ_CAPACITY_UTILIZATION = 'DynamoDBReadCapacityUtilization', + /** + * DYANMODB_WRITE_CAPACITY_UTILIZATION + * @see https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PredefinedMetricSpecification.html + */ DYANMODB_WRITE_CAPACITY_UTILIZATION = 'DynamoDBWriteCapacityUtilization', + /** + * ALB_REQUEST_COUNT_PER_TARGET + * @see https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PredefinedMetricSpecification.html + */ ALB_REQUEST_COUNT_PER_TARGET = 'ALBRequestCountPerTarget', + /** + * RDS_READER_AVERAGE_CPU_UTILIZATION + * @see https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PredefinedMetricSpecification.html + */ RDS_READER_AVERAGE_CPU_UTILIZATION = 'RDSReaderAverageCPUUtilization', + /** + * RDS_READER_AVERAGE_DATABASE_CONNECTIONS + * @see https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PredefinedMetricSpecification.html + */ RDS_READER_AVERAGE_DATABASE_CONNECTIONS = 'RDSReaderAverageDatabaseConnections', + /** + * EC2_SPOT_FLEET_REQUEST_AVERAGE_CPU_UTILIZATION + * @see https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PredefinedMetricSpecification.html + */ EC2_SPOT_FLEET_REQUEST_AVERAGE_CPU_UTILIZATION = 'EC2SpotFleetRequestAverageCPUUtilization', + /** + * EC2_SPOT_FLEET_REQUEST_AVERAGE_NETWORK_IN + * @see https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PredefinedMetricSpecification.html + */ EC2_SPOT_FLEET_REQUEST_AVERAGE_NETWORK_IN = 'EC2SpotFleetRequestAverageNetworkIn', + /** + * EC2_SPOT_FLEET_REQUEST_AVERAGE_NETWORK_OUT + * @see https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PredefinedMetricSpecification.html + */ EC2_SPOT_FLEET_REQUEST_AVERAGE_NETWORK_OUT = 'EC2SpotFleetRequestAverageNetworkOut', + /** + * SAGEMAKER_VARIANT_INVOCATIONS_PER_INSTANCE + * @see https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PredefinedMetricSpecification.html + */ SAGEMAKER_VARIANT_INVOCATIONS_PER_INSTANCE = 'SageMakerVariantInvocationsPerInstance', + /** + * ECS_SERVICE_AVERAGE_CPU_UTILIZATION + * @see https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PredefinedMetricSpecification.html + */ ECS_SERVICE_AVERAGE_CPU_UTILIZATION = 'ECSServiceAverageCPUUtilization', + /** + * ECS_SERVICE_AVERAGE_CPU_UTILIZATION + * @see https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PredefinedMetricSpecification.html + */ ECS_SERVICE_AVERAGE_MEMORY_UTILIZATION = 'ECSServiceAverageMemoryUtilization', + /** + * LAMBDA_PROVISIONED_CONCURRENCY_UTILIZATION + * @see https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics.html#monitoring-metrics-concurrency + */ + LAMBDA_PROVISIONED_CONCURRENCY_UTILIZATION = "LambdaProvisionedConcurrencyUtilization", } diff --git a/packages/@aws-cdk/aws-applicationautoscaling/test/test.target-tracking.ts b/packages/@aws-cdk/aws-applicationautoscaling/test/test.target-tracking.ts index c01826e5c7d6f..aefd3ecb10a10 100644 --- a/packages/@aws-cdk/aws-applicationautoscaling/test/test.target-tracking.ts +++ b/packages/@aws-cdk/aws-applicationautoscaling/test/test.target-tracking.ts @@ -30,6 +30,30 @@ export = { test.done(); }, + 'test setup target tracking on predefined metric for lambda'(test: Test) { + // GIVEN + const stack = new cdk.Stack(); + const target = createScalableTarget(stack); + + // WHEN + target.scaleToTrackMetric('Tracking', { + predefinedMetric: appscaling.PredefinedMetric.LAMBDA_PROVISIONED_CONCURRENCY_UTILIZATION, + targetValue: 0.9, + }); + + // THEN + expect(stack).to(haveResource('AWS::ApplicationAutoScaling::ScalingPolicy', { + PolicyType: "TargetTrackingScaling", + TargetTrackingScalingPolicyConfiguration: { + PredefinedMetricSpecification: { PredefinedMetricType: "LambdaProvisionedConcurrencyUtilization" }, + TargetValue: 0.9 + } + + })); + + test.done(); + }, + 'test setup target tracking on custom metric'(test: Test) { // GIVEN const stack = new cdk.Stack(); From 260445732fd989c879260a9162200f490ba432d3 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Sun, 29 Mar 2020 05:33:35 +0000 Subject: [PATCH 02/15] chore(deps): bump eslint-plugin-import from 2.20.1 to 2.20.2 (#7056) Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.20.1 to 2.20.2. - [Release notes](https://github.com/benmosher/eslint-plugin-import/releases) - [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md) - [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.20.1...v2.20.2) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- tools/cdk-build-tools/package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/cdk-build-tools/package.json b/tools/cdk-build-tools/package.json index 1ef25d1110e49..03f547c1a40b6 100644 --- a/tools/cdk-build-tools/package.json +++ b/tools/cdk-build-tools/package.json @@ -44,7 +44,7 @@ "eslint": "^6.8.0", "eslint-import-resolver-node": "^0.3.3", "eslint-import-resolver-typescript": "^2.0.0", - "eslint-plugin-import": "^2.20.1", + "eslint-plugin-import": "^2.20.2", "fs-extra": "^8.1.0", "jest": "^24.9.0", "jsii": "^1.1.0", diff --git a/yarn.lock b/yarn.lock index 427c1bccf3e97..53ea94a099cf5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4761,10 +4761,10 @@ eslint-module-utils@^2.4.1: debug "^2.6.9" pkg-dir "^2.0.0" -eslint-plugin-import@^2.20.1: - version "2.20.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz#802423196dcb11d9ce8435a5fc02a6d3b46939b3" - integrity sha512-qQHgFOTjguR+LnYRoToeZWT62XM55MBVXObHM6SKFd1VzDcX/vqT1kAz8ssqigh5eMj8qXcRoXXGZpPP6RfdCw== +eslint-plugin-import@^2.20.2: + version "2.20.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz#91fc3807ce08be4837141272c8b99073906e588d" + integrity sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg== dependencies: array-includes "^3.0.3" array.prototype.flat "^1.2.1" From 3f75617ef5a90b40c04d7579cba3fccf6b4b31ef Mon Sep 17 00:00:00 2001 From: AlexCheema <41707476+AlexCheema@users.noreply.github.com> Date: Mon, 30 Mar 2020 00:02:14 +0200 Subject: [PATCH 03/15] chore(batch): update default value docs for min vcpus (#6781) --- packages/@aws-cdk/aws-batch/lib/compute-environment.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@aws-cdk/aws-batch/lib/compute-environment.ts b/packages/@aws-cdk/aws-batch/lib/compute-environment.ts index 49d4810d64f2e..b0e6016c9f4a3 100644 --- a/packages/@aws-cdk/aws-batch/lib/compute-environment.ts +++ b/packages/@aws-cdk/aws-batch/lib/compute-environment.ts @@ -172,7 +172,7 @@ export interface ComputeResources { * The minimum number of EC2 vCPUs that an environment should maintain (even if the compute environment state is DISABLED). * Each vCPU is equivalent to 1,024 CPU shares. You must specify at least one vCPU. * - * @default 1 + * @default 0 */ readonly minvCpus?: number; From 17aab3723f5e4ae8b06dac832774d457909722f8 Mon Sep 17 00:00:00 2001 From: netanir Date: Sun, 29 Mar 2020 22:22:44 -0700 Subject: [PATCH 04/15] fix(aws-kinesis): test assume order between stacks (#7065) Since StackA and StackB do not have a parent child relation, we can't assume StackB will be prepared between StackA. --- packages/@aws-cdk/aws-kinesis/test/test.stream.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/@aws-cdk/aws-kinesis/test/test.stream.ts b/packages/@aws-cdk/aws-kinesis/test/test.stream.ts index 40c37a49296ea..829e4f68f6b60 100644 --- a/packages/@aws-cdk/aws-kinesis/test/test.stream.ts +++ b/packages/@aws-cdk/aws-kinesis/test/test.stream.ts @@ -958,8 +958,7 @@ export = { const stackB = new Stack(app, 'stackB'); const user = new iam.User(stackB, 'UserWhoNeedsAccess'); streamFromStackA.grantRead(user); - - test.throws(() => app.synth(), /'stackB' depends on 'stackA'/); + test.throws(() => app.synth(), /'stack.' depends on 'stack.'/); test.done(); } } From d9bbc8e3559b3e89572914a6bab75994c113dc8b Mon Sep 17 00:00:00 2001 From: Shiv Lakshminarayan Date: Mon, 30 Mar 2020 01:44:47 -0700 Subject: [PATCH 05/15] chore: add key to disable announcing releases in awscdkio when creating missing libraries (#7064) chore: add key to disable announcing releases in awscdkio when creating missing libraries Following on from #6800 where we added a pkglint rule verifying that the awscdkio.announce key is set to false in `package.json` This change is to ensure that libraries created from Cfn spec updates in the future are compliant. --- .../@aws-cdk/cfnspec/build-tools/create-missing-libraries.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/@aws-cdk/cfnspec/build-tools/create-missing-libraries.ts b/packages/@aws-cdk/cfnspec/build-tools/create-missing-libraries.ts index 51741a5355403..8ee8a6600fda6 100644 --- a/packages/@aws-cdk/cfnspec/build-tools/create-missing-libraries.ts +++ b/packages/@aws-cdk/cfnspec/build-tools/create-missing-libraries.ts @@ -180,7 +180,10 @@ async function main() { engines: { node: '>= 10.3.0' }, - stability: "experimental" + stability: "experimental", + awscdkio: { + announce: false + } }); await write('.gitignore', [ From fa50e4a8203a40e15ae045810bcd5d24d9073349 Mon Sep 17 00:00:00 2001 From: Eli Polonsky Date: Mon, 30 Mar 2020 12:48:35 +0300 Subject: [PATCH 06/15] fix docstring for minVcpu in compute-environmnet according to console explanation (#7068) align docstring with actual default value. --- packages/@aws-cdk/aws-batch/lib/compute-environment.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/@aws-cdk/aws-batch/lib/compute-environment.ts b/packages/@aws-cdk/aws-batch/lib/compute-environment.ts index b0e6016c9f4a3..0a48e274f9472 100644 --- a/packages/@aws-cdk/aws-batch/lib/compute-environment.ts +++ b/packages/@aws-cdk/aws-batch/lib/compute-environment.ts @@ -170,7 +170,8 @@ export interface ComputeResources { /** * The minimum number of EC2 vCPUs that an environment should maintain (even if the compute environment state is DISABLED). - * Each vCPU is equivalent to 1,024 CPU shares. You must specify at least one vCPU. + * Each vCPU is equivalent to 1,024 CPU shares. By keeping this set to 0 you will not have instance time wasted when + * there is no work to be run. If you set this above zero you will maintain that number of vCPUs at all times. * * @default 0 */ From 01ac364ddaac182e2607705a461606bdf6d9f753 Mon Sep 17 00:00:00 2001 From: Shiv Lakshminarayan Date: Mon, 30 Mar 2020 04:36:20 -0700 Subject: [PATCH 07/15] docs(kinesis): refresh README and add updated snippets (#7038) docs(kinesis): refresh README and add updated snippets Adds some context around Amazon Kinesis and walks through use cases for the Stream construct. --- packages/@aws-cdk/aws-kinesis/README.md | 94 +++++++++++++++++++++---- 1 file changed, 80 insertions(+), 14 deletions(-) diff --git a/packages/@aws-cdk/aws-kinesis/README.md b/packages/@aws-cdk/aws-kinesis/README.md index 6ffbb5db59a2e..2e7e0e6a26176 100644 --- a/packages/@aws-cdk/aws-kinesis/README.md +++ b/packages/@aws-cdk/aws-kinesis/README.md @@ -17,34 +17,100 @@ --- -Define an unencrypted Kinesis stream. +[Amazon Kinesis](https://docs.aws.amazon.com/streams/latest/dev/introduction.html) provides collection and processing of large +[streams](https://aws.amazon.com/streaming-data/) of data records in real time. Kinesis data streams can be used for rapid and continuous data +intake and aggregation. + +## Table Of Contents + +- [Streams](#streams) + - [Encryption](#encryption) + - [Import](#import) + +## Streams + +Amazon Kinesis Data Streams ingests a large amount of data in real time, durably stores the data, and makes the data available for consumption. + +Using the CDK, a new Kinesis stream can be created as part of the stack using the construct's constructor. You may specify the `streamName` to give +your own identifier to the stream. If not, CloudFormation will generate a name. + +```ts +new Stream(this, "MyFirstStream", { + streamName: "my-awesome-stream" +}); +``` + +You can also specify properties such as `shardCount` to indicate how many shards the stream should choose and a `retentionPeriod` +to specify how many logn the data in the shards should remain accessible. +Read more at [Creating and Managing Streams](https://docs.aws.amazon.com/streams/latest/dev/working-with-streams.html) ```ts -new Stream(this, 'MyFirstStream'); +new Stream(this, "MyFirstStream", { + streamName: "my-awesome-stream", + shardCount: 3, + retentionPeriod: Duration.hours(48) +}); ``` +Streams are not encrypted by default. + ### Encryption -Define a KMS-encrypted stream: +[Stream encryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-stream-streamencryption.html) enables +server-side encryption using an AWS KMS key for a specified stream. + +You can enable encryption on your streams by specifying the `encryption` property. A KMS key will be created for you and associated with the stream. ```ts -const stream = new Stream(this, 'MyEncryptedStream', { - encryption: StreamEncryption.Kms +const stream = new Stream(this, "MyEncryptedStream", { + encryption: StreamEncryption.KMS }); - -// you can access the encryption key: -assert(stream.encryptionKey instanceof kms.Key); ``` -You can also supply your own key: +You can also supply your own external KMS key to use for stream encryption by specifying the `encryptionKey` property. ```ts -const myKmsKey = new kms.Key(this, 'MyKey'); +import * as kms from "@aws-cdk/aws-kms"; -const stream = new Stream(this, 'MyEncryptedStream', { - encryption: StreamEncryption.Kms, - encryptionKey: myKmsKey +const key = new kms.Key(this, "MyKey"); + +const stream = new Stream(this, "MyEncryptedStream", { + encryption: StreamEncryption.KMS, + encryptionKey: key }); +``` + +### Import + +Any Kinesis stream that has been created outside the stack can be imported into your CDK app. + +Streams can be imported by their ARN via the `Stream.fromStreamArn()` API + +```ts +const stack = new Stack(app, "MyStack"); + +const importedStream = Stream.fromStreamArn( + stack, + "ImportedStream", + "arn:aws:kinesis:us-east-2:123456789012:stream/f3j09j2230j" +); +``` + +Encrypted Streams can also be imported by their attributes via the `Stream.fromStreamAttributes()` API + +```ts +import { Key } from "@aws-cdk/aws-kms"; + +const stack = new Stack(app, "MyStack"); -assert(stream.encryptionKey === myKmsKey); +const importedStream = Stream.fromStreamAttributes( + stack, + "ImportedEncryptedStream", + { + streamArn: "arn:aws:kinesis:us-east-2:123456789012:stream/f3j09j2230j", + encryptionKey: kms.Key.fromKeyArn( + "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" + ) + } +); ``` From 3dc3d75b17855d344b45a1dc48eb6b422237bff6 Mon Sep 17 00:00:00 2001 From: Jonathan Goldwasser Date: Mon, 30 Mar 2020 17:27:03 +0200 Subject: [PATCH 08/15] feat(amplify): source code providers (#6921) feat(amplify): source code providers Add source code providers classes for GitHub and CodeCommit that implement a new `ISourceCodeProvider` interface. Fixes #6818 BREAKING CHANGE: use the `sourceCodeProvider` prop to connect your app to a source code provider. The props `repository`, `accessToken` and `oauthToken` do not exist anymore in `AppProps`. --- packages/@aws-cdk/aws-amplify/README.md | 21 ++- packages/@aws-cdk/aws-amplify/lib/app.ts | 87 +++++++----- packages/@aws-cdk/aws-amplify/lib/index.ts | 1 + .../aws-amplify/lib/source-code-providers.ts | 62 +++++++++ packages/@aws-cdk/aws-amplify/package.json | 2 + .../@aws-cdk/aws-amplify/test/app.test.ts | 130 ++++++++++++++---- .../@aws-cdk/aws-amplify/test/branch.test.ts | 7 +- .../@aws-cdk/aws-amplify/test/domain.test.ts | 14 +- .../test/integ.app-codecommit.expected.json | 85 ++++++++++++ .../aws-amplify/test/integ.app-codecommit.ts | 23 ++++ .../@aws-cdk/aws-codecommit/lib/repository.ts | 47 +++++++ .../aws-codecommit/test/test.codecommit.ts | 48 ++++++- 12 files changed, 457 insertions(+), 70 deletions(-) create mode 100644 packages/@aws-cdk/aws-amplify/lib/source-code-providers.ts create mode 100644 packages/@aws-cdk/aws-amplify/test/integ.app-codecommit.expected.json create mode 100644 packages/@aws-cdk/aws-amplify/test/integ.app-codecommit.ts diff --git a/packages/@aws-cdk/aws-amplify/README.md b/packages/@aws-cdk/aws-amplify/README.md index dcadc124c4163..f72790e1dba58 100644 --- a/packages/@aws-cdk/aws-amplify/README.md +++ b/packages/@aws-cdk/aws-amplify/README.md @@ -27,8 +27,11 @@ import amplify = require('@aws-cdk/aws-amplify'); import cdk = require('@aws-cdk/core'); const amplifyApp = new amplify.App(this, 'MyApp', { - repository: 'https://github.com//', - oauthToken: cdk.SecretValue.secretsManager('my-github-token'), + sourceCodeProvider: new amplify.GitHubSourceCodeProvider({ + owner: '', + repository: '', + oauthToken: cdk.SecretValue.secretsManager('my-github-token') + }), buildSpec: codebuild.BuildSpec.fromObject({ // Alternatively add a `amplify.yml` to the repo version: '1.0', frontend: { @@ -53,6 +56,20 @@ const amplifyApp = new amplify.App(this, 'MyApp', { }); ``` +To connect your `App` to CodeCommit, use the `CodeCommitSourceCodeProvider`: +```ts +const repository = new codecommit.Repository(this, 'Repo', { + repositoryName: 'my-repo' +}); + +const amplifyApp = new amplify.App(this, 'App', { + sourceCodeProvider: new amplify.CodeCommitSourceCodeProvider({ repository }) +}); +``` + +The IAM role associated with the `App` will automatically be granted the permission +to pull the CodeCommit repository. + Add branches: ```ts const master = amplifyApp.addBranch('master'); // `id` will be used as repo branch name diff --git a/packages/@aws-cdk/aws-amplify/lib/app.ts b/packages/@aws-cdk/aws-amplify/lib/app.ts index 84226418c0510..c3d5db9c1fca3 100644 --- a/packages/@aws-cdk/aws-amplify/lib/app.ts +++ b/packages/@aws-cdk/aws-amplify/lib/app.ts @@ -20,9 +20,27 @@ export interface IApp extends IResource { } /** - * Properties for an App + * Configuration for the source code provider */ -export interface AppProps { +export interface SourceCodeProviderConfig { + /** + * The repository for the application. Must use the `HTTPS` protocol. + * + * @example https://github.com/aws/aws-cdk + */ + readonly repository: string; + + /** + * OAuth token for 3rd party source control system for an Amplify App, used + * to create webhook and read-only deploy key. OAuth token is not stored. + * + * Either `accessToken` or `oauthToken` must be specified if `repository` + * is sepcified. + * + * @default - do not use a token + */ + readonly oauthToken?: SecretValue; + /** * Personal Access token for 3rd party source control system for an Amplify * App, used to create webhook and read-only deploy key. Token is not stored. @@ -30,10 +48,27 @@ export interface AppProps { * Either `accessToken` or `oauthToken` must be specified if `repository` * is sepcified. * - * @default - use OAuth token + * @default - do not use a token */ readonly accessToken?: SecretValue; +} + +/** + * A source code provider + */ +export interface ISourceCodeProvider { + /** + * Binds the source code provider to an app + * + * @param app The app [disable-awslint:ref-via-interface] + */ + bind(app: App): SourceCodeProviderConfig; +} +/** + * Properties for an App + */ +export interface AppProps { /** * The name for the application * @@ -41,6 +76,13 @@ export interface AppProps { */ readonly appName?: string; + /** + * The source code provider for this application + * + * @default - not connected to a source code provider + */ + readonly sourceCodeProvider?: ISourceCodeProvider; + /** * The auto branch creation configuration. Use this to automatically create * branches that match a certain pattern. @@ -92,31 +134,12 @@ export interface AppProps { readonly environmentVariables?: { [name: string]: string }; /** - * The IAM service role to associate with the application + * The IAM service role to associate with the application. The App + * implements IGrantable. * * @default - a new role is created */ readonly role?: iam.IRole; - - /** - * OAuth token for 3rd party source control system for an Amplify App, used - * to create webhook and read-only deploy key. OAuth token is not stored. - * - * Either `accessToken` or `oauthToken` must be specified if `repository` - * is sepcified. - * - * @default - use access token - */ - readonly oauthToken?: SecretValue; - - /** - * The repository for the application. Must use the `HTTPS` protocol. - * - * @example https://github.com/aws/aws-cdk - * - * @default - not connected to a repository - */ - readonly repository?: string; } /** @@ -168,14 +191,6 @@ export class App extends Resource implements IApp, iam.IGrantable { constructor(scope: Construct, id: string, props: AppProps) { super(scope, id); - if (props.repository && !props.accessToken && !props.oauthToken) { - throw new Error('Either `accessToken` or `oauthToken` must be specified'); - } - - if (props.repository && !props.repository.startsWith('https://')) { - throw new Error('`repository` must use the HTTPS protocol'); - } - this.customRules = props.customRules || []; this.environmentVariables = props.environmentVariables || {}; this.autoBranchEnvironmentVariables = props.autoBranchCreation && props.autoBranchCreation.environmentVariables || {}; @@ -185,8 +200,10 @@ export class App extends Resource implements IApp, iam.IGrantable { }); this.grantPrincipal = role; + const sourceCodeProviderOptions = props.sourceCodeProvider?.bind(this); + const app = new CfnApp(this, 'Resource', { - accessToken: props.accessToken && props.accessToken.toString(), + accessToken: sourceCodeProviderOptions?.accessToken?.toString(), autoBranchCreationConfig: props.autoBranchCreation && { autoBranchCreationPatterns: props.autoBranchCreation.patterns, basicAuthConfig: props.autoBranchCreation.basicAuth && props.autoBranchCreation.basicAuth.bind(this, 'BranchBasicAuth'), @@ -205,8 +222,8 @@ export class App extends Resource implements IApp, iam.IGrantable { environmentVariables: Lazy.anyValue({ produce: () => renderEnvironmentVariables(this.environmentVariables) }, { omitEmptyArray: true }), iamServiceRole: role.roleArn, name: props.appName || this.node.id, - oauthToken: props.oauthToken && props.oauthToken.toString(), - repository: props.repository, + oauthToken: sourceCodeProviderOptions?.oauthToken?.toString(), + repository: sourceCodeProviderOptions?.repository, }); this.appId = app.attrAppId; diff --git a/packages/@aws-cdk/aws-amplify/lib/index.ts b/packages/@aws-cdk/aws-amplify/lib/index.ts index 9be2bd2d75f68..5a89be4af844c 100644 --- a/packages/@aws-cdk/aws-amplify/lib/index.ts +++ b/packages/@aws-cdk/aws-amplify/lib/index.ts @@ -2,6 +2,7 @@ export * from './app'; export * from './branch'; export * from './domain'; export * from './basic-auth'; +export * from './source-code-providers'; // AWS::Amplify CloudFormation Resources: export * from './amplify.generated'; diff --git a/packages/@aws-cdk/aws-amplify/lib/source-code-providers.ts b/packages/@aws-cdk/aws-amplify/lib/source-code-providers.ts new file mode 100644 index 0000000000000..17b8b09aa69fd --- /dev/null +++ b/packages/@aws-cdk/aws-amplify/lib/source-code-providers.ts @@ -0,0 +1,62 @@ +import * as codecommit from '@aws-cdk/aws-codecommit'; +import { SecretValue } from '@aws-cdk/core'; +import { App, ISourceCodeProvider, SourceCodeProviderConfig } from './app'; + +/** + * Properties for a GitHub source code provider + */ +export interface GitHubSourceCodeProviderProps { + /** + * The user or organization owning the repository + */ + readonly owner: string; + + /** + * The name of the repository + */ + readonly repository: string; + + /** + * A personal access token with the `repo` scope + */ + readonly oauthToken: SecretValue; +} + +/** + * GitHub source code provider + */ +export class GitHubSourceCodeProvider implements ISourceCodeProvider { + constructor(private readonly props: GitHubSourceCodeProviderProps) {} + + public bind(_app: App): SourceCodeProviderConfig { + return { + repository: `https://github.com/${this.props.owner}/${this.props.repository}`, + oauthToken: this.props.oauthToken + }; + } +} + +/** + * Properties for a CodeCommit source code provider + */ +export interface CodeCommitSourceCodeProviderProps { + /** + * The CodeCommit repository + */ + readonly repository: codecommit.IRepository; +} + +/** + * CodeCommit source code provider + */ +export class CodeCommitSourceCodeProvider implements ISourceCodeProvider { + constructor(private readonly props: CodeCommitSourceCodeProviderProps) {} + + public bind(app: App): SourceCodeProviderConfig { + this.props.repository.grantPull(app); + + return { + repository: this.props.repository.repositoryCloneUrlHttp + }; + } +} diff --git a/packages/@aws-cdk/aws-amplify/package.json b/packages/@aws-cdk/aws-amplify/package.json index 7fba9c5e07dce..99a1ee3399398 100644 --- a/packages/@aws-cdk/aws-amplify/package.json +++ b/packages/@aws-cdk/aws-amplify/package.json @@ -91,6 +91,7 @@ "@aws-cdk/aws-iam": "0.0.0", "@aws-cdk/aws-kms": "0.0.0", "@aws-cdk/aws-codebuild": "0.0.0", + "@aws-cdk/aws-codecommit": "0.0.0", "@aws-cdk/aws-secretsmanager": "0.0.0", "@aws-cdk/core": "0.0.0", "constructs": "^2.0.0" @@ -99,6 +100,7 @@ "@aws-cdk/aws-iam": "0.0.0", "@aws-cdk/aws-kms": "0.0.0", "@aws-cdk/aws-codebuild": "0.0.0", + "@aws-cdk/aws-codecommit": "0.0.0", "@aws-cdk/aws-secretsmanager": "0.0.0", "@aws-cdk/core": "0.0.0", "constructs": "^2.0.0" diff --git a/packages/@aws-cdk/aws-amplify/test/app.test.ts b/packages/@aws-cdk/aws-amplify/test/app.test.ts index 170cc3b9e76a6..89e3b48392a61 100644 --- a/packages/@aws-cdk/aws-amplify/test/app.test.ts +++ b/packages/@aws-cdk/aws-amplify/test/app.test.ts @@ -1,5 +1,6 @@ import '@aws-cdk/assert/jest'; import * as codebuild from '@aws-cdk/aws-codebuild'; +import * as codecommit from '@aws-cdk/aws-codecommit'; import { SecretValue, Stack } from '@aws-cdk/core'; import * as amplify from '../lib'; @@ -8,11 +9,14 @@ beforeEach(() => { stack = new Stack(); }); -test('create an app', () => { +test('create an app connected to a GitHub repository', () => { // WHEN new amplify.App(stack, 'App', { - repository: 'https://github.com/aws/aws-cdk', - oauthToken: SecretValue.plainText('secret'), + sourceCodeProvider: new amplify.GitHubSourceCodeProvider({ + owner: 'aws', + repository: 'aws-cdk', + oauthToken: SecretValue.plainText('secret') + }), buildSpec: codebuild.BuildSpec.fromObject({ version: '1.0', frontend: { @@ -57,11 +61,86 @@ test('create an app', () => { }); }); +test('create an app connected to a CodeCommit repository', () => { + // WHEN + new amplify.App(stack, 'App', { + sourceCodeProvider: new amplify.CodeCommitSourceCodeProvider({ + repository: codecommit.Repository.fromRepositoryName(stack, 'Repo', 'my-repo'), + }), + }); + + // THEN + expect(stack).toHaveResource('AWS::Amplify::App', { + IAMServiceRole: { + 'Fn::GetAtt': [ + 'AppRole1AF9B530', + 'Arn' + ] + }, + Repository: { + 'Fn::Join': [ + '', + [ + 'https://git-codecommit.', + { + Ref: 'AWS::Region' + }, + '.', + { + Ref: 'AWS::URLSuffix' + }, + '/v1/repos/my-repo' + ] + ] + } + }); + + expect(stack).toHaveResource('AWS::IAM::Policy', { + PolicyDocument: { + Statement: [ + { + Action: 'codecommit:GitPull', + Effect: 'Allow', + Resource: { + 'Fn::Join': [ + '', + [ + 'arn:', + { + Ref: 'AWS::Partition' + }, + ':codecommit:', + { + Ref: 'AWS::Region' + }, + ':', + { + Ref: 'AWS::AccountId' + }, + ':my-repo' + ] + ] + }, + } + ], + Version: '2012-10-17' + }, + Roles: [ + { + Ref: 'AppRole1AF9B530' + } + ] + }); +}); + test('with basic auth from credentials', () => { // WHEN new amplify.App(stack, 'App', { - repository: 'https://github.com/aws/aws-cdk', - oauthToken: SecretValue.plainText('secret'), + sourceCodeProvider: new amplify.GitHubSourceCodeProvider({ + owner: 'aws', + repository: 'aws-cdk', + oauthToken: SecretValue.plainText('secret') + }), basicAuth: amplify.BasicAuth.fromCredentials('username', SecretValue.plainText('password')) }); @@ -78,8 +157,11 @@ test('with basic auth from credentials', () => { test('with basic auth from generated password', () => { // WHEN new amplify.App(stack, 'App', { - repository: 'https://github.com/aws/aws-cdk', - oauthToken: SecretValue.plainText('secret'), + sourceCodeProvider: new amplify.GitHubSourceCodeProvider({ + owner: 'aws', + repository: 'aws-cdk', + oauthToken: SecretValue.plainText('secret') + }), basicAuth: amplify.BasicAuth.fromGeneratedPassword('username') }); @@ -114,8 +196,11 @@ test('with basic auth from generated password', () => { test('with env vars', () => { // WHEN const app = new amplify.App(stack, 'App', { - repository: 'https://github.com/aws/aws-cdk', - oauthToken: SecretValue.plainText('secret'), + sourceCodeProvider: new amplify.GitHubSourceCodeProvider({ + owner: 'aws', + repository: 'aws-cdk', + oauthToken: SecretValue.plainText('secret') + }), environmentVariables: { key1: 'value1' } @@ -140,8 +225,11 @@ test('with env vars', () => { test('with custom rules', () => { // WHEN const app = new amplify.App(stack, 'App', { - repository: 'https://github.com/aws/aws-cdk', - oauthToken: SecretValue.plainText('secret'), + sourceCodeProvider: new amplify.GitHubSourceCodeProvider({ + owner: 'aws', + repository: 'aws-cdk', + oauthToken: SecretValue.plainText('secret') + }), customRules: [ { source: '/source1', @@ -176,8 +264,11 @@ test('with custom rules', () => { test('with auto branch creation', () => { // WHEN const app = new amplify.App(stack, 'App', { - repository: 'https://github.com/aws/aws-cdk', - oauthToken: SecretValue.plainText('secret'), + sourceCodeProvider: new amplify.GitHubSourceCodeProvider({ + owner: 'aws', + repository: 'aws-cdk', + oauthToken: SecretValue.plainText('secret') + }), autoBranchCreation: { environmentVariables: { key1: 'value1' @@ -205,16 +296,3 @@ test('with auto branch creation', () => { } }); }); - -test('throws when both access token and oauth token are not specified', () => { - expect(() => new amplify.App(stack, 'App', { - repository: 'https://github.com/aws/aws-cdk' - })).toThrow('Either `accessToken` or `oauthToken` must be specified'); -}); - -test('throws if repository is not https', () => { - expect(() => new amplify.App(stack, 'App', { - repository: 'git@github.com:aws/aws-cdk.git', - oauthToken: SecretValue.plainText('secret'), - })).toThrow('`repository` must use the HTTPS protocol'); -}); diff --git a/packages/@aws-cdk/aws-amplify/test/branch.test.ts b/packages/@aws-cdk/aws-amplify/test/branch.test.ts index a507d5d51f212..13e6e2ebe8dcb 100644 --- a/packages/@aws-cdk/aws-amplify/test/branch.test.ts +++ b/packages/@aws-cdk/aws-amplify/test/branch.test.ts @@ -7,8 +7,11 @@ let app: amplify.App; beforeEach(() => { stack = new Stack(); app = new amplify.App(stack, 'App', { - repository: 'https://github.com/aws/aws-cdk', - oauthToken: SecretValue.plainText('secret'), + sourceCodeProvider: new amplify.GitHubSourceCodeProvider({ + owner: 'aws', + repository: 'aws-cdk', + oauthToken: SecretValue.plainText('secret') + }), }); }); diff --git a/packages/@aws-cdk/aws-amplify/test/domain.test.ts b/packages/@aws-cdk/aws-amplify/test/domain.test.ts index 60e15af86f38a..b018a2186fcef 100644 --- a/packages/@aws-cdk/aws-amplify/test/domain.test.ts +++ b/packages/@aws-cdk/aws-amplify/test/domain.test.ts @@ -6,8 +6,11 @@ test('create a domain', () => { // GIVEN const stack = new Stack(); const app = new amplify.App(stack, 'App', { - repository: 'https://github.com/aws/aws-cdk', - oauthToken: SecretValue.plainText('secret'), + sourceCodeProvider: new amplify.GitHubSourceCodeProvider({ + owner: 'aws', + repository: 'aws-cdk', + oauthToken: SecretValue.plainText('secret') + }), }); const prodBranch = app.addBranch('master'); const devBranch = app.addBranch('dev'); @@ -65,8 +68,11 @@ test('throws at synthesis without subdomains', () => { const app = new App(); const stack = new Stack(app, 'test-stack'); const amplifyApp = new amplify.App(stack, 'App', { - repository: 'https://github.com/aws/aws-cdk', - oauthToken: SecretValue.plainText('secret'), + sourceCodeProvider: new amplify.GitHubSourceCodeProvider({ + owner: 'aws', + repository: 'aws-cdk', + oauthToken: SecretValue.plainText('secret') + }), }); // WHEN diff --git a/packages/@aws-cdk/aws-amplify/test/integ.app-codecommit.expected.json b/packages/@aws-cdk/aws-amplify/test/integ.app-codecommit.expected.json new file mode 100644 index 0000000000000..3c8d758a92492 --- /dev/null +++ b/packages/@aws-cdk/aws-amplify/test/integ.app-codecommit.expected.json @@ -0,0 +1,85 @@ +{ + "Resources": { + "Repo02AC86CF": { + "Type": "AWS::CodeCommit::Repository", + "Properties": { + "RepositoryName": "integ-amplify-app" + } + }, + "AppRole1AF9B530": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "amplify.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + } + }, + "AppRoleDefaultPolicy9CADBAA1": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "codecommit:GitPull", + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "Repo02AC86CF", + "Arn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "AppRoleDefaultPolicy9CADBAA1", + "Roles": [ + { + "Ref": "AppRole1AF9B530" + } + ] + } + }, + "AppF1B96344": { + "Type": "AWS::Amplify::App", + "Properties": { + "Name": "App", + "IAMServiceRole": { + "Fn::GetAtt": [ + "AppRole1AF9B530", + "Arn" + ] + }, + "Repository": { + "Fn::GetAtt": [ + "Repo02AC86CF", + "CloneUrlHttp" + ] + } + } + }, + "Appmaster71597E87": { + "Type": "AWS::Amplify::Branch", + "Properties": { + "AppId": { + "Fn::GetAtt": [ + "AppF1B96344", + "AppId" + ] + }, + "BranchName": "master", + "EnableAutoBuild": true, + "EnablePullRequestPreview": true + } + } + } +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-amplify/test/integ.app-codecommit.ts b/packages/@aws-cdk/aws-amplify/test/integ.app-codecommit.ts new file mode 100644 index 0000000000000..6d253016de2ea --- /dev/null +++ b/packages/@aws-cdk/aws-amplify/test/integ.app-codecommit.ts @@ -0,0 +1,23 @@ +import * as codecommit from '@aws-cdk/aws-codecommit'; +import { App, Construct, Stack, StackProps } from '@aws-cdk/core'; +import * as amplify from '../lib'; + +class TestStack extends Stack { + constructor(scope: Construct, id: string, props?: StackProps) { + super(scope, id, props); + + const repository = new codecommit.Repository(this, 'Repo', { + repositoryName: 'integ-amplify-app' + }); + + const amplifyApp = new amplify.App(this, 'App', { + sourceCodeProvider: new amplify.CodeCommitSourceCodeProvider({ repository }) + }); + + amplifyApp.addBranch('master'); + } +} + +const app = new App(); +new TestStack(app, 'cdk-amplify-codecommit-app'); +app.synth(); diff --git a/packages/@aws-cdk/aws-codecommit/lib/repository.ts b/packages/@aws-cdk/aws-codecommit/lib/repository.ts index 1ef1517180984..29e1150c056b9 100644 --- a/packages/@aws-cdk/aws-codecommit/lib/repository.ts +++ b/packages/@aws-cdk/aws-codecommit/lib/repository.ts @@ -1,4 +1,5 @@ import * as events from '@aws-cdk/aws-events'; +import * as iam from '@aws-cdk/aws-iam'; import { Construct, IConstruct, IResource, Lazy, Resource, Stack } from '@aws-cdk/core'; import { CfnRepository } from './codecommit.generated'; @@ -76,6 +77,26 @@ export interface IRepository extends IResource { * Defines a CloudWatch event rule which triggers when a commit is pushed to a branch. */ onCommit(id: string, options?: OnCommitOptions): events.Rule; + + /** + * Grant the given principal identity permissions to perform the actions on this repository + */ + grant(grantee: iam.IGrantable, ...actions: string[]): iam.Grant; + + /** + * Grant the given identity permissions to pull this repository. + */ + grantPull(grantee: iam.IGrantable): iam.Grant; + + /** + * Grant the given identity permissions to pull and push this repository. + */ + grantPullPush(grantee: iam.IGrantable): iam.Grant; + + /** + * Grant the given identity permissions to read this repository. + */ + grantRead(grantee: iam.IGrantable): iam.Grant; } /** @@ -206,6 +227,32 @@ abstract class RepositoryBase extends Resource implements IRepository { } return rule; } + + public grant(grantee: iam.IGrantable, ...actions: string[]) { + return iam.Grant.addToPrincipal({ + grantee, + actions, + resourceArns: [this.repositoryArn], + }); + } + + public grantPull(grantee: iam.IGrantable) { + return this.grant(grantee, 'codecommit:GitPull'); + } + + public grantPullPush(grantee: iam.IGrantable) { + this.grantPull(grantee); + return this.grant(grantee, 'codecommit:GitPush'); + } + + public grantRead(grantee: iam.IGrantable) { + this.grantPull(grantee); + return this.grant(grantee, + 'codecommit:EvaluatePullRequestApprovalRules', + 'codecommit:Get*', + 'codecommit:Describe*', + ); + } } export interface RepositoryProps { diff --git a/packages/@aws-cdk/aws-codecommit/test/test.codecommit.ts b/packages/@aws-cdk/aws-codecommit/test/test.codecommit.ts index de4203bdfcaf9..9721f69feba9a 100644 --- a/packages/@aws-cdk/aws-codecommit/test/test.codecommit.ts +++ b/packages/@aws-cdk/aws-codecommit/test/test.codecommit.ts @@ -1,4 +1,5 @@ -import { expect } from '@aws-cdk/assert'; +import { expect, haveResource } from '@aws-cdk/assert'; +import { Role, ServicePrincipal } from '@aws-cdk/aws-iam'; import { Stack } from '@aws-cdk/core'; import { Test } from 'nodeunit'; import { Repository, RepositoryProps } from '../lib'; @@ -89,5 +90,50 @@ export = { test.done(); }, + + 'grant push'(test: Test) { + // GIVEN + const stack = new Stack(); + const repository = new Repository(stack, 'Repo', { + repositoryName: 'repo-name' + }); + const role = new Role(stack, 'Role', { + assumedBy: new ServicePrincipal('ec2.amazonaws.com') + }); + + // WHEN + repository.grantPullPush(role); + + // THEN + expect(stack).to(haveResource('AWS::IAM::Policy', { + PolicyDocument: { + Statement: [ + { + Action: 'codecommit:GitPull', + Effect: 'Allow', + Resource: { + 'Fn::GetAtt': [ + 'Repo02AC86CF', + 'Arn' + ] + }, + }, + { + Action: 'codecommit:GitPush', + Effect: 'Allow', + Resource: { + 'Fn::GetAtt': [ + 'Repo02AC86CF', + 'Arn' + ] + }, + } + ], + Version: '2012-10-17' + } + })); + + test.done(); + } }, }; From 4c7afb827b4005e337dd4635a80a7767bcec7b11 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2020 16:22:56 +0000 Subject: [PATCH 09/15] chore(deps): bump ts-jest from 25.2.1 to 25.3.0 (#7070) Bumps [ts-jest](https://github.com/kulshekhar/ts-jest) from 25.2.1 to 25.3.0. - [Release notes](https://github.com/kulshekhar/ts-jest/releases) - [Changelog](https://github.com/kulshekhar/ts-jest/blob/master/CHANGELOG.md) - [Commits](https://github.com/kulshekhar/ts-jest/compare/25.2.1...v25.3.0) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- packages/@aws-cdk/assert/package.json | 2 +- packages/@aws-cdk/aws-sam/package.json | 2 +- .../@aws-cdk/cloudformation-diff/package.json | 2 +- .../@monocdk-experiment/assert/package.json | 2 +- packages/aws-cdk/package.json | 2 +- tools/cdk-build-tools/package.json | 2 +- yarn.lock | 22 +++++++++---------- 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/packages/@aws-cdk/assert/package.json b/packages/@aws-cdk/assert/package.json index 3215143fb8f04..a30d4045fcddb 100644 --- a/packages/@aws-cdk/assert/package.json +++ b/packages/@aws-cdk/assert/package.json @@ -33,7 +33,7 @@ "cdk-build-tools": "0.0.0", "jest": "^24.9.0", "pkglint": "0.0.0", - "ts-jest": "^25.2.0" + "ts-jest": "^25.3.0" }, "dependencies": { "@aws-cdk/cloudformation-diff": "0.0.0", diff --git a/packages/@aws-cdk/aws-sam/package.json b/packages/@aws-cdk/aws-sam/package.json index 2633365e81a83..2c46a3aa4a0ab 100644 --- a/packages/@aws-cdk/aws-sam/package.json +++ b/packages/@aws-cdk/aws-sam/package.json @@ -69,7 +69,7 @@ "cfn2ts": "0.0.0", "jest": "^24.9.0", "pkglint": "0.0.0", - "ts-jest": "^25.2.0" + "ts-jest": "^25.3.0" }, "dependencies": { "@aws-cdk/core": "0.0.0", diff --git a/packages/@aws-cdk/cloudformation-diff/package.json b/packages/@aws-cdk/cloudformation-diff/package.json index 71b4dd40fd174..b876a079dbf00 100644 --- a/packages/@aws-cdk/cloudformation-diff/package.json +++ b/packages/@aws-cdk/cloudformation-diff/package.json @@ -45,7 +45,7 @@ "fast-check": "^1.22.2", "jest": "^24.9.0", "pkglint": "0.0.0", - "ts-jest": "^25.2.0" + "ts-jest": "^25.3.0" }, "repository": { "url": "https://github.com/aws/aws-cdk.git", diff --git a/packages/@monocdk-experiment/assert/package.json b/packages/@monocdk-experiment/assert/package.json index 3aabbf3af0062..eac564b2299ba 100644 --- a/packages/@monocdk-experiment/assert/package.json +++ b/packages/@monocdk-experiment/assert/package.json @@ -45,7 +45,7 @@ "cdk-build-tools": "0.0.0", "jest": "^24.9.0", "pkglint": "0.0.0", - "ts-jest": "^25.2.0", + "ts-jest": "^25.3.0", "@monocdk-experiment/rewrite-imports": "0.0.0", "monocdk-experiment": "0.0.0", "constructs": "^2.0.0" diff --git a/packages/aws-cdk/package.json b/packages/aws-cdk/package.json index 24ab9cde20186..78fd3adfabc37 100644 --- a/packages/aws-cdk/package.json +++ b/packages/aws-cdk/package.json @@ -61,7 +61,7 @@ "mockery": "^2.1.0", "pkglint": "0.0.0", "sinon": "^9.0.1", - "ts-jest": "^25.2.0" + "ts-jest": "^25.3.0" }, "dependencies": { "@aws-cdk/cdk-assets-schema": "0.0.0", diff --git a/tools/cdk-build-tools/package.json b/tools/cdk-build-tools/package.json index 03f547c1a40b6..242e91c9a7c2b 100644 --- a/tools/cdk-build-tools/package.json +++ b/tools/cdk-build-tools/package.json @@ -51,7 +51,7 @@ "jsii-pacmak": "^1.1.0", "nodeunit": "^0.11.3", "nyc": "^15.0.0", - "ts-jest": "^25.2.0", + "ts-jest": "^25.3.0", "tslint": "^5.20.1", "typescript": "~3.8.3", "yargs": "^15.3.1" diff --git a/yarn.lock b/yarn.lock index 53ea94a099cf5..7d29a353f141e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7883,12 +7883,12 @@ mkdirp-promise@^5.0.1: dependencies: mkdirp "*" -mkdirp@*: +mkdirp@*, mkdirp@1.x: version "1.0.3" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.3.tgz#4cf2e30ad45959dddea53ad97d518b6c8205e1ea" integrity sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g== -mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: +mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= @@ -10207,12 +10207,12 @@ semver-intersect@^1.4.0: dependencies: semver "^5.0.0" -"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.0.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.0.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@6.3.0, semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: +semver@6.3.0, semver@6.x, semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -11305,10 +11305,10 @@ trivial-deferred@^1.0.1: resolved "https://registry.yarnpkg.com/trivial-deferred/-/trivial-deferred-1.0.1.tgz#376d4d29d951d6368a6f7a0ae85c2f4d5e0658f3" integrity sha1-N21NKdlR1jaKb3oK6FwvTV4GWPM= -ts-jest@^25.2.0: - version "25.2.1" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-25.2.1.tgz#49bf05da26a8b7fbfbc36b4ae2fcdc2fef35c85d" - integrity sha512-TnntkEEjuXq/Gxpw7xToarmHbAafgCaAzOpnajnFC6jI7oo1trMzAHA04eWpc3MhV6+yvhE8uUBAmN+teRJh0A== +ts-jest@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-25.3.0.tgz#c12d34573cbe34d49f10567940e44fd19d1c9178" + integrity sha512-qH/uhaC+AFDU9JfAueSr0epIFJkGMvUPog4FxSEVAtPOur1Oni5WBJMiQIkfHvc7PviVRsnlVLLY2I6221CQew== dependencies: bs-logger "0.x" buffer-from "1.x" @@ -11316,10 +11316,10 @@ ts-jest@^25.2.0: json5 "2.x" lodash.memoize "4.x" make-error "1.x" - mkdirp "0.x" + mkdirp "1.x" resolve "1.x" - semver "^5.5" - yargs-parser "^16.1.0" + semver "6.x" + yargs-parser "^18.1.1" ts-mock-imports@^1.3.0: version "1.3.0" From 9a552c275ee011fd794b27735503d139f538f70a Mon Sep 17 00:00:00 2001 From: AWS CDK Automation <43080478+aws-cdk-automation@users.noreply.github.com> Date: Mon, 30 Mar 2020 19:30:23 +0200 Subject: [PATCH 10/15] feat(cfnspec): cloudformation spec v11.6.0 (#6995) * feat: cloudformation spec v11.6.0 * add a patch for ResourceGroups Tags as the spec has ItemType specified instead of PrimitiveType * add missing awscdk.io to package.json for newly added resources * patch to resource groups to specify tags as Json type * add linter exclusions for added AppMesh attributes in the spec update Co-authored-by: AWS CDK Team Co-authored-by: Shiv Lakshminarayan Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- packages/@aws-cdk/aws-appmesh/package.json | 10 + packages/@aws-cdk/aws-cassandra/.gitignore | 17 + packages/@aws-cdk/aws-cassandra/.npmignore | 20 + packages/@aws-cdk/aws-cassandra/LICENSE | 201 ++++ packages/@aws-cdk/aws-cassandra/NOTICE | 2 + packages/@aws-cdk/aws-cassandra/README.md | 24 + packages/@aws-cdk/aws-cassandra/lib/index.ts | 2 + packages/@aws-cdk/aws-cassandra/package.json | 86 ++ .../aws-cassandra/test/cassandra.test.ts | 6 + .../@aws-cdk/aws-codeguruprofiler/.gitignore | 17 + .../@aws-cdk/aws-codeguruprofiler/.npmignore | 20 + .../@aws-cdk/aws-codeguruprofiler/LICENSE | 201 ++++ packages/@aws-cdk/aws-codeguruprofiler/NOTICE | 2 + .../@aws-cdk/aws-codeguruprofiler/README.md | 24 + .../aws-codeguruprofiler/lib/index.ts | 2 + .../aws-codeguruprofiler/package.json | 86 ++ .../test/codeguruprofiler.test.ts | 6 + .../@aws-cdk/aws-networkmanager/.gitignore | 17 + .../@aws-cdk/aws-networkmanager/.npmignore | 20 + packages/@aws-cdk/aws-networkmanager/LICENSE | 201 ++++ packages/@aws-cdk/aws-networkmanager/NOTICE | 2 + .../@aws-cdk/aws-networkmanager/README.md | 24 + .../@aws-cdk/aws-networkmanager/lib/index.ts | 2 + .../@aws-cdk/aws-networkmanager/package.json | 86 ++ .../test/networkmanager.test.ts | 6 + .../@aws-cdk/aws-resourcegroups/.gitignore | 17 + .../@aws-cdk/aws-resourcegroups/.npmignore | 20 + packages/@aws-cdk/aws-resourcegroups/LICENSE | 201 ++++ packages/@aws-cdk/aws-resourcegroups/NOTICE | 2 + .../@aws-cdk/aws-resourcegroups/README.md | 24 + .../@aws-cdk/aws-resourcegroups/lib/index.ts | 2 + .../@aws-cdk/aws-resourcegroups/package.json | 86 ++ .../test/resourcegroups.test.ts | 6 + packages/@aws-cdk/cfnspec/CHANGELOG.md | 64 ++ packages/@aws-cdk/cfnspec/cfn.version | 2 +- ...0_CloudFormationResourceSpecification.json | 892 +++++++++++++++++- .../530_ResourceGroups_Tags_patch.json | 24 + packages/decdk/package.json | 6 +- packages/monocdk-experiment/package.json | 6 +- 39 files changed, 2421 insertions(+), 15 deletions(-) create mode 100644 packages/@aws-cdk/aws-cassandra/.gitignore create mode 100644 packages/@aws-cdk/aws-cassandra/.npmignore create mode 100644 packages/@aws-cdk/aws-cassandra/LICENSE create mode 100644 packages/@aws-cdk/aws-cassandra/NOTICE create mode 100644 packages/@aws-cdk/aws-cassandra/README.md create mode 100644 packages/@aws-cdk/aws-cassandra/lib/index.ts create mode 100644 packages/@aws-cdk/aws-cassandra/package.json create mode 100644 packages/@aws-cdk/aws-cassandra/test/cassandra.test.ts create mode 100644 packages/@aws-cdk/aws-codeguruprofiler/.gitignore create mode 100644 packages/@aws-cdk/aws-codeguruprofiler/.npmignore create mode 100644 packages/@aws-cdk/aws-codeguruprofiler/LICENSE create mode 100644 packages/@aws-cdk/aws-codeguruprofiler/NOTICE create mode 100644 packages/@aws-cdk/aws-codeguruprofiler/README.md create mode 100644 packages/@aws-cdk/aws-codeguruprofiler/lib/index.ts create mode 100644 packages/@aws-cdk/aws-codeguruprofiler/package.json create mode 100644 packages/@aws-cdk/aws-codeguruprofiler/test/codeguruprofiler.test.ts create mode 100644 packages/@aws-cdk/aws-networkmanager/.gitignore create mode 100644 packages/@aws-cdk/aws-networkmanager/.npmignore create mode 100644 packages/@aws-cdk/aws-networkmanager/LICENSE create mode 100644 packages/@aws-cdk/aws-networkmanager/NOTICE create mode 100644 packages/@aws-cdk/aws-networkmanager/README.md create mode 100644 packages/@aws-cdk/aws-networkmanager/lib/index.ts create mode 100644 packages/@aws-cdk/aws-networkmanager/package.json create mode 100644 packages/@aws-cdk/aws-networkmanager/test/networkmanager.test.ts create mode 100644 packages/@aws-cdk/aws-resourcegroups/.gitignore create mode 100644 packages/@aws-cdk/aws-resourcegroups/.npmignore create mode 100644 packages/@aws-cdk/aws-resourcegroups/LICENSE create mode 100644 packages/@aws-cdk/aws-resourcegroups/NOTICE create mode 100644 packages/@aws-cdk/aws-resourcegroups/README.md create mode 100644 packages/@aws-cdk/aws-resourcegroups/lib/index.ts create mode 100644 packages/@aws-cdk/aws-resourcegroups/package.json create mode 100644 packages/@aws-cdk/aws-resourcegroups/test/resourcegroups.test.ts create mode 100644 packages/@aws-cdk/cfnspec/spec-source/530_ResourceGroups_Tags_patch.json diff --git a/packages/@aws-cdk/aws-appmesh/package.json b/packages/@aws-cdk/aws-appmesh/package.json index 4361ca2150a7c..f45a7bf13ed01 100644 --- a/packages/@aws-cdk/aws-appmesh/package.json +++ b/packages/@aws-cdk/aws-appmesh/package.json @@ -105,15 +105,25 @@ "resource-attribute:@aws-cdk/aws-appmesh.IVirtualNode.virtualNodeUid", "resource-attribute:@aws-cdk/aws-appmesh.IVirtualRouter.virtualRouterUid", "resource-attribute:@aws-cdk/aws-appmesh.IVirtualService.virtualServiceUid", + "resource-attribute:@aws-cdk/aws-appmesh.Mesh.meshOwner", + "resource-attribute:@aws-cdk/aws-appmesh.Mesh.meshResourceOwner", "resource-attribute:@aws-cdk/aws-appmesh.Mesh.meshUid", "resource-attribute:@aws-cdk/aws-appmesh.Route.routeMeshName", + "resource-attribute:@aws-cdk/aws-appmesh.Route.routeMeshOwner", + "resource-attribute:@aws-cdk/aws-appmesh.Route.routeResourceOwner", "resource-attribute:@aws-cdk/aws-appmesh.Route.routeUid", "resource-attribute:@aws-cdk/aws-appmesh.Route.routeVirtualRouterName", "resource-attribute:@aws-cdk/aws-appmesh.VirtualNode.virtualNodeMeshName", + "resource-attribute:@aws-cdk/aws-appmesh.VirtualNode.virtualNodeMeshOwner", + "resource-attribute:@aws-cdk/aws-appmesh.VirtualNode.virtualNodeResourceOwner", "resource-attribute:@aws-cdk/aws-appmesh.VirtualNode.virtualNodeUid", "resource-attribute:@aws-cdk/aws-appmesh.VirtualRouter.virtualRouterMeshName", + "resource-attribute:@aws-cdk/aws-appmesh.VirtualRouter.virtualRouterMeshOwner", + "resource-attribute:@aws-cdk/aws-appmesh.VirtualRouter.virtualRouterResourceOwner", "resource-attribute:@aws-cdk/aws-appmesh.VirtualRouter.virtualRouterUid", "resource-attribute:@aws-cdk/aws-appmesh.VirtualService.virtualServiceMeshName", + "resource-attribute:@aws-cdk/aws-appmesh.VirtualService.virtualServiceMeshOwner", + "resource-attribute:@aws-cdk/aws-appmesh.VirtualService.virtualServiceResourceOwner", "resource-attribute:@aws-cdk/aws-appmesh.VirtualService.virtualServiceUid", "docs-public-apis:@aws-cdk/aws-appmesh.Protocol.TCP", "docs-public-apis:@aws-cdk/aws-appmesh.VirtualRouter", diff --git a/packages/@aws-cdk/aws-cassandra/.gitignore b/packages/@aws-cdk/aws-cassandra/.gitignore new file mode 100644 index 0000000000000..66bc512521d1f --- /dev/null +++ b/packages/@aws-cdk/aws-cassandra/.gitignore @@ -0,0 +1,17 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +*.generated.ts +dist +.jsii + +.LAST_BUILD +.nyc_output +coverage +.nycrc +.LAST_PACKAGE +*.snk +nyc.config.js diff --git a/packages/@aws-cdk/aws-cassandra/.npmignore b/packages/@aws-cdk/aws-cassandra/.npmignore new file mode 100644 index 0000000000000..c18b5f700c0c9 --- /dev/null +++ b/packages/@aws-cdk/aws-cassandra/.npmignore @@ -0,0 +1,20 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz + +dist +.LAST_PACKAGE +.LAST_BUILD +!*.js + +# Include .jsii +!.jsii + +*.snk + +*.tsbuildinfo + +tsconfig.json diff --git a/packages/@aws-cdk/aws-cassandra/LICENSE b/packages/@aws-cdk/aws-cassandra/LICENSE new file mode 100644 index 0000000000000..b71ec1688783a --- /dev/null +++ b/packages/@aws-cdk/aws-cassandra/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/packages/@aws-cdk/aws-cassandra/NOTICE b/packages/@aws-cdk/aws-cassandra/NOTICE new file mode 100644 index 0000000000000..bfccac9a7f69c --- /dev/null +++ b/packages/@aws-cdk/aws-cassandra/NOTICE @@ -0,0 +1,2 @@ +AWS Cloud Development Kit (AWS CDK) +Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. diff --git a/packages/@aws-cdk/aws-cassandra/README.md b/packages/@aws-cdk/aws-cassandra/README.md new file mode 100644 index 0000000000000..9db2b132c3b83 --- /dev/null +++ b/packages/@aws-cdk/aws-cassandra/README.md @@ -0,0 +1,24 @@ +## AWS::Cassandra Construct Library + + +--- + +![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) + +> **This is a _developer preview_ (public beta) module.** +> +> All classes with the `Cfn` prefix in this module ([CFN Resources](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib)) +> are auto-generated from CloudFormation. They are stable and safe to use. +> +> However, all other classes, i.e., higher level constructs, are under active development and subject to non-backward +> compatible changes or removal in any future version. These are not subject to the [Semantic Versioning](https://semver.org/) model. +> This means that while you may use them, you may need to update your source code when upgrading to a newer version of this package. + +--- + + +This module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project. + +```ts +import cassandra = require('@aws-cdk/aws-cassandra'); +``` diff --git a/packages/@aws-cdk/aws-cassandra/lib/index.ts b/packages/@aws-cdk/aws-cassandra/lib/index.ts new file mode 100644 index 0000000000000..86bc022f66915 --- /dev/null +++ b/packages/@aws-cdk/aws-cassandra/lib/index.ts @@ -0,0 +1,2 @@ +// AWS::Cassandra CloudFormation Resources: +export * from './cassandra.generated'; diff --git a/packages/@aws-cdk/aws-cassandra/package.json b/packages/@aws-cdk/aws-cassandra/package.json new file mode 100644 index 0000000000000..db8921799f8c7 --- /dev/null +++ b/packages/@aws-cdk/aws-cassandra/package.json @@ -0,0 +1,86 @@ +{ + "name": "@aws-cdk/aws-cassandra", + "version": "0.0.0", + "description": "The CDK Construct Library for AWS::Cassandra", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "targets": { + "dotnet": { + "namespace": "Amazon.CDK.AWS.Cassandra", + "packageId": "Amazon.CDK.AWS.Cassandra", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk", + "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png" + }, + "java": { + "package": "software.amazon.awscdk.services.cassandra", + "maven": { + "groupId": "software.amazon.awscdk", + "artifactId": "cassandra" + } + }, + "python": { + "distName": "aws-cdk.aws-cassandra", + "module": "aws_cdk.aws_cassandra" + } + } + }, + "repository": { + "type": "git", + "url": "https://github.com/aws/aws-cdk.git", + "directory": "packages/@aws-cdk/aws-cassandra" + }, + "homepage": "https://github.com/aws/aws-cdk", + "scripts": { + "build": "cdk-build", + "watch": "cdk-watch", + "lint": "cdk-lint", + "test": "cdk-test", + "integ": "cdk-integ", + "pkglint": "pkglint -f", + "package": "cdk-package", + "awslint": "cdk-awslint", + "cfn2ts": "cfn2ts", + "build+test+package": "npm run build+test && npm run package", + "build+test": "npm run build && npm test", + "compat": "cdk-compat" + }, + "cdk-build": { + "cloudformation": "AWS::Cassandra" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "AWS::Cassandra", + "aws-cassandra" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com", + "organization": true + }, + "jest": {}, + "license": "Apache-2.0", + "devDependencies": { + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" + }, + "dependencies": { + "@aws-cdk/core": "0.0.0" + }, + "peerDependencies": { + "@aws-cdk/core": "0.0.0" + }, + "engines": { + "node": ">= 10.3.0" + }, + "stability": "experimental", + "awscdkio": { + "announce": false + } +} diff --git a/packages/@aws-cdk/aws-cassandra/test/cassandra.test.ts b/packages/@aws-cdk/aws-cassandra/test/cassandra.test.ts new file mode 100644 index 0000000000000..e394ef336bfb4 --- /dev/null +++ b/packages/@aws-cdk/aws-cassandra/test/cassandra.test.ts @@ -0,0 +1,6 @@ +import '@aws-cdk/assert/jest'; +import {} from '../lib'; + +test('No tests are specified for this package', () => { + expect(true).toBe(true); +}); diff --git a/packages/@aws-cdk/aws-codeguruprofiler/.gitignore b/packages/@aws-cdk/aws-codeguruprofiler/.gitignore new file mode 100644 index 0000000000000..66bc512521d1f --- /dev/null +++ b/packages/@aws-cdk/aws-codeguruprofiler/.gitignore @@ -0,0 +1,17 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +*.generated.ts +dist +.jsii + +.LAST_BUILD +.nyc_output +coverage +.nycrc +.LAST_PACKAGE +*.snk +nyc.config.js diff --git a/packages/@aws-cdk/aws-codeguruprofiler/.npmignore b/packages/@aws-cdk/aws-codeguruprofiler/.npmignore new file mode 100644 index 0000000000000..c18b5f700c0c9 --- /dev/null +++ b/packages/@aws-cdk/aws-codeguruprofiler/.npmignore @@ -0,0 +1,20 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz + +dist +.LAST_PACKAGE +.LAST_BUILD +!*.js + +# Include .jsii +!.jsii + +*.snk + +*.tsbuildinfo + +tsconfig.json diff --git a/packages/@aws-cdk/aws-codeguruprofiler/LICENSE b/packages/@aws-cdk/aws-codeguruprofiler/LICENSE new file mode 100644 index 0000000000000..b71ec1688783a --- /dev/null +++ b/packages/@aws-cdk/aws-codeguruprofiler/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/packages/@aws-cdk/aws-codeguruprofiler/NOTICE b/packages/@aws-cdk/aws-codeguruprofiler/NOTICE new file mode 100644 index 0000000000000..bfccac9a7f69c --- /dev/null +++ b/packages/@aws-cdk/aws-codeguruprofiler/NOTICE @@ -0,0 +1,2 @@ +AWS Cloud Development Kit (AWS CDK) +Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. diff --git a/packages/@aws-cdk/aws-codeguruprofiler/README.md b/packages/@aws-cdk/aws-codeguruprofiler/README.md new file mode 100644 index 0000000000000..e127d53b204f0 --- /dev/null +++ b/packages/@aws-cdk/aws-codeguruprofiler/README.md @@ -0,0 +1,24 @@ +## AWS::CodeGuruProfiler Construct Library + + +--- + +![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) + +> **This is a _developer preview_ (public beta) module.** +> +> All classes with the `Cfn` prefix in this module ([CFN Resources](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib)) +> are auto-generated from CloudFormation. They are stable and safe to use. +> +> However, all other classes, i.e., higher level constructs, are under active development and subject to non-backward +> compatible changes or removal in any future version. These are not subject to the [Semantic Versioning](https://semver.org/) model. +> This means that while you may use them, you may need to update your source code when upgrading to a newer version of this package. + +--- + + +This module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project. + +```ts +import codeguruprofiler = require('@aws-cdk/aws-codeguruprofiler'); +``` diff --git a/packages/@aws-cdk/aws-codeguruprofiler/lib/index.ts b/packages/@aws-cdk/aws-codeguruprofiler/lib/index.ts new file mode 100644 index 0000000000000..1dca345aee39a --- /dev/null +++ b/packages/@aws-cdk/aws-codeguruprofiler/lib/index.ts @@ -0,0 +1,2 @@ +// AWS::CodeGuruProfiler CloudFormation Resources: +export * from './codeguruprofiler.generated'; diff --git a/packages/@aws-cdk/aws-codeguruprofiler/package.json b/packages/@aws-cdk/aws-codeguruprofiler/package.json new file mode 100644 index 0000000000000..fc0e62eb98c91 --- /dev/null +++ b/packages/@aws-cdk/aws-codeguruprofiler/package.json @@ -0,0 +1,86 @@ +{ + "name": "@aws-cdk/aws-codeguruprofiler", + "version": "0.0.0", + "description": "The CDK Construct Library for AWS::CodeGuruProfiler", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "targets": { + "dotnet": { + "namespace": "Amazon.CDK.AWS.CodeGuruProfiler", + "packageId": "Amazon.CDK.AWS.CodeGuruProfiler", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk", + "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png" + }, + "java": { + "package": "software.amazon.awscdk.services.codeguruprofiler", + "maven": { + "groupId": "software.amazon.awscdk", + "artifactId": "codeguruprofiler" + } + }, + "python": { + "distName": "aws-cdk.aws-codeguruprofiler", + "module": "aws_cdk.aws_codeguruprofiler" + } + } + }, + "repository": { + "type": "git", + "url": "https://github.com/aws/aws-cdk.git", + "directory": "packages/@aws-cdk/aws-codeguruprofiler" + }, + "homepage": "https://github.com/aws/aws-cdk", + "scripts": { + "build": "cdk-build", + "watch": "cdk-watch", + "lint": "cdk-lint", + "test": "cdk-test", + "integ": "cdk-integ", + "pkglint": "pkglint -f", + "package": "cdk-package", + "awslint": "cdk-awslint", + "cfn2ts": "cfn2ts", + "build+test+package": "npm run build+test && npm run package", + "build+test": "npm run build && npm test", + "compat": "cdk-compat" + }, + "cdk-build": { + "cloudformation": "AWS::CodeGuruProfiler" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "AWS::CodeGuruProfiler", + "aws-codeguruprofiler" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com", + "organization": true + }, + "jest": {}, + "license": "Apache-2.0", + "devDependencies": { + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" + }, + "dependencies": { + "@aws-cdk/core": "0.0.0" + }, + "peerDependencies": { + "@aws-cdk/core": "0.0.0" + }, + "engines": { + "node": ">= 10.3.0" + }, + "stability": "experimental", + "awscdkio": { + "announce": false + } +} diff --git a/packages/@aws-cdk/aws-codeguruprofiler/test/codeguruprofiler.test.ts b/packages/@aws-cdk/aws-codeguruprofiler/test/codeguruprofiler.test.ts new file mode 100644 index 0000000000000..e394ef336bfb4 --- /dev/null +++ b/packages/@aws-cdk/aws-codeguruprofiler/test/codeguruprofiler.test.ts @@ -0,0 +1,6 @@ +import '@aws-cdk/assert/jest'; +import {} from '../lib'; + +test('No tests are specified for this package', () => { + expect(true).toBe(true); +}); diff --git a/packages/@aws-cdk/aws-networkmanager/.gitignore b/packages/@aws-cdk/aws-networkmanager/.gitignore new file mode 100644 index 0000000000000..66bc512521d1f --- /dev/null +++ b/packages/@aws-cdk/aws-networkmanager/.gitignore @@ -0,0 +1,17 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +*.generated.ts +dist +.jsii + +.LAST_BUILD +.nyc_output +coverage +.nycrc +.LAST_PACKAGE +*.snk +nyc.config.js diff --git a/packages/@aws-cdk/aws-networkmanager/.npmignore b/packages/@aws-cdk/aws-networkmanager/.npmignore new file mode 100644 index 0000000000000..c18b5f700c0c9 --- /dev/null +++ b/packages/@aws-cdk/aws-networkmanager/.npmignore @@ -0,0 +1,20 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz + +dist +.LAST_PACKAGE +.LAST_BUILD +!*.js + +# Include .jsii +!.jsii + +*.snk + +*.tsbuildinfo + +tsconfig.json diff --git a/packages/@aws-cdk/aws-networkmanager/LICENSE b/packages/@aws-cdk/aws-networkmanager/LICENSE new file mode 100644 index 0000000000000..b71ec1688783a --- /dev/null +++ b/packages/@aws-cdk/aws-networkmanager/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/packages/@aws-cdk/aws-networkmanager/NOTICE b/packages/@aws-cdk/aws-networkmanager/NOTICE new file mode 100644 index 0000000000000..bfccac9a7f69c --- /dev/null +++ b/packages/@aws-cdk/aws-networkmanager/NOTICE @@ -0,0 +1,2 @@ +AWS Cloud Development Kit (AWS CDK) +Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. diff --git a/packages/@aws-cdk/aws-networkmanager/README.md b/packages/@aws-cdk/aws-networkmanager/README.md new file mode 100644 index 0000000000000..08f8673704d89 --- /dev/null +++ b/packages/@aws-cdk/aws-networkmanager/README.md @@ -0,0 +1,24 @@ +## AWS::NetworkManager Construct Library + + +--- + +![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) + +> **This is a _developer preview_ (public beta) module.** +> +> All classes with the `Cfn` prefix in this module ([CFN Resources](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib)) +> are auto-generated from CloudFormation. They are stable and safe to use. +> +> However, all other classes, i.e., higher level constructs, are under active development and subject to non-backward +> compatible changes or removal in any future version. These are not subject to the [Semantic Versioning](https://semver.org/) model. +> This means that while you may use them, you may need to update your source code when upgrading to a newer version of this package. + +--- + + +This module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project. + +```ts +import networkmanager = require('@aws-cdk/aws-networkmanager'); +``` diff --git a/packages/@aws-cdk/aws-networkmanager/lib/index.ts b/packages/@aws-cdk/aws-networkmanager/lib/index.ts new file mode 100644 index 0000000000000..d39cb0c0acb5e --- /dev/null +++ b/packages/@aws-cdk/aws-networkmanager/lib/index.ts @@ -0,0 +1,2 @@ +// AWS::NetworkManager CloudFormation Resources: +export * from './networkmanager.generated'; diff --git a/packages/@aws-cdk/aws-networkmanager/package.json b/packages/@aws-cdk/aws-networkmanager/package.json new file mode 100644 index 0000000000000..abcb5fb728dba --- /dev/null +++ b/packages/@aws-cdk/aws-networkmanager/package.json @@ -0,0 +1,86 @@ +{ + "name": "@aws-cdk/aws-networkmanager", + "version": "0.0.0", + "description": "The CDK Construct Library for AWS::NetworkManager", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "targets": { + "dotnet": { + "namespace": "Amazon.CDK.AWS.NetworkManager", + "packageId": "Amazon.CDK.AWS.NetworkManager", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk", + "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png" + }, + "java": { + "package": "software.amazon.awscdk.services.networkmanager", + "maven": { + "groupId": "software.amazon.awscdk", + "artifactId": "networkmanager" + } + }, + "python": { + "distName": "aws-cdk.aws-networkmanager", + "module": "aws_cdk.aws_networkmanager" + } + } + }, + "repository": { + "type": "git", + "url": "https://github.com/aws/aws-cdk.git", + "directory": "packages/@aws-cdk/aws-networkmanager" + }, + "homepage": "https://github.com/aws/aws-cdk", + "scripts": { + "build": "cdk-build", + "watch": "cdk-watch", + "lint": "cdk-lint", + "test": "cdk-test", + "integ": "cdk-integ", + "pkglint": "pkglint -f", + "package": "cdk-package", + "awslint": "cdk-awslint", + "cfn2ts": "cfn2ts", + "build+test+package": "npm run build+test && npm run package", + "build+test": "npm run build && npm test", + "compat": "cdk-compat" + }, + "cdk-build": { + "cloudformation": "AWS::NetworkManager" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "AWS::NetworkManager", + "aws-networkmanager" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com", + "organization": true + }, + "jest": {}, + "license": "Apache-2.0", + "devDependencies": { + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" + }, + "dependencies": { + "@aws-cdk/core": "0.0.0" + }, + "peerDependencies": { + "@aws-cdk/core": "0.0.0" + }, + "engines": { + "node": ">= 10.3.0" + }, + "stability": "experimental", + "awscdkio": { + "announce": false + } +} diff --git a/packages/@aws-cdk/aws-networkmanager/test/networkmanager.test.ts b/packages/@aws-cdk/aws-networkmanager/test/networkmanager.test.ts new file mode 100644 index 0000000000000..e394ef336bfb4 --- /dev/null +++ b/packages/@aws-cdk/aws-networkmanager/test/networkmanager.test.ts @@ -0,0 +1,6 @@ +import '@aws-cdk/assert/jest'; +import {} from '../lib'; + +test('No tests are specified for this package', () => { + expect(true).toBe(true); +}); diff --git a/packages/@aws-cdk/aws-resourcegroups/.gitignore b/packages/@aws-cdk/aws-resourcegroups/.gitignore new file mode 100644 index 0000000000000..66bc512521d1f --- /dev/null +++ b/packages/@aws-cdk/aws-resourcegroups/.gitignore @@ -0,0 +1,17 @@ +*.js +*.js.map +*.d.ts +tsconfig.json +tslint.json +node_modules +*.generated.ts +dist +.jsii + +.LAST_BUILD +.nyc_output +coverage +.nycrc +.LAST_PACKAGE +*.snk +nyc.config.js diff --git a/packages/@aws-cdk/aws-resourcegroups/.npmignore b/packages/@aws-cdk/aws-resourcegroups/.npmignore new file mode 100644 index 0000000000000..c18b5f700c0c9 --- /dev/null +++ b/packages/@aws-cdk/aws-resourcegroups/.npmignore @@ -0,0 +1,20 @@ +# Don't include original .ts files when doing `npm pack` +*.ts +!*.d.ts +coverage +.nyc_output +*.tgz + +dist +.LAST_PACKAGE +.LAST_BUILD +!*.js + +# Include .jsii +!.jsii + +*.snk + +*.tsbuildinfo + +tsconfig.json diff --git a/packages/@aws-cdk/aws-resourcegroups/LICENSE b/packages/@aws-cdk/aws-resourcegroups/LICENSE new file mode 100644 index 0000000000000..b71ec1688783a --- /dev/null +++ b/packages/@aws-cdk/aws-resourcegroups/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/packages/@aws-cdk/aws-resourcegroups/NOTICE b/packages/@aws-cdk/aws-resourcegroups/NOTICE new file mode 100644 index 0000000000000..bfccac9a7f69c --- /dev/null +++ b/packages/@aws-cdk/aws-resourcegroups/NOTICE @@ -0,0 +1,2 @@ +AWS Cloud Development Kit (AWS CDK) +Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. diff --git a/packages/@aws-cdk/aws-resourcegroups/README.md b/packages/@aws-cdk/aws-resourcegroups/README.md new file mode 100644 index 0000000000000..60b9785675394 --- /dev/null +++ b/packages/@aws-cdk/aws-resourcegroups/README.md @@ -0,0 +1,24 @@ +## AWS::ResourceGroups Construct Library + + +--- + +![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) + +> **This is a _developer preview_ (public beta) module.** +> +> All classes with the `Cfn` prefix in this module ([CFN Resources](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib)) +> are auto-generated from CloudFormation. They are stable and safe to use. +> +> However, all other classes, i.e., higher level constructs, are under active development and subject to non-backward +> compatible changes or removal in any future version. These are not subject to the [Semantic Versioning](https://semver.org/) model. +> This means that while you may use them, you may need to update your source code when upgrading to a newer version of this package. + +--- + + +This module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project. + +```ts +import resourcegroups = require('@aws-cdk/aws-resourcegroups'); +``` diff --git a/packages/@aws-cdk/aws-resourcegroups/lib/index.ts b/packages/@aws-cdk/aws-resourcegroups/lib/index.ts new file mode 100644 index 0000000000000..0dad84c84d64d --- /dev/null +++ b/packages/@aws-cdk/aws-resourcegroups/lib/index.ts @@ -0,0 +1,2 @@ +// AWS::ResourceGroups CloudFormation Resources: +export * from './resourcegroups.generated'; diff --git a/packages/@aws-cdk/aws-resourcegroups/package.json b/packages/@aws-cdk/aws-resourcegroups/package.json new file mode 100644 index 0000000000000..0e10735fdfc6d --- /dev/null +++ b/packages/@aws-cdk/aws-resourcegroups/package.json @@ -0,0 +1,86 @@ +{ + "name": "@aws-cdk/aws-resourcegroups", + "version": "0.0.0", + "description": "The CDK Construct Library for AWS::ResourceGroups", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "jsii": { + "outdir": "dist", + "targets": { + "dotnet": { + "namespace": "Amazon.CDK.AWS.ResourceGroups", + "packageId": "Amazon.CDK.AWS.ResourceGroups", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk", + "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png" + }, + "java": { + "package": "software.amazon.awscdk.services.resourcegroups", + "maven": { + "groupId": "software.amazon.awscdk", + "artifactId": "resourcegroups" + } + }, + "python": { + "distName": "aws-cdk.aws-resourcegroups", + "module": "aws_cdk.aws_resourcegroups" + } + } + }, + "repository": { + "type": "git", + "url": "https://github.com/aws/aws-cdk.git", + "directory": "packages/@aws-cdk/aws-resourcegroups" + }, + "homepage": "https://github.com/aws/aws-cdk", + "scripts": { + "build": "cdk-build", + "watch": "cdk-watch", + "lint": "cdk-lint", + "test": "cdk-test", + "integ": "cdk-integ", + "pkglint": "pkglint -f", + "package": "cdk-package", + "awslint": "cdk-awslint", + "cfn2ts": "cfn2ts", + "build+test+package": "npm run build+test && npm run package", + "build+test": "npm run build && npm test", + "compat": "cdk-compat" + }, + "cdk-build": { + "cloudformation": "AWS::ResourceGroups" + }, + "keywords": [ + "aws", + "cdk", + "constructs", + "AWS::ResourceGroups", + "aws-resourcegroups" + ], + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com", + "organization": true + }, + "jest": {}, + "license": "Apache-2.0", + "devDependencies": { + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" + }, + "dependencies": { + "@aws-cdk/core": "0.0.0" + }, + "peerDependencies": { + "@aws-cdk/core": "0.0.0" + }, + "engines": { + "node": ">= 10.3.0" + }, + "stability": "experimental", + "awscdkio": { + "announce": false + } +} diff --git a/packages/@aws-cdk/aws-resourcegroups/test/resourcegroups.test.ts b/packages/@aws-cdk/aws-resourcegroups/test/resourcegroups.test.ts new file mode 100644 index 0000000000000..e394ef336bfb4 --- /dev/null +++ b/packages/@aws-cdk/aws-resourcegroups/test/resourcegroups.test.ts @@ -0,0 +1,6 @@ +import '@aws-cdk/assert/jest'; +import {} from '../lib'; + +test('No tests are specified for this package', () => { + expect(true).toBe(true); +}); diff --git a/packages/@aws-cdk/cfnspec/CHANGELOG.md b/packages/@aws-cdk/cfnspec/CHANGELOG.md index 145749514fda3..c7d02412f43a0 100644 --- a/packages/@aws-cdk/cfnspec/CHANGELOG.md +++ b/packages/@aws-cdk/cfnspec/CHANGELOG.md @@ -1,3 +1,67 @@ +# CloudFormation Resource Specification v11.6.0 + +## New Resource Types + +* AWS::Cassandra::Keyspace +* AWS::Cassandra::Table +* AWS::CodeGuruProfiler::ProfilingGroup +* AWS::NetworkManager::CustomerGatewayAssociation +* AWS::NetworkManager::Device +* AWS::NetworkManager::GlobalNetwork +* AWS::NetworkManager::Link +* AWS::NetworkManager::LinkAssociation +* AWS::NetworkManager::Site +* AWS::NetworkManager::TransitGatewayRegistration +* AWS::ResourceGroups::Group + +## Attribute Changes + +* AWS::AppMesh::Mesh MeshOwner.PrimitiveType (__added__) +* AWS::AppMesh::Mesh ResourceOwner.PrimitiveType (__added__) +* AWS::AppMesh::Route MeshOwner.PrimitiveType (__added__) +* AWS::AppMesh::Route ResourceOwner.PrimitiveType (__added__) +* AWS::AppMesh::VirtualNode MeshOwner.PrimitiveType (__added__) +* AWS::AppMesh::VirtualNode ResourceOwner.PrimitiveType (__added__) +* AWS::AppMesh::VirtualRouter MeshOwner.PrimitiveType (__added__) +* AWS::AppMesh::VirtualRouter ResourceOwner.PrimitiveType (__added__) +* AWS::AppMesh::VirtualService MeshOwner.PrimitiveType (__added__) +* AWS::AppMesh::VirtualService ResourceOwner.PrimitiveType (__added__) + +## Property Changes + +* AWS::ApiGatewayV2::Integration TlsConfig (__added__) +* AWS::AppMesh::Route MeshOwner (__added__) +* AWS::AppMesh::VirtualNode MeshOwner (__added__) +* AWS::AppMesh::VirtualRouter MeshOwner (__added__) +* AWS::AppMesh::VirtualService MeshOwner (__added__) +* AWS::DMS::Endpoint KafkaSettings (__added__) +* AWS::EC2::ClientVpnEndpoint SecurityGroupIds (__added__) +* AWS::EC2::ClientVpnEndpoint VpcId (__added__) +* AWS::MSK::Cluster LoggingInfo (__added__) +* AWS::ServiceCatalog::LaunchRoleConstraint LocalRoleName (__added__) +* AWS::ServiceCatalog::LaunchRoleConstraint RoleArn.Required (__changed__) + * Old: true + * New: false + +## Property Type Changes + +* AWS::ApiGatewayV2::Integration.TlsConfig (__added__) +* AWS::CloudFront::Distribution.OriginGroup (__added__) +* AWS::CloudFront::Distribution.OriginGroupFailoverCriteria (__added__) +* AWS::CloudFront::Distribution.OriginGroupMember (__added__) +* AWS::CloudFront::Distribution.OriginGroupMembers (__added__) +* AWS::CloudFront::Distribution.OriginGroups (__added__) +* AWS::CloudFront::Distribution.StatusCodes (__added__) +* AWS::DMS::Endpoint.KafkaSettings (__added__) +* AWS::MSK::Cluster.BrokerLogs (__added__) +* AWS::MSK::Cluster.CloudWatchLogs (__added__) +* AWS::MSK::Cluster.Firehose (__added__) +* AWS::MSK::Cluster.LoggingInfo (__added__) +* AWS::MSK::Cluster.S3 (__added__) +* AWS::CloudFront::Distribution.DistributionConfig OriginGroups (__added__) +* AWS::CloudFront::Distribution.LambdaFunctionAssociation IncludeBody (__added__) + + # CloudFormation Resource Specification v11.4.0 ## New Resource Types diff --git a/packages/@aws-cdk/cfnspec/cfn.version b/packages/@aws-cdk/cfnspec/cfn.version index 72773deb895e2..146d5de797140 100644 --- a/packages/@aws-cdk/cfnspec/cfn.version +++ b/packages/@aws-cdk/cfnspec/cfn.version @@ -1 +1 @@ -11.4.0 +11.6.0 diff --git a/packages/@aws-cdk/cfnspec/spec-source/000_CloudFormationResourceSpecification.json b/packages/@aws-cdk/cfnspec/spec-source/000_CloudFormationResourceSpecification.json index 332ce2c8339b8..9be67cb38b8f8 100644 --- a/packages/@aws-cdk/cfnspec/spec-source/000_CloudFormationResourceSpecification.json +++ b/packages/@aws-cdk/cfnspec/spec-source/000_CloudFormationResourceSpecification.json @@ -1372,6 +1372,17 @@ } } }, + "AWS::ApiGatewayV2::Integration.TlsConfig": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-integration-tlsconfig.html", + "Properties": { + "ServerNameToVerify": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-integration-tlsconfig.html#cfn-apigatewayv2-integration-tlsconfig-servernametoverify", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, "AWS::ApiGatewayV2::Route.ParameterConstraints": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-route-parameterconstraints.html", "Properties": { @@ -5058,6 +5069,74 @@ } } }, + "AWS::Cassandra::Table.BillingMode": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-billingmode.html", + "Properties": { + "Mode": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-billingmode.html#cfn-cassandra-table-billingmode-mode", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "ProvisionedThroughput": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-billingmode.html#cfn-cassandra-table-billingmode-provisionedthroughput", + "Required": false, + "Type": "ProvisionedThroughput", + "UpdateType": "Mutable" + } + } + }, + "AWS::Cassandra::Table.ClusteringKeyColumn": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-clusteringkeycolumn.html", + "Properties": { + "Column": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-clusteringkeycolumn.html#cfn-cassandra-table-clusteringkeycolumn-column", + "Required": true, + "Type": "Column", + "UpdateType": "Immutable" + }, + "OrderBy": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-clusteringkeycolumn.html#cfn-cassandra-table-clusteringkeycolumn-orderby", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Immutable" + } + } + }, + "AWS::Cassandra::Table.Column": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-column.html", + "Properties": { + "ColumnName": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-column.html#cfn-cassandra-table-column-columnname", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "ColumnType": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-column.html#cfn-cassandra-table-column-columntype", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + } + } + }, + "AWS::Cassandra::Table.ProvisionedThroughput": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-provisionedthroughput.html", + "Properties": { + "ReadCapacityUnits": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-provisionedthroughput.html#cfn-cassandra-table-provisionedthroughput-readcapacityunits", + "PrimitiveType": "Integer", + "Required": true, + "UpdateType": "Mutable" + }, + "WriteCapacityUnits": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-provisionedthroughput.html#cfn-cassandra-table-provisionedthroughput-writecapacityunits", + "PrimitiveType": "Integer", + "Required": true, + "UpdateType": "Mutable" + } + } + }, "AWS::CertificateManager::Certificate.DomainValidationOption": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-certificatemanager-certificate-domainvalidationoption.html", "Properties": { @@ -5438,6 +5517,12 @@ "Type": "Logging", "UpdateType": "Mutable" }, + "OriginGroups": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-origingroups", + "Required": false, + "Type": "OriginGroups", + "UpdateType": "Mutable" + }, "Origins": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-origins", "ItemType": "Origin", @@ -5529,6 +5614,12 @@ "Required": false, "UpdateType": "Mutable" }, + "IncludeBody": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-lambdafunctionassociation.html#cfn-cloudfront-distribution-lambdafunctionassociation-includebody", + "PrimitiveType": "Boolean", + "Required": false, + "UpdateType": "Mutable" + }, "LambdaFunctionARN": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-lambdafunctionassociation.html#cfn-cloudfront-distribution-lambdafunctionassociation-lambdafunctionarn", "PrimitiveType": "String", @@ -5619,6 +5710,87 @@ } } }, + "AWS::CloudFront::Distribution.OriginGroup": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroup.html", + "Properties": { + "FailoverCriteria": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroup.html#cfn-cloudfront-distribution-origingroup-failovercriteria", + "Required": true, + "Type": "OriginGroupFailoverCriteria", + "UpdateType": "Mutable" + }, + "Id": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroup.html#cfn-cloudfront-distribution-origingroup-id", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "Members": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroup.html#cfn-cloudfront-distribution-origingroup-members", + "Required": true, + "Type": "OriginGroupMembers", + "UpdateType": "Mutable" + } + } + }, + "AWS::CloudFront::Distribution.OriginGroupFailoverCriteria": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroupfailovercriteria.html", + "Properties": { + "StatusCodes": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroupfailovercriteria.html#cfn-cloudfront-distribution-origingroupfailovercriteria-statuscodes", + "Required": true, + "Type": "StatusCodes", + "UpdateType": "Mutable" + } + } + }, + "AWS::CloudFront::Distribution.OriginGroupMember": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroupmember.html", + "Properties": { + "OriginId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroupmember.html#cfn-cloudfront-distribution-origingroupmember-originid", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + } + } + }, + "AWS::CloudFront::Distribution.OriginGroupMembers": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroupmembers.html", + "Properties": { + "Items": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroupmembers.html#cfn-cloudfront-distribution-origingroupmembers-items", + "ItemType": "OriginGroupMember", + "Required": true, + "Type": "List", + "UpdateType": "Mutable" + }, + "Quantity": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroupmembers.html#cfn-cloudfront-distribution-origingroupmembers-quantity", + "PrimitiveType": "Integer", + "Required": true, + "UpdateType": "Mutable" + } + } + }, + "AWS::CloudFront::Distribution.OriginGroups": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroups.html", + "Properties": { + "Items": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroups.html#cfn-cloudfront-distribution-origingroups-items", + "ItemType": "OriginGroup", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, + "Quantity": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroups.html#cfn-cloudfront-distribution-origingroups-quantity", + "PrimitiveType": "Integer", + "Required": true, + "UpdateType": "Mutable" + } + } + }, "AWS::CloudFront::Distribution.Restrictions": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-restrictions.html", "Properties": { @@ -5641,6 +5813,24 @@ } } }, + "AWS::CloudFront::Distribution.StatusCodes": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-statuscodes.html", + "Properties": { + "Items": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-statuscodes.html#cfn-cloudfront-distribution-statuscodes-items", + "PrimitiveItemType": "Integer", + "Required": true, + "Type": "List", + "UpdateType": "Mutable" + }, + "Quantity": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-statuscodes.html#cfn-cloudfront-distribution-statuscodes-quantity", + "PrimitiveType": "Integer", + "Required": true, + "UpdateType": "Mutable" + } + } + }, "AWS::CloudFront::Distribution.ViewerCertificate": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html", "Properties": { @@ -8770,6 +8960,23 @@ } } }, + "AWS::DMS::Endpoint.KafkaSettings": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html", + "Properties": { + "Broker": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-broker", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "Topic": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-topic", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, "AWS::DMS::Endpoint.KinesisSettings": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html", "Properties": { @@ -22528,6 +22735,29 @@ } } }, + "AWS::MSK::Cluster.BrokerLogs": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-brokerlogs.html", + "Properties": { + "CloudWatchLogs": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-brokerlogs.html#cfn-msk-cluster-brokerlogs-cloudwatchlogs", + "Required": false, + "Type": "CloudWatchLogs", + "UpdateType": "Mutable" + }, + "Firehose": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-brokerlogs.html#cfn-msk-cluster-brokerlogs-firehose", + "Required": false, + "Type": "Firehose", + "UpdateType": "Mutable" + }, + "S3": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-brokerlogs.html#cfn-msk-cluster-brokerlogs-s3", + "Required": false, + "Type": "S3", + "UpdateType": "Mutable" + } + } + }, "AWS::MSK::Cluster.BrokerNodeGroupInfo": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-brokernodegroupinfo.html", "Properties": { @@ -22576,6 +22806,23 @@ } } }, + "AWS::MSK::Cluster.CloudWatchLogs": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-cloudwatchlogs.html", + "Properties": { + "Enabled": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-cloudwatchlogs.html#cfn-msk-cluster-cloudwatchlogs-enabled", + "PrimitiveType": "Boolean", + "Required": true, + "UpdateType": "Mutable" + }, + "LogGroup": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-cloudwatchlogs.html#cfn-msk-cluster-cloudwatchlogs-loggroup", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, "AWS::MSK::Cluster.ConfigurationInfo": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-configurationinfo.html", "Properties": { @@ -22649,6 +22896,23 @@ } } }, + "AWS::MSK::Cluster.Firehose": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-firehose.html", + "Properties": { + "DeliveryStream": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-firehose.html#cfn-msk-cluster-firehose-deliverystream", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "Enabled": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-firehose.html#cfn-msk-cluster-firehose-enabled", + "PrimitiveType": "Boolean", + "Required": true, + "UpdateType": "Mutable" + } + } + }, "AWS::MSK::Cluster.JmxExporter": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-jmxexporter.html", "Properties": { @@ -22660,6 +22924,17 @@ } } }, + "AWS::MSK::Cluster.LoggingInfo": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-logginginfo.html", + "Properties": { + "BrokerLogs": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-logginginfo.html#cfn-msk-cluster-logginginfo-brokerlogs", + "Required": true, + "Type": "BrokerLogs", + "UpdateType": "Mutable" + } + } + }, "AWS::MSK::Cluster.NodeExporter": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-nodeexporter.html", "Properties": { @@ -22699,6 +22974,29 @@ } } }, + "AWS::MSK::Cluster.S3": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-s3.html", + "Properties": { + "Bucket": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-s3.html#cfn-msk-cluster-s3-bucket", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "Enabled": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-s3.html#cfn-msk-cluster-s3-enabled", + "PrimitiveType": "Boolean", + "Required": true, + "UpdateType": "Mutable" + }, + "Prefix": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-s3.html#cfn-msk-cluster-s3-prefix", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, "AWS::MSK::Cluster.StorageInfo": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-storageinfo.html", "Properties": { @@ -23524,6 +23822,69 @@ } } }, + "AWS::NetworkManager::Device.Location": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkmanager-device-location.html", + "Properties": { + "Address": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkmanager-device-location.html#cfn-networkmanager-device-location-address", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "Latitude": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkmanager-device-location.html#cfn-networkmanager-device-location-latitude", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "Longitude": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkmanager-device-location.html#cfn-networkmanager-device-location-longitude", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, + "AWS::NetworkManager::Link.Bandwidth": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkmanager-link-bandwidth.html", + "Properties": { + "DownloadSpeed": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkmanager-link-bandwidth.html#cfn-networkmanager-link-bandwidth-downloadspeed", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "UploadSpeed": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkmanager-link-bandwidth.html#cfn-networkmanager-link-bandwidth-uploadspeed", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + } + } + }, + "AWS::NetworkManager::Site.Location": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkmanager-site-location.html", + "Properties": { + "Address": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkmanager-site-location.html#cfn-networkmanager-site-location-address", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "Latitude": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkmanager-site-location.html#cfn-networkmanager-site-location-latitude", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "Longitude": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkmanager-site-location.html#cfn-networkmanager-site-location-longitude", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, "AWS::OpsWorks::App.DataSource": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-datasource.html", "Properties": { @@ -25391,6 +25752,66 @@ } } }, + "AWS::ResourceGroups::Group.Query": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resourcegroups-group-query.html", + "Properties": { + "ResourceTypeFilters": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resourcegroups-group-query.html#cfn-resourcegroups-group-query-resourcetypefilters", + "PrimitiveItemType": "String", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, + "StackIdentifier": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resourcegroups-group-query.html#cfn-resourcegroups-group-query-stackidentifier", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "TagFilters": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resourcegroups-group-query.html#cfn-resourcegroups-group-query-tagfilters", + "ItemType": "TagFilter", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + } + } + }, + "AWS::ResourceGroups::Group.ResourceQuery": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resourcegroups-group-resourcequery.html", + "Properties": { + "Query": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resourcegroups-group-resourcequery.html#cfn-resourcegroups-group-resourcequery-query", + "Required": false, + "Type": "Query", + "UpdateType": "Mutable" + }, + "Type": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resourcegroups-group-resourcequery.html#cfn-resourcegroups-group-resourcequery-type", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, + "AWS::ResourceGroups::Group.TagFilter": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resourcegroups-group-tagfilter.html", + "Properties": { + "Key": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resourcegroups-group-tagfilter.html#cfn-resourcegroups-group-tagfilter-key", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "Values": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resourcegroups-group-tagfilter.html#cfn-resourcegroups-group-tagfilter-values", + "PrimitiveItemType": "String", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + } + } + }, "AWS::RoboMaker::RobotApplication.RobotSoftwareSuite": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-robotapplication-robotsoftwaresuite.html", "Properties": { @@ -30327,7 +30748,7 @@ } } }, - "ResourceSpecificationVersion": "11.4.0", + "ResourceSpecificationVersion": "11.6.0", "ResourceTypes": { "AWS::ACMPCA::Certificate": { "Attributes": { @@ -32069,6 +32490,12 @@ "PrimitiveType": "Integer", "Required": false, "UpdateType": "Mutable" + }, + "TlsConfig": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-tlsconfig", + "Required": false, + "Type": "TlsConfig", + "UpdateType": "Mutable" } } }, @@ -32564,8 +32991,12 @@ "MeshName": { "PrimitiveType": "String" }, - "MeshOwner": {}, - "ResourceOwner": {}, + "MeshOwner": { + "PrimitiveType": "String" + }, + "ResourceOwner": { + "PrimitiveType": "String" + }, "Uid": { "PrimitiveType": "String" } @@ -32601,8 +33032,12 @@ "MeshName": { "PrimitiveType": "String" }, - "MeshOwner": {}, - "ResourceOwner": {}, + "MeshOwner": { + "PrimitiveType": "String" + }, + "ResourceOwner": { + "PrimitiveType": "String" + }, "RouteName": { "PrimitiveType": "String" }, @@ -32621,6 +33056,12 @@ "Required": true, "UpdateType": "Immutable" }, + "MeshOwner": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-route.html#cfn-appmesh-route-meshowner", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Immutable" + }, "RouteName": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-route.html#cfn-appmesh-route-routename", "PrimitiveType": "String", @@ -32656,8 +33097,12 @@ "MeshName": { "PrimitiveType": "String" }, - "MeshOwner": {}, - "ResourceOwner": {}, + "MeshOwner": { + "PrimitiveType": "String" + }, + "ResourceOwner": { + "PrimitiveType": "String" + }, "Uid": { "PrimitiveType": "String" }, @@ -32673,6 +33118,12 @@ "Required": true, "UpdateType": "Immutable" }, + "MeshOwner": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualnode.html#cfn-appmesh-virtualnode-meshowner", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Immutable" + }, "Spec": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualnode.html#cfn-appmesh-virtualnode-spec", "Required": true, @@ -32702,8 +33153,12 @@ "MeshName": { "PrimitiveType": "String" }, - "MeshOwner": {}, - "ResourceOwner": {}, + "MeshOwner": { + "PrimitiveType": "String" + }, + "ResourceOwner": { + "PrimitiveType": "String" + }, "Uid": { "PrimitiveType": "String" }, @@ -32719,6 +33174,12 @@ "Required": true, "UpdateType": "Immutable" }, + "MeshOwner": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualrouter.html#cfn-appmesh-virtualrouter-meshowner", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Immutable" + }, "Spec": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualrouter.html#cfn-appmesh-virtualrouter-spec", "Required": true, @@ -32748,8 +33209,12 @@ "MeshName": { "PrimitiveType": "String" }, - "MeshOwner": {}, - "ResourceOwner": {}, + "MeshOwner": { + "PrimitiveType": "String" + }, + "ResourceOwner": { + "PrimitiveType": "String" + }, "Uid": { "PrimitiveType": "String" }, @@ -32765,6 +33230,12 @@ "Required": true, "UpdateType": "Immutable" }, + "MeshOwner": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualservice.html#cfn-appmesh-virtualservice-meshowner", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Immutable" + }, "Spec": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualservice.html#cfn-appmesh-virtualservice-spec", "Required": true, @@ -34435,6 +34906,64 @@ } } }, + "AWS::Cassandra::Keyspace": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-keyspace.html", + "Properties": { + "KeyspaceName": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-keyspace.html#cfn-cassandra-keyspace-keyspacename", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Immutable" + } + } + }, + "AWS::Cassandra::Table": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html", + "Properties": { + "BillingMode": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-billingmode", + "Required": false, + "Type": "BillingMode", + "UpdateType": "Mutable" + }, + "ClusteringKeyColumns": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-clusteringkeycolumns", + "DuplicatesAllowed": false, + "ItemType": "ClusteringKeyColumn", + "Required": false, + "Type": "List", + "UpdateType": "Immutable" + }, + "KeyspaceName": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-keyspacename", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Immutable" + }, + "PartitionKeyColumns": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-partitionkeycolumns", + "DuplicatesAllowed": false, + "ItemType": "Column", + "Required": true, + "Type": "List", + "UpdateType": "Immutable" + }, + "RegularColumns": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-regularcolumns", + "DuplicatesAllowed": false, + "ItemType": "Column", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, + "TableName": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-tablename", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Immutable" + } + } + }, "AWS::CertificateManager::Certificate": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html", "Properties": { @@ -35529,6 +36058,22 @@ } } }, + "AWS::CodeGuruProfiler::ProfilingGroup": { + "Attributes": { + "Arn": { + "PrimitiveType": "String" + } + }, + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeguruprofiler-profilinggroup.html", + "Properties": { + "ProfilingGroupName": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeguruprofiler-profilinggroup.html#cfn-codeguruprofiler-profilinggroup-profilinggroupname", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Immutable" + } + } + }, "AWS::CodePipeline::CustomActionType": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html", "Properties": { @@ -37078,6 +37623,12 @@ "Required": false, "UpdateType": "Mutable" }, + "KafkaSettings": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-kafkasettings", + "Required": false, + "Type": "KafkaSettings", + "UpdateType": "Mutable" + }, "KinesisSettings": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-kinesissettings", "Required": false, @@ -38070,6 +38621,13 @@ "Type": "List", "UpdateType": "Mutable" }, + "SecurityGroupIds": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-securitygroupids", + "PrimitiveItemType": "String", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, "ServerCertificateArn": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-servercertificatearn", "PrimitiveType": "String", @@ -38095,6 +38653,12 @@ "Required": false, "UpdateType": "Immutable" }, + "VpcId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-vpcid", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, "VpnPort": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-vpnport", "PrimitiveType": "Integer", @@ -46409,6 +46973,12 @@ "Required": true, "UpdateType": "Immutable" }, + "LoggingInfo": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-cluster.html#cfn-msk-cluster-logginginfo", + "Required": false, + "Type": "LoggingInfo", + "UpdateType": "Mutable" + }, "NumberOfBrokerNodes": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-msk-cluster.html#cfn-msk-cluster-numberofbrokernodes", "PrimitiveType": "Integer", @@ -47174,6 +47744,263 @@ } } }, + "AWS::NetworkManager::CustomerGatewayAssociation": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-customergatewayassociation.html", + "Properties": { + "CustomerGatewayArn": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-customergatewayassociation.html#cfn-networkmanager-customergatewayassociation-customergatewayarn", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Immutable" + }, + "DeviceId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-customergatewayassociation.html#cfn-networkmanager-customergatewayassociation-deviceid", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Immutable" + }, + "GlobalNetworkId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-customergatewayassociation.html#cfn-networkmanager-customergatewayassociation-globalnetworkid", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Immutable" + }, + "LinkId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-customergatewayassociation.html#cfn-networkmanager-customergatewayassociation-linkid", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Immutable" + } + } + }, + "AWS::NetworkManager::Device": { + "Attributes": { + "DeviceArn": { + "PrimitiveType": "String" + }, + "DeviceId": { + "PrimitiveType": "String" + } + }, + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-device.html", + "Properties": { + "Description": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-device.html#cfn-networkmanager-device-description", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "GlobalNetworkId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-device.html#cfn-networkmanager-device-globalnetworkid", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Immutable" + }, + "Location": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-device.html#cfn-networkmanager-device-location", + "Required": false, + "Type": "Location", + "UpdateType": "Mutable" + }, + "Model": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-device.html#cfn-networkmanager-device-model", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "SerialNumber": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-device.html#cfn-networkmanager-device-serialnumber", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "SiteId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-device.html#cfn-networkmanager-device-siteid", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "Tags": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-device.html#cfn-networkmanager-device-tags", + "ItemType": "Tag", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, + "Type": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-device.html#cfn-networkmanager-device-type", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "Vendor": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-device.html#cfn-networkmanager-device-vendor", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, + "AWS::NetworkManager::GlobalNetwork": { + "Attributes": { + "Arn": { + "PrimitiveType": "String" + }, + "Id": { + "PrimitiveType": "String" + } + }, + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-globalnetwork.html", + "Properties": { + "Description": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-globalnetwork.html#cfn-networkmanager-globalnetwork-description", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "Tags": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-globalnetwork.html#cfn-networkmanager-globalnetwork-tags", + "ItemType": "Tag", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + } + } + }, + "AWS::NetworkManager::Link": { + "Attributes": { + "LinkArn": { + "PrimitiveType": "String" + }, + "LinkId": { + "PrimitiveType": "String" + } + }, + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-link.html", + "Properties": { + "Bandwidth": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-link.html#cfn-networkmanager-link-bandwidth", + "Required": true, + "Type": "Bandwidth", + "UpdateType": "Mutable" + }, + "Description": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-link.html#cfn-networkmanager-link-description", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "GlobalNetworkId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-link.html#cfn-networkmanager-link-globalnetworkid", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Immutable" + }, + "Provider": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-link.html#cfn-networkmanager-link-provider", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "SiteId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-link.html#cfn-networkmanager-link-siteid", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Immutable" + }, + "Tags": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-link.html#cfn-networkmanager-link-tags", + "ItemType": "Tag", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + }, + "Type": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-link.html#cfn-networkmanager-link-type", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, + "AWS::NetworkManager::LinkAssociation": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-linkassociation.html", + "Properties": { + "DeviceId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-linkassociation.html#cfn-networkmanager-linkassociation-deviceid", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Immutable" + }, + "GlobalNetworkId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-linkassociation.html#cfn-networkmanager-linkassociation-globalnetworkid", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Immutable" + }, + "LinkId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-linkassociation.html#cfn-networkmanager-linkassociation-linkid", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Immutable" + } + } + }, + "AWS::NetworkManager::Site": { + "Attributes": { + "SiteArn": { + "PrimitiveType": "String" + }, + "SiteId": { + "PrimitiveType": "String" + } + }, + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-site.html", + "Properties": { + "Description": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-site.html#cfn-networkmanager-site-description", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "GlobalNetworkId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-site.html#cfn-networkmanager-site-globalnetworkid", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Immutable" + }, + "Location": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-site.html#cfn-networkmanager-site-location", + "Required": false, + "Type": "Location", + "UpdateType": "Mutable" + }, + "Tags": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-site.html#cfn-networkmanager-site-tags", + "ItemType": "Tag", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + } + } + }, + "AWS::NetworkManager::TransitGatewayRegistration": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-transitgatewayregistration.html", + "Properties": { + "GlobalNetworkId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-transitgatewayregistration.html#cfn-networkmanager-transitgatewayregistration-globalnetworkid", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Immutable" + }, + "TransitGatewayArn": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkmanager-transitgatewayregistration.html#cfn-networkmanager-transitgatewayregistration-transitgatewayarn", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Immutable" + } + } + }, "AWS::OpsWorks::App": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-app.html", "Properties": { @@ -50026,6 +50853,41 @@ } } }, + "AWS::ResourceGroups::Group": { + "Attributes": { + "Arn": { + "PrimitiveType": "String" + } + }, + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resourcegroups-group.html", + "Properties": { + "Description": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resourcegroups-group.html#cfn-resourcegroups-group-description", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "Name": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resourcegroups-group.html#cfn-resourcegroups-group-name", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Immutable" + }, + "ResourceQuery": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resourcegroups-group.html#cfn-resourcegroups-group-resourcequery", + "Required": false, + "Type": "ResourceQuery", + "UpdateType": "Mutable" + }, + "Tags": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-resourcegroups-group.html#cfn-resourcegroups-group-tags", + "ItemType": "Json", + "Required": false, + "Type": "List", + "UpdateType": "Mutable" + } + } + }, "AWS::RoboMaker::Fleet": { "Attributes": { "Arn": { @@ -52242,6 +53104,12 @@ "Required": false, "UpdateType": "Mutable" }, + "LocalRoleName": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchroleconstraint.html#cfn-servicecatalog-launchroleconstraint-localrolename", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, "PortfolioId": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchroleconstraint.html#cfn-servicecatalog-launchroleconstraint-portfolioid", "PrimitiveType": "String", @@ -52257,7 +53125,7 @@ "RoleArn": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchroleconstraint.html#cfn-servicecatalog-launchroleconstraint-rolearn", "PrimitiveType": "String", - "Required": true, + "Required": false, "UpdateType": "Mutable" } } diff --git a/packages/@aws-cdk/cfnspec/spec-source/530_ResourceGroups_Tags_patch.json b/packages/@aws-cdk/cfnspec/spec-source/530_ResourceGroups_Tags_patch.json new file mode 100644 index 0000000000000..da2d3c603ddbd --- /dev/null +++ b/packages/@aws-cdk/cfnspec/spec-source/530_ResourceGroups_Tags_patch.json @@ -0,0 +1,24 @@ +{ + "ResourceTypes": { + "AWS::ResourceGroups::Group": { + "patch": { + "description": "Sets AWS::ResourceGroups::Group#Tags to Json", + "operations": [ + { + "op": "remove", + "path": "/Properties/Tags/ItemType" + }, + { + "op": "remove", + "path": "/Properties/Tags/Type" + }, + { + "op": "add", + "path": "/Properties/Tags/PrimitiveType", + "value": "Json" + } + ] + } + } + } +} diff --git a/packages/decdk/package.json b/packages/decdk/package.json index 05822392a1725..dcae5b4cda00f 100644 --- a/packages/decdk/package.json +++ b/packages/decdk/package.json @@ -49,6 +49,7 @@ "@aws-cdk/aws-backup": "0.0.0", "@aws-cdk/aws-batch": "0.0.0", "@aws-cdk/aws-budgets": "0.0.0", + "@aws-cdk/aws-cassandra": "0.0.0", "@aws-cdk/aws-certificatemanager": "0.0.0", "@aws-cdk/aws-chatbot": "0.0.0", "@aws-cdk/aws-cloud9": "0.0.0", @@ -60,6 +61,7 @@ "@aws-cdk/aws-codebuild": "0.0.0", "@aws-cdk/aws-codecommit": "0.0.0", "@aws-cdk/aws-codedeploy": "0.0.0", + "@aws-cdk/aws-codeguruprofiler": "0.0.0", "@aws-cdk/aws-codepipeline": "0.0.0", "@aws-cdk/aws-codepipeline-actions": "0.0.0", "@aws-cdk/aws-codestar": "0.0.0", @@ -122,6 +124,7 @@ "@aws-cdk/aws-mediastore": "0.0.0", "@aws-cdk/aws-msk": "0.0.0", "@aws-cdk/aws-neptune": "0.0.0", + "@aws-cdk/aws-networkmanager": "0.0.0", "@aws-cdk/aws-opsworks": "0.0.0", "@aws-cdk/aws-opsworkscm": "0.0.0", "@aws-cdk/aws-pinpoint": "0.0.0", @@ -130,6 +133,7 @@ "@aws-cdk/aws-ram": "0.0.0", "@aws-cdk/aws-rds": "0.0.0", "@aws-cdk/aws-redshift": "0.0.0", + "@aws-cdk/aws-resourcegroups": "0.0.0", "@aws-cdk/aws-robomaker": "0.0.0", "@aws-cdk/aws-route53": "0.0.0", "@aws-cdk/aws-route53-patterns": "0.0.0", @@ -165,10 +169,10 @@ "@aws-cdk/custom-resources": "0.0.0", "@aws-cdk/cx-api": "0.0.0", "@aws-cdk/region-info": "0.0.0", + "constructs": "^2.0.0", "fs-extra": "^8.1.0", "jsii-reflect": "^1.1.0", "jsonschema": "^1.2.5", - "constructs": "^2.0.0", "yaml": "1.8.3", "yargs": "^15.3.1" }, diff --git a/packages/monocdk-experiment/package.json b/packages/monocdk-experiment/package.json index b12845679a9f2..2bd3469ea1b13 100644 --- a/packages/monocdk-experiment/package.json +++ b/packages/monocdk-experiment/package.json @@ -161,7 +161,11 @@ "@aws-cdk/region-info": "0.0.0", "@types/node": "^10.17.17", "@aws-cdk/aws-chatbot": "0.0.0", - "@aws-cdk/aws-codestarconnections": "0.0.0" + "@aws-cdk/aws-codestarconnections": "0.0.0", + "@aws-cdk/aws-cassandra": "0.0.0", + "@aws-cdk/aws-codeguruprofiler": "0.0.0", + "@aws-cdk/aws-networkmanager": "0.0.0", + "@aws-cdk/aws-resourcegroups": "0.0.0" }, "peerDependencies": { "constructs": "^2.0.0" From 0809746b6e8305dd975e3c66ff9e679d62b39029 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2020 20:43:25 +0000 Subject: [PATCH 11/15] chore(deps): bump @typescript-eslint/eslint-plugin from 2.25.0 to 2.26.0 (#7077) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.25.0 to 2.26.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.26.0/packages/eslint-plugin) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- tools/cdk-build-tools/package.json | 2 +- yarn.lock | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/tools/cdk-build-tools/package.json b/tools/cdk-build-tools/package.json index 242e91c9a7c2b..757b7b6cb17a3 100644 --- a/tools/cdk-build-tools/package.json +++ b/tools/cdk-build-tools/package.json @@ -37,7 +37,7 @@ "pkglint": "0.0.0" }, "dependencies": { - "@typescript-eslint/eslint-plugin": "^2.25.0", + "@typescript-eslint/eslint-plugin": "^2.26.0", "@typescript-eslint/parser": "^2.19.2", "awslint": "0.0.0", "colors": "^1.4.0", diff --git a/yarn.lock b/yarn.lock index 7d29a353f141e..19e63fa7f8432 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2131,12 +2131,12 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^2.25.0": - version "2.25.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.25.0.tgz#0b60917332f20dcff54d0eb9be2a9e9f4c9fbd02" - integrity sha512-W2YyMtjmlrOjtXc+FtTelVs9OhuR6OlYc4XKIslJ8PUJOqgYYAPRJhAqkYRQo3G4sjvG8jSodsNycEn4W2gHUw== +"@typescript-eslint/eslint-plugin@^2.26.0": + version "2.26.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.26.0.tgz#04c96560c8981421e5a9caad8394192363cc423f" + integrity sha512-4yUnLv40bzfzsXcTAtZyTjbiGUXMrcIJcIMioI22tSOyAxpdXiZ4r7YQUU8Jj6XXrLz9d5aMHPQf5JFR7h27Nw== dependencies: - "@typescript-eslint/experimental-utils" "2.25.0" + "@typescript-eslint/experimental-utils" "2.26.0" functional-red-black-tree "^1.0.1" regexpp "^3.0.0" tsutils "^3.17.1" @@ -2150,13 +2150,13 @@ "@typescript-eslint/typescript-estree" "2.23.0" eslint-scope "^5.0.0" -"@typescript-eslint/experimental-utils@2.25.0": - version "2.25.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.25.0.tgz#13691c4fe368bd377b1e5b1e4ad660b220bf7714" - integrity sha512-0IZ4ZR5QkFYbaJk+8eJ2kYeA+1tzOE1sBjbwwtSV85oNWYUBep+EyhlZ7DLUCyhMUGuJpcCCFL0fDtYAP1zMZw== +"@typescript-eslint/experimental-utils@2.26.0": + version "2.26.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.26.0.tgz#063390c404d9980767d76274df386c0aa675d91d" + integrity sha512-RELVoH5EYd+JlGprEyojUv9HeKcZqF7nZUGSblyAw1FwOGNnmQIU8kxJ69fttQvEwCsX5D6ECJT8GTozxrDKVQ== dependencies: "@types/json-schema" "^7.0.3" - "@typescript-eslint/typescript-estree" "2.25.0" + "@typescript-eslint/typescript-estree" "2.26.0" eslint-scope "^5.0.0" eslint-utils "^2.0.0" @@ -2183,10 +2183,10 @@ semver "^6.3.0" tsutils "^3.17.1" -"@typescript-eslint/typescript-estree@2.25.0": - version "2.25.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.25.0.tgz#b790497556734b7476fa7dd3fa539955a5c79e2c" - integrity sha512-VUksmx5lDxSi6GfmwSK7SSoIKSw9anukWWNitQPqt58LuYrKalzsgeuignbqnB+rK/xxGlSsCy8lYnwFfB6YJg== +"@typescript-eslint/typescript-estree@2.26.0": + version "2.26.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.26.0.tgz#d8132cf1ee8a72234f996519a47d8a9118b57d56" + integrity sha512-3x4SyZCLB4zsKsjuhxDLeVJN6W29VwBnYpCsZ7vIdPel9ZqLfIZJgJXO47MNUkurGpQuIBALdPQKtsSnWpE1Yg== dependencies: debug "^4.1.1" eslint-visitor-keys "^1.1.0" From 9b37211286e4d9def1a0a3d195c25c75487ba1bf Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2020 21:40:53 +0000 Subject: [PATCH 12/15] chore(deps): bump aws-sdk from 2.648.0 to 2.649.0 (#7078) Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.648.0 to 2.649.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.648.0...v2.649.0) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- packages/@aws-cdk/aws-cloudfront/package.json | 2 +- packages/@aws-cdk/aws-cloudtrail/package.json | 2 +- packages/@aws-cdk/aws-codebuild/package.json | 2 +- packages/@aws-cdk/aws-codecommit/package.json | 2 +- packages/@aws-cdk/aws-dynamodb/package.json | 2 +- packages/@aws-cdk/aws-eks/package.json | 2 +- packages/@aws-cdk/aws-events-targets/package.json | 2 +- packages/@aws-cdk/aws-lambda/package.json | 2 +- packages/@aws-cdk/aws-route53/package.json | 2 +- packages/@aws-cdk/aws-sqs/package.json | 2 +- packages/@aws-cdk/custom-resources/package.json | 2 +- packages/aws-cdk/package.json | 2 +- packages/cdk-assets/package.json | 2 +- yarn.lock | 8 ++++---- 14 files changed, 17 insertions(+), 17 deletions(-) diff --git a/packages/@aws-cdk/aws-cloudfront/package.json b/packages/@aws-cdk/aws-cloudfront/package.json index 7a4239c504273..bcc2543c2f221 100644 --- a/packages/@aws-cdk/aws-cloudfront/package.json +++ b/packages/@aws-cdk/aws-cloudfront/package.json @@ -64,7 +64,7 @@ "devDependencies": { "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "aws-sdk": "^2.648.0", + "aws-sdk": "^2.649.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-cloudtrail/package.json b/packages/@aws-cdk/aws-cloudtrail/package.json index a28db00fc3e55..0b9b9759b4dba 100644 --- a/packages/@aws-cdk/aws-cloudtrail/package.json +++ b/packages/@aws-cdk/aws-cloudtrail/package.json @@ -64,7 +64,7 @@ "devDependencies": { "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "aws-sdk": "^2.648.0", + "aws-sdk": "^2.649.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-codebuild/package.json b/packages/@aws-cdk/aws-codebuild/package.json index ae6a3331e5a1b..2d82e832c8fe4 100644 --- a/packages/@aws-cdk/aws-codebuild/package.json +++ b/packages/@aws-cdk/aws-codebuild/package.json @@ -70,7 +70,7 @@ "@aws-cdk/aws-sns": "0.0.0", "@aws-cdk/aws-sqs": "0.0.0", "@types/nodeunit": "^0.0.30", - "aws-sdk": "^2.648.0", + "aws-sdk": "^2.649.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-codecommit/package.json b/packages/@aws-cdk/aws-codecommit/package.json index c9dbf7c021c96..925f5eef7dbd3 100644 --- a/packages/@aws-cdk/aws-codecommit/package.json +++ b/packages/@aws-cdk/aws-codecommit/package.json @@ -70,7 +70,7 @@ "@aws-cdk/assert": "0.0.0", "@aws-cdk/aws-sns": "0.0.0", "@types/nodeunit": "^0.0.30", - "aws-sdk": "^2.648.0", + "aws-sdk": "^2.649.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-dynamodb/package.json b/packages/@aws-cdk/aws-dynamodb/package.json index e7aec094f6238..72e5d4ddbd62c 100644 --- a/packages/@aws-cdk/aws-dynamodb/package.json +++ b/packages/@aws-cdk/aws-dynamodb/package.json @@ -64,7 +64,7 @@ "devDependencies": { "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "aws-sdk": "^2.648.0", + "aws-sdk": "^2.649.0", "aws-sdk-mock": "^5.1.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", diff --git a/packages/@aws-cdk/aws-eks/package.json b/packages/@aws-cdk/aws-eks/package.json index 4924f02579a7e..04ef99a9ff764 100644 --- a/packages/@aws-cdk/aws-eks/package.json +++ b/packages/@aws-cdk/aws-eks/package.json @@ -64,7 +64,7 @@ "devDependencies": { "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "aws-sdk": "^2.648.0", + "aws-sdk": "^2.649.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-events-targets/package.json b/packages/@aws-cdk/aws-events-targets/package.json index f39e7a40bb7c2..32b6caaa092f7 100644 --- a/packages/@aws-cdk/aws-events-targets/package.json +++ b/packages/@aws-cdk/aws-events-targets/package.json @@ -86,7 +86,7 @@ "devDependencies": { "@aws-cdk/assert": "0.0.0", "@aws-cdk/aws-codecommit": "0.0.0", - "aws-sdk": "^2.648.0", + "aws-sdk": "^2.649.0", "aws-sdk-mock": "^5.1.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", diff --git a/packages/@aws-cdk/aws-lambda/package.json b/packages/@aws-cdk/aws-lambda/package.json index 25b0362367c1c..4c490765330fc 100644 --- a/packages/@aws-cdk/aws-lambda/package.json +++ b/packages/@aws-cdk/aws-lambda/package.json @@ -71,7 +71,7 @@ "@types/lodash": "^4.14.149", "@types/nodeunit": "^0.0.30", "@types/sinon": "^7.5.2", - "aws-sdk": "^2.648.0", + "aws-sdk": "^2.649.0", "aws-sdk-mock": "^5.1.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", diff --git a/packages/@aws-cdk/aws-route53/package.json b/packages/@aws-cdk/aws-route53/package.json index ee7a45fff725d..d92400cb785ba 100644 --- a/packages/@aws-cdk/aws-route53/package.json +++ b/packages/@aws-cdk/aws-route53/package.json @@ -64,7 +64,7 @@ "devDependencies": { "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "aws-sdk": "^2.648.0", + "aws-sdk": "^2.649.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/aws-sqs/package.json b/packages/@aws-cdk/aws-sqs/package.json index 77951dd6858c0..4c917cfac09d1 100644 --- a/packages/@aws-cdk/aws-sqs/package.json +++ b/packages/@aws-cdk/aws-sqs/package.json @@ -65,7 +65,7 @@ "@aws-cdk/assert": "0.0.0", "@aws-cdk/aws-s3": "0.0.0", "@types/nodeunit": "^0.0.30", - "aws-sdk": "^2.648.0", + "aws-sdk": "^2.649.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", "cfn2ts": "0.0.0", diff --git a/packages/@aws-cdk/custom-resources/package.json b/packages/@aws-cdk/custom-resources/package.json index f5567a07d8fd6..8ae76a380e070 100644 --- a/packages/@aws-cdk/custom-resources/package.json +++ b/packages/@aws-cdk/custom-resources/package.json @@ -73,7 +73,7 @@ "@types/aws-lambda": "^8.10.39", "@types/fs-extra": "^8.1.0", "@types/sinon": "^7.5.2", - "aws-sdk": "^2.648.0", + "aws-sdk": "^2.649.0", "aws-sdk-mock": "^5.1.0", "cdk-build-tools": "0.0.0", "cdk-integ-tools": "0.0.0", diff --git a/packages/aws-cdk/package.json b/packages/aws-cdk/package.json index 78fd3adfabc37..0391336ec21cc 100644 --- a/packages/aws-cdk/package.json +++ b/packages/aws-cdk/package.json @@ -69,7 +69,7 @@ "@aws-cdk/cx-api": "0.0.0", "@aws-cdk/region-info": "0.0.0", "archiver": "^3.1.1", - "aws-sdk": "^2.648.0", + "aws-sdk": "^2.649.0", "camelcase": "^5.3.1", "cdk-assets": "0.0.0", "colors": "^1.4.0", diff --git a/packages/cdk-assets/package.json b/packages/cdk-assets/package.json index 5d38fbb4f8714..b450dedf744dc 100644 --- a/packages/cdk-assets/package.json +++ b/packages/cdk-assets/package.json @@ -44,7 +44,7 @@ "dependencies": { "@aws-cdk/cdk-assets-schema": "0.0.0", "archiver": "^3.1.1", - "aws-sdk": "^2.648.0", + "aws-sdk": "^2.649.0", "glob": "^7.1.6", "yargs": "^15.3.1" }, diff --git a/yarn.lock b/yarn.lock index 19e63fa7f8432..fc00fe4a7842c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2619,10 +2619,10 @@ aws-sdk-mock@^5.1.0: sinon "^9.0.1" traverse "^0.6.6" -aws-sdk@^2.637.0, aws-sdk@^2.648.0: - version "2.648.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.648.0.tgz#6cbea887b98c3ee8316870e9eead659194e35094" - integrity sha512-b+PdZmCFvZBisqXEH68jO4xB30LrDHQMWrEX6MJoZaOlxPJfpOqRFUH3zsiAXF5Q2jTdjYLtS5bs3vcIwRzi3Q== +aws-sdk@^2.637.0, aws-sdk@^2.649.0: + version "2.649.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.649.0.tgz#a600584171a53a4dcf09d768e514b7bdc408abab" + integrity sha512-0o3l+bfz++KOYHG0gdWofSX/1EdyaD1ixEvWXt71mBbDM1vWc71xfXGzPRtt8Cu8/Id47v7DE3ayELZytzLCXQ== dependencies: buffer "4.9.1" events "1.1.1" From 282b0ad14b1f9ba934e63b7cdb7b24b7e2c9d898 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 31 Mar 2020 00:51:19 +0000 Subject: [PATCH 13/15] chore(deps-dev): bump @types/node from 10.17.17 to 10.17.18 (#7081) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 10.17.17 to 10.17.18. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- packages/@monocdk-experiment/rewrite-imports/package.json | 2 +- packages/aws-cdk/package.json | 2 +- packages/cdk-assets/package.json | 2 +- packages/monocdk-experiment/package.json | 2 +- yarn.lock | 8 ++++---- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/@monocdk-experiment/rewrite-imports/package.json b/packages/@monocdk-experiment/rewrite-imports/package.json index 87ea2ecc66796..0b76ed6bacea8 100644 --- a/packages/@monocdk-experiment/rewrite-imports/package.json +++ b/packages/@monocdk-experiment/rewrite-imports/package.json @@ -33,7 +33,7 @@ "devDependencies": { "@types/glob": "^7.1.1", "@types/jest": "^25.1.4", - "@types/node": "^10.17.17", + "@types/node": "^10.17.18", "cdk-build-tools": "0.0.0", "pkglint": "0.0.0" }, diff --git a/packages/aws-cdk/package.json b/packages/aws-cdk/package.json index 0391336ec21cc..f3cceb7d24163 100644 --- a/packages/aws-cdk/package.json +++ b/packages/aws-cdk/package.json @@ -47,7 +47,7 @@ "@types/jest": "^25.1.4", "@types/minimatch": "^3.0.3", "@types/mockery": "^1.4.29", - "@types/node": "^10.17.17", + "@types/node": "^10.17.18", "@types/promptly": "^3.0.0", "@types/semver": "^7.1.0", "@types/sinon": "^7.5.2", diff --git a/packages/cdk-assets/package.json b/packages/cdk-assets/package.json index b450dedf744dc..204764b7a0f3d 100644 --- a/packages/cdk-assets/package.json +++ b/packages/cdk-assets/package.json @@ -32,7 +32,7 @@ "@types/glob": "^7.1.1", "@types/jest": "^25.1.4", "@types/mock-fs": "^4.10.0", - "@types/node": "^10.17.17", + "@types/node": "^10.17.18", "@types/yargs": "^15.0.4", "@types/jszip": "^3.1.7", "jszip": "^3.2.2", diff --git a/packages/monocdk-experiment/package.json b/packages/monocdk-experiment/package.json index 2bd3469ea1b13..c43e2873dabc2 100644 --- a/packages/monocdk-experiment/package.json +++ b/packages/monocdk-experiment/package.json @@ -159,7 +159,7 @@ "@aws-cdk/custom-resources": "0.0.0", "@aws-cdk/cx-api": "0.0.0", "@aws-cdk/region-info": "0.0.0", - "@types/node": "^10.17.17", + "@types/node": "^10.17.18", "@aws-cdk/aws-chatbot": "0.0.0", "@aws-cdk/aws-codestarconnections": "0.0.0", "@aws-cdk/aws-cassandra": "0.0.0", diff --git a/yarn.lock b/yarn.lock index fc00fe4a7842c..7338b2baf902b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2046,10 +2046,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.1.tgz#96f606f8cd67fb018847d9b61e93997dabdefc72" integrity sha512-E6M6N0blf/jiZx8Q3nb0vNaswQeEyn0XlupO+xN6DtJ6r6IT4nXrTry7zhIfYvFCl3/8Cu6WIysmUBKiqV0bqQ== -"@types/node@^10.17.17": - version "10.17.17" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.17.tgz#7a183163a9e6ff720d86502db23ba4aade5999b8" - integrity sha512-gpNnRnZP3VWzzj5k3qrpRC6Rk3H/uclhAVo1aIvwzK5p5cOrs9yEyQ8H/HBsBY0u5rrWxXEiVPQ0dEB6pkjE8Q== +"@types/node@^10.17.18": + version "10.17.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.18.tgz#ae364d97382aacdebf583fa4e7132af2dfe56a0c" + integrity sha512-DQ2hl/Jl3g33KuAUOcMrcAOtsbzb+y/ufakzAdeK9z/H/xsvkpbETZZbPNMIiQuk24f5ZRMCcZIViAwyFIiKmg== "@types/nodeunit@^0.0.30": version "0.0.30" From bded68336265a4c77804726208d3638fc5cbd260 Mon Sep 17 00:00:00 2001 From: Shiv Lakshminarayan Date: Mon, 30 Mar 2020 18:37:58 -0700 Subject: [PATCH 14/15] feat(kinesis): stream encryption with the Kinesis master key (#7057) feat(kinesis): stream encryption with the Kinesis master key Adds a `StreamEncryption` option to specify that encryption should be enabled on a Stream with the master key managed by Kinesis. Closes #751 --- packages/@aws-cdk/aws-kinesis/README.md | 15 ++++- packages/@aws-cdk/aws-kinesis/lib/stream.ts | 22 +++++-- .../@aws-cdk/aws-kinesis/test/test.stream.ts | 58 ++++++++++++++++++- 3 files changed, 87 insertions(+), 8 deletions(-) diff --git a/packages/@aws-cdk/aws-kinesis/README.md b/packages/@aws-cdk/aws-kinesis/README.md index 2e7e0e6a26176..d805856111752 100644 --- a/packages/@aws-cdk/aws-kinesis/README.md +++ b/packages/@aws-cdk/aws-kinesis/README.md @@ -59,10 +59,19 @@ Streams are not encrypted by default. [Stream encryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-stream-streamencryption.html) enables server-side encryption using an AWS KMS key for a specified stream. -You can enable encryption on your streams by specifying the `encryption` property. A KMS key will be created for you and associated with the stream. +You can enable encryption on your stream with the master key owned by Kinesis Data Streams by specifying the `encryption` property. ```ts -const stream = new Stream(this, "MyEncryptedStream", { +new Stream(this, 'MyEncryptedStream', { + encryption: StreamEncryption.MANAGED +}); +``` + +You can enable encryption on your stream with a user-managed key by specifying the `encryption` property. +A KMS key will be created for you and associated with the stream. + +```ts +new Stream(this, "MyEncryptedStream", { encryption: StreamEncryption.KMS }); ``` @@ -74,7 +83,7 @@ import * as kms from "@aws-cdk/aws-kms"; const key = new kms.Key(this, "MyKey"); -const stream = new Stream(this, "MyEncryptedStream", { +new Stream(this, "MyEncryptedStream", { encryption: StreamEncryption.KMS, encryptionKey: key }); diff --git a/packages/@aws-cdk/aws-kinesis/lib/stream.ts b/packages/@aws-cdk/aws-kinesis/lib/stream.ts index 09cc92e05e722..f6a683449c09d 100644 --- a/packages/@aws-cdk/aws-kinesis/lib/stream.ts +++ b/packages/@aws-cdk/aws-kinesis/lib/stream.ts @@ -201,7 +201,7 @@ export interface StreamProps { * If you choose KMS, you can specify a KMS key via `encryptionKey`. If * encryption key is not specified, a key will automatically be created. * - * @default Unencrypted + * @default - StreamEncryption.KMS if encryptionKey is specified, or StreamEncryption.UNENCRYPTED otherwise */ readonly encryption?: StreamEncryption; @@ -210,7 +210,7 @@ export interface StreamProps { * * The 'encryption' property must be set to "Kms". * - * @default If encryption is set to "Kms" and this property is undefined, a + * @default - If encryption is set to "KMS" and this property is undefined, a * new KMS key will be created and associated with this stream. */ readonly encryptionKey?: kms.IKey; @@ -294,8 +294,9 @@ export class Stream extends StreamBase { encryptionKey?: kms.IKey } { - // default to unencrypted. - const encryptionType = props.encryption || StreamEncryption.UNENCRYPTED; + // default based on whether encryption key is specified + const encryptionType = props.encryption ?? + (props.encryptionKey ? StreamEncryption.KMS : StreamEncryption.UNENCRYPTED); // if encryption key is set, encryption must be set to KMS. if (encryptionType !== StreamEncryption.KMS && props.encryptionKey) { @@ -306,6 +307,14 @@ export class Stream extends StreamBase { return { streamEncryption: undefined, encryptionKey: undefined }; } + if (encryptionType === StreamEncryption.MANAGED) { + const encryption = { encryptionType: 'KMS', keyId: 'alias/aws/kinesis'}; + return { + streamEncryption: encryption, + encryptionKey: undefined + }; + } + if (encryptionType === StreamEncryption.KMS) { const encryptionKey = props.encryptionKey || new kms.Key(this, 'Key', { description: `Created by ${this.node.path}` @@ -336,4 +345,9 @@ export enum StreamEncryption { * If `encryptionKey` is specified, this key will be used, otherwise, one will be defined. */ KMS = 'KMS', + + /** + * Server-side encryption with a master key managed by Amazon Kinesis + */ + MANAGED = 'MANAGED' } diff --git a/packages/@aws-cdk/aws-kinesis/test/test.stream.ts b/packages/@aws-cdk/aws-kinesis/test/test.stream.ts index 829e4f68f6b60..b229bc669808e 100644 --- a/packages/@aws-cdk/aws-kinesis/test/test.stream.ts +++ b/packages/@aws-cdk/aws-kinesis/test/test.stream.ts @@ -1,4 +1,4 @@ -import { expect } from '@aws-cdk/assert'; +import { expect, haveResource } from '@aws-cdk/assert'; import * as iam from '@aws-cdk/aws-iam'; import * as kms from '@aws-cdk/aws-kms'; import { App, Duration, Stack } from '@aws-cdk/core'; @@ -97,6 +97,62 @@ export = { test.done(); }, + + 'uses Kinesis master key if MANAGED encryption type is provided'(test: Test) { + // GIVEN + const stack = new Stack(); + + // WHEN + new Stream(stack, 'MyStream', { + encryption: StreamEncryption.MANAGED + }); + + // THEN + expect(stack).toMatch({ + "Resources": { + "MyStream5C050E93": { + "Type": "AWS::Kinesis::Stream", + "Properties": { + "ShardCount": 1, + "RetentionPeriodHours": 24, + "StreamEncryption": { + "EncryptionType": "KMS", + "KeyId": "alias/aws/kinesis" + } + } + } + } + }); + + test.done(); + }, + + 'if a KMS key is supplied, use KMS as the encryption type'(test: Test) { + // GIVEN + const stack = new Stack(); + const key = new kms.Key(stack, 'myKey'); + + // WHEN + new Stream(stack, 'myStream', { + encryptionKey: key + }); + + // THEN + expect(stack).to(haveResource('AWS::Kinesis::Stream', { + ShardCount: 1, + RetentionPeriodHours: 24, + StreamEncryption: { + EncryptionType: 'KMS', + KeyId: { + 'Fn::GetAtt': ['myKey441A1E73', 'Arn'] + } + } + }) + ); + + test.done(); + }, + "auto-creates KMS key if encryption type is KMS but no key is provided"(test: Test) { const stack = new Stack(); From 934d58e966a7ff99dfcff5a479dc75549b248c6f Mon Sep 17 00:00:00 2001 From: Rico Huijbers Date: Tue, 31 Mar 2020 10:39:16 +0200 Subject: [PATCH 15/15] chore(cli): fix bootstrap v2 by adding a missing 'await' (#7087) The title says it all. Q: Why wasn't this caught in testing/why didn't you add a test? A: We had tests on this originally, but we reverted them because they made assumptions on the source environment and would fail when run in the pipeline. Restoring those is next on the agenda. https://github.com/aws/aws-cdk/commit/2e9f241833ea20112c134eaa904425a26007e9d6 --- packages/aws-cdk/lib/api/bootstrap/bootstrap-environment2.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/aws-cdk/lib/api/bootstrap/bootstrap-environment2.ts b/packages/aws-cdk/lib/api/bootstrap/bootstrap-environment2.ts index d65ccc8c56072..2a42af34ae25f 100644 --- a/packages/aws-cdk/lib/api/bootstrap/bootstrap-environment2.ts +++ b/packages/aws-cdk/lib/api/bootstrap/bootstrap-environment2.ts @@ -19,7 +19,7 @@ export async function bootstrapEnvironment2(environment: cxapi.Environment, sdk: // convert from YAML to JSON (which the Cloud Assembly uses) const templateFile = `${toolkitStackName}.template.json`; const bootstrapTemplatePath = path.join(__dirname, 'bootstrap-template.yaml'); - const bootstrapTemplateObject = loadStructuredFile(bootstrapTemplatePath); + const bootstrapTemplateObject = await loadStructuredFile(bootstrapTemplatePath); await fs.writeJson( path.join(builder.outdir, templateFile), bootstrapTemplateObject);