diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 87fdccb0cbb7a..3116ffd4a844d 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,7 +1,7 @@ --- name: "\U00002753 General Issue" about: Create a new issue -labels: status/needs-triage +labels: needs-triage --- diff --git a/.github/ISSUE_TEMPLATE/bug.md b/.github/ISSUE_TEMPLATE/bug.md index 273b24583ca51..c8c28a35eff3e 100644 --- a/.github/ISSUE_TEMPLATE/bug.md +++ b/.github/ISSUE_TEMPLATE/bug.md @@ -1,7 +1,7 @@ --- name: "\U0001F41B Bug Report" about: Report a bug -labels: bug, status/needs-triage +labels: bug, needs-triage --- diff --git a/.github/ISSUE_TEMPLATE/general-issues.md b/.github/ISSUE_TEMPLATE/general-issues.md index 18ff0ed728595..eb34c66987c42 100644 --- a/.github/ISSUE_TEMPLATE/general-issues.md +++ b/.github/ISSUE_TEMPLATE/general-issues.md @@ -1,7 +1,7 @@ --- name: "\U00002753 General Issue" about: Create a new issue -labels: status/needs-triage +labels: needs-triage --- diff --git a/.github/ISSUE_TEMPLATE/tracking.md b/.github/ISSUE_TEMPLATE/tracking.md new file mode 100644 index 0000000000000..0b7af0fdc1547 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/tracking.md @@ -0,0 +1,61 @@ +--- +name: "📊 Tracking Issue" +title: "📊Tracking: [service]" +about: Add a module tracking issue (internal use only) +labels: management/tracking +--- + +Add your +1 👍 to help us prioritize high-level constructs for this service +--- + +### Overview: + + + + + + + +[AWS Docs](url) +[CDK API Reference](url) + + +### Implementation: + + + + + + + +### Issue list: + + + + + + + + +--- +This is a 📊Tracking Issue diff --git a/.github/actions/prlinter/package.json b/.github/actions/prlinter/package.json index 5ae65461ca232..2927c04d2fdcd 100644 --- a/.github/actions/prlinter/package.json +++ b/.github/actions/prlinter/package.json @@ -1,11 +1,11 @@ { "name": "prlinter", "private": true, - "version": "999.0.0", + "version": "0.0.0", "description": "", "main": "index.js", "keywords": [], - "license": "Apache-2.0", + "license": "Apache-2.0", "author": { "name": "Amazon Web Services", "url": "https://aws.amazon.com", @@ -16,4 +16,4 @@ "@actions/github": "^2.1.0", "prlint": "file:../../../tools/prlint" } -} +} \ No newline at end of file diff --git a/.mergify.yml b/.mergify.yml index c3c903c5d5f65..cee2d79f48cd5 100644 --- a/.mergify.yml +++ b/.mergify.yml @@ -11,7 +11,7 @@ pull_request_rules: - name: automatic merge actions: comment: - message: Thank you for contributing! Your pull request is now being automatically merged. + message: Thank you for contributing! Your pull request will be updated from master and then merged automatically (do not update manually, and be sure to [allow changes to be pushed to your fork](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/allowing-changes-to-a-pull-request-branch-created-from-a-fork)). merge: strict: smart method: squash @@ -34,7 +34,7 @@ pull_request_rules: - name: automatic merge actions: comment: - message: Thank you for contributing! Your pull request is now being automatically merged without squashing. + message: Thank you for contributing! Your pull request will be updated from master and then merged automatically without squashing (do not update manually, and be sure to [allow changes to be pushed to your fork](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/allowing-changes-to-a-pull-request-branch-created-from-a-fork)). merge: strict: smart # Merge instead of squash @@ -42,7 +42,6 @@ pull_request_rules: strict_method: merge delete_head_branch: {} conditions: - - base!=release - -title~=(WIP|wip) - -label~=(blocked|do-not-merge) # Only if no-squash is set diff --git a/.versionrc.json b/.versionrc.json new file mode 100644 index 0000000000000..3178955551057 --- /dev/null +++ b/.versionrc.json @@ -0,0 +1,5 @@ +{ + "skip": { "tag": true }, + "packageFiles": [ { "filename": "lerna.json", "type": "json" } ], + "bumpFiles": [ { "filename": "lerna.json", "type": "json" } ] +} diff --git a/CHANGELOG.md b/CHANGELOG.md index 3006e3bb7f32d..ddd74d7d6a255 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,57 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [1.27.0](https://github.com/aws/aws-cdk/compare/v1.26.0...v1.27.0) (2020-03-03) + + +### ⚠ BREAKING CHANGES + +* **cognito:** `UserPool.fromUserPoolAttributes()` has been replaced + by `fromUserPoolId()` and `fromUserPoolArn()`. +* **cognito:** `IUserPool` no longer contains `userPoolProviderName` + and `userPoolProviderUrl`. +* **cognito:** The property `signInType` of `UserPool` has been + renamed to `signInAliases` and given a new type `SignInAliases`. The + list of sign in types are now specified via boolean properties. +* **cognito:** The property `usernameAliasAttributes` of `UserPool` has + been dropped and its functionality merged with the `signInAliases` + property. +* **cognito:** The property `autoVerifiedAttributes` for `UserPool` is + now renamed to `autoVerify` and its default has now changed. The new + default is now determined by the value of `signInAliases`. +* **appsync:** Configuration the user pool authorization is now done through the + authorizationConfig property. This allows us to specify a default + authorization mode out of the supported ones, currently limited to + Cognito user pools and API keys. +* **custom-resources:** `physicalResourceId` and `physicalResourceIdPath` + were unified to a concrete type under the `physicalResourceId` property. + Use `PhysicalResourceId.fromResponse` and `PhysicalResourceId.of` factory + functions to specify it. + +### Features + +* **appsync:** extend authorization configuration ([#6260](https://github.com/aws/aws-cdk/issues/6260)) ([948881a](https://github.com/aws/aws-cdk/commit/948881a242053aad221487c6ca537145230de87f)), closes [#6246](https://github.com/aws/aws-cdk/issues/6246) [#6247](https://github.com/aws/aws-cdk/issues/6247) +* **aws-ec2:** signal, download and execute helpers for UserData ([#6029](https://github.com/aws/aws-cdk/issues/6029)) ([ee8f169](https://github.com/aws/aws-cdk/commit/ee8f16936c0e5cb412fbdd0f210045261374dac9)), closes [#623](https://github.com/aws/aws-cdk/issues/623) +* **cognito:** refresh modeling of import APIs, sign in & autoverified attrs ([#6422](https://github.com/aws/aws-cdk/issues/6422)) ([c02e852](https://github.com/aws/aws-cdk/commit/c02e8528ac12ff8eb2b5ded7695b544c379e51e2)) +* **contributors:** use 0.0.0 as a version marker ([#6463](https://github.com/aws/aws-cdk/issues/6463)) ([d5f88c7](https://github.com/aws/aws-cdk/commit/d5f88c7b3a01e20c202bcb1a5f7baf6c72949b86)), closes [/github.com/aws/aws-cdk/pull/6463/files#diff-6a3371457528722a734f3c51d9238c13](https://github.com/aws//github.com/aws/aws-cdk/pull/6463/files/issues/diff-6a3371457528722a734f3c51d9238c13) +* **custom-resources:** physical resource id union type ([#6518](https://github.com/aws/aws-cdk/issues/6518)) ([d5000bc](https://github.com/aws/aws-cdk/commit/d5000bc1182efb4b218510a2ae211f5362f806d1)) +* **lambda-event-sources:** expose `eventSourceMappingId` ([#5689](https://github.com/aws/aws-cdk/issues/5689)) ([5ea2679](https://github.com/aws/aws-cdk/commit/5ea2679c00f706c04ed8cb14f59746475f31e7db)), closes [#5430](https://github.com/aws/aws-cdk/issues/5430) +* **rds:** master secret in DatabaseSecret ([#6415](https://github.com/aws/aws-cdk/issues/6415)) ([a9e5b60](https://github.com/aws/aws-cdk/commit/a9e5b609b20eff9edaf5775cfbe0802177852475)), closes [#6358](https://github.com/aws/aws-cdk/issues/6358) +* **stepfunctions-tasks:** add step functions task to run glue job ([#6258](https://github.com/aws/aws-cdk/issues/6258)) ([15d9bd7](https://github.com/aws/aws-cdk/commit/15d9bd79690c2cb86c541dcb16c9dc88d8e338ad)), closes [#5266](https://github.com/aws/aws-cdk/issues/5266) + + +### Bug Fixes + +* **assert:** `haveResourceLike` and `countResourcesLike` compatibility ([#6202](https://github.com/aws/aws-cdk/issues/6202)) ([86c04f3](https://github.com/aws/aws-cdk/commit/86c04f354b472e6ff0c4af2cb8235ea9017d1c00)) +* **cli:** fast "no-op" deploys do not consider tags ([#6472](https://github.com/aws/aws-cdk/issues/6472)) ([5de87c1](https://github.com/aws/aws-cdk/commit/5de87c18b554b0cb903c7d0a68cf75ae32d0eb71)), closes [#6463](https://github.com/aws/aws-cdk/issues/6463) +* **codepipeline:** an action's role imported in a different stack adds a dependency to the CodePipeline stack ([#6458](https://github.com/aws/aws-cdk/issues/6458)) ([86ea564](https://github.com/aws/aws-cdk/commit/86ea564665cf0f90341193755233238e2fd46f54)) +* **codepipeline:** automatically named artifacts could contain illegal characters from stage/action names ([#6460](https://github.com/aws/aws-cdk/issues/6460)) ([34aaca4](https://github.com/aws/aws-cdk/commit/34aaca4150e0001b58e154e164be1bedf4ca7f31)) +* **core:** adds enableVersionUpgrade property to CfnUpdatePolicy ([#6434](https://github.com/aws/aws-cdk/issues/6434)) ([f8cacb9](https://github.com/aws/aws-cdk/commit/f8cacb9ae24ef7af45362a5212fddde351e67572)), closes [#6158](https://github.com/aws/aws-cdk/issues/6158) +* **custom-resources:** AwsCustomResource with delete only action fails ([#6363](https://github.com/aws/aws-cdk/issues/6363)) ([61a99e7](https://github.com/aws/aws-cdk/commit/61a99e7145e43793f0a27b693a76d85dd2cb61aa)), closes [#6061](https://github.com/aws/aws-cdk/issues/6061) +* **docker:** cannot use cdk docker assets as base image ([#6471](https://github.com/aws/aws-cdk/issues/6471)) ([983dd40](https://github.com/aws/aws-cdk/commit/983dd403d1293f7b1a01dd18f65d65cfee964eba)), closes [#6466](https://github.com/aws/aws-cdk/issues/6466) +* **rds:** setting timezone on DatabaseInstance causes internal failure ([#6534](https://github.com/aws/aws-cdk/issues/6534)) ([9e2ac91](https://github.com/aws/aws-cdk/commit/9e2ac91b98540cc79550346f390eca1561c79744)), closes [#6439](https://github.com/aws/aws-cdk/issues/6439) +* **stepfunctions:** valid reference path '$' fails with an error ([#6483](https://github.com/aws/aws-cdk/issues/6483)) ([221c83b](https://github.com/aws/aws-cdk/commit/221c83b470bb6b5de3df5aa62d8a55056aa6eb24)), closes [#6388](https://github.com/aws/aws-cdk/issues/6388) + ## [1.26.0](https://github.com/aws/aws-cdk/compare/v1.25.0...v1.26.0) (2020-02-25) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 01355b0f529fe..20c5277e90b23 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -38,6 +38,7 @@ and let us know if it's not up-to-date (even better, submit a PR with your corr - [API Compatibility Checks](#api-compatibility-checks) - [Examples](#examples) - [Feature Flags](#feature-flags) + - [Versioning](#versioning) - [Troubleshooting](#troubleshooting) - [Debugging](#debugging) - [Connecting the VS Code Debugger](#connecting-the-vs-code-debugger) @@ -381,6 +382,12 @@ If you also wish to package to all languages, make sure you have all the [toolch $ ./pack.sh ``` +> NOTE: in local builds, pack.sh will finish but will fail with an error +> indicating the build artifacts use the marker version (`0.0.0`). This is +> normal, and you can trust the output in `dist/` despite the failure. This is a +> protection we have to make sure we don't accidentally release artifacts with +> the marker version. + ### Full Docker build Clone the repo: @@ -659,6 +666,25 @@ CDK](https://github.com/aws/aws-cdk/issues/3398) we will either remove the legacy behavior or flip the logic for all these features and then reset the `FEATURE_FLAGS` map for the next cycle. +### Versioning + +All `package.json` files in this repo use a stable marker version of `0.0.0`. +This means that when you declare dependencies, you should always use `0.0.0`. +This makes it easier for us to bump a new version (the `bump.sh` script will +just update the central version and create a CHANGELOG entry) and also reduces +the chance of merge conflicts after a new version is released. + +Additional scripts that take part in the versioning mechanism: + +- `scripts/get-version.js` can be used to obtain the actual version of the repo. + You can use either from JavaScript code by `require('./scripts/get-version')` + or from a shell script `node -p "require('./scripts/get-version')"`. +- `scripts/get-version-marker.js` returns `0.0.0` and used to DRY the version + marker. +- `scripts/align-version.sh` and `scripts/align-version.js` are used to align + all package.json files in the repo to the official version. This script is + invoked in CI builds and should not be used inside a development environment. + ## Troubleshooting Most build issues can be solved by doing a full clean rebuild: diff --git a/bump.sh b/bump.sh index c7f7b0fe74873..4e27012be15c7 100755 --- a/bump.sh +++ b/bump.sh @@ -19,12 +19,5 @@ echo "Starting ${version} version bump" # /bin/bash ./install.sh -# Generate CHANGELOG and create a commit -# --skip.tag because we create the tag as part of creating the github release -npx standard-version \ - --bumpFiles package.json \ - --release-as ${version} \ - --skip.tag=true \ - --releaseCommitMessageFormat="chore(release): v{{currentTag}}" \ - --commit-all - +# Generate CHANGELOG and create a commit (see .versionrc.json) +npx standard-version --release-as ${version} diff --git a/lerna.json b/lerna.json index b0265f2414ca4..04cf4f39a8ec6 100644 --- a/lerna.json +++ b/lerna.json @@ -10,5 +10,5 @@ "tools/*" ], "rejectCycles": "true", - "version": "999.0.0" + "version": "1.27.0" } diff --git a/pack.sh b/pack.sh index e139d0a048eba..02b901f141273 100755 --- a/pack.sh +++ b/pack.sh @@ -57,8 +57,14 @@ done # Remove a JSII aggregate POM that may have snuk past rm -rf dist/java/software/amazon/jsii -# Get version from lerna -version="$(cat ${root}/lerna.json | grep version | cut -d '"' -f4)" +# Get version +version="$(node -p "require('./scripts/get-version')")" + +# Ensure we don't publish anything beyond 1.x for now +if [[ ! "${version}" == "1."* ]]; then + echo "ERROR: accidentally releasing a major version? Expecting repo version to start with '1.' but got '${version}'" + exit 1 +fi # Get commit from CodePipeline (or git, if we are in CodeBuild) # If CODEBUILD_RESOLVED_SOURCE_VERSION is not defined (i.e. local @@ -79,6 +85,16 @@ HERE # copy CHANGELOG.md to dist/ for github releases cp CHANGELOG.md ${distdir}/ +# defensive: make sure our artifacts don't use the version marker (this means +# that "pack" will always fails when building in a dev environment) +# when we get to 10.0.0, we can fix this... +marker=$(node -p "require('./scripts/get-version-marker')") +if find dist/ | grep "${marker}"; then + echo "ERROR: build artifacts use the version marker '${marker}' instead of a real version." + echo "This is expected for builds in a development environment but should not happen in CI builds!" + exit 1 +fi + # for posterity, print all files in dist echo "==============================================================================================" echo " dist contents" diff --git a/package.json b/package.json index 7b24677100e71..7a6e3617842e8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "aws-cdk", - "version": "1.26.0", + "version": "0.0.0", "private": true, "pkglint": { "include": "dependencies/node-version" @@ -21,7 +21,7 @@ "jsii-rosetta": "^0.22.0", "lerna": "^3.20.2", "standard-version": "^7.1.0", - "typescript": "~3.8.2" + "typescript": "~3.8.3" }, "repository": { "type": "git", @@ -58,4 +58,4 @@ "@aws-cdk/cx-api/semver/**" ] } -} +} \ No newline at end of file diff --git a/packages/@aws-cdk/alexa-ask/README.md b/packages/@aws-cdk/alexa-ask/README.md index e0c201f102b25..84745f20d8f9f 100644 --- a/packages/@aws-cdk/alexa-ask/README.md +++ b/packages/@aws-cdk/alexa-ask/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/alexa-ask/package.json b/packages/@aws-cdk/alexa-ask/package.json index 2af1e5f0438b3..9f896c9ade492 100644 --- a/packages/@aws-cdk/alexa-ask/package.json +++ b/packages/@aws-cdk/alexa-ask/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/alexa-ask", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for Alexa::ASK", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -80,19 +80,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/app-delivery/README.md b/packages/@aws-cdk/app-delivery/README.md index 1d18f77b4a7ea..74464e1ea932c 100644 --- a/packages/@aws-cdk/app-delivery/README.md +++ b/packages/@aws-cdk/app-delivery/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/app-delivery/package.json b/packages/@aws-cdk/app-delivery/package.json index 2f5d1de48fd21..b3e87a18f658d 100644 --- a/packages/@aws-cdk/app-delivery/package.json +++ b/packages/@aws-cdk/app-delivery/package.json @@ -1,7 +1,7 @@ { "name": "@aws-cdk/app-delivery", "description": "Continuous Integration / Continuous Delivery for CDK Applications", - "version": "999.0.0", + "version": "0.0.0", "main": "lib/index.js", "types": "lib/index.d.ts", "jsii": { @@ -40,24 +40,24 @@ "compat": "cdk-compat" }, "dependencies": { - "@aws-cdk/aws-cloudformation": "999.0.0", - "@aws-cdk/aws-codebuild": "999.0.0", - "@aws-cdk/aws-codepipeline": "999.0.0", - "@aws-cdk/aws-codepipeline-actions": "999.0.0", - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/cx-api": "999.0.0" + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-codebuild": "0.0.0", + "@aws-cdk/aws-codepipeline": "0.0.0", + "@aws-cdk/aws-codepipeline-actions": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/cx-api": "0.0.0" }, "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", + "@aws-cdk/assert": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", "fast-check": "^1.22.2", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "repository": { "type": "git", @@ -76,14 +76,14 @@ "cdk" ], "peerDependencies": { - "@aws-cdk/aws-cloudformation": "999.0.0", - "@aws-cdk/aws-codebuild": "999.0.0", - "@aws-cdk/aws-codepipeline": "999.0.0", - "@aws-cdk/aws-codepipeline-actions": "999.0.0", - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/cx-api": "999.0.0" + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-codebuild": "0.0.0", + "@aws-cdk/aws-codepipeline": "0.0.0", + "@aws-cdk/aws-codepipeline-actions": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/cx-api": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -98,4 +98,4 @@ "docs-public-apis:@aws-cdk/app-delivery.PipelineDeployStackActionProps" ] } -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/assert/README.md b/packages/@aws-cdk/assert/README.md index 2657ebdf92cc1..cc68f8b0e911c 100644 --- a/packages/@aws-cdk/assert/README.md +++ b/packages/@aws-cdk/assert/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/assert/lib/assertions/count-resources.ts b/packages/@aws-cdk/assert/lib/assertions/count-resources.ts index 52e96a188e220..1a0eb3b4667cb 100644 --- a/packages/@aws-cdk/assert/lib/assertions/count-resources.ts +++ b/packages/@aws-cdk/assert/lib/assertions/count-resources.ts @@ -1,5 +1,6 @@ import { Assertion } from "../assertion"; import { StackInspector } from "../inspector"; +import { isSuperObject } from "./have-resource"; /** * An assertion to check whether a resource of a given type and with the given properties exists, disregarding properties @@ -32,13 +33,10 @@ class CountResourcesAssertion extends Assertion { const resource = inspector.value.Resources[logicalId]; if (resource.Type === this.resourceType) { if (this.props) { - const propEntries = Object.entries(this.props); - propEntries.forEach(([key, val]) => { - if (resource.Properties && resource.Properties[key] && JSON.stringify(resource.Properties[key]) === JSON.stringify(val)) { - counted++; - this.inspected += 1; - } - }); + if (isSuperObject(resource.Properties, this.props, [], true)) { + counted++; + this.inspected += 1; + } } else { counted++; this.inspected += 1; diff --git a/packages/@aws-cdk/assert/package.json b/packages/@aws-cdk/assert/package.json index 76aafb2124f92..5631aa386ec2d 100644 --- a/packages/@aws-cdk/assert/package.json +++ b/packages/@aws-cdk/assert/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/assert", - "version": "999.0.0", + "version": "0.0.0", "description": "An assertion library for use with CDK Apps", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -30,18 +30,18 @@ "license": "Apache-2.0", "devDependencies": { "@types/jest": "^25.1.2", - "cdk-build-tools": "999.0.0", + "cdk-build-tools": "0.0.0", "jest": "^24.9.0", - "pkglint": "999.0.0", + "pkglint": "0.0.0", "ts-jest": "^25.2.0" }, "dependencies": { - "@aws-cdk/cloudformation-diff": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/cx-api": "999.0.0" + "@aws-cdk/cloudformation-diff": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/cx-api": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0", + "@aws-cdk/core": "0.0.0", "jest": "^24.9.0" }, "repository": { @@ -58,4 +58,4 @@ "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/assert/test/assertions.test.ts b/packages/@aws-cdk/assert/test/assertions.test.ts index d5a7f56132e36..2d860e3518b80 100644 --- a/packages/@aws-cdk/assert/test/assertions.test.ts +++ b/packages/@aws-cdk/assert/test/assertions.test.ts @@ -276,7 +276,7 @@ failingExample('expect to count resources like props - more than ex cdkExpect(synthStack).to(countResourcesLike(resourceType, 1, { parentId: 123 })); }); -failingExample('expect to count resources like props - nested props out of order', () => { +passingExample('expect to count resources like props - nested props out of order', () => { const resourceType = 'Test::Resource'; const synthStack = synthesizedStack(stack => { new TestResource(stack, 'R1', { type: resourceType, properties: { id: 987, parentInfo: { id: 123, name: "A" } } }); @@ -286,7 +286,7 @@ failingExample('expect to count resources like props - nested props cdkExpect(synthStack).to(countResourcesLike(resourceType, 2, { parentInfo: { id: 123, name: "A" } })); }); -failingExample('expect to count resources like props - nested props incomplete', () => { +passingExample('expect to count resources like props - nested props incomplete', () => { const resourceType = 'Test::Resource'; const synthStack = synthesizedStack(stack => { new TestResource(stack, 'R1', { type: resourceType, properties: { id: 987, parentInfo: { id: 123, name: "A" } } }); diff --git a/packages/@aws-cdk/assets/README.md b/packages/@aws-cdk/assets/README.md index a29c543840e88..9529902ff33cc 100644 --- a/packages/@aws-cdk/assets/README.md +++ b/packages/@aws-cdk/assets/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/assets/package.json b/packages/@aws-cdk/assets/package.json index 20c402b42bb39..c7ea66f8c95d9 100644 --- a/packages/@aws-cdk/assets/package.json +++ b/packages/@aws-cdk/assets/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/assets", - "version": "999.0.0", + "version": "0.0.0", "description": "Integration of CDK apps with local assets", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -63,27 +63,27 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/minimatch": "^3.0.3", "@types/nodeunit": "^0.0.30", - "@types/sinon": "^7.5.0", - "aws-cdk": "999.0.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", + "@types/sinon": "^7.5.2", + "aws-cdk": "0.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0", + "pkglint": "0.0.0", "sinon": "^9.0.0", "ts-mock-imports": "^1.2.6" }, "dependencies": { - "@aws-cdk/core": "999.0.0", - "@aws-cdk/cx-api": "999.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/cx-api": "0.0.0", "minimatch": "^3.0.4" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0", - "@aws-cdk/cx-api": "999.0.0" + "@aws-cdk/core": "0.0.0", + "@aws-cdk/cx-api": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -99,4 +99,4 @@ "docs-public-apis:@aws-cdk/assets.FollowMode" ] } -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-accessanalyzer/README.md b/packages/@aws-cdk/aws-accessanalyzer/README.md index e753cbd63f693..9efcec03993f5 100644 --- a/packages/@aws-cdk/aws-accessanalyzer/README.md +++ b/packages/@aws-cdk/aws-accessanalyzer/README.md @@ -5,17 +5,18 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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 diff --git a/packages/@aws-cdk/aws-accessanalyzer/package.json b/packages/@aws-cdk/aws-accessanalyzer/package.json index 8f7aac529a6ed..6e39d21bf6c91 100644 --- a/packages/@aws-cdk/aws-accessanalyzer/package.json +++ b/packages/@aws-cdk/aws-accessanalyzer/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-accessanalyzer", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::AccessAnalyzer", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-acmpca/README.md b/packages/@aws-cdk/aws-acmpca/README.md index 5fb835912bcf4..5992805a4a72d 100644 --- a/packages/@aws-cdk/aws-acmpca/README.md +++ b/packages/@aws-cdk/aws-acmpca/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-acmpca/package.json b/packages/@aws-cdk/aws-acmpca/package.json index dd782dd639aa9..e7922fd4033be 100644 --- a/packages/@aws-cdk/aws-acmpca/package.json +++ b/packages/@aws-cdk/aws-acmpca/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-acmpca", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::ACMPCA", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-amazonmq/README.md b/packages/@aws-cdk/aws-amazonmq/README.md index 84c3e5940eb11..350bc8e4870ba 100644 --- a/packages/@aws-cdk/aws-amazonmq/README.md +++ b/packages/@aws-cdk/aws-amazonmq/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-amazonmq/package.json b/packages/@aws-cdk/aws-amazonmq/package.json index b56fae108b9e2..5c5c2d27053cc 100644 --- a/packages/@aws-cdk/aws-amazonmq/package.json +++ b/packages/@aws-cdk/aws-amazonmq/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-amazonmq", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::AmazonMQ", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -80,19 +80,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-amplify/README.md b/packages/@aws-cdk/aws-amplify/README.md index 4c91ba2f9a82e..72a9126e24e6e 100644 --- a/packages/@aws-cdk/aws-amplify/README.md +++ b/packages/@aws-cdk/aws-amplify/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-amplify/package.json b/packages/@aws-cdk/aws-amplify/package.json index f98d5fc88e1f2..4f990c7d2e6c0 100644 --- a/packages/@aws-cdk/aws-amplify/package.json +++ b/packages/@aws-cdk/aws-amplify/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-amplify", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::Amplify", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-apigateway/README.md b/packages/@aws-cdk/aws-apigateway/README.md index b7537d82c63fb..c7d33102bce74 100644 --- a/packages/@aws-cdk/aws-apigateway/README.md +++ b/packages/@aws-cdk/aws-apigateway/README.md @@ -132,7 +132,11 @@ const key = api.addApiKey('ApiKey'); const plan = api.addUsagePlan('UsagePlan', { name: 'Easy', - apiKey: key + apiKey: key, + throttle: { + rateLimit: 10, + burstLimit: 2 + } }); plan.addApiStage({ @@ -521,9 +525,12 @@ as `example.com`, and for subdomains, such as `www.example.com`. (You can create CNAME records only for subdomains.) ```ts +import * as route53 from '@aws-cdk/aws-route53'; +import * as targets from '@aws-cdk/aws-route53-targets'; + new route53.ARecord(this, 'CustomDomainAliasRecord', { zone: hostedZoneForExampleCom, - target: route53.RecordTarget.fromAlias(new route53_targets.ApiGateway(api)) + target: route53.RecordTarget.fromAlias(new targets.ApiGateway(api)) }); ``` @@ -561,12 +568,15 @@ domain.addBasePathMapping(api); This can also be achieved through the `mapping` configuration when defining the domain as demonstrated above. -If you wish to setup this domain with an Amazon Route53 alias, use the `route53_targets.ApiGatewayDomain`: +If you wish to setup this domain with an Amazon Route53 alias, use the `targets.ApiGatewayDomain`: ```ts +import * as route53 from '@aws-cdk/aws-route53'; +import * as targets from '@aws-cdk/aws-route53-targets'; + new route53.ARecord(this, 'CustomDomainAliasRecord', { zone: hostedZoneForExampleCom, - target: route53.RecordTarget.fromAlias(new route53_targets.ApiGatewayDomain(domainName)) + target: route53.RecordTarget.fromAlias(new targets.ApiGatewayDomain(domainName)) }); ``` diff --git a/packages/@aws-cdk/aws-apigateway/package.json b/packages/@aws-cdk/aws-apigateway/package.json index 23814f890b1fc..d3001166e210f 100644 --- a/packages/@aws-cdk/aws-apigateway/package.json +++ b/packages/@aws-cdk/aws-apigateway/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-apigateway", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::ApiGateway", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,30 +62,30 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-certificatemanager": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-certificatemanager": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-certificatemanager": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-certificatemanager": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" diff --git a/packages/@aws-cdk/aws-apigatewayv2/README.md b/packages/@aws-cdk/aws-apigatewayv2/README.md index 8368e8c281dcc..6b7dbb4c56f69 100644 --- a/packages/@aws-cdk/aws-apigatewayv2/README.md +++ b/packages/@aws-cdk/aws-apigatewayv2/README.md @@ -5,17 +5,18 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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 diff --git a/packages/@aws-cdk/aws-apigatewayv2/package.json b/packages/@aws-cdk/aws-apigatewayv2/package.json index e0cbde003aef4..d082ac26d95b7 100644 --- a/packages/@aws-cdk/aws-apigatewayv2/package.json +++ b/packages/@aws-cdk/aws-apigatewayv2/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-apigatewayv2", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::APIGatewayv2", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -80,19 +80,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-appconfig/README.md b/packages/@aws-cdk/aws-appconfig/README.md index 6d914dee42ba2..f3e0b06fa555d 100644 --- a/packages/@aws-cdk/aws-appconfig/README.md +++ b/packages/@aws-cdk/aws-appconfig/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-appconfig/package.json b/packages/@aws-cdk/aws-appconfig/package.json index f090d2481fab4..907a26c5a2e25 100644 --- a/packages/@aws-cdk/aws-appconfig/package.json +++ b/packages/@aws-cdk/aws-appconfig/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-appconfig", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::AppConfig", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -65,19 +65,19 @@ "jest": {}, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} 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 053dca7f4f289..f2f2a5bed2dfe 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 @@ -35,14 +35,24 @@ export interface BaseTargetTrackingProps { /** * Period after a scale in activity completes before another scale in activity can start. * - * @default - No scale in cooldown. + * @default Duration.seconds(300) for the following scalable targets: ECS services, + * Spot Fleet requests, EMR clusters, AppStream 2.0 fleets, Aurora DB clusters, + * Amazon SageMaker endpoint variants, Custom resources. For all other scalable + * targets, the default value is Duration.seconds(0): DynamoDB tables, DynamoDB + * global secondary indexes, Amazon Comprehend document classification endpoints, + * Lambda provisioned concurrency */ readonly scaleInCooldown?: cdk.Duration; /** * Period after a scale out activity completes before another scale out activity can start. * - * @default - No scale out cooldown. + * @default Duration.seconds(300) for the following scalable targets: ECS services, + * Spot Fleet requests, EMR clusters, AppStream 2.0 fleets, Aurora DB clusters, + * Amazon SageMaker endpoint variants, Custom resources. For all other scalable + * targets, the default value is Duration.seconds(0): DynamoDB tables, DynamoDB + * global secondary indexes, Amazon Comprehend document classification endpoints, + * Lambda provisioned concurrency */ readonly scaleOutCooldown?: cdk.Duration; } diff --git a/packages/@aws-cdk/aws-applicationautoscaling/package.json b/packages/@aws-cdk/aws-applicationautoscaling/package.json index f3c1fcc099c14..ce1e8e34639f3 100644 --- a/packages/@aws-cdk/aws-applicationautoscaling/package.json +++ b/packages/@aws-cdk/aws-applicationautoscaling/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-applicationautoscaling", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::ApplicationAutoScaling", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,26 +62,26 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", "fast-check": "^1.22.2", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-autoscaling-common": "999.0.0", - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-autoscaling-common": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-autoscaling-common": "999.0.0", - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-autoscaling-common": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -118,4 +118,4 @@ ] }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-appmesh/README.md b/packages/@aws-cdk/aws-appmesh/README.md index 173578b0cb7fe..ac48f189141d5 100644 --- a/packages/@aws-cdk/aws-appmesh/README.md +++ b/packages/@aws-cdk/aws-appmesh/README.md @@ -5,17 +5,18 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- - AWS App Mesh is a service mesh based on the [Envoy](https://www.envoyproxy.io/) proxy that makes it easy to monitor and control microservices. App Mesh standardizes how your microservices communicate, giving you end-to-end visibility and helping to ensure high-availability for your applications. App Mesh gives you consistent visibility and network traffic controls for every microservice in an application. diff --git a/packages/@aws-cdk/aws-appmesh/package.json b/packages/@aws-cdk/aws-appmesh/package.json index 42b661aa4e61d..396c25a26b4ed 100644 --- a/packages/@aws-cdk/aws-appmesh/package.json +++ b/packages/@aws-cdk/aws-appmesh/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-appmesh", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::AppMesh", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -64,25 +64,25 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-servicediscovery": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-servicediscovery": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-servicediscovery": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-servicediscovery": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -123,4 +123,4 @@ ] }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-appstream/README.md b/packages/@aws-cdk/aws-appstream/README.md index 4fdb97ab5aadb..d9db3b8ef89ce 100644 --- a/packages/@aws-cdk/aws-appstream/README.md +++ b/packages/@aws-cdk/aws-appstream/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-appstream/package.json b/packages/@aws-cdk/aws-appstream/package.json index 0db4af3ca68ad..86ad4b8d49b3f 100644 --- a/packages/@aws-cdk/aws-appstream/package.json +++ b/packages/@aws-cdk/aws-appstream/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-appstream", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::AppStream", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -80,19 +80,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-appsync/README.md b/packages/@aws-cdk/aws-appsync/README.md index 56e08034ebb38..c60dcf103d32e 100644 --- a/packages/@aws-cdk/aws-appsync/README.md +++ b/packages/@aws-cdk/aws-appsync/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- @@ -70,9 +72,16 @@ export class ApiStack extends Stack { logConfig: { fieldLogLevel: FieldLogLevel.ALL, }, - userPoolConfig: { - userPool, - defaultAction: UserPoolDefaultAction.ALLOW, + authorizationConfig: { + defaultAuthorization: { + userPool, + defaultAction: UserPoolDefaultAction.ALLOW, + }, + additionalAuthorizationModes: [ + { + apiKeyDesc: 'My API Key', + }, + ], }, schemaDefinitionFile: './schema.graphql', }); diff --git a/packages/@aws-cdk/aws-appsync/lib/graphqlapi.ts b/packages/@aws-cdk/aws-appsync/lib/graphqlapi.ts index 15de26772b6c9..36a87436aa4d3 100644 --- a/packages/@aws-cdk/aws-appsync/lib/graphqlapi.ts +++ b/packages/@aws-cdk/aws-appsync/lib/graphqlapi.ts @@ -2,9 +2,14 @@ import { IUserPool } from "@aws-cdk/aws-cognito"; import { Table } from '@aws-cdk/aws-dynamodb'; import { IGrantable, IPrincipal, IRole, ManagedPolicy, Role, ServicePrincipal } from "@aws-cdk/aws-iam"; import { IFunction } from "@aws-cdk/aws-lambda"; -import { Construct, IResolvable } from "@aws-cdk/core"; +import { Construct, Duration, IResolvable } from "@aws-cdk/core"; import { readFileSync } from "fs"; -import { CfnDataSource, CfnGraphQLApi, CfnGraphQLSchema, CfnResolver } from "./appsync.generated"; +import { CfnApiKey, CfnDataSource, CfnGraphQLApi, CfnGraphQLSchema, CfnResolver } from "./appsync.generated"; + +/** + * Marker interface for the different authorization modes. + */ +export interface AuthMode { } /** * enum with all possible values for Cognito user-pool default actions @@ -23,7 +28,7 @@ export enum UserPoolDefaultAction { /** * Configuration for Cognito user-pools in AppSync */ -export interface UserPoolConfig { +export interface UserPoolConfig extends AuthMode { /** * The Cognito user pool to use as identity source @@ -43,6 +48,51 @@ export interface UserPoolConfig { readonly defaultAction?: UserPoolDefaultAction; } +function isUserPoolConfig(obj: unknown): obj is UserPoolConfig { + return (obj as UserPoolConfig).userPool !== undefined; +} + +/** + * Configuration for API Key authorization in AppSync + */ +export interface ApiKeyConfig extends AuthMode { + /** + * Unique description of the API key + */ + readonly apiKeyDesc: string; + + /** + * The time from creation time after which the API key expires, using RFC3339 representation. + * It must be a minimum of 1 day and a maximum of 365 days from date of creation. + * Rounded down to the nearest hour. + * @default - 7 days from creation time + */ + readonly expires?: string; +} + +function isApiKeyConfig(obj: unknown): obj is ApiKeyConfig { + return (obj as ApiKeyConfig).apiKeyDesc !== undefined; +} + +/** + * Configuration of the API authorization modes. + */ +export interface AuthorizationConfig { + /** + * Optional authorization configuration + * + * @default - API Key authorization + */ + readonly defaultAuthorization?: AuthMode; + + /** + * Additional authorization modes + * + * @default - No other modes + */ + readonly additionalAuthorizationModes?: [AuthMode] +} + /** * log-level for fields in AppSync */ @@ -90,11 +140,11 @@ export interface GraphQLApiProps { readonly name: string; /** - * Optional user pool authorizer configuration + * Optional authorization configuration * - * @default - Do not use Cognito auth + * @default - API Key authorization */ - readonly userPoolConfig?: UserPoolConfig; + readonly authorizationConfig?: AuthorizationConfig; /** * Logging configuration for this api @@ -145,7 +195,6 @@ export class GraphQLApi extends Construct { public readonly schema: CfnGraphQLSchema; private api: CfnGraphQLApi; - private authenticationType: string; constructor(scope: Construct, id: string, props: GraphQLApiProps) { super(scope, id); @@ -156,22 +205,9 @@ export class GraphQLApi extends Construct { apiLogsRole.addManagedPolicy(ManagedPolicy.fromAwsManagedPolicyName('service-role/AWSAppSyncPushToCloudWatchLogs')); } - if (props.userPoolConfig) { - this.authenticationType = 'AMAZON_COGNITO_USER_POOLS'; - } else { - this.authenticationType = 'API_KEY'; - } - this.api = new CfnGraphQLApi(this, 'Resource', { name: props.name, - authenticationType: this.authenticationType, - ...props.userPoolConfig && { - userPoolConfig: { - userPoolId: props.userPoolConfig.userPool.userPoolId, - awsRegion: props.userPoolConfig.userPool.stack.region, - defaultAction: props.userPoolConfig.defaultAction ? props.userPoolConfig.defaultAction.toString() : 'ALLOW', - }, - }, + authenticationType: 'API_KEY', ...props.logConfig && { logConfig: { cloudWatchLogsRoleArn: apiLogsRole ? apiLogsRole.roleArn : undefined, @@ -186,6 +222,10 @@ export class GraphQLApi extends Construct { this.graphQlUrl = this.api.attrGraphQlUrl; this.name = this.api.name; + if (props.authorizationConfig) { + this.setupAuth(props.authorizationConfig); + } + let definition; if (props.schemaDefinition) { definition = props.schemaDefinition; @@ -230,6 +270,55 @@ export class GraphQLApi extends Construct { }); } + private setupAuth(auth: AuthorizationConfig) { + if (isUserPoolConfig(auth.defaultAuthorization)) { + const { authenticationType, userPoolConfig } = this.userPoolDescFrom(auth.defaultAuthorization); + this.api.authenticationType = authenticationType; + this.api.userPoolConfig = userPoolConfig; + } else if (isApiKeyConfig(auth.defaultAuthorization)) { + this.api.authenticationType = this.apiKeyDesc(auth.defaultAuthorization).authenticationType; + } + + this.api.additionalAuthenticationProviders = []; + for (const mode of (auth.additionalAuthorizationModes || [])) { + if (isUserPoolConfig(mode)) { + this.api.additionalAuthenticationProviders.push(this.userPoolDescFrom(mode)); + } else if (isApiKeyConfig(mode)) { + this.api.additionalAuthenticationProviders.push(this.apiKeyDesc(mode)); + } + } + } + + private userPoolDescFrom(upConfig: UserPoolConfig): { authenticationType: string; userPoolConfig: CfnGraphQLApi.UserPoolConfigProperty } { + return { + authenticationType: 'AMAZON_COGNITO_USER_POOLS', + userPoolConfig: { + appIdClientRegex: upConfig.appIdClientRegex, + userPoolId: upConfig.userPool.userPoolId, + awsRegion: upConfig.userPool.stack.region, + defaultAction: upConfig.defaultAction ? upConfig.defaultAction.toString() : 'ALLOW', + } + }; + } + + private apiKeyDesc(akConfig: ApiKeyConfig): { authenticationType: string } { + let expires: number | undefined; + if (akConfig.expires) { + expires = new Date(akConfig.expires).valueOf(); + const now = Date.now(); + const days = (d: number) => now + Duration.days(d).toMilliseconds(); + if (expires < days(1) || expires > days(365)) { + throw Error("API key expiration must be between 1 and 365 days."); + } + expires = Math.round(expires / 1000); + } + new CfnApiKey(this, `${akConfig.apiKeyDesc || ''}ApiKey`, { + expires, + description: akConfig.apiKeyDesc, + apiId: this.apiId, + }); + return { authenticationType: 'API_KEY' }; + } } /** diff --git a/packages/@aws-cdk/aws-appsync/package.json b/packages/@aws-cdk/aws-appsync/package.json index bd2ee0dda4510..2c5bcc03ce5f0 100644 --- a/packages/@aws-cdk/aws-appsync/package.json +++ b/packages/@aws-cdk/aws-appsync/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-appsync", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::AppSync", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,29 +79,36 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-cognito": "999.0.0", - "@aws-cdk/aws-dynamodb": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-cognito": "0.0.0", + "@aws-cdk/aws-dynamodb": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-cognito": "999.0.0", - "@aws-cdk/aws-dynamodb": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-cognito": "0.0.0", + "@aws-cdk/aws-dynamodb": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, + "awslint": { + "exclude": [ + "no-unused-type:@aws-cdk/aws-appsync.ApiKeyConfig", + "no-unused-type:@aws-cdk/aws-appsync.UserPoolConfig", + "no-unused-type:@aws-cdk/aws-appsync.UserPoolDefaultAction" + ] + }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-appsync/test/integ.graphql.expected.json b/packages/@aws-cdk/aws-appsync/test/integ.graphql.expected.json index 1fad1ba0f55a6..2face78179375 100644 --- a/packages/@aws-cdk/aws-appsync/test/integ.graphql.expected.json +++ b/packages/@aws-cdk/aws-appsync/test/integ.graphql.expected.json @@ -1,10 +1,101 @@ { "Resources": { + "PoolsmsRoleC3352CE6": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Condition": { + "StringEquals": { + "sts:ExternalId": "awsappsyncintegPool5D14B05B" + } + }, + "Effect": "Allow", + "Principal": { + "Service": "cognito-idp.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": "sns:Publish", + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "sns-publish" + } + ] + } + }, + "PoolD3F588B8": { + "Type": "AWS::Cognito::UserPool", + "Properties": { + "AdminCreateUserConfig": { + "AllowAdminCreateUserOnly": true + }, + "EmailVerificationMessage": "Hello {username}, Your verification code is {####}", + "EmailVerificationSubject": "Verify your new account", + "LambdaConfig": {}, + "SmsConfiguration": { + "ExternalId": "awsappsyncintegPool5D14B05B", + "SnsCallerArn": { + "Fn::GetAtt": [ + "PoolsmsRoleC3352CE6", + "Arn" + ] + } + }, + "SmsVerificationMessage": "The verification code to your new account is {####}", + "UserPoolName": "myPool", + "VerificationMessageTemplate": { + "DefaultEmailOption": "CONFIRM_WITH_CODE", + "EmailMessage": "Hello {username}, Your verification code is {####}", + "EmailSubject": "Verify your new account", + "SmsMessage": "The verification code to your new account is {####}" + } + } + }, "ApiF70053CD": { "Type": "AWS::AppSync::GraphQLApi", "Properties": { - "AuthenticationType": "API_KEY", - "Name": "demoapi" + "AuthenticationType": "AMAZON_COGNITO_USER_POOLS", + "Name": "demoapi", + "AdditionalAuthenticationProviders": [ + { + "AuthenticationType": "API_KEY" + } + ], + "UserPoolConfig": { + "AwsRegion": { + "Ref": "AWS::Region" + }, + "DefaultAction": "ALLOW", + "UserPoolId": { + "Ref": "PoolD3F588B8" + } + } + } + }, + "ApiMyAPIKeyApiKeyACDEE2CC": { + "Type": "AWS::AppSync::ApiKey", + "Properties": { + "ApiId": { + "Fn::GetAtt": [ + "ApiF70053CD", + "ApiId" + ] + }, + "Description": "My API Key" } }, "ApiSchema510EECD7": { diff --git a/packages/@aws-cdk/aws-appsync/test/integ.graphql.ts b/packages/@aws-cdk/aws-appsync/test/integ.graphql.ts index a3d1cee096029..a2efb337e3a28 100644 --- a/packages/@aws-cdk/aws-appsync/test/integ.graphql.ts +++ b/packages/@aws-cdk/aws-appsync/test/integ.graphql.ts @@ -1,14 +1,32 @@ +import { UserPool } from '@aws-cdk/aws-cognito'; import { AttributeType, BillingMode, Table } from '@aws-cdk/aws-dynamodb'; import { App, Stack } from '@aws-cdk/core'; import { join } from 'path'; -import { GraphQLApi, KeyCondition, MappingTemplate, PrimaryKey, Values } from '../lib'; +import { GraphQLApi, KeyCondition, MappingTemplate, PrimaryKey, UserPoolDefaultAction, Values } from '../lib'; const app = new App(); const stack = new Stack(app, 'aws-appsync-integ'); +const userPool = new UserPool(stack, 'Pool', { + userPoolName: 'myPool', +}); + const api = new GraphQLApi(stack, 'Api', { name: `demoapi`, schemaDefinitionFile: join(__dirname, 'schema.graphql'), + authorizationConfig: { + defaultAuthorization: { + userPool, + defaultAction: UserPoolDefaultAction.ALLOW, + }, + additionalAuthorizationModes: [ + { + apiKeyDesc: 'My API Key', + // Can't specify a date because it will inevitably be in the past. + // expires: '2019-02-05T12:00:00Z', + }, + ], + }, }); const customerTable = new Table(stack, 'CustomerTable', { diff --git a/packages/@aws-cdk/aws-athena/README.md b/packages/@aws-cdk/aws-athena/README.md index 7428d234e7e55..243cb2920971f 100644 --- a/packages/@aws-cdk/aws-athena/README.md +++ b/packages/@aws-cdk/aws-athena/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-athena/package.json b/packages/@aws-cdk/aws-athena/package.json index 7523406d1705c..fa716069bef70 100644 --- a/packages/@aws-cdk/aws-athena/package.json +++ b/packages/@aws-cdk/aws-athena/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-athena", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::Athena", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,20 +79,20 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-autoscaling-common/README.md b/packages/@aws-cdk/aws-autoscaling-common/README.md index 2eef623591f18..1daa0bebb88b8 100644 --- a/packages/@aws-cdk/aws-autoscaling-common/README.md +++ b/packages/@aws-cdk/aws-autoscaling-common/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-autoscaling-common/package.json b/packages/@aws-cdk/aws-autoscaling-common/package.json index a017dc33eedc0..7f5e846a11e76 100644 --- a/packages/@aws-cdk/aws-autoscaling-common/package.json +++ b/packages/@aws-cdk/aws-autoscaling-common/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-autoscaling-common", - "version": "999.0.0", + "version": "0.0.0", "description": "Common implementation package for @aws-cdk/aws-autoscaling and @aws-cdk/aws-applicationautoscaling", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -58,22 +58,22 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", "fast-check": "^1.22.2", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "awslint": { "exclude": [ @@ -100,4 +100,4 @@ "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-autoscaling-hooktargets/package.json b/packages/@aws-cdk/aws-autoscaling-hooktargets/package.json index d4383a7838c07..80e59899f70d1 100644 --- a/packages/@aws-cdk/aws-autoscaling-hooktargets/package.json +++ b/packages/@aws-cdk/aws-autoscaling-hooktargets/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-autoscaling-hooktargets", - "version": "999.0.0", + "version": "0.0.0", "description": "Lifecycle hook for AWS AutoScaling", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -76,35 +76,35 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "@aws-cdk/assert": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "jest": "^24.9.0", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-autoscaling": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/aws-sns-subscriptions": "999.0.0", - "@aws-cdk/aws-sqs": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-autoscaling": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-sns-subscriptions": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-autoscaling": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/aws-sns-subscriptions": "999.0.0", - "@aws-cdk/aws-sqs": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-autoscaling": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-sns-subscriptions": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-autoscaling/package.json b/packages/@aws-cdk/aws-autoscaling/package.json index 278492e0e440e..2ea8366a32cab 100644 --- a/packages/@aws-cdk/aws-autoscaling/package.json +++ b/packages/@aws-cdk/aws-autoscaling/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-autoscaling", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::AutoScaling", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,35 +62,35 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "@aws-cdk/cx-api": "999.0.0", + "@aws-cdk/assert": "0.0.0", + "@aws-cdk/cx-api": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-autoscaling-common": "999.0.0", - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-elasticloadbalancing": "999.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-autoscaling-common": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-elasticloadbalancing": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-autoscaling-common": "999.0.0", - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-elasticloadbalancing": "999.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-autoscaling-common": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-elasticloadbalancing": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -138,4 +138,4 @@ ] }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-autoscalingplans/README.md b/packages/@aws-cdk/aws-autoscalingplans/README.md index a91969cabffd1..230de221fb31e 100644 --- a/packages/@aws-cdk/aws-autoscalingplans/README.md +++ b/packages/@aws-cdk/aws-autoscalingplans/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-autoscalingplans/package.json b/packages/@aws-cdk/aws-autoscalingplans/package.json index e5f4cbb328860..5c3e927f252fe 100644 --- a/packages/@aws-cdk/aws-autoscalingplans/package.json +++ b/packages/@aws-cdk/aws-autoscalingplans/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-autoscalingplans", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::AutoScalingPlans", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,20 +79,20 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-backup/README.md b/packages/@aws-cdk/aws-backup/README.md index aa14efc270ee2..ba562183d63a4 100644 --- a/packages/@aws-cdk/aws-backup/README.md +++ b/packages/@aws-cdk/aws-backup/README.md @@ -5,17 +5,18 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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 diff --git a/packages/@aws-cdk/aws-backup/package.json b/packages/@aws-cdk/aws-backup/package.json index b572ffffcd78d..d8270dcae9cce 100644 --- a/packages/@aws-cdk/aws-backup/package.json +++ b/packages/@aws-cdk/aws-backup/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-backup", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::Backup", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-batch/README.md b/packages/@aws-cdk/aws-batch/README.md index 31ef996745c54..aab1e7afc99c5 100644 --- a/packages/@aws-cdk/aws-batch/README.md +++ b/packages/@aws-cdk/aws-batch/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-batch/package.json b/packages/@aws-cdk/aws-batch/package.json index 71d7c2bc75790..c259a145ac4b0 100644 --- a/packages/@aws-cdk/aws-batch/package.json +++ b/packages/@aws-cdk/aws-batch/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-batch", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::Batch", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,27 +79,27 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "jest": "^24.9.0", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-ecr": "999.0.0", - "@aws-cdk/aws-ecs": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0" + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-ecr": "0.0.0", + "@aws-cdk/aws-ecs": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-ecr": "999.0.0", - "@aws-cdk/aws-ecs": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0" + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-ecr": "0.0.0", + "@aws-cdk/aws-ecs": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0" }, "engines": { "node": ">= 10.3.0" diff --git a/packages/@aws-cdk/aws-budgets/README.md b/packages/@aws-cdk/aws-budgets/README.md index 9ea3200590184..6cb1e1dfdbd52 100644 --- a/packages/@aws-cdk/aws-budgets/README.md +++ b/packages/@aws-cdk/aws-budgets/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-budgets/package.json b/packages/@aws-cdk/aws-budgets/package.json index a8ee85f5bf3b2..4b59ccafef778 100644 --- a/packages/@aws-cdk/aws-budgets/package.json +++ b/packages/@aws-cdk/aws-budgets/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-budgets", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::Budgets", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,20 +79,20 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-certificatemanager/lambda-packages/dns_validated_certificate_handler/package.json b/packages/@aws-cdk/aws-certificatemanager/lambda-packages/dns_validated_certificate_handler/package.json index ff4c3e038f2bb..4d92427360bbd 100644 --- a/packages/@aws-cdk/aws-certificatemanager/lambda-packages/dns_validated_certificate_handler/package.json +++ b/packages/@aws-cdk/aws-certificatemanager/lambda-packages/dns_validated_certificate_handler/package.json @@ -1,7 +1,7 @@ { "name": "dns_validated_certificate_handler", "private": true, - "version": "999.0.0", + "version": "0.0.0", "description": "This module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project.", "main": "lib/index.js", "directories": { @@ -40,4 +40,4 @@ "nock": "^11.7.0", "ts-jest": "^24.2.0" } -} +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-certificatemanager/package.json b/packages/@aws-cdk/aws-certificatemanager/package.json index 3b9f20c022b27..c1ea375dfbbc1 100644 --- a/packages/@aws-cdk/aws-certificatemanager/package.json +++ b/packages/@aws-cdk/aws-certificatemanager/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-certificatemanager", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::CertificateManager", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,27 +62,27 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-cloudformation": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-route53": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-route53": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-cloudformation": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-route53": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-route53": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -96,4 +96,4 @@ ] }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-cloud9/README.md b/packages/@aws-cdk/aws-cloud9/README.md index 8a64177a03d7e..691fd78d9ee64 100644 --- a/packages/@aws-cdk/aws-cloud9/README.md +++ b/packages/@aws-cdk/aws-cloud9/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-cloud9/package.json b/packages/@aws-cdk/aws-cloud9/package.json index ae2feeff4fde5..cdf46d2fe5f0b 100644 --- a/packages/@aws-cdk/aws-cloud9/package.json +++ b/packages/@aws-cdk/aws-cloud9/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-cloud9", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::Cloud9", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,20 +79,20 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-cloudformation/package.json b/packages/@aws-cdk/aws-cloudformation/package.json index b37daf0331087..2883e4bf7ad3d 100644 --- a/packages/@aws-cdk/aws-cloudformation/package.json +++ b/packages/@aws-cdk/aws-cloudformation/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-cloudformation", - "version": "999.0.0", + "version": "0.0.0", "description": "CDK Constructs for AWS CloudFormation", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,36 +62,36 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-s3-assets": "999.0.0", - "@aws-cdk/aws-sns-subscriptions": "999.0.0", - "@aws-cdk/aws-sqs": "999.0.0", - "@aws-cdk/aws-ssm": "999.0.0", + "@aws-cdk/assert": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-s3-assets": "0.0.0", + "@aws-cdk/aws-sns-subscriptions": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/aws-ssm": "0.0.0", "@types/aws-lambda": "^8.10.39", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/cx-api": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/cx-api": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/cx-api": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/cx-api": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -106,4 +106,4 @@ ] }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-cloudfront/README.md b/packages/@aws-cdk/aws-cloudfront/README.md index fda46177e9d69..a030028dadf10 100644 --- a/packages/@aws-cdk/aws-cloudfront/README.md +++ b/packages/@aws-cdk/aws-cloudfront/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-cloudfront/package.json b/packages/@aws-cdk/aws-cloudfront/package.json index 6c081772224f3..88b2d937d905c 100644 --- a/packages/@aws-cdk/aws-cloudfront/package.json +++ b/packages/@aws-cdk/aws-cloudfront/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-cloudfront", - "version": "999.0.0", + "version": "0.0.0", "description": "CDK Constructs for AWS CloudFront", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,31 +62,31 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "aws-sdk": "^2.625.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "aws-sdk": "^2.631.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-certificatemanager": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-certificatemanager": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-certificatemanager": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-certificatemanager": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -140,4 +140,4 @@ "props-default-doc:@aws-cdk/aws-cloudfront.ViewerCertificateOptions.aliases" ] } -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-cloudtrail/README.md b/packages/@aws-cdk/aws-cloudtrail/README.md index 663a507294ca9..cba9161163d77 100644 --- a/packages/@aws-cdk/aws-cloudtrail/README.md +++ b/packages/@aws-cdk/aws-cloudtrail/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-cloudtrail/package.json b/packages/@aws-cdk/aws-cloudtrail/package.json index bcf5f2cb4ebb5..89a8047a41ede 100644 --- a/packages/@aws-cdk/aws-cloudtrail/package.json +++ b/packages/@aws-cdk/aws-cloudtrail/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-cloudtrail", - "version": "999.0.0", + "version": "0.0.0", "description": "CDK Constructs for AWS CloudTrail", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,32 +62,32 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "aws-sdk": "^2.625.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "aws-sdk": "^2.631.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "colors": "^1.4.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/aws-logs": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/aws-logs": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -104,4 +104,4 @@ "docs-public-apis:@aws-cdk/aws-cloudtrail.ReadWriteType.ALL" ] } -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-cloudwatch-actions/package.json b/packages/@aws-cdk/aws-cloudwatch-actions/package.json index 532e8a15333a7..9ec2e602b54a6 100644 --- a/packages/@aws-cdk/aws-cloudwatch-actions/package.json +++ b/packages/@aws-cdk/aws-cloudwatch-actions/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-cloudwatch-actions", - "version": "999.0.0", + "version": "0.0.0", "description": "Alarm Actions for AWS CloudWatch CDK library", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -76,30 +76,30 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "@aws-cdk/assert": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "jest": "^24.9.0", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-applicationautoscaling": "999.0.0", - "@aws-cdk/aws-autoscaling": "999.0.0", - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-applicationautoscaling": "0.0.0", + "@aws-cdk/aws-autoscaling": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-applicationautoscaling": "999.0.0", - "@aws-cdk/aws-autoscaling": "999.0.0", - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-applicationautoscaling": "0.0.0", + "@aws-cdk/aws-autoscaling": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -112,4 +112,4 @@ "docs-public-apis:@aws-cdk/aws-cloudwatch-actions.SnsAction.bind" ] } -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-cloudwatch/package.json b/packages/@aws-cdk/aws-cloudwatch/package.json index ef34f1bc45bd8..3a8c56165c82e 100644 --- a/packages/@aws-cdk/aws-cloudwatch/package.json +++ b/packages/@aws-cdk/aws-cloudwatch/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-cloudwatch", - "version": "999.0.0", + "version": "0.0.0", "description": "CDK Constructs for AWS CloudWatch", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,22 +62,22 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "awslint": { "exclude": [ @@ -169,4 +169,4 @@ "node": ">= 10.3.0" }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-codebuild/package.json b/packages/@aws-cdk/aws-codebuild/package.json index f96db5ceffb89..0df57da794c67 100644 --- a/packages/@aws-cdk/aws-codebuild/package.json +++ b/packages/@aws-cdk/aws-codebuild/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-codebuild", - "version": "999.0.0", + "version": "0.0.0", "description": "CDK Constructs for AWS CodeBuild", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -66,47 +66,47 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/aws-sqs": "999.0.0", + "@aws-cdk/assert": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", "@types/nodeunit": "^0.0.30", - "aws-sdk": "^2.625.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "aws-sdk": "^2.631.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/assets": "999.0.0", - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-codecommit": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-ecr": "999.0.0", - "@aws-cdk/aws-ecr-assets": "999.0.0", - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/aws-s3-assets": "999.0.0", - "@aws-cdk/aws-secretsmanager": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/assets": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-codecommit": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-ecr": "0.0.0", + "@aws-cdk/aws-ecr-assets": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-s3-assets": "0.0.0", + "@aws-cdk/aws-secretsmanager": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/assets": "999.0.0", - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-codecommit": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-ecr": "999.0.0", - "@aws-cdk/aws-ecr-assets": "999.0.0", - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/aws-s3-assets": "999.0.0", - "@aws-cdk/aws-secretsmanager": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/assets": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-codecommit": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-ecr": "0.0.0", + "@aws-cdk/aws-ecr-assets": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-s3-assets": "0.0.0", + "@aws-cdk/aws-secretsmanager": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -207,4 +207,4 @@ ] }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-codecommit/package.json b/packages/@aws-cdk/aws-codecommit/package.json index 97052b40f6f05..0a841e8929adb 100644 --- a/packages/@aws-cdk/aws-codecommit/package.json +++ b/packages/@aws-cdk/aws-codecommit/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-codecommit", - "version": "999.0.0", + "version": "0.0.0", "description": "CDK Constructs for AWS CodeCommit", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -67,26 +67,26 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", + "@aws-cdk/assert": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", "@types/nodeunit": "^0.0.30", - "aws-sdk": "^2.625.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "aws-sdk": "^2.631.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -107,4 +107,4 @@ "docs-public-apis:@aws-cdk/aws-codecommit.RepositoryEventTrigger.DELETE_REF" ] } -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-codedeploy/package.json b/packages/@aws-cdk/aws-codedeploy/package.json index 44838a2e65550..07a20730b3827 100644 --- a/packages/@aws-cdk/aws-codedeploy/package.json +++ b/packages/@aws-cdk/aws-codedeploy/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-codedeploy", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::CodeDeploy", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -65,36 +65,36 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-autoscaling": "999.0.0", - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-elasticloadbalancing": "999.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-autoscaling": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-elasticloadbalancing": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-autoscaling": "999.0.0", - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-elasticloadbalancing": "999.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-autoscaling": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-elasticloadbalancing": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -157,4 +157,4 @@ ] }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-codepipeline-actions/package.json b/packages/@aws-cdk/aws-codepipeline-actions/package.json index 931dde270c766..bb343a8cdf138 100644 --- a/packages/@aws-cdk/aws-codepipeline-actions/package.json +++ b/packages/@aws-cdk/aws-codepipeline-actions/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-codepipeline-actions", - "version": "999.0.0", + "version": "0.0.0", "description": "Concrete Actions for AWS Code Pipeline", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -64,53 +64,53 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "@aws-cdk/aws-cloudtrail": "999.0.0", + "@aws-cdk/assert": "0.0.0", + "@aws-cdk/aws-cloudtrail": "0.0.0", "@types/lodash": "^4.14.149", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", "lodash": "^4.17.15", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-cloudformation": "999.0.0", - "@aws-cdk/aws-codebuild": "999.0.0", - "@aws-cdk/aws-codecommit": "999.0.0", - "@aws-cdk/aws-codedeploy": "999.0.0", - "@aws-cdk/aws-codepipeline": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-ecr": "999.0.0", - "@aws-cdk/aws-ecs": "999.0.0", - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-events-targets": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/aws-sns-subscriptions": "999.0.0", - "@aws-cdk/core": "999.0.0", + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-codebuild": "0.0.0", + "@aws-cdk/aws-codecommit": "0.0.0", + "@aws-cdk/aws-codedeploy": "0.0.0", + "@aws-cdk/aws-codepipeline": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-ecr": "0.0.0", + "@aws-cdk/aws-ecs": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-events-targets": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-sns-subscriptions": "0.0.0", + "@aws-cdk/core": "0.0.0", "case": "1.6.2" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-cloudformation": "999.0.0", - "@aws-cdk/aws-codebuild": "999.0.0", - "@aws-cdk/aws-codecommit": "999.0.0", - "@aws-cdk/aws-codedeploy": "999.0.0", - "@aws-cdk/aws-codepipeline": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-ecr": "999.0.0", - "@aws-cdk/aws-ecs": "999.0.0", - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-events-targets": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/aws-sns-subscriptions": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-codebuild": "0.0.0", + "@aws-cdk/aws-codecommit": "0.0.0", + "@aws-cdk/aws-codedeploy": "0.0.0", + "@aws-cdk/aws-codepipeline": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-ecr": "0.0.0", + "@aws-cdk/aws-ecs": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-events-targets": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-sns-subscriptions": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "bundledDependencies": [ "case" @@ -164,4 +164,4 @@ "props-default-doc:@aws-cdk/aws-codepipeline-actions.CodeDeployEcsDeployActionProps.containerImageInputs" ] } -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-codepipeline-actions/test/test.pipeline.ts b/packages/@aws-cdk/aws-codepipeline-actions/test/test.pipeline.ts index 5bb4fafc565c6..bc679d1747da0 100644 --- a/packages/@aws-cdk/aws-codepipeline-actions/test/test.pipeline.ts +++ b/packages/@aws-cdk/aws-codepipeline-actions/test/test.pipeline.ts @@ -959,5 +959,168 @@ export = { test.done(); }, + + 'adds a dependency on the Stack containing a new action Role'(test: Test) { + const region = 'us-west-2'; + const pipelineAccount = '123456789012'; + const buildAccount = '901234567890'; + const app = new App(); + + const buildStack = new Stack(app, 'BuildStack', { + env: { account: buildAccount, region }, + }); + const actionRolePhysicalName = 'ProjectRolePhysicalName'; + const actionRoleInOtherAccount = new iam.Role(buildStack, 'ProjectRole', { + assumedBy: new iam.AccountPrincipal(pipelineAccount), + roleName: actionRolePhysicalName, + }); + const projectPhysicalName = 'ProjectPhysicalName'; + const project = codebuild.Project.fromProjectName(buildStack, 'Project', + projectPhysicalName); + + const pipelineStack = new Stack(app, 'PipelineStack', { + env: { account: pipelineAccount, region }, + }); + const bucket = new s3.Bucket(pipelineStack, 'ArtifactBucket', { + bucketName: 'source-bucket', + encryption: s3.BucketEncryption.KMS, + }); + const sourceOutput = new codepipeline.Artifact(); + new codepipeline.Pipeline(pipelineStack, 'Pipeline', { + artifactBucket: bucket, + stages: [ + { + stageName: 'Source', + actions: [ + new cpactions.S3SourceAction({ + actionName: 'S3', + bucket, + bucketKey: 'path/to/file.zip', + output: sourceOutput, + }), + ], + }, + { + stageName: 'Build', + actions: [ + new cpactions.CodeBuildAction({ + actionName: 'CodeBuild', + project, + input: sourceOutput, + role: actionRoleInOtherAccount, + }), + ], + }, + ], + }); + + expect(pipelineStack).to(haveResourceLike('AWS::CodePipeline::Pipeline', { + "Stages": [ + { + "Name": "Source", + }, + { + "Name": "Build", + "Actions": [ + { + "Name": "CodeBuild", + "Configuration": { + "ProjectName": projectPhysicalName, + }, + "RoleArn": { + "Fn::Join": ["", [ + "arn:", + { "Ref": "AWS::Partition" }, + `:iam::${buildAccount}:role/${actionRolePhysicalName}`, + ]], + }, + }, + ], + }, + ], + })); + + test.equal(pipelineStack.dependencies.length, 1); + + test.done(); + }, + + 'does not add a dependency on the Stack containing an imported action Role'(test: Test) { + const region = 'us-west-2'; + const pipelineAccount = '123456789012'; + const buildAccount = '901234567890'; + const app = new App(); + + const buildStack = new Stack(app, 'BuildStack', { + env: { account: buildAccount, region }, + }); + const actionRolePhysicalName = 'ProjectRolePhysicalName'; + const actionRoleInOtherAccount = iam.Role.fromRoleArn(buildStack, 'ProjectRole', + `arn:aws:iam::${buildAccount}:role/${actionRolePhysicalName}`); + const projectPhysicalName = 'ProjectPhysicalName'; + const project = new codebuild.PipelineProject(buildStack, 'Project', { + projectName: projectPhysicalName, + }); + + const pipelineStack = new Stack(app, 'PipelineStack', { + env: { account: pipelineAccount, region }, + }); + const bucket = new s3.Bucket(pipelineStack, 'ArtifactBucket', { + bucketName: 'source-bucket', + encryption: s3.BucketEncryption.KMS, + }); + const sourceOutput = new codepipeline.Artifact(); + new codepipeline.Pipeline(pipelineStack, 'Pipeline', { + artifactBucket: bucket, + stages: [ + { + stageName: 'Source', + actions: [ + new cpactions.S3SourceAction({ + actionName: 'S3', + bucket, + bucketKey: 'path/to/file.zip', + output: sourceOutput, + }), + ], + }, + { + stageName: 'Build', + actions: [ + new cpactions.CodeBuildAction({ + actionName: 'CodeBuild', + project, + input: sourceOutput, + role: actionRoleInOtherAccount, + }), + ], + }, + ], + }); + + expect(pipelineStack).to(haveResourceLike('AWS::CodePipeline::Pipeline', { + "Stages": [ + { + "Name": "Source", + }, + { + "Name": "Build", + "Actions": [ + { + "Name": "CodeBuild", + "Configuration": { + "ProjectName": projectPhysicalName, + }, + "RoleArn": `arn:aws:iam::${buildAccount}:role/${actionRolePhysicalName}`, + }, + ], + }, + ], + })); + + test.equal(pipelineStack.dependencies.length, 0); + + test.done(); + }, }, }; diff --git a/packages/@aws-cdk/aws-codepipeline/lib/pipeline.ts b/packages/@aws-cdk/aws-codepipeline/lib/pipeline.ts index e8b7831d29a51..9250def339fbb 100644 --- a/packages/@aws-cdk/aws-codepipeline/lib/pipeline.ts +++ b/packages/@aws-cdk/aws-codepipeline/lib/pipeline.ts @@ -541,8 +541,14 @@ export class Pipeline extends PipelineBase { if (action.actionProperties.role) { if (this.isAwsOwned(action)) { // the role has to be deployed before the pipeline - const roleStack = Stack.of(action.actionProperties.role); - pipelineStack.addDependency(roleStack); + // (our magical cross-stack dependencies will not work, + // because the role might be from a different environment), + // but _only_ if it's a new Role - + // an imported Role should not add the dependency + if (action.actionProperties.role instanceof iam.Role) { + const roleStack = Stack.of(action.actionProperties.role); + pipelineStack.addDependency(roleStack); + } return action.actionProperties.role; } else { diff --git a/packages/@aws-cdk/aws-codepipeline/lib/stage.ts b/packages/@aws-cdk/aws-codepipeline/lib/stage.ts index de236a3c30263..e23a079513b9c 100644 --- a/packages/@aws-cdk/aws-codepipeline/lib/stage.ts +++ b/packages/@aws-cdk/aws-codepipeline/lib/stage.ts @@ -63,9 +63,10 @@ export class Stage implements IStage { for (const outputArtifact of outputArtifacts) { if (!outputArtifact.artifactName) { - const artifactName = `Artifact_${this.stageName}_${action.actionName}` + (unnamedOutputs.length === 1 + const unsanitizedArtifactName = `Artifact_${this.stageName}_${action.actionName}` + (unnamedOutputs.length === 1 ? '' : '_' + (unnamedOutputs.indexOf(outputArtifact) + 1)); + const artifactName = sanitizeArtifactName(unsanitizedArtifactName); (outputArtifact as any)._setName(artifactName); } } @@ -167,3 +168,9 @@ export class Stage implements IStage { .map(a => ({ name: a.artifactName! })); } } + +function sanitizeArtifactName(artifactName: string): string { + // strip out some characters that are legal in Stage and Action names, + // but not in Artifact names + return artifactName.replace(/[@.]/g, ''); +} diff --git a/packages/@aws-cdk/aws-codepipeline/package.json b/packages/@aws-cdk/aws-codepipeline/package.json index 10abb256c5eb8..acf4bc39f27dc 100644 --- a/packages/@aws-cdk/aws-codepipeline/package.json +++ b/packages/@aws-cdk/aws-codepipeline/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-codepipeline", - "version": "999.0.0", + "version": "0.0.0", "description": "Better interface to AWS Code Pipeline", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -69,28 +69,28 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -162,4 +162,4 @@ ] }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-codepipeline/test/test.artifacts.ts b/packages/@aws-cdk/aws-codepipeline/test/test.artifacts.ts index ff975b18e0c90..484f220a57ab6 100644 --- a/packages/@aws-cdk/aws-codepipeline/test/test.artifacts.ts +++ b/packages/@aws-cdk/aws-codepipeline/test/test.artifacts.ts @@ -172,6 +172,63 @@ export = { test.done(); }, + + 'without a name, sanitize the auto stage-action derived name'(test: Test) { + const stack = new cdk.Stack(); + + const sourceOutput = new codepipeline.Artifact(); + new codepipeline.Pipeline(stack, 'Pipeline', { + stages: [ + { + stageName: 'Source.@', // @ and . are not allowed in Artifact names! + actions: [ + new FakeSourceAction({ + actionName: 'source1', + output: sourceOutput, + }), + ], + }, + { + stageName: 'Build', + actions: [ + new FakeBuildAction({ + actionName: 'build1', + input: sourceOutput, + }), + ], + }, + ], + }); + + expect(stack).to(haveResourceLike('AWS::CodePipeline::Pipeline', { + "Stages": [ + { + "Name": "Source.@", + "Actions": [ + { + "Name": "source1", + "OutputArtifacts": [ + { "Name": "Artifact_Source_source1" }, + ], + }, + ], + }, + { + "Name": "Build", + "Actions": [ + { + "Name": "build1", + "InputArtifacts": [ + { "Name": "Artifact_Source_source1" }, + ], + }, + ], + }, + ], + })); + + test.done(); + }, }, }; diff --git a/packages/@aws-cdk/aws-codestar/README.md b/packages/@aws-cdk/aws-codestar/README.md index 3e21f491e620f..45cd7815e756c 100644 --- a/packages/@aws-cdk/aws-codestar/README.md +++ b/packages/@aws-cdk/aws-codestar/README.md @@ -5,17 +5,18 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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 diff --git a/packages/@aws-cdk/aws-codestar/package.json b/packages/@aws-cdk/aws-codestar/package.json index 2e4b29858107c..c8a881ed90b39 100644 --- a/packages/@aws-cdk/aws-codestar/package.json +++ b/packages/@aws-cdk/aws-codestar/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-codestar", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::CodeStar", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-codestarnotifications/README.md b/packages/@aws-cdk/aws-codestarnotifications/README.md index 24a26d6523252..b826fa1ef2ac5 100644 --- a/packages/@aws-cdk/aws-codestarnotifications/README.md +++ b/packages/@aws-cdk/aws-codestarnotifications/README.md @@ -5,17 +5,18 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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 diff --git a/packages/@aws-cdk/aws-codestarnotifications/package.json b/packages/@aws-cdk/aws-codestarnotifications/package.json index 0ea216ccdd92e..1e9668d3ef2a3 100644 --- a/packages/@aws-cdk/aws-codestarnotifications/package.json +++ b/packages/@aws-cdk/aws-codestarnotifications/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-codestarnotifications", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::CodeStarNotifications", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-cognito/README.md b/packages/@aws-cdk/aws-cognito/README.md index 843e6873994aa..487e538e4bedd 100644 --- a/packages/@aws-cdk/aws-cognito/README.md +++ b/packages/@aws-cdk/aws-cognito/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- @@ -86,6 +88,56 @@ All email subjects, bodies and SMS messages for both invitation and verification Learn more about [message templates here](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-message-templates.html). +### Sign In + +Users registering or signing in into your application can do so with multiple identifiers. There are 4 options +available: + +* `username`: Allow signing in using the one time immutable user name that the user chose at the time of sign up. +* `email`: Allow signing in using the email address that is associated with the account. +* `phone`: Allow signing in using the phone number that is associated with the account. +* `preferredUsername`: Allow signing in with an alternate user name that the user can change at any time. However, this + is not available if the `username` option is not chosen. + +The following code sets up a user pool so that the user can sign in with either their username or their email address - + +```ts +new UserPool(this, 'myuserpool', { + // ... + // ... + signInAliases: { + username: true, + email: true + }, +}); +``` + +User pools can either be configured so that user name is primary sign in form, but also allows for the other three to be +used additionally; or it can be configured so that email and/or phone numbers are the only ways a user can register and +sign in. Read more about this +[here](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#user-pool-settings-aliases-settings). + +To match with 'Option 1' in the above link, with a verified email, `signInAliases` should be set to +`{ username: true, email: true }`. To match with 'Option 2' in the above link with both a verified +email and phone number, this property should be set to `{ email: true, phone: true }`. + +Cognito recommends that email and phone number be automatically verified, if they are one of the sign in methods for +the user pool. Read more about that +[here](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#user-pool-settings-aliases). +The CDK does this by default, when email and/or phone number are specified as part of `signInAliases`. This can be +overridden by specifying the `autoVerify` property. + +The following code snippet sets up only email as a sign in alias, but both email and phone number to be auto-verified. + +```ts +new UserPool(this, 'myuserpool', { + // ... + // ... + signInAliases: { username: true, email: true }, + autoVerify: { email: true, phone: true } +}); +``` + ### Security Cognito sends various messages to its users via SMS, for different actions, ranging from account verification to @@ -108,4 +160,24 @@ new UserPool(this, 'myuserpool', { When the `smsRole` property is specified, the `smsRoleExternalId` may also be specified. The value of `smsRoleExternalId` will be used as the `sts:ExternalId` when the Cognito service assumes the role. In turn, the role's assume role policy should be configured to accept this value as the ExternalId. Learn more about [ExternalId -here](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html). \ No newline at end of file +here](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html). + +### Importing User Pools + +Any user pool that has been created outside of this stack, can be imported into the CDK app. Importing a user pool +allows for it to be used in other parts of the CDK app that reference an `IUserPool`. However, imported user pools have +limited configurability. As a rule of thumb, none of the properties that is are part of the +[`AWS::Cognito::UserPool`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html) +CloudFormation resource can be configured. + +User pools can be imported either using their id via the `UserPool.fromUserPoolId()`, or by using their ARN, via the +`UserPool.fromUserPoolArn()` API. + +```ts +const stack = new Stack(app, 'my-stack'); + +const awesomePool = UserPool.fromUserPoolId(stack, 'awesome-user-pool', 'us-east-1_oiuR12Abd'); + +const otherAwesomePool = UserPool.fromUserPoolArn(stack, 'other-awesome-user-pool', + 'arn:aws:cognito-idp:eu-west-1:123456789012:userpool/us-east-1_mtRyYQ14D'); +``` \ No newline at end of file diff --git a/packages/@aws-cdk/aws-cognito/lib/user-pool.ts b/packages/@aws-cdk/aws-cognito/lib/user-pool.ts index c61e3da8e9152..43a41541ac136 100644 --- a/packages/@aws-cdk/aws-cognito/lib/user-pool.ts +++ b/packages/@aws-cdk/aws-cognito/lib/user-pool.ts @@ -1,6 +1,6 @@ import { IRole, PolicyDocument, PolicyStatement, Role, ServicePrincipal } from '@aws-cdk/aws-iam'; import * as lambda from '@aws-cdk/aws-lambda'; -import { Construct, IResource, Lazy, Resource } from '@aws-cdk/core'; +import { Construct, IResource, Lazy, Resource, Stack } from '@aws-cdk/core'; import { CfnUserPool } from './cognito.generated'; /** @@ -121,28 +121,50 @@ export enum UserPoolAttribute { } /** - * Methods of user sign-in + * The different ways in which users of this pool can sign up or sign in. */ -export enum SignInType { +export interface SignInAliases { /** - * End-user will sign in with a username, with optional aliases + * Whether user is allowed to sign up or sign in with a username + * @default true */ - USERNAME, + readonly username?: boolean; /** - * End-user will sign in using an email address + * Whether a user is allowed to sign up or sign in with an email address + * @default false */ - EMAIL, + readonly email?: boolean; /** - * End-user will sign in using a phone number + * Whether a user is allowed to sign up or sign in with a phone number + * @default false */ - PHONE, + readonly phone?: boolean; /** - * End-user will sign in using either an email address or phone number + * Whether a user is allowed to ign in with a secondary username, that can be set and modified after sign up. + * Can only be used in conjunction with `USERNAME`. + * @default false */ - EMAIL_OR_PHONE + readonly preferredUsername?: boolean; +} + +/** + * Attributes that can be automatically verified for users in a user pool. + */ +export interface AutoVerifiedAttrs { + /** + * Whether the email address of the user should be auto verified at sign up. + * @default - true, if email is turned on for `signIn`. false, otherwise. + */ + readonly email?: boolean; + + /** + * Whether the phone number of the user should be auto verified at sign up. + * @default - true, if phone is turned on for `signIn`. false, otherwise. + */ + readonly phone?: boolean; } export interface UserPoolTriggers { @@ -327,28 +349,28 @@ export interface UserPoolProps { readonly smsRoleExternalId?: string; /** - * Method used for user registration & sign in. + * Methods in which a user registers or signs in to a user pool. * Allows either username with aliases OR sign in with email, phone, or both. * - * @default SignInType.Username - */ - readonly signInType?: SignInType; - - /** - * Attributes to allow as username alias. - * Only valid if signInType is USERNAME + * Read the sections on usernames and aliases to learn more - + * https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html * - * @default - No alias. + * To match with 'Option 1' in the above link, with a verified email, this property should be set to + * `{ username: true, email: true }`. To match with 'Option 2' in the above link with both a verified email and phone + * number, this property should be set to `{ email: true, phone: true }`. + * + * @default { username: true } */ - readonly usernameAliasAttributes?: UserPoolAttribute[]; + readonly signInAliases?: SignInAliases; /** - * Attributes which Cognito will automatically send a verification message to. - * Must be either EMAIL, PHONE, or both. + * Attributes which Cognito will look to verify automatically upon user sign up. + * EMAIL and PHONE are the only available options. * - * @default - No auto verification. + * @default - If `signIn` include email and/or phone, they will be included in `autoVerifiedAttributes` by default. + * If absent, no attributes will be auto-verified. */ - readonly autoVerifiedAttributes?: UserPoolAttribute[]; + readonly autoVerify?: AutoVerifiedAttrs; /** * Lambda functions to use for supported Cognito triggers. @@ -358,28 +380,9 @@ export interface UserPoolProps { readonly lambdaTriggers?: UserPoolTriggers; } -export interface UserPoolAttributes { - /** - * The ID of an existing user pool - */ - readonly userPoolId: string; - - /** - * The ARN of the imported user pool - */ - readonly userPoolArn: string; - - /** - * The provider name of the imported user pool - */ - readonly userPoolProviderName: string; - - /** - * The URL of the imported user pool - */ - readonly userPoolProviderUrl: string; -} - +/** + * Represents a Cognito UserPool + */ export interface IUserPool extends IResource { /** * The physical ID of this user pool resource @@ -392,18 +395,6 @@ export interface IUserPool extends IResource { * @attribute */ readonly userPoolArn: string; - - /** - * The provider name of this user pool resource - * @attribute - */ - readonly userPoolProviderName: string; - - /** - * The provider URL of this user pool resource - * @attribute - */ - readonly userPoolProviderUrl: string; } /** @@ -411,22 +402,28 @@ export interface IUserPool extends IResource { */ export class UserPool extends Resource implements IUserPool { /** - * Import an existing user pool resource - * @param scope Parent construct - * @param id Construct ID - * @param attrs Imported user pool properties + * Import an existing user pool based on its id. */ - public static fromUserPoolAttributes(scope: Construct, id: string, attrs: UserPoolAttributes): IUserPool { - /** - * Define a user pool which has been declared in another stack - */ + public static fromUserPoolId(scope: Construct, id: string, userPoolId: string): IUserPool { class Import extends Resource implements IUserPool { - public readonly userPoolId = attrs.userPoolId; - public readonly userPoolArn = attrs.userPoolArn; - public readonly userPoolProviderName = attrs.userPoolProviderName; - public readonly userPoolProviderUrl = attrs.userPoolProviderUrl; + public readonly userPoolId = userPoolId; + public readonly userPoolArn = Stack.of(this).formatArn({ + service: 'cognito-idp', + resource: 'userpool', + resourceName: userPoolId, + }); } + return new Import(scope, id); + } + /** + * Import an existing user pool based on its ARN. + */ + public static fromUserPoolArn(scope: Construct, id: string, userPoolArn: string): IUserPool { + class Import extends Resource implements IUserPool { + public readonly userPoolArn = userPoolArn; + public readonly userPoolId = Stack.of(this).parseArn(userPoolArn).resourceName!; + } return new Import(scope, id); } @@ -442,11 +439,13 @@ export class UserPool extends Resource implements IUserPool { /** * User pool provider name + * @attribute */ public readonly userPoolProviderName: string; /** * User pool provider URL + * @attribute */ public readonly userPoolProviderUrl: string; @@ -455,46 +454,7 @@ export class UserPool extends Resource implements IUserPool { constructor(scope: Construct, id: string, props: UserPoolProps = {}) { super(scope, id); - let aliasAttributes: UserPoolAttribute[] | undefined; - let usernameAttributes: UserPoolAttribute[] | undefined; - - if (props.usernameAliasAttributes != null && props.signInType !== SignInType.USERNAME) { - throw new Error(`'usernameAliasAttributes' can only be set with a signInType of 'USERNAME'`); - } - - if (props.usernameAliasAttributes - && !props.usernameAliasAttributes.every(a => { - return a === UserPoolAttribute.EMAIL || a === UserPoolAttribute.PHONE_NUMBER || a === UserPoolAttribute.PREFERRED_USERNAME; - })) { - throw new Error(`'usernameAliasAttributes' can only include EMAIL, PHONE_NUMBER, or PREFERRED_USERNAME`); - } - - if (props.autoVerifiedAttributes - && !props.autoVerifiedAttributes.every(a => a === UserPoolAttribute.EMAIL || a === UserPoolAttribute.PHONE_NUMBER)) { - throw new Error(`'autoVerifiedAttributes' can only include EMAIL or PHONE_NUMBER`); - } - - switch (props.signInType) { - case SignInType.USERNAME: - aliasAttributes = props.usernameAliasAttributes; - break; - - case SignInType.EMAIL: - usernameAttributes = [UserPoolAttribute.EMAIL]; - break; - - case SignInType.PHONE: - usernameAttributes = [UserPoolAttribute.PHONE_NUMBER]; - break; - - case SignInType.EMAIL_OR_PHONE: - usernameAttributes = [UserPoolAttribute.EMAIL, UserPoolAttribute.PHONE_NUMBER]; - break; - - default: - aliasAttributes = props.usernameAliasAttributes; - break; - } + const signIn = this.signInConfiguration(props); if (props.lambdaTriggers) { for (const t of Object.keys(props.lambdaTriggers)) { @@ -537,9 +497,9 @@ export class UserPool extends Resource implements IUserPool { const userPool = new CfnUserPool(this, 'Resource', { userPoolName: props.userPoolName, - usernameAttributes, - aliasAttributes, - autoVerifiedAttributes: props.autoVerifiedAttributes, + usernameAttributes: signIn.usernameAttrs, + aliasAttributes: signIn.aliasAttrs, + autoVerifiedAttributes: signIn.autoVerifyAttrs, lambdaConfig: Lazy.anyValue({ produce: () => this.triggers }), smsConfiguration: this.smsConfiguration(props), adminCreateUserConfig, @@ -674,6 +634,42 @@ export class UserPool extends Resource implements IUserPool { }); } + private signInConfiguration(props: UserPoolProps) { + let aliasAttrs: string[] | undefined; + let usernameAttrs: string[] | undefined; + let autoVerifyAttrs: string[] | undefined; + + const signIn: SignInAliases = props.signInAliases ?? { username: true }; + + if (signIn.preferredUsername && !signIn.username) { + throw new Error('username signIn must be enabled if preferredUsername is enabled'); + } + + if (signIn.username) { + aliasAttrs = []; + if (signIn.email) { aliasAttrs.push(UserPoolAttribute.EMAIL); } + if (signIn.phone) { aliasAttrs.push(UserPoolAttribute.PHONE_NUMBER); } + if (signIn.preferredUsername) { aliasAttrs.push(UserPoolAttribute.PREFERRED_USERNAME); } + if (aliasAttrs.length === 0) { aliasAttrs = undefined; } + } else { + usernameAttrs = []; + if (signIn.email) { usernameAttrs.push(UserPoolAttribute.EMAIL); } + if (signIn.phone) { usernameAttrs.push(UserPoolAttribute.PHONE_NUMBER); } + } + + if (props.autoVerify) { + autoVerifyAttrs = []; + if (props.autoVerify.email) { autoVerifyAttrs.push(UserPoolAttribute.EMAIL); } + if (props.autoVerify.phone) { autoVerifyAttrs.push(UserPoolAttribute.PHONE_NUMBER); } + } else if (signIn.email || signIn.phone) { + autoVerifyAttrs = []; + if (signIn.email) { autoVerifyAttrs.push(UserPoolAttribute.EMAIL); } + if (signIn.phone) { autoVerifyAttrs.push(UserPoolAttribute.PHONE_NUMBER); } + } + + return { usernameAttrs, aliasAttrs, autoVerifyAttrs }; + } + private smsConfiguration(props: UserPoolProps): CfnUserPool.SmsConfigurationProperty { if (props.smsRole) { return { @@ -710,4 +706,4 @@ export class UserPool extends Resource implements IUserPool { }; } } -} +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-cognito/package.json b/packages/@aws-cdk/aws-cognito/package.json index 92950f5fc475e..2fe3ec4222d97 100644 --- a/packages/@aws-cdk/aws-cognito/package.json +++ b/packages/@aws-cdk/aws-cognito/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-cognito", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::Cognito", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,25 +62,25 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "jest": "^24.9.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "jest": {}, "engines": { @@ -88,9 +88,7 @@ }, "awslint": { "exclude": [ - "from-method:@aws-cdk/aws-cognito.UserPool", - "from-arn:UserPool.fromUserPoolArn", - "docs-public-apis:@aws-cdk/aws-cognito.IUserPool", + "no-unused-type:@aws-cdk/aws-cognito.UserPoolAttribute", "props-default-doc:@aws-cdk/aws-cognito.UserPoolTriggers.verifyAuthChallengeResponse", "props-default-doc:@aws-cdk/aws-cognito.UserPoolTriggers.userMigration", "props-default-doc:@aws-cdk/aws-cognito.UserPoolTriggers.preTokenGeneration", @@ -105,9 +103,8 @@ "docs-public-apis:@aws-cdk/aws-cognito.UserPoolClient.userPoolClientClientSecret", "docs-public-apis:@aws-cdk/aws-cognito.UserPoolClient.userPoolClientId", "docs-public-apis:@aws-cdk/aws-cognito.UserPoolClient.userPoolClientName", - "docs-public-apis:@aws-cdk/aws-cognito.UserPoolAttributes", "docs-public-apis:@aws-cdk/aws-cognito.UserPoolClientProps" ] }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-cognito/test/integ.user-pool-explicit-props.expected.json b/packages/@aws-cdk/aws-cognito/test/integ.user-pool-explicit-props.expected.json new file mode 100644 index 0000000000000..f7b8a29230d8d --- /dev/null +++ b/packages/@aws-cdk/aws-cognito/test/integ.user-pool-explicit-props.expected.json @@ -0,0 +1,81 @@ +{ + "Resources": { + "myuserpoolsmsRole0E16FDD9": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Condition": { + "StringEquals": { + "sts:ExternalId": "integuserpoolmyuserpoolDA38443C" + } + }, + "Effect": "Allow", + "Principal": { + "Service": "cognito-idp.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": "sns:Publish", + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "sns-publish" + } + ] + } + }, + "myuserpool01998219": { + "Type": "AWS::Cognito::UserPool", + "Properties": { + "AdminCreateUserConfig": { + "AllowAdminCreateUserOnly": false, + "InviteMessageTemplate": { + "EmailMessage": "invitation email body from the integ test for {username}. Temp password is {####}.", + "EmailSubject": "invitation email subject from the integ test", + "SMSMessage": "invitation sms message from the integ test for {username}. Temp password is {####}." + } + }, + "AliasAttributes": [ + "email" + ], + "AutoVerifiedAttributes": [ + "email", + "phone_number" + ], + "EmailVerificationMessage": "verification email body from the integ test. Code is {####}.", + "EmailVerificationSubject": "verification email subject from the integ test", + "LambdaConfig": {}, + "SmsConfiguration": { + "ExternalId": "integuserpoolmyuserpoolDA38443C", + "SnsCallerArn": { + "Fn::GetAtt": [ + "myuserpoolsmsRole0E16FDD9", + "Arn" + ] + } + }, + "SmsVerificationMessage": "verification sms message from the integ test. Code is {####}.", + "UserPoolName": "MyUserPool", + "VerificationMessageTemplate": { + "DefaultEmailOption": "CONFIRM_WITH_CODE", + "EmailMessage": "verification email body from the integ test. Code is {####}.", + "EmailSubject": "verification email subject from the integ test", + "SmsMessage": "verification sms message from the integ test. Code is {####}." + } + } + } + } +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-cognito/test/integ.user-pool-explicit-props.ts b/packages/@aws-cdk/aws-cognito/test/integ.user-pool-explicit-props.ts new file mode 100644 index 0000000000000..316beb5d3a494 --- /dev/null +++ b/packages/@aws-cdk/aws-cognito/test/integ.user-pool-explicit-props.ts @@ -0,0 +1,28 @@ +import { App, Stack } from '@aws-cdk/core'; +import { UserPool } from '../lib'; + +const app = new App(); +const stack = new Stack(app, 'integ-user-pool'); + +new UserPool(stack, 'myuserpool', { + userPoolName: 'MyUserPool', + userInvitation: { + emailSubject: 'invitation email subject from the integ test', + emailBody: 'invitation email body from the integ test for {username}. Temp password is {####}.', + smsMessage: 'invitation sms message from the integ test for {username}. Temp password is {####}.', + }, + selfSignUpEnabled: true, + userVerification: { + emailBody: 'verification email body from the integ test. Code is {####}.', + emailSubject: 'verification email subject from the integ test', + smsMessage: 'verification sms message from the integ test. Code is {####}.', + }, + signInAliases: { + username: true, + email: true, + }, + autoVerify: { + email: true, + phone: true, + }, +}); \ No newline at end of file diff --git a/packages/@aws-cdk/aws-cognito/test/user-pool.test.ts b/packages/@aws-cdk/aws-cognito/test/user-pool.test.ts index 32436ffe9ec8b..16cfc7b9b051b 100644 --- a/packages/@aws-cdk/aws-cognito/test/user-pool.test.ts +++ b/packages/@aws-cdk/aws-cognito/test/user-pool.test.ts @@ -3,7 +3,7 @@ import { ABSENT } from '@aws-cdk/assert/lib/assertions/have-resource'; import { Role } from '@aws-cdk/aws-iam'; import * as lambda from '@aws-cdk/aws-lambda'; import { Stack, Tag } from '@aws-cdk/core'; -import { SignInType, UserPool, UserPoolAttribute, VerificationEmailStyle } from '../lib'; +import { UserPool, VerificationEmailStyle } from '../lib'; describe('User Pool', () => { test('default setup', () => { @@ -36,7 +36,7 @@ describe('User Pool', () => { } }); - expect(stack).toHaveResourceLike('AWS::IAM::Role', { + expect(stack).toHaveResource('AWS::IAM::Role', { AssumeRolePolicyDocument: { Statement: [ { @@ -51,7 +51,8 @@ describe('User Pool', () => { Service: 'cognito-idp.amazonaws.com' } } - ] + ], + Version: '2012-10-17' }, Policies: [ { @@ -62,8 +63,10 @@ describe('User Pool', () => { Effect: 'Allow', Resource: '*' } - ] - } + ], + Version: '2012-10-17' + }, + PolicyName: 'sns-publish' } ] }); @@ -154,6 +157,30 @@ describe('User Pool', () => { }); }); + test('import using id', () => { + // GIVEN + const stack = new Stack(undefined, undefined, { + env: { region: 'some-region-1', account: '0123456789012' } + }); + const userPoolId = 'test-user-pool'; + + // WHEN + const pool = UserPool.fromUserPoolId(stack, 'userpool', userPoolId); + expect(pool.userPoolId).toEqual(userPoolId); + expect(pool.userPoolArn).toMatch(/cognito-idp:some-region-1:0123456789012:userpool\/test-user-pool/); + }); + + test('import using arn', () => { + // GIVEN + const stack = new Stack(); + const userPoolArn = 'arn:aws:cognito-idp:us-east-1:0123456789012:userpool/test-user-pool'; + + // WHEN + const pool = UserPool.fromUserPoolArn(stack, 'userpool', userPoolArn); + expect(pool.userPoolId).toEqual('test-user-pool'); + expect(pool.userPoolArn).toEqual(userPoolArn); + }); + test('support tags', () => { // GIVEN const stack = new Stack(); @@ -316,53 +343,97 @@ describe('User Pool', () => { }); }); - test('set sign in type', () => { + test('no username aliases specified', () => { + // GIVEN + const stack = new Stack(); + + // WHEN + new UserPool(stack, 'Pool'); + + // THEN + expect(stack).toHaveResourceLike('AWS::Cognito::UserPool', { + UsernameAttributes: ABSENT, + AliasAttributes: ABSENT, + }); + }); + + test('fails when preferredUsername is used without username', () => { + const stack = new Stack(); + expect(() => new UserPool(stack, 'Pool', { + signInAliases: { preferredUsername: true } + })).toThrow(/username/); + }); + + test('username and email are specified as the username aliases', () => { // GIVEN const stack = new Stack(); // WHEN new UserPool(stack, 'Pool', { - signInType: SignInType.EMAIL, - autoVerifiedAttributes: [ UserPoolAttribute.EMAIL ] + signInAliases: { username: true, email: true } }); // THEN expect(stack).toHaveResourceLike('AWS::Cognito::UserPool', { - UsernameAttributes: [ 'email' ], - AutoVerifiedAttributes: [ 'email' ] + UsernameAttributes: ABSENT, + AliasAttributes: [ 'email' ], }); }); - test('usernameAliasAttributes require signInType of USERNAME', () => { + test('email and phone number are specified as the username aliases', () => { + // GIVEN const stack = new Stack(); - expect(() => { - new UserPool(stack, 'Pool', { - signInType: SignInType.EMAIL, - usernameAliasAttributes: [ UserPoolAttribute.PREFERRED_USERNAME ] - }); - }).toThrow(/'usernameAliasAttributes' can only be set with a signInType of 'USERNAME'/); + // WHEN + new UserPool(stack, 'Pool', { + signInAliases: { email: true, phone: true } + }); + + // THEN + expect(stack).toHaveResourceLike('AWS::Cognito::UserPool', { + UsernameAttributes: [ 'email', 'phone_number' ], + AliasAttributes: ABSENT, + }); }); - test('usernameAliasAttributes must be one or more of EMAIL, PHONE_NUMBER, or PREFERRED_USERNAME', () => { + test('email and phone number are autoverified, by default, if they are specified as signIn', () => { + // GIVEN const stack = new Stack(); - expect(() => { - new UserPool(stack, 'Pool', { - signInType: SignInType.USERNAME, - usernameAliasAttributes: [ UserPoolAttribute.GIVEN_NAME ] - }); - }).toThrow(/'usernameAliasAttributes' can only include EMAIL, PHONE_NUMBER, or PREFERRED_USERNAME/); + // WHEN + new UserPool(stack, 'Pool1', { + userPoolName: 'Pool1', + signInAliases: { email: true } + }); + new UserPool(stack, 'Pool2', { + userPoolName: 'Pool2', + signInAliases: { email: true, phone: true } + }); + + // THEN + expect(stack).toHaveResourceLike('AWS::Cognito::UserPool', { + UserPoolName: 'Pool1', + AutoVerifiedAttributes: [ 'email' ], + }); + expect(stack).toHaveResourceLike('AWS::Cognito::UserPool', { + UserPoolName: 'Pool2', + AutoVerifiedAttributes: [ 'email', 'phone_number' ], + }); }); - test('autoVerifiedAttributes must be one or more of EMAIL or PHONE_NUMBER', () => { + test('explicit autoverify are correctly picked up', () => { + // GIVEN const stack = new Stack(); - expect(() => { - new UserPool(stack, 'Pool', { - signInType: SignInType.EMAIL, - autoVerifiedAttributes: [ UserPoolAttribute.EMAIL, UserPoolAttribute.GENDER ] - }); - }).toThrow(/'autoVerifiedAttributes' can only include EMAIL or PHONE_NUMBER/); + // WHEN + new UserPool(stack, 'Pool', { + signInAliases: { username: true }, + autoVerify: { email: true, phone: true }, + }); + + // THEN + expect(stack).toHaveResourceLike('AWS::Cognito::UserPool', { + AutoVerifiedAttributes: [ 'email', 'phone_number' ], + }); }); }); \ No newline at end of file diff --git a/packages/@aws-cdk/aws-config/README.md b/packages/@aws-cdk/aws-config/README.md index a445ce41c4e38..5f7a09515feb1 100644 --- a/packages/@aws-cdk/aws-config/README.md +++ b/packages/@aws-cdk/aws-config/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-config/package.json b/packages/@aws-cdk/aws-config/package.json index f59e9d525d104..64d5f7453468f 100644 --- a/packages/@aws-cdk/aws-config/package.json +++ b/packages/@aws-cdk/aws-config/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-config", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::Config", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,29 +62,29 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "@aws-cdk/aws-events-targets": "999.0.0", + "@aws-cdk/assert": "0.0.0", + "@aws-cdk/aws-events-targets": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -99,4 +99,4 @@ "docs-public-apis:@aws-cdk/aws-config.MaximumExecutionFrequency.TWELVE_HOURS" ] } -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-datapipeline/README.md b/packages/@aws-cdk/aws-datapipeline/README.md index 64205055eaf59..a7eddc7f0d21c 100644 --- a/packages/@aws-cdk/aws-datapipeline/README.md +++ b/packages/@aws-cdk/aws-datapipeline/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-datapipeline/package.json b/packages/@aws-cdk/aws-datapipeline/package.json index 670941f5acd09..bf2ebe2516297 100644 --- a/packages/@aws-cdk/aws-datapipeline/package.json +++ b/packages/@aws-cdk/aws-datapipeline/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-datapipeline", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::DataPipeline", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,20 +79,20 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-dax/README.md b/packages/@aws-cdk/aws-dax/README.md index 3ebd3a9a965fd..05f54c720ebb4 100644 --- a/packages/@aws-cdk/aws-dax/README.md +++ b/packages/@aws-cdk/aws-dax/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-dax/package.json b/packages/@aws-cdk/aws-dax/package.json index c006e550e2d07..53710eaac8d12 100644 --- a/packages/@aws-cdk/aws-dax/package.json +++ b/packages/@aws-cdk/aws-dax/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-dax", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::DAX", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,20 +79,20 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-directoryservice/README.md b/packages/@aws-cdk/aws-directoryservice/README.md index 1cfabafac2ed1..5daacfdb45e43 100644 --- a/packages/@aws-cdk/aws-directoryservice/README.md +++ b/packages/@aws-cdk/aws-directoryservice/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-directoryservice/package.json b/packages/@aws-cdk/aws-directoryservice/package.json index 80e3fcbcccbd5..0450516f9fcd7 100644 --- a/packages/@aws-cdk/aws-directoryservice/package.json +++ b/packages/@aws-cdk/aws-directoryservice/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-directoryservice", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::DirectoryService", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,20 +79,20 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-dlm/README.md b/packages/@aws-cdk/aws-dlm/README.md index b0e6b37dace28..fca2acb6d66e7 100644 --- a/packages/@aws-cdk/aws-dlm/README.md +++ b/packages/@aws-cdk/aws-dlm/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-dlm/package.json b/packages/@aws-cdk/aws-dlm/package.json index 7b64504b4a600..f66e559f0178c 100644 --- a/packages/@aws-cdk/aws-dlm/package.json +++ b/packages/@aws-cdk/aws-dlm/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-dlm", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::DLM", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -80,19 +80,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-dms/README.md b/packages/@aws-cdk/aws-dms/README.md index 6ca27dc2b971c..ec048fef319eb 100644 --- a/packages/@aws-cdk/aws-dms/README.md +++ b/packages/@aws-cdk/aws-dms/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-dms/package.json b/packages/@aws-cdk/aws-dms/package.json index f03d059933eeb..071c60bc5502b 100644 --- a/packages/@aws-cdk/aws-dms/package.json +++ b/packages/@aws-cdk/aws-dms/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-dms", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::DMS", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,20 +79,20 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-docdb/README.md b/packages/@aws-cdk/aws-docdb/README.md index 52889ac19b508..98c12f21624aa 100644 --- a/packages/@aws-cdk/aws-docdb/README.md +++ b/packages/@aws-cdk/aws-docdb/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-docdb/package.json b/packages/@aws-cdk/aws-docdb/package.json index 3ddfe301b024d..afa64f59a95af 100644 --- a/packages/@aws-cdk/aws-docdb/package.json +++ b/packages/@aws-cdk/aws-docdb/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-docdb", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::DocDB", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-dynamodb-global/lambda-packages/aws-global-table-coordinator/package.json b/packages/@aws-cdk/aws-dynamodb-global/lambda-packages/aws-global-table-coordinator/package.json index f0b63415581d7..7fa9a6464fd1f 100644 --- a/packages/@aws-cdk/aws-dynamodb-global/lambda-packages/aws-global-table-coordinator/package.json +++ b/packages/@aws-cdk/aws-dynamodb-global/lambda-packages/aws-global-table-coordinator/package.json @@ -1,7 +1,7 @@ { "name": "aws-global-lambda-coordinator", "private": true, - "version": "999.0.0", + "version": "0.0.0", "description": "This module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project.", "main": "lib/handler.js", "directories": { @@ -39,4 +39,4 @@ "lambda-tester": "^3.6.0", "nock": "^11.7.0" } -} +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-dynamodb-global/package.json b/packages/@aws-cdk/aws-dynamodb-global/package.json index c6ddcb1676731..0ab4cdfe230de 100644 --- a/packages/@aws-cdk/aws-dynamodb-global/package.json +++ b/packages/@aws-cdk/aws-dynamodb-global/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-dynamodb-global", - "version": "999.0.0", + "version": "0.0.0", "description": "Build a global dynamodb table", "deprecated": "This module has been deprecated. Use @aws-cdk/aws-dynamodb.Table with replicationRegions instead", "license": "Apache-2.0", @@ -46,27 +46,27 @@ "global" ], "dependencies": { - "@aws-cdk/aws-cloudformation": "999.0.0", - "@aws-cdk/aws-dynamodb": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-dynamodb": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "peerDependencies": { - "@aws-cdk/aws-cloudformation": "999.0.0", - "@aws-cdk/aws-dynamodb": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-dynamodb": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "scripts": { "build": "cdk-build", @@ -88,4 +88,4 @@ "main": "lib/index.js", "types": "lib/index.d.ts", "stability": "deprecated" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-dynamodb/package.json b/packages/@aws-cdk/aws-dynamodb/package.json index 210a0f93f18d4..c43776efbdc96 100644 --- a/packages/@aws-cdk/aws-dynamodb/package.json +++ b/packages/@aws-cdk/aws-dynamodb/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-dynamodb", - "version": "999.0.0", + "version": "0.0.0", "description": "CDK Constructs for AWS DynamoDB", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,35 +62,35 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "aws-sdk": "^2.625.0", + "aws-sdk": "^2.631.0", "aws-sdk-mock": "^5.0.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0", + "pkglint": "0.0.0", "sinon": "^9.0.0" }, "dependencies": { - "@aws-cdk/aws-applicationautoscaling": "999.0.0", - "@aws-cdk/aws-cloudformation": "999.0.0", - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/custom-resources": "999.0.0" + "@aws-cdk/aws-applicationautoscaling": "0.0.0", + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/custom-resources": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-applicationautoscaling": "999.0.0", - "@aws-cdk/aws-cloudformation": "999.0.0", - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/custom-resources": "999.0.0" + "@aws-cdk/aws-applicationautoscaling": "0.0.0", + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/custom-resources": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -117,4 +117,4 @@ "docs-public-apis:@aws-cdk/aws-dynamodb.ProjectionType.INCLUDE" ] } -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-ec2/README.md b/packages/@aws-cdk/aws-ec2/README.md index abd36271a73f3..c4ff1c03f1939 100644 --- a/packages/@aws-cdk/aws-ec2/README.md +++ b/packages/@aws-cdk/aws-ec2/README.md @@ -556,3 +556,24 @@ new ec2.FlowLog(this, 'FlowLog', { destination: ec2.FlowLogDestination.toS3(bucket) }); ``` + +## User Data +User data enables you to run a script when your instances start up. In order to configure these scripts you can add commands directly to the script + or you can use the UserData's convenience functions to aid in the creation of your script. + +A user data could be configured to run a script found in an asset through the following: +```ts +const asset = new Asset(this, 'Asset', {path: path.join(__dirname, 'configure.sh')}); +const instance = new ec2.Instance(this, 'Instance', { + // ... + }); +const localPath = instance.userData.addS3DownloadCommand({ + bucket:asset.bucket, + bucketKey:asset.s3ObjectKey, +}); +instance.userData.addExecuteFileCommand({ + filePath:localPath, + arguments: '--verbose -y' +}); +asset.grantRead( instance.role ); +``` \ No newline at end of file diff --git a/packages/@aws-cdk/aws-ec2/lib/user-data.ts b/packages/@aws-cdk/aws-ec2/lib/user-data.ts index b637e181c8104..aecab8cd0e3ec 100644 --- a/packages/@aws-cdk/aws-ec2/lib/user-data.ts +++ b/packages/@aws-cdk/aws-ec2/lib/user-data.ts @@ -1,3 +1,5 @@ +import { IBucket } from "@aws-cdk/aws-s3"; +import { CfnElement, Resource, Stack } from "@aws-cdk/core"; import { OperatingSystemType } from "./machine-image"; /** @@ -12,6 +14,50 @@ export interface LinuxUserDataOptions { readonly shebang?: string; } +/** + * Options when downloading files from S3 + */ +export interface S3DownloadOptions { + + /** + * Name of the S3 bucket to download from + */ + readonly bucket: IBucket; + + /** + * The key of the file to download + */ + readonly bucketKey: string; + + /** + * The name of the local file. + * + * @default Linux - /tmp/bucketKey + * Windows - %TEMP%/bucketKey + */ + readonly localFile?: string; + +} + +/** + * Options when executing a file. + */ +export interface ExecuteFileOptions { + + /** + * The path to the file. + */ + readonly filePath: string; + + /** + * The arguments to be passed to the file. + * + * @default No arguments are passed to the file. + */ + readonly arguments?: string; + +} + /** * Instance User Data */ @@ -51,14 +97,41 @@ export abstract class UserData { */ public abstract addCommands(...commands: string[]): void; + /** + * Add one or more commands to the user data that will run when the script exits. + */ + public abstract addOnExitCommands(...commands: string[]): void; + /** * Render the UserData for use in a construct */ public abstract render(): string; + + /** + * Adds commands to download a file from S3 + * + * @returns: The local path that the file will be downloaded to + */ + public abstract addS3DownloadCommand(params: S3DownloadOptions): string; + + /** + * Adds commands to execute a file + */ + public abstract addExecuteFileCommand( params: ExecuteFileOptions): void; + + /** + * Adds a command which will send a cfn-signal when the user data script ends + */ + public abstract addSignalOnExitCommand( resource: Resource ): void; + } +/** + * Linux Instance User Data + */ class LinuxUserData extends UserData { private readonly lines: string[] = []; + private readonly onExitLines: string[] = []; constructor(private readonly props: LinuxUserDataOptions = {}) { super(); @@ -68,14 +141,54 @@ class LinuxUserData extends UserData { this.lines.push(...commands); } + public addOnExitCommands(...commands: string[]) { + this.onExitLines.push(...commands); + } + public render(): string { const shebang = this.props.shebang !== undefined ? this.props.shebang : '#!/bin/bash'; - return [shebang, ...this.lines].join('\n'); + return [shebang, ...(this.renderOnExitLines()), ...this.lines].join('\n'); + } + + public addS3DownloadCommand(params: S3DownloadOptions): string { + const s3Path = `s3://${params.bucket.bucketName}/${params.bucketKey}`; + const localPath = ( params.localFile && params.localFile.length !== 0 ) ? params.localFile : `/tmp/${ params.bucketKey }`; + this.addCommands( + `mkdir -p $(dirname '${localPath}')`, + `aws s3 cp '${s3Path}' '${localPath}'` + ); + + return localPath; + } + + public addExecuteFileCommand( params: ExecuteFileOptions): void { + this.addCommands( + `set -e`, + `chmod +x '${params.filePath}'`, + `'${params.filePath}' ${params.arguments}` + ); + } + + public addSignalOnExitCommand( resource: Resource ): void { + const stack = Stack.of(resource); + const resourceID = stack.getLogicalId(resource.node.defaultChild as CfnElement); + this.addOnExitCommands(`/opt/aws/bin/cfn-signal --stack ${stack.stackName} --resource ${resourceID} --region ${stack.region} -e $exitCode || echo 'Failed to send Cloudformation Signal'`); + } + + private renderOnExitLines(): string[] { + if ( this.onExitLines.length > 0 ) { + return [ 'function exitTrap(){', 'exitCode=$?', ...this.onExitLines, '}', 'trap exitTrap EXIT' ]; + } + return []; } } +/** + * Windows Instance User Data + */ class WindowsUserData extends UserData { private readonly lines: string[] = []; + private readonly onExitLines: string[] = []; constructor() { super(); @@ -85,11 +198,53 @@ class WindowsUserData extends UserData { this.lines.push(...commands); } + public addOnExitCommands(...commands: string[]) { + this.onExitLines.push(...commands); + } + public render(): string { - return `${this.lines.join('\n')}`; + return `${ + [...(this.renderOnExitLines()), + ...this.lines, + ...( this.onExitLines.length > 0 ? ['throw "Success"'] : [] ) + ].join('\n') + }`; + } + + public addS3DownloadCommand(params: S3DownloadOptions): string { + const localPath = ( params.localFile && params.localFile.length !== 0 ) ? params.localFile : `C:/temp/${ params.bucketKey }`; + this.addCommands( + `mkdir (Split-Path -Path '${localPath}' ) -ea 0`, + `Read-S3Object -BucketName '${params.bucket.bucketName}' -key '${params.bucketKey}' -file '${localPath}' -ErrorAction Stop` + ); + return localPath; + } + + public addExecuteFileCommand( params: ExecuteFileOptions): void { + this.addCommands( + `&'${params.filePath}' ${params.arguments}`, + `if (!$?) { Write-Error 'Failed to execute the file "${params.filePath}"' -ErrorAction Stop }` + ); + } + + public addSignalOnExitCommand( resource: Resource ): void { + const stack = Stack.of(resource); + const resourceID = stack.getLogicalId(resource.node.defaultChild as CfnElement); + + this.addOnExitCommands(`cfn-signal --stack ${stack.stackName} --resource ${resourceID} --region ${stack.region} --success ($success.ToString().ToLower())`); + } + + private renderOnExitLines(): string[] { + if ( this.onExitLines.length > 0 ) { + return ['trap {', '$success=($PSItem.Exception.Message -eq "Success")', ...this.onExitLines, 'break', '}']; + } + return []; } } +/** + * Custom Instance User Data + */ class CustomUserData extends UserData { private readonly lines: string[] = []; @@ -101,7 +256,23 @@ class CustomUserData extends UserData { this.lines.push(...commands); } + public addOnExitCommands(): void { + throw new Error("CustomUserData does not support addOnExitCommands, use UserData.forLinux() or UserData.forWindows() instead."); + } + public render(): string { return this.lines.join('\n'); } + + public addS3DownloadCommand(): string { + throw new Error("CustomUserData does not support addS3DownloadCommand, use UserData.forLinux() or UserData.forWindows() instead."); + } + + public addExecuteFileCommand(): void { + throw new Error("CustomUserData does not support addExecuteFileCommand, use UserData.forLinux() or UserData.forWindows() instead."); + } + + public addSignalOnExitCommand(): void { + throw new Error("CustomUserData does not support addSignalOnExitCommand, use UserData.forLinux() or UserData.forWindows() instead."); + } } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-ec2/package.json b/packages/@aws-cdk/aws-ec2/package.json index 8963484b433fa..240dc7ac08698 100644 --- a/packages/@aws-cdk/aws-ec2/package.json +++ b/packages/@aws-cdk/aws-ec2/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-ec2", - "version": "999.0.0", + "version": "0.0.0", "description": "CDK Constructs for AWS EC2", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,32 +62,32 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-logs": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/aws-ssm": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/cx-api": "999.0.0" + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-ssm": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/cx-api": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-logs": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/aws-ssm": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/cx-api": "999.0.0" + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-ssm": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/cx-api": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -470,4 +470,4 @@ ] }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-ec2/test/test.userdata.ts b/packages/@aws-cdk/aws-ec2/test/test.userdata.ts index 48ba004fd56dd..83ea9cf2f0b18 100644 --- a/packages/@aws-cdk/aws-ec2/test/test.userdata.ts +++ b/packages/@aws-cdk/aws-ec2/test/test.userdata.ts @@ -1,4 +1,6 @@ +import { Bucket } from '@aws-cdk/aws-s3'; import { Test } from 'nodeunit'; +import { Stack } from "../../core/lib"; import * as ec2 from '../lib'; export = { @@ -14,6 +16,99 @@ export = { test.equals(rendered, 'command1\ncommand2'); test.done(); }, + 'can create Windows user data with commands on exit'(test: Test) { + // GIVEN + const userData = ec2.UserData.forWindows(); + + // WHEN + userData.addCommands('command1', 'command2'); + userData.addOnExitCommands('onexit1', 'onexit2'); + + // THEN + const rendered = userData.render(); + test.equals(rendered, 'trap {\n' + + '$success=($PSItem.Exception.Message -eq "Success")\n' + + 'onexit1\n' + + 'onexit2\n' + + 'break\n' + + '}\n' + + 'command1\n' + + 'command2\n' + + 'throw "Success"'); + test.done(); + }, + 'can create Windows with Signal Command'(test: Test) { + // GIVEN + const stack = new Stack(); + const resource = new ec2.Vpc(stack, 'RESOURCE'); + const userData = ec2.UserData.forWindows(); + + // WHEN + userData.addSignalOnExitCommand( resource ); + userData.addCommands("command1"); + + // THEN + const rendered = userData.render(); + + test.equals(rendered, 'trap {\n' + + '$success=($PSItem.Exception.Message -eq "Success")\n' + + 'cfn-signal --stack Stack --resource RESOURCE1989552F --region ${Token[AWS::Region.4]} --success ($success.ToString().ToLower())\n' + + 'break\n' + + '}\n' + + 'command1\n' + + 'throw "Success"' + ); + test.done(); + }, + 'can windows userdata download S3 files'(test: Test) { + // GIVEN + const stack = new Stack(); + const userData = ec2.UserData.forWindows(); + const bucket = Bucket.fromBucketName( stack, "testBucket", "test" ); + const bucket2 = Bucket.fromBucketName( stack, "testBucket2", "test2" ); + + // WHEN + userData.addS3DownloadCommand({ + bucket, + bucketKey: "filename.bat" + } ); + userData.addS3DownloadCommand({ + bucket: bucket2, + bucketKey: "filename2.bat", + localFile: "c:\\test\\location\\otherScript.bat" + } ); + + // THEN + const rendered = userData.render(); + test.equals(rendered, 'mkdir (Split-Path -Path \'C:/temp/filename.bat\' ) -ea 0\n' + + 'Read-S3Object -BucketName \'test\' -key \'filename.bat\' -file \'C:/temp/filename.bat\' -ErrorAction Stop\n' + + 'mkdir (Split-Path -Path \'c:\\test\\location\\otherScript.bat\' ) -ea 0\n' + + 'Read-S3Object -BucketName \'test2\' -key \'filename2.bat\' -file \'c:\\test\\location\\otherScript.bat\' -ErrorAction Stop' + ); + test.done(); + }, + 'can windows userdata execute files'(test: Test) { + // GIVEN + const userData = ec2.UserData.forWindows(); + + // WHEN + userData.addExecuteFileCommand({ + filePath: "C:\\test\\filename.bat", + } ); + userData.addExecuteFileCommand({ + filePath: "C:\\test\\filename2.bat", + arguments: "arg1 arg2 -arg $variable" + } ); + + // THEN + const rendered = userData.render(); + test.equals(rendered, '&\'C:\\test\\filename.bat\' undefined\n' + + 'if (!$?) { Write-Error \'Failed to execute the file "C:\\test\\filename.bat"\' -ErrorAction Stop }\n' + + '&\'C:\\test\\filename2.bat\' arg1 arg2 -arg $variable\n' + + 'if (!$?) { Write-Error \'Failed to execute the file "C:\\test\\filename2.bat"\' -ErrorAction Stop }' + ); + test.done(); + }, 'can create Linux user data'(test: Test) { // GIVEN @@ -26,6 +121,101 @@ export = { test.equals(rendered, '#!/bin/bash\ncommand1\ncommand2'); test.done(); }, + 'can create Linux user data with commands on exit'(test: Test) { + // GIVEN + const userData = ec2.UserData.forLinux(); + + // WHEN + userData.addCommands('command1', 'command2'); + userData.addOnExitCommands('onexit1', 'onexit2'); + + // THEN + const rendered = userData.render(); + test.equals(rendered, '#!/bin/bash\n' + + 'function exitTrap(){\n' + + 'exitCode=$?\n' + + 'onexit1\n' + + 'onexit2\n' + + '}\n' + + 'trap exitTrap EXIT\n' + + 'command1\n' + + 'command2'); + test.done(); + }, + 'can create Linux with Signal Command'(test: Test) { + // GIVEN + const stack = new Stack(); + const resource = new ec2.Vpc(stack, 'RESOURCE'); + + // WHEN + const userData = ec2.UserData.forLinux(); + userData.addCommands("command1"); + userData.addSignalOnExitCommand( resource ); + + // THEN + const rendered = userData.render(); + test.equals(rendered, '#!/bin/bash\n' + + 'function exitTrap(){\n' + + 'exitCode=$?\n' + + '/opt/aws/bin/cfn-signal --stack Stack --resource RESOURCE1989552F --region ${Token[AWS::Region.4]} -e $exitCode || echo \'Failed to send Cloudformation Signal\'\n' + + '}\n' + + 'trap exitTrap EXIT\n' + + 'command1'); + test.done(); + }, + 'can linux userdata download S3 files'(test: Test) { + // GIVEN + const stack = new Stack(); + const userData = ec2.UserData.forLinux(); + const bucket = Bucket.fromBucketName( stack, "testBucket", "test" ); + const bucket2 = Bucket.fromBucketName( stack, "testBucket2", "test2" ); + + // WHEN + userData.addS3DownloadCommand({ + bucket, + bucketKey: "filename.sh" + } ); + userData.addS3DownloadCommand({ + bucket: bucket2, + bucketKey: "filename2.sh", + localFile: "c:\\test\\location\\otherScript.sh" + } ); + + // THEN + const rendered = userData.render(); + test.equals(rendered, '#!/bin/bash\n' + + 'mkdir -p $(dirname \'/tmp/filename.sh\')\n' + + 'aws s3 cp \'s3://test/filename.sh\' \'/tmp/filename.sh\'\n' + + 'mkdir -p $(dirname \'c:\\test\\location\\otherScript.sh\')\n' + + 'aws s3 cp \'s3://test2/filename2.sh\' \'c:\\test\\location\\otherScript.sh\'' + ); + test.done(); + }, + 'can linux userdata execute files'(test: Test) { + // GIVEN + const userData = ec2.UserData.forLinux(); + + // WHEN + userData.addExecuteFileCommand({ + filePath: "/tmp/filename.sh", + } ); + userData.addExecuteFileCommand({ + filePath: "/test/filename2.sh", + arguments: "arg1 arg2 -arg $variable" + } ); + + // THEN + const rendered = userData.render(); + test.equals(rendered, '#!/bin/bash\n' + + 'set -e\n' + + 'chmod +x \'/tmp/filename.sh\'\n' + + '\'/tmp/filename.sh\' undefined\n' + + 'set -e\n' + + 'chmod +x \'/test/filename2.sh\'\n' + + '\'/test/filename2.sh\' arg1 arg2 -arg $variable' + ); + test.done(); + }, 'can create Custom user data'(test: Test) { // GIVEN @@ -37,4 +227,50 @@ export = { test.equals(rendered, 'Some\nmultiline\ncontent'); test.done(); }, + 'Custom user data throws when adding on exit commands'(test: Test) { + // GIVEN + // WHEN + const userData = ec2.UserData.custom(""); + + // THEN + test.throws(() => userData.addOnExitCommands( "a command goes here" )); + test.done(); + }, + 'Custom user data throws when adding signal command'(test: Test) { + // GIVEN + const stack = new Stack(); + const resource = new ec2.Vpc(stack, 'RESOURCE'); + + // WHEN + const userData = ec2.UserData.custom(""); + + // THEN + test.throws(() => userData.addSignalOnExitCommand( resource )); + test.done(); + }, + 'Custom user data throws when downloading file'(test: Test) { + // GIVEN + const stack = new Stack(); + const userData = ec2.UserData.custom(""); + const bucket = Bucket.fromBucketName( stack, "testBucket", "test" ); + // WHEN + // THEN + test.throws(() => userData.addS3DownloadCommand({ + bucket, + bucketKey: "filename.sh" + } )); + test.done(); + }, + 'Custom user data throws when executing file'(test: Test) { + // GIVEN + const userData = ec2.UserData.custom(""); + // WHEN + // THEN + test.throws(() => + userData.addExecuteFileCommand({ + filePath: "/tmp/filename.sh", + } )); + test.done(); + }, + }; diff --git a/packages/@aws-cdk/aws-ecr-assets/README.md b/packages/@aws-cdk/aws-ecr-assets/README.md index 93a7f9033423b..75cfcab499c16 100644 --- a/packages/@aws-cdk/aws-ecr-assets/README.md +++ b/packages/@aws-cdk/aws-ecr-assets/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-ecr-assets/package.json b/packages/@aws-cdk/aws-ecr-assets/package.json index b162ef79048ec..a8e3a1b8e6fa1 100644 --- a/packages/@aws-cdk/aws-ecr-assets/package.json +++ b/packages/@aws-cdk/aws-ecr-assets/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-ecr-assets", - "version": "999.0.0", + "version": "0.0.0", "description": "Docker image assets deployed to ECR", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -59,37 +59,37 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", "@types/proxyquire": "^1.3.28", - "aws-cdk": "999.0.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", + "aws-cdk": "0.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0", + "pkglint": "0.0.0", "proxyquire": "^2.1.3" }, "dependencies": { - "@aws-cdk/assets": "999.0.0", - "@aws-cdk/aws-cloudformation": "999.0.0", - "@aws-cdk/aws-ecr": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/cx-api": "999.0.0", + "@aws-cdk/assets": "0.0.0", + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-ecr": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/cx-api": "0.0.0", "minimatch": "^3.0.4" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/assets": "999.0.0", - "@aws-cdk/aws-cloudformation": "999.0.0", - "@aws-cdk/aws-ecr": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/cx-api": "999.0.0" + "@aws-cdk/assets": "0.0.0", + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-ecr": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/cx-api": "0.0.0" }, "nyc": { "statements": 70 @@ -101,4 +101,4 @@ "minimatch" ], "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-ecr/package.json b/packages/@aws-cdk/aws-ecr/package.json index 72a3ded499f45..f89bfe9348f18 100644 --- a/packages/@aws-cdk/aws-ecr/package.json +++ b/packages/@aws-cdk/aws-ecr/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-ecr", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::ECR", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -66,24 +66,24 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -104,4 +104,4 @@ ] }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-ecs-patterns/package.json b/packages/@aws-cdk/aws-ecs-patterns/package.json index 18270479d8691..5311b7c9f7543 100644 --- a/packages/@aws-cdk/aws-ecs-patterns/package.json +++ b/packages/@aws-cdk/aws-ecs-patterns/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-ecs-patterns", - "version": "999.0.0", + "version": "0.0.0", "description": "CDK Constructs for AWS ECS", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -60,45 +60,45 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "jest": "^24.9.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-applicationautoscaling": "999.0.0", - "@aws-cdk/aws-certificatemanager": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-ecs": "999.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "999.0.0", - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-events-targets": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-route53": "999.0.0", - "@aws-cdk/aws-route53-targets": "999.0.0", - "@aws-cdk/aws-servicediscovery": "999.0.0", - "@aws-cdk/aws-sqs": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-applicationautoscaling": "0.0.0", + "@aws-cdk/aws-certificatemanager": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-ecs": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-events-targets": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-route53": "0.0.0", + "@aws-cdk/aws-route53-targets": "0.0.0", + "@aws-cdk/aws-servicediscovery": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-applicationautoscaling": "999.0.0", - "@aws-cdk/aws-certificatemanager": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-ecs": "999.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "999.0.0", - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-events-targets": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-route53": "999.0.0", - "@aws-cdk/aws-route53-targets": "999.0.0", - "@aws-cdk/aws-servicediscovery": "999.0.0", - "@aws-cdk/aws-sqs": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-applicationautoscaling": "0.0.0", + "@aws-cdk/aws-certificatemanager": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-ecs": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-events-targets": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-route53": "0.0.0", + "@aws-cdk/aws-route53-targets": "0.0.0", + "@aws-cdk/aws-servicediscovery": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -112,4 +112,4 @@ "docs-public-apis:@aws-cdk/aws-ecs-patterns.ScheduledTaskImageProps" ] } -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-ecs/package.json b/packages/@aws-cdk/aws-ecs/package.json index b920560cec848..04760f9b47477 100644 --- a/packages/@aws-cdk/aws-ecs/package.json +++ b/packages/@aws-cdk/aws-ecs/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-ecs", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::ECS", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,67 +62,67 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "@aws-cdk/aws-s3-assets": "999.0.0", + "@aws-cdk/assert": "0.0.0", + "@aws-cdk/aws-s3-assets": "0.0.0", "@types/nodeunit": "^0.0.30", "@types/proxyquire": "^1.3.28", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0", + "pkglint": "0.0.0", "proxyquire": "^2.1.3" }, "dependencies": { - "@aws-cdk/aws-applicationautoscaling": "999.0.0", - "@aws-cdk/aws-autoscaling": "999.0.0", - "@aws-cdk/aws-autoscaling-hooktargets": "999.0.0", - "@aws-cdk/aws-certificatemanager": "999.0.0", - "@aws-cdk/aws-cloudformation": "999.0.0", - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-ecr": "999.0.0", - "@aws-cdk/aws-ecr-assets": "999.0.0", - "@aws-cdk/aws-elasticloadbalancing": "999.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-logs": "999.0.0", - "@aws-cdk/aws-route53": "999.0.0", - "@aws-cdk/aws-route53-targets": "999.0.0", - "@aws-cdk/aws-secretsmanager": "999.0.0", - "@aws-cdk/aws-servicediscovery": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/aws-sqs": "999.0.0", - "@aws-cdk/aws-ssm": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/cx-api": "999.0.0" + "@aws-cdk/aws-applicationautoscaling": "0.0.0", + "@aws-cdk/aws-autoscaling": "0.0.0", + "@aws-cdk/aws-autoscaling-hooktargets": "0.0.0", + "@aws-cdk/aws-certificatemanager": "0.0.0", + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-ecr": "0.0.0", + "@aws-cdk/aws-ecr-assets": "0.0.0", + "@aws-cdk/aws-elasticloadbalancing": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/aws-route53": "0.0.0", + "@aws-cdk/aws-route53-targets": "0.0.0", + "@aws-cdk/aws-secretsmanager": "0.0.0", + "@aws-cdk/aws-servicediscovery": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/aws-ssm": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/cx-api": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-applicationautoscaling": "999.0.0", - "@aws-cdk/aws-autoscaling": "999.0.0", - "@aws-cdk/aws-autoscaling-hooktargets": "999.0.0", - "@aws-cdk/aws-certificatemanager": "999.0.0", - "@aws-cdk/aws-cloudformation": "999.0.0", - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-ecr": "999.0.0", - "@aws-cdk/aws-ecr-assets": "999.0.0", - "@aws-cdk/aws-elasticloadbalancing": "999.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-logs": "999.0.0", - "@aws-cdk/aws-route53": "999.0.0", - "@aws-cdk/aws-route53-targets": "999.0.0", - "@aws-cdk/aws-secretsmanager": "999.0.0", - "@aws-cdk/aws-servicediscovery": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/aws-sqs": "999.0.0", - "@aws-cdk/aws-ssm": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/cx-api": "999.0.0" + "@aws-cdk/aws-applicationautoscaling": "0.0.0", + "@aws-cdk/aws-autoscaling": "0.0.0", + "@aws-cdk/aws-autoscaling-hooktargets": "0.0.0", + "@aws-cdk/aws-certificatemanager": "0.0.0", + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-ecr": "0.0.0", + "@aws-cdk/aws-ecr-assets": "0.0.0", + "@aws-cdk/aws-elasticloadbalancing": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/aws-route53": "0.0.0", + "@aws-cdk/aws-route53-targets": "0.0.0", + "@aws-cdk/aws-secretsmanager": "0.0.0", + "@aws-cdk/aws-servicediscovery": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/aws-ssm": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/cx-api": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -255,4 +255,4 @@ ] }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-efs/README.md b/packages/@aws-cdk/aws-efs/README.md index d053006e4d988..6b9958d570161 100644 --- a/packages/@aws-cdk/aws-efs/README.md +++ b/packages/@aws-cdk/aws-efs/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-efs/package.json b/packages/@aws-cdk/aws-efs/package.json index e9d88587ece04..04dbf74368339 100644 --- a/packages/@aws-cdk/aws-efs/package.json +++ b/packages/@aws-cdk/aws-efs/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-efs", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::EFS", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,20 +79,20 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-eks-legacy/package.json b/packages/@aws-cdk/aws-eks-legacy/package.json index d641ecddb1fe8..f15cace0da3a1 100644 --- a/packages/@aws-cdk/aws-eks-legacy/package.json +++ b/packages/@aws-cdk/aws-eks-legacy/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-eks-legacy", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::EKS (Legacy)", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,32 +62,32 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-autoscaling": "999.0.0", - "@aws-cdk/aws-cloudformation": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-ssm": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-autoscaling": "0.0.0", + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-ssm": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-autoscaling": "999.0.0", - "@aws-cdk/aws-cloudformation": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-ssm": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-autoscaling": "0.0.0", + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-ssm": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -115,4 +115,4 @@ ] }, "stability": "deprecated" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-eks/README.md b/packages/@aws-cdk/aws-eks/README.md index 7fc8da49ec49b..0369f13137416 100644 --- a/packages/@aws-cdk/aws-eks/README.md +++ b/packages/@aws-cdk/aws-eks/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-eks/package.json b/packages/@aws-cdk/aws-eks/package.json index 1443e5dc3de61..02187454bfe2d 100644 --- a/packages/@aws-cdk/aws-eks/package.json +++ b/packages/@aws-cdk/aws-eks/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-eks", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::EKS", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,36 +62,36 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "aws-sdk": "^2.625.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "aws-sdk": "^2.631.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0", + "pkglint": "0.0.0", "sinon": "^9.0.0" }, "dependencies": { - "@aws-cdk/aws-autoscaling": "999.0.0", - "@aws-cdk/aws-cloudformation": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-ssm": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/custom-resources": "999.0.0" + "@aws-cdk/aws-autoscaling": "0.0.0", + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-ssm": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/custom-resources": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-autoscaling": "999.0.0", - "@aws-cdk/aws-cloudformation": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-ssm": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/custom-resources": "999.0.0" + "@aws-cdk/aws-autoscaling": "0.0.0", + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-ssm": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/custom-resources": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -105,4 +105,4 @@ ] }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-elasticache/README.md b/packages/@aws-cdk/aws-elasticache/README.md index d4e2cafe53cd3..a288bc6567227 100644 --- a/packages/@aws-cdk/aws-elasticache/README.md +++ b/packages/@aws-cdk/aws-elasticache/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-elasticache/package.json b/packages/@aws-cdk/aws-elasticache/package.json index 37555a69e3d29..efda232fb1bb1 100644 --- a/packages/@aws-cdk/aws-elasticache/package.json +++ b/packages/@aws-cdk/aws-elasticache/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-elasticache", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::ElastiCache", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,20 +79,20 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-elasticbeanstalk/README.md b/packages/@aws-cdk/aws-elasticbeanstalk/README.md index 03f6b6931a653..dbbeacf35b427 100644 --- a/packages/@aws-cdk/aws-elasticbeanstalk/README.md +++ b/packages/@aws-cdk/aws-elasticbeanstalk/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-elasticbeanstalk/package.json b/packages/@aws-cdk/aws-elasticbeanstalk/package.json index a26c76162742c..64827c5b90225 100644 --- a/packages/@aws-cdk/aws-elasticbeanstalk/package.json +++ b/packages/@aws-cdk/aws-elasticbeanstalk/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-elasticbeanstalk", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::ElasticBeanstalk", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,20 +79,20 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-elasticloadbalancing/package.json b/packages/@aws-cdk/aws-elasticloadbalancing/package.json index cdffd4aa9a9e6..d5885636da648 100644 --- a/packages/@aws-cdk/aws-elasticloadbalancing/package.json +++ b/packages/@aws-cdk/aws-elasticloadbalancing/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-elasticloadbalancing", - "version": "999.0.0", + "version": "0.0.0", "description": "CDK Constructs for AWS ElasticLoadBalancing", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,22 +62,22 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -108,4 +108,4 @@ ] }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-elasticloadbalancingv2-targets/README.md b/packages/@aws-cdk/aws-elasticloadbalancingv2-targets/README.md index 4667e815aaffa..04c170b26c5d9 100644 --- a/packages/@aws-cdk/aws-elasticloadbalancingv2-targets/README.md +++ b/packages/@aws-cdk/aws-elasticloadbalancingv2-targets/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-elasticloadbalancingv2-targets/package.json b/packages/@aws-cdk/aws-elasticloadbalancingv2-targets/package.json index dd8930dbefedf..2057dc0e1aba4 100644 --- a/packages/@aws-cdk/aws-elasticloadbalancingv2-targets/package.json +++ b/packages/@aws-cdk/aws-elasticloadbalancingv2-targets/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-elasticloadbalancingv2-targets", - "version": "999.0.0", + "version": "0.0.0", "description": "Integration targets for AWS ElasticLoadBalancingV2", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -77,28 +77,28 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", "jest": "^24.9.0", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/assets": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/assets": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/assets": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/assets": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -110,4 +110,4 @@ "docs-public-apis:@aws-cdk/aws-elasticloadbalancingv2-targets.LambdaTarget" ] } -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-elasticloadbalancingv2/package.json b/packages/@aws-cdk/aws-elasticloadbalancingv2/package.json index a13a06b77cea1..9634ea4f514f1 100644 --- a/packages/@aws-cdk/aws-elasticloadbalancingv2/package.json +++ b/packages/@aws-cdk/aws-elasticloadbalancingv2/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-elasticloadbalancingv2", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::ElasticLoadBalancingV2", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,32 +62,32 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-certificatemanager": "999.0.0", - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-certificatemanager": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-certificatemanager": "999.0.0", - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-certificatemanager": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -124,4 +124,4 @@ ] }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-elasticsearch/README.md b/packages/@aws-cdk/aws-elasticsearch/README.md index d71c440ec5e92..9f03c028f6144 100644 --- a/packages/@aws-cdk/aws-elasticsearch/README.md +++ b/packages/@aws-cdk/aws-elasticsearch/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-elasticsearch/package.json b/packages/@aws-cdk/aws-elasticsearch/package.json index 3d65d1039fa6c..52384a64a310a 100644 --- a/packages/@aws-cdk/aws-elasticsearch/package.json +++ b/packages/@aws-cdk/aws-elasticsearch/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-elasticsearch", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::Elasticsearch", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,20 +79,20 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-emr/README.md b/packages/@aws-cdk/aws-emr/README.md index cc4a981080350..7fb56846e5344 100644 --- a/packages/@aws-cdk/aws-emr/README.md +++ b/packages/@aws-cdk/aws-emr/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-emr/package.json b/packages/@aws-cdk/aws-emr/package.json index 4ff34c33f7d11..8f0530297a63d 100644 --- a/packages/@aws-cdk/aws-emr/package.json +++ b/packages/@aws-cdk/aws-emr/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-emr", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::EMR", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,20 +79,20 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-events-targets/package.json b/packages/@aws-cdk/aws-events-targets/package.json index 4509805a65d21..4dd137df036ee 100644 --- a/packages/@aws-cdk/aws-events-targets/package.json +++ b/packages/@aws-cdk/aws-events-targets/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-events-targets", - "version": "999.0.0", + "version": "0.0.0", "description": "Event targets for AWS CloudWatch Events", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -84,45 +84,45 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "@aws-cdk/aws-codecommit": "999.0.0", - "aws-sdk": "^2.625.0", + "@aws-cdk/assert": "0.0.0", + "@aws-cdk/aws-codecommit": "0.0.0", + "aws-sdk": "^2.631.0", "aws-sdk-mock": "^5.0.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", "jest": "^24.9.0", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-cloudformation": "999.0.0", - "@aws-cdk/aws-codebuild": "999.0.0", - "@aws-cdk/aws-codepipeline": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-ecs": "999.0.0", - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/aws-sns-subscriptions": "999.0.0", - "@aws-cdk/aws-sqs": "999.0.0", - "@aws-cdk/aws-stepfunctions": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-codebuild": "0.0.0", + "@aws-cdk/aws-codepipeline": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-ecs": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-sns-subscriptions": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/aws-stepfunctions": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-cloudformation": "999.0.0", - "@aws-cdk/aws-codebuild": "999.0.0", - "@aws-cdk/aws-codepipeline": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-ecs": "999.0.0", - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/aws-sns-subscriptions": "999.0.0", - "@aws-cdk/aws-sqs": "999.0.0", - "@aws-cdk/aws-stepfunctions": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-codebuild": "0.0.0", + "@aws-cdk/aws-codepipeline": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-ecs": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-sns-subscriptions": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/aws-stepfunctions": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -139,4 +139,4 @@ "props-default-doc:@aws-cdk/aws-events-targets.EcsTaskProps.containerOverrides" ] } -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-events/package.json b/packages/@aws-cdk/aws-events/package.json index fc399b994299e..1a207f65c0cdd 100644 --- a/packages/@aws-cdk/aws-events/package.json +++ b/packages/@aws-cdk/aws-events/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-events", - "version": "999.0.0", + "version": "0.0.0", "description": "AWS CloudWatch Events Construct Library", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -63,21 +63,21 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -104,4 +104,4 @@ ] }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-eventschemas/README.md b/packages/@aws-cdk/aws-eventschemas/README.md index 89b25b4f6ffa5..38871ab3d4833 100644 --- a/packages/@aws-cdk/aws-eventschemas/README.md +++ b/packages/@aws-cdk/aws-eventschemas/README.md @@ -5,17 +5,18 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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 diff --git a/packages/@aws-cdk/aws-eventschemas/package.json b/packages/@aws-cdk/aws-eventschemas/package.json index 17c0cce7e75c1..bd3f583a6f68c 100644 --- a/packages/@aws-cdk/aws-eventschemas/package.json +++ b/packages/@aws-cdk/aws-eventschemas/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-eventschemas", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::EventSchemas", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-fms/README.md b/packages/@aws-cdk/aws-fms/README.md index 9751ef6a59397..4e4b3f55c723d 100644 --- a/packages/@aws-cdk/aws-fms/README.md +++ b/packages/@aws-cdk/aws-fms/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-fms/package.json b/packages/@aws-cdk/aws-fms/package.json index 0c2d3686daea1..ae42986660cb5 100644 --- a/packages/@aws-cdk/aws-fms/package.json +++ b/packages/@aws-cdk/aws-fms/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-fms", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::FMS", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -65,19 +65,19 @@ "jest": {}, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-fsx/README.md b/packages/@aws-cdk/aws-fsx/README.md index 0d1cbfbed1654..f34ef3c5ee49a 100644 --- a/packages/@aws-cdk/aws-fsx/README.md +++ b/packages/@aws-cdk/aws-fsx/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-fsx/package.json b/packages/@aws-cdk/aws-fsx/package.json index d9ab0e6cad051..7a1ac31b18b0e 100644 --- a/packages/@aws-cdk/aws-fsx/package.json +++ b/packages/@aws-cdk/aws-fsx/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-fsx", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::FSx", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-gamelift/README.md b/packages/@aws-cdk/aws-gamelift/README.md index 26046012ec6f5..37f24d2146a34 100644 --- a/packages/@aws-cdk/aws-gamelift/README.md +++ b/packages/@aws-cdk/aws-gamelift/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-gamelift/package.json b/packages/@aws-cdk/aws-gamelift/package.json index 1df17b7245495..dce25f2c4896b 100644 --- a/packages/@aws-cdk/aws-gamelift/package.json +++ b/packages/@aws-cdk/aws-gamelift/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-gamelift", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::GameLift", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,20 +79,20 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-glue/README.md b/packages/@aws-cdk/aws-glue/README.md index d4a0a8f5fdb7b..30cf04ecb43ac 100644 --- a/packages/@aws-cdk/aws-glue/README.md +++ b/packages/@aws-cdk/aws-glue/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-glue/package.json b/packages/@aws-cdk/aws-glue/package.json index fd9b2addf5bb4..b3c3dd08b13d9 100644 --- a/packages/@aws-cdk/aws-glue/package.json +++ b/packages/@aws-cdk/aws-glue/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-glue", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::Glue", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,26 +62,26 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -121,4 +121,4 @@ "docs-public-apis:@aws-cdk/aws-glue.SerializationLibrary.className" ] } -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-greengrass/README.md b/packages/@aws-cdk/aws-greengrass/README.md index 21f35f7186ed6..a8ba3a683d2d4 100644 --- a/packages/@aws-cdk/aws-greengrass/README.md +++ b/packages/@aws-cdk/aws-greengrass/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-greengrass/package.json b/packages/@aws-cdk/aws-greengrass/package.json index 2cada98557bf5..c90cffebffd82 100644 --- a/packages/@aws-cdk/aws-greengrass/package.json +++ b/packages/@aws-cdk/aws-greengrass/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-greengrass", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::Greengrass", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-guardduty/README.md b/packages/@aws-cdk/aws-guardduty/README.md index 873edf168423a..4f99f910d30a6 100644 --- a/packages/@aws-cdk/aws-guardduty/README.md +++ b/packages/@aws-cdk/aws-guardduty/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-guardduty/package.json b/packages/@aws-cdk/aws-guardduty/package.json index 02cb200cfead5..9d57bdd608a72 100644 --- a/packages/@aws-cdk/aws-guardduty/package.json +++ b/packages/@aws-cdk/aws-guardduty/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-guardduty", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::GuardDuty", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,20 +79,20 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-iam/package.json b/packages/@aws-cdk/aws-iam/package.json index 341ca7b0d348a..c835261df8618 100644 --- a/packages/@aws-cdk/aws-iam/package.json +++ b/packages/@aws-cdk/aws-iam/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-iam", - "version": "999.0.0", + "version": "0.0.0", "description": "CDK routines for easily assigning correct and minimal IAM permissions", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -64,20 +64,20 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "jest": "^24.9.0", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0", - "@aws-cdk/region-info": "999.0.0" + "@aws-cdk/core": "0.0.0", + "@aws-cdk/region-info": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0", - "@aws-cdk/region-info": "999.0.0" + "@aws-cdk/core": "0.0.0", + "@aws-cdk/region-info": "0.0.0" }, "jest": { "moduleFileExtensions": [ @@ -157,4 +157,4 @@ ] }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-inspector/README.md b/packages/@aws-cdk/aws-inspector/README.md index 4e6d527a8e884..1102d165cf67a 100644 --- a/packages/@aws-cdk/aws-inspector/README.md +++ b/packages/@aws-cdk/aws-inspector/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-inspector/package.json b/packages/@aws-cdk/aws-inspector/package.json index 3e97690e03050..d9bf7450a6534 100644 --- a/packages/@aws-cdk/aws-inspector/package.json +++ b/packages/@aws-cdk/aws-inspector/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-inspector", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::Inspector", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,20 +79,20 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-iot/README.md b/packages/@aws-cdk/aws-iot/README.md index 861220512a9a2..965c89005f244 100644 --- a/packages/@aws-cdk/aws-iot/README.md +++ b/packages/@aws-cdk/aws-iot/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-iot/package.json b/packages/@aws-cdk/aws-iot/package.json index 523ed3c4732b2..d7e1cda88f754 100644 --- a/packages/@aws-cdk/aws-iot/package.json +++ b/packages/@aws-cdk/aws-iot/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-iot", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::IoT", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,20 +79,20 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-iot1click/README.md b/packages/@aws-cdk/aws-iot1click/README.md index 00f2899283136..f6f8764eec883 100644 --- a/packages/@aws-cdk/aws-iot1click/README.md +++ b/packages/@aws-cdk/aws-iot1click/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-iot1click/package.json b/packages/@aws-cdk/aws-iot1click/package.json index a16b942cdf13b..667bc0b041e32 100644 --- a/packages/@aws-cdk/aws-iot1click/package.json +++ b/packages/@aws-cdk/aws-iot1click/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-iot1click", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::IoT1Click", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -80,19 +80,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-iotanalytics/README.md b/packages/@aws-cdk/aws-iotanalytics/README.md index e1edcc096de4b..2cf74817d757d 100644 --- a/packages/@aws-cdk/aws-iotanalytics/README.md +++ b/packages/@aws-cdk/aws-iotanalytics/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-iotanalytics/package.json b/packages/@aws-cdk/aws-iotanalytics/package.json index d69a8f7003c95..3783016c618e7 100644 --- a/packages/@aws-cdk/aws-iotanalytics/package.json +++ b/packages/@aws-cdk/aws-iotanalytics/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-iotanalytics", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::IoTAnalytics", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-iotevents/README.md b/packages/@aws-cdk/aws-iotevents/README.md index c0b19875f09d3..2843d490c8e56 100644 --- a/packages/@aws-cdk/aws-iotevents/README.md +++ b/packages/@aws-cdk/aws-iotevents/README.md @@ -5,17 +5,18 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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 diff --git a/packages/@aws-cdk/aws-iotevents/package.json b/packages/@aws-cdk/aws-iotevents/package.json index dfde57c8d6724..a2e5bf56ecaaf 100644 --- a/packages/@aws-cdk/aws-iotevents/package.json +++ b/packages/@aws-cdk/aws-iotevents/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-iotevents", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::IoTEvents", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-iotthingsgraph/README.md b/packages/@aws-cdk/aws-iotthingsgraph/README.md index 2e3219c4fd778..2d5cce30bc31f 100644 --- a/packages/@aws-cdk/aws-iotthingsgraph/README.md +++ b/packages/@aws-cdk/aws-iotthingsgraph/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-iotthingsgraph/package.json b/packages/@aws-cdk/aws-iotthingsgraph/package.json index a80d2ebf267fe..e835496c1260b 100644 --- a/packages/@aws-cdk/aws-iotthingsgraph/package.json +++ b/packages/@aws-cdk/aws-iotthingsgraph/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-iotthingsgraph", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::IoTThingsGraph", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-kinesis/README.md b/packages/@aws-cdk/aws-kinesis/README.md index 4b43800ce7632..6ffbb5db59a2e 100644 --- a/packages/@aws-cdk/aws-kinesis/README.md +++ b/packages/@aws-cdk/aws-kinesis/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-kinesis/package.json b/packages/@aws-cdk/aws-kinesis/package.json index 41ccc56f44e56..7129dfd768755 100644 --- a/packages/@aws-cdk/aws-kinesis/package.json +++ b/packages/@aws-cdk/aws-kinesis/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-kinesis", - "version": "999.0.0", + "version": "0.0.0", "description": "CDK Constructs for AWS Kinesis", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -61,25 +61,25 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/aws-logs": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/aws-logs": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -93,4 +93,4 @@ "docs-public-apis:@aws-cdk/aws-kinesis.StreamProps" ] } -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-kinesisanalytics/README.md b/packages/@aws-cdk/aws-kinesisanalytics/README.md index 653197aa4ae5c..04aafec075083 100644 --- a/packages/@aws-cdk/aws-kinesisanalytics/README.md +++ b/packages/@aws-cdk/aws-kinesisanalytics/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-kinesisanalytics/package.json b/packages/@aws-cdk/aws-kinesisanalytics/package.json index ac48ac8afc06c..975062827fdf8 100644 --- a/packages/@aws-cdk/aws-kinesisanalytics/package.json +++ b/packages/@aws-cdk/aws-kinesisanalytics/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-kinesisanalytics", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::KinesisAnalytics", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -82,20 +82,20 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-kinesisfirehose/README.md b/packages/@aws-cdk/aws-kinesisfirehose/README.md index e68376aa4971b..a6b49cafada7c 100644 --- a/packages/@aws-cdk/aws-kinesisfirehose/README.md +++ b/packages/@aws-cdk/aws-kinesisfirehose/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-kinesisfirehose/package.json b/packages/@aws-cdk/aws-kinesisfirehose/package.json index ed5b18431717e..261a969439975 100644 --- a/packages/@aws-cdk/aws-kinesisfirehose/package.json +++ b/packages/@aws-cdk/aws-kinesisfirehose/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-kinesisfirehose", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::KinesisFirehose", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,20 +79,20 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-kms/package.json b/packages/@aws-cdk/aws-kms/package.json index 02f1efc87e522..14d54a9d13433 100644 --- a/packages/@aws-cdk/aws-kms/package.json +++ b/packages/@aws-cdk/aws-kms/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-kms", - "version": "999.0.0", + "version": "0.0.0", "description": "CDK Constructs for AWS KMS", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,22 +62,22 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -92,4 +92,4 @@ ] }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-lakeformation/README.md b/packages/@aws-cdk/aws-lakeformation/README.md index 35ca813cdc02f..82b1fbb1a3556 100644 --- a/packages/@aws-cdk/aws-lakeformation/README.md +++ b/packages/@aws-cdk/aws-lakeformation/README.md @@ -5,17 +5,18 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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 diff --git a/packages/@aws-cdk/aws-lakeformation/package.json b/packages/@aws-cdk/aws-lakeformation/package.json index 913c10bdb9dfe..ee302db305eac 100644 --- a/packages/@aws-cdk/aws-lakeformation/package.json +++ b/packages/@aws-cdk/aws-lakeformation/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-lakeformation", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::LakeFormation", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-lambda-destinations/package.json b/packages/@aws-cdk/aws-lambda-destinations/package.json index 8758417b6f481..b3810afe0a43a 100644 --- a/packages/@aws-cdk/aws-lambda-destinations/package.json +++ b/packages/@aws-cdk/aws-lambda-destinations/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-lambda-destinations", - "version": "999.0.0", + "version": "0.0.0", "description": "CDK Destinations Constructs for AWS Lambda", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -76,29 +76,29 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "jest": "^24.9.0", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-events-targets": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/aws-sqs": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-events-targets": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-events-targets": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/aws-sqs": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-events-targets": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -107,4 +107,4 @@ "awslint": { "exclude": [] } -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-lambda-event-sources/README.md b/packages/@aws-cdk/aws-lambda-event-sources/README.md index 515949dc8da3c..d2e13fcdb3184 100644 --- a/packages/@aws-cdk/aws-lambda-event-sources/README.md +++ b/packages/@aws-cdk/aws-lambda-event-sources/README.md @@ -9,6 +9,11 @@ --- +An event source mapping is an AWS Lambda resource that reads from an event source and invokes a Lambda function. +You can use event source mappings to process items from a stream or queue in services that don't invoke Lambda +functions directly. Lambda provides event source mappings for the following services. Read more about lambda +event sources [here](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html). + This module includes classes that allow using various AWS services as event sources for AWS Lambda via the high-level `lambda.addEventSource(source)` API. @@ -16,6 +21,21 @@ NOTE: In most cases, it is also possible to use the resource APIs to invoke an AWS Lambda function. This library provides a uniform API for all Lambda event sources regardless of the underlying mechanism they use. +The following code sets up a lambda function with an SQS queue event source - + +```ts +const fn = new lambda.Function(this, 'MyFunction', { /* ... */ }); + +const queue = new sqs.Queue(this, 'MyQueue'); +const eventSource = lambda.addEventSource(new SqsEventSource(queue); + +const eventSourceId = eventSource.eventSourceId; +``` + +The `eventSourceId` property contains the event source id. This will be a +[token](https://docs.aws.amazon.com/cdk/latest/guide/tokens.html) that will resolve to the final value at the time of +deployment. + ### SQS Amazon Simple Queue Service (Amazon SQS) allows you to build asynchronous @@ -116,7 +136,7 @@ To process events with a Lambda function, first create or update a DynamoDB tabl and add it to your Lambda function. The following parameters will impact Amazon DynamoDB's polling behavior: * __batchSize__: Determines how many records are buffered before invoking your lambda function - could impact your function's memory usage (if too high) and ability to keep up with incoming data velocity (if too low). -* __startingPosition__: Will determine where to being consumption, either at the most recent ('LATEST') record or the oldest record ('TRIM_HORIZON'). 'TRIM_HORIZON' will ensure you process all available data, while 'LATEST' will ignore all reocrds that arrived prior to attaching the event source. +* __startingPosition__: Will determine where to being consumption, either at the most recent ('LATEST') record or the oldest record ('TRIM_HORIZON'). 'TRIM_HORIZON' will ensure you process all available data, while 'LATEST' will ignore all records that arrived prior to attaching the event source. ```ts import dynamodb = require('@aws-cdk/aws-dynamodb'); @@ -145,8 +165,8 @@ first create or update an Amazon Kinesis stream and select custom values for the event source parameters. The following parameters will impact Amazon Kinesis's polling behavior: -* __batchSize__: Determines how many records are buffered before invoking your lambnda function - could impact your function's memory usage (if too high) and ability to keep up with incoming data velocity (if too low). -* __startingPosition__: Will determine where to being consumption, either at the most recent ('LATEST') record or the oldest record ('TRIM_HORIZON'). 'TRIM_HORIZON' will ensure you process all available data, while 'LATEST' will ignore all reocrds that arrived prior to attaching the event source. +* __batchSize__: Determines how many records are buffered before invoking your lambda function - could impact your function's memory usage (if too high) and ability to keep up with incoming data velocity (if too low). +* __startingPosition__: Will determine where to being consumption, either at the most recent ('LATEST') record or the oldest record ('TRIM_HORIZON'). 'TRIM_HORIZON' will ensure you process all available data, while 'LATEST' will ignore all records that arrived prior to attaching the event source. ```ts import lambda = require('@aws-cdk/aws-lambda'); diff --git a/packages/@aws-cdk/aws-lambda-event-sources/lib/dynamodb.ts b/packages/@aws-cdk/aws-lambda-event-sources/lib/dynamodb.ts index 82de57a8c10d6..9e520a6edd5f7 100644 --- a/packages/@aws-cdk/aws-lambda-event-sources/lib/dynamodb.ts +++ b/packages/@aws-cdk/aws-lambda-event-sources/lib/dynamodb.ts @@ -9,6 +9,8 @@ export interface DynamoEventSourceProps extends StreamEventSourceProps { * Use an Amazon DynamoDB stream as an event source for AWS Lambda. */ export class DynamoEventSource extends StreamEventSource { + private _eventSourceMappingId?: string = undefined; + constructor(private readonly table: dynamodb.Table, props: DynamoEventSourceProps) { super(props); @@ -22,10 +24,21 @@ export class DynamoEventSource extends StreamEventSource { throw new Error(`DynamoDB Streams must be enabled on the table ${this.table.node.path}`); } - target.addEventSourceMapping(`DynamoDBEventSource:${this.table.node.uniqueId}`, + const eventSourceMapping = target.addEventSourceMapping(`DynamoDBEventSource:${this.table.node.uniqueId}`, this.enrichMappingOptions({eventSourceArn: this.table.tableStreamArn}) ); + this._eventSourceMappingId = eventSourceMapping.eventSourceMappingId; this.table.grantStreamRead(target); } + + /** + * The identifier for this EventSourceMapping + */ + public get eventSourceMappingId(): string { + if (!this._eventSourceMappingId) { + throw new Error("DynamoEventSource is not yet bound to an event source mapping"); + } + return this._eventSourceMappingId; + } } diff --git a/packages/@aws-cdk/aws-lambda-event-sources/lib/kinesis.ts b/packages/@aws-cdk/aws-lambda-event-sources/lib/kinesis.ts index 78351d428f9d0..f6b83f6be2638 100644 --- a/packages/@aws-cdk/aws-lambda-event-sources/lib/kinesis.ts +++ b/packages/@aws-cdk/aws-lambda-event-sources/lib/kinesis.ts @@ -9,6 +9,8 @@ export interface KinesisEventSourceProps extends StreamEventSourceProps { * Use an Amazon Kinesis stream as an event source for AWS Lambda. */ export class KinesisEventSource extends StreamEventSource { + private _eventSourceMappingId?: string = undefined; + constructor(readonly stream: kinesis.IStream, props: KinesisEventSourceProps) { super(props); @@ -18,10 +20,21 @@ export class KinesisEventSource extends StreamEventSource { } public bind(target: lambda.IFunction) { - target.addEventSourceMapping(`KinesisEventSource:${this.stream.node.uniqueId}`, + const eventSourceMapping = target.addEventSourceMapping(`KinesisEventSource:${this.stream.node.uniqueId}`, this.enrichMappingOptions({eventSourceArn: this.stream.streamArn}) ); + this._eventSourceMappingId = eventSourceMapping.eventSourceMappingId; this.stream.grantRead(target); } + + /** + * The identifier for this EventSourceMapping + */ + public get eventSourceMappingId(): string { + if (!this._eventSourceMappingId) { + throw new Error("KinesisEventSource is not yet bound to an event source mapping"); + } + return this._eventSourceMappingId; + } } diff --git a/packages/@aws-cdk/aws-lambda-event-sources/lib/sqs.ts b/packages/@aws-cdk/aws-lambda-event-sources/lib/sqs.ts index 515659dcecfc2..4b15e1b8e4b5d 100644 --- a/packages/@aws-cdk/aws-lambda-event-sources/lib/sqs.ts +++ b/packages/@aws-cdk/aws-lambda-event-sources/lib/sqs.ts @@ -18,6 +18,8 @@ export interface SqsEventSourceProps { * Use an Amazon SQS queue as an event source for AWS Lambda. */ export class SqsEventSource implements lambda.IEventSource { + private _eventSourceMappingId?: string = undefined; + constructor(readonly queue: sqs.IQueue, private readonly props: SqsEventSourceProps = { }) { if (this.props.batchSize !== undefined && (this.props.batchSize < 1 || this.props.batchSize > 10)) { throw new Error(`Maximum batch size must be between 1 and 10 inclusive (given ${this.props.batchSize})`); @@ -25,11 +27,22 @@ export class SqsEventSource implements lambda.IEventSource { } public bind(target: lambda.IFunction) { - target.addEventSourceMapping(`SqsEventSource:${this.queue.node.uniqueId}`, { + const eventSourceMapping = target.addEventSourceMapping(`SqsEventSource:${this.queue.node.uniqueId}`, { batchSize: this.props.batchSize, eventSourceArn: this.queue.queueArn, }); + this._eventSourceMappingId = eventSourceMapping.eventSourceMappingId; this.queue.grantConsumeMessages(target); } + + /** + * The identifier for this EventSourceMapping + */ + public get eventSourceMappingId(): string { + if (!this._eventSourceMappingId) { + throw new Error("SqsEventSource is not yet bound to an event source mapping"); + } + return this._eventSourceMappingId; + } } diff --git a/packages/@aws-cdk/aws-lambda-event-sources/package.json b/packages/@aws-cdk/aws-lambda-event-sources/package.json index 16597f3c176be..d91e822391edd 100644 --- a/packages/@aws-cdk/aws-lambda-event-sources/package.json +++ b/packages/@aws-cdk/aws-lambda-event-sources/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-lambda-event-sources", - "version": "999.0.0", + "version": "0.0.0", "description": "Event sources for AWS Lambda", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -58,41 +58,41 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-apigateway": "999.0.0", - "@aws-cdk/aws-dynamodb": "999.0.0", - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kinesis": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/aws-s3-notifications": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/aws-sns-subscriptions": "999.0.0", - "@aws-cdk/aws-sqs": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-dynamodb": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kinesis": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-s3-notifications": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-sns-subscriptions": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-apigateway": "999.0.0", - "@aws-cdk/aws-dynamodb": "999.0.0", - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kinesis": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/aws-s3-notifications": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/aws-sns-subscriptions": "999.0.0", - "@aws-cdk/aws-sqs": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-dynamodb": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kinesis": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-s3-notifications": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-sns-subscriptions": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -112,4 +112,4 @@ "docs-public-apis:@aws-cdk/aws-lambda-event-sources.SqsEventSourceProps" ] } -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-lambda-event-sources/test/test.dynamo.ts b/packages/@aws-cdk/aws-lambda-event-sources/test/test.dynamo.ts index 68b12725af0e3..437cbd556ae64 100644 --- a/packages/@aws-cdk/aws-lambda-event-sources/test/test.dynamo.ts +++ b/packages/@aws-cdk/aws-lambda-event-sources/test/test.dynamo.ts @@ -231,4 +231,46 @@ export = { test.done(); }, + 'contains eventSourceMappingId after lambda binding'(test: Test) { + // GIVEN + const stack = new cdk.Stack(); + const fn = new TestFunction(stack, 'Fn'); + const table = new dynamodb.Table(stack, 'T', { + partitionKey: { + name: 'id', + type: dynamodb.AttributeType.STRING + }, + stream: dynamodb.StreamViewType.NEW_IMAGE + }); + const eventSource = new sources.DynamoEventSource(table, { + startingPosition: lambda.StartingPosition.TRIM_HORIZON + }); + + // WHEN + fn.addEventSource(eventSource); + + // THEN + test.ok(eventSource.eventSourceMappingId); + test.done(); + }, + + 'eventSourceMappingId throws error before binding to lambda'(test: Test) { + // GIVEN + const stack = new cdk.Stack(); + const table = new dynamodb.Table(stack, 'T', { + partitionKey: { + name: 'id', + type: dynamodb.AttributeType.STRING + }, + stream: dynamodb.StreamViewType.NEW_IMAGE + }); + const eventSource = new sources.DynamoEventSource(table, { + startingPosition: lambda.StartingPosition.TRIM_HORIZON + }); + + // WHEN/THEN + test.throws(() => eventSource.eventSourceMappingId, /DynamoEventSource is not yet bound to an event source mapping/); + test.done(); + }, + }; diff --git a/packages/@aws-cdk/aws-lambda-event-sources/test/test.kinesis.ts b/packages/@aws-cdk/aws-lambda-event-sources/test/test.kinesis.ts index 53bd8eb3b0c27..a1427af34b3da 100644 --- a/packages/@aws-cdk/aws-lambda-event-sources/test/test.kinesis.ts +++ b/packages/@aws-cdk/aws-lambda-event-sources/test/test.kinesis.ts @@ -153,4 +153,34 @@ export = { test.done(); }, + + 'contains eventSourceMappingId after lambda binding'(test: Test) { + // GIVEN + const stack = new cdk.Stack(); + const fn = new TestFunction(stack, 'Fn'); + const stream = new kinesis.Stream(stack, 'S'); + const eventSource = new sources.KinesisEventSource(stream, { + startingPosition: lambda.StartingPosition.TRIM_HORIZON + }); + + // WHEN + fn.addEventSource(eventSource); + + // THEN + test.ok(eventSource.eventSourceMappingId); + test.done(); + }, + + 'eventSourceMappingId throws error before binding to lambda'(test: Test) { + // GIVEN + const stack = new cdk.Stack(); + const stream = new kinesis.Stream(stack, 'S'); + const eventSource = new sources.KinesisEventSource(stream, { + startingPosition: lambda.StartingPosition.TRIM_HORIZON + }); + + // WHEN/THEN + test.throws(() => eventSource.eventSourceMappingId, /KinesisEventSource is not yet bound to an event source mapping/); + test.done(); + }, }; diff --git a/packages/@aws-cdk/aws-lambda-event-sources/test/test.sqs.ts b/packages/@aws-cdk/aws-lambda-event-sources/test/test.sqs.ts index 90587f38ebdf2..3c596c1f8845d 100644 --- a/packages/@aws-cdk/aws-lambda-event-sources/test/test.sqs.ts +++ b/packages/@aws-cdk/aws-lambda-event-sources/test/test.sqs.ts @@ -112,4 +112,30 @@ export = { test.done(); }, + + 'contains eventSourceMappingId after lambda binding'(test: Test) { + // GIVEN + const stack = new cdk.Stack(); + const fn = new TestFunction(stack, 'Fn'); + const q = new sqs.Queue(stack, 'Q'); + const eventSource = new sources.SqsEventSource(q); + + // WHEN + fn.addEventSource(eventSource); + + // THEN + test.ok(eventSource.eventSourceMappingId); + test.done(); + }, + + 'eventSourceMappingId throws error before binding to lambda'(test: Test) { + // GIVEN + const stack = new cdk.Stack(); + const q = new sqs.Queue(stack, 'Q'); + const eventSource = new sources.SqsEventSource(q); + + // WHEN/THEN + test.throws(() => eventSource.eventSourceMappingId, /SqsEventSource is not yet bound to an event source mapping/); + test.done(); + }, }; diff --git a/packages/@aws-cdk/aws-lambda-nodejs/README.md b/packages/@aws-cdk/aws-lambda-nodejs/README.md index 18372808f23cd..6887c6dba826f 100644 --- a/packages/@aws-cdk/aws-lambda-nodejs/README.md +++ b/packages/@aws-cdk/aws-lambda-nodejs/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-lambda-nodejs/package.json b/packages/@aws-cdk/aws-lambda-nodejs/package.json index 061a170094b7c..f36b42a2b800f 100644 --- a/packages/@aws-cdk/aws-lambda-nodejs/package.json +++ b/packages/@aws-cdk/aws-lambda-nodejs/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-lambda-nodejs", - "version": "999.0.0", + "version": "0.0.0", "description": "CDK Constructs for AWS Lambda in Node.js", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -84,24 +84,24 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", "fs-extra": "^8.1.0", "parcel-bundler": "^1.12.4", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-lambda/lib/event-source-mapping.ts b/packages/@aws-cdk/aws-lambda/lib/event-source-mapping.ts index a30a277af3f31..d4f7f3f4c9012 100644 --- a/packages/@aws-cdk/aws-lambda/lib/event-source-mapping.ts +++ b/packages/@aws-cdk/aws-lambda/lib/event-source-mapping.ts @@ -67,6 +67,12 @@ export interface EventSourceMappingProps extends EventSourceMappingOptions { * modify the Lambda's execution role so it can consume messages from the queue. */ export class EventSourceMapping extends cdk.Resource { + /** + * The identifier for this EventSourceMapping + * @attribute + */ + public readonly eventSourceMappingId: string; + constructor(scope: cdk.Construct, id: string, props: EventSourceMappingProps) { super(scope, id); @@ -74,7 +80,7 @@ export class EventSourceMapping extends cdk.Resource { throw new Error(`maxBatchingWindow cannot be over 300 seconds, got ${props.maxBatchingWindow.toSeconds()}`); } - new CfnEventSourceMapping(this, 'Resource', { + const cfnEventSourceMapping = new CfnEventSourceMapping(this, 'Resource', { batchSize: props.batchSize, enabled: props.enabled, eventSourceArn: props.eventSourceArn, @@ -82,6 +88,7 @@ export class EventSourceMapping extends cdk.Resource { startingPosition: props.startingPosition, maximumBatchingWindowInSeconds: props.maxBatchingWindow && props.maxBatchingWindow.toSeconds(), }); + this.eventSourceMappingId = cfnEventSourceMapping.ref; } } diff --git a/packages/@aws-cdk/aws-lambda/package.json b/packages/@aws-cdk/aws-lambda/package.json index 16aeb6deec418..eb8084558144f 100644 --- a/packages/@aws-cdk/aws-lambda/package.json +++ b/packages/@aws-cdk/aws-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-lambda", - "version": "999.0.0", + "version": "0.0.0", "description": "CDK Constructs for AWS Lambda", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -66,46 +66,46 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/aws-lambda": "^8.10.39", "@types/lodash": "^4.14.149", "@types/nodeunit": "^0.0.30", - "@types/sinon": "^7.5.0", - "aws-sdk": "^2.625.0", + "@types/sinon": "^7.5.2", + "aws-sdk": "^2.631.0", "aws-sdk-mock": "^5.0.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "lodash": "^4.17.15", - "nock": "^12.0.1", + "nock": "^12.0.2", "nodeunit": "^0.11.3", - "pkglint": "999.0.0", + "pkglint": "0.0.0", "sinon": "^9.0.0" }, "dependencies": { - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-logs": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/aws-s3-assets": "999.0.0", - "@aws-cdk/aws-sqs": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/cx-api": "999.0.0" + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-s3-assets": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/cx-api": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-logs": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/aws-s3-assets": "999.0.0", - "@aws-cdk/aws-sqs": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/cx-api": "999.0.0" + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-s3-assets": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/cx-api": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -186,4 +186,4 @@ ] }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-logs-destinations/package.json b/packages/@aws-cdk/aws-logs-destinations/package.json index 8902a8d3c96c4..64fa576b585d9 100644 --- a/packages/@aws-cdk/aws-logs-destinations/package.json +++ b/packages/@aws-cdk/aws-logs-destinations/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-logs-destinations", - "version": "999.0.0", + "version": "0.0.0", "description": "Log Destinations for AWS CloudWatch Logs", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -76,30 +76,30 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "jest": "^24.9.0", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kinesis": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-logs": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kinesis": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kinesis": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-logs": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kinesis": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-logs/package.json b/packages/@aws-cdk/aws-logs/package.json index c232e0d276b14..9d664782dad0c 100644 --- a/packages/@aws-cdk/aws-logs/package.json +++ b/packages/@aws-cdk/aws-logs/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-logs", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::Logs", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,24 +62,24 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -102,4 +102,4 @@ ] }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-managedblockchain/README.md b/packages/@aws-cdk/aws-managedblockchain/README.md index 129c341ee6a46..fc55068c09ad7 100644 --- a/packages/@aws-cdk/aws-managedblockchain/README.md +++ b/packages/@aws-cdk/aws-managedblockchain/README.md @@ -5,17 +5,18 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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 diff --git a/packages/@aws-cdk/aws-managedblockchain/package.json b/packages/@aws-cdk/aws-managedblockchain/package.json index 17506e3af40d8..8c35afb0ba185 100644 --- a/packages/@aws-cdk/aws-managedblockchain/package.json +++ b/packages/@aws-cdk/aws-managedblockchain/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-managedblockchain", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::ManagedBlockchain", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-mediaconvert/README.md b/packages/@aws-cdk/aws-mediaconvert/README.md index 8ace4f43bfedd..89ebcb597e8f5 100644 --- a/packages/@aws-cdk/aws-mediaconvert/README.md +++ b/packages/@aws-cdk/aws-mediaconvert/README.md @@ -5,17 +5,18 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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 diff --git a/packages/@aws-cdk/aws-mediaconvert/package.json b/packages/@aws-cdk/aws-mediaconvert/package.json index 698bb9b2760af..de2577e27d8c7 100644 --- a/packages/@aws-cdk/aws-mediaconvert/package.json +++ b/packages/@aws-cdk/aws-mediaconvert/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-mediaconvert", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::MediaConvert", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-medialive/README.md b/packages/@aws-cdk/aws-medialive/README.md index 30ffa1449b056..ea2c1e255888b 100644 --- a/packages/@aws-cdk/aws-medialive/README.md +++ b/packages/@aws-cdk/aws-medialive/README.md @@ -5,17 +5,18 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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 diff --git a/packages/@aws-cdk/aws-medialive/package.json b/packages/@aws-cdk/aws-medialive/package.json index eca3819a746f9..8ed260c015621 100644 --- a/packages/@aws-cdk/aws-medialive/package.json +++ b/packages/@aws-cdk/aws-medialive/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-medialive", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::MediaLive", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-mediastore/README.md b/packages/@aws-cdk/aws-mediastore/README.md index 726ddd457af37..143b632ab2d0e 100644 --- a/packages/@aws-cdk/aws-mediastore/README.md +++ b/packages/@aws-cdk/aws-mediastore/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-mediastore/package.json b/packages/@aws-cdk/aws-mediastore/package.json index efd1e7bbf9f74..5a2ce94195e1e 100644 --- a/packages/@aws-cdk/aws-mediastore/package.json +++ b/packages/@aws-cdk/aws-mediastore/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-mediastore", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::MediaStore", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-msk/README.md b/packages/@aws-cdk/aws-msk/README.md index 74809aeff16d9..3af1535eb8f6d 100644 --- a/packages/@aws-cdk/aws-msk/README.md +++ b/packages/@aws-cdk/aws-msk/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-msk/package.json b/packages/@aws-cdk/aws-msk/package.json index 4b704b58f9cf9..23fd7f7edc3d5 100644 --- a/packages/@aws-cdk/aws-msk/package.json +++ b/packages/@aws-cdk/aws-msk/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-msk", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::MSK", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-neptune/README.md b/packages/@aws-cdk/aws-neptune/README.md index d02c39566b3f3..53dbbff0ac84f 100644 --- a/packages/@aws-cdk/aws-neptune/README.md +++ b/packages/@aws-cdk/aws-neptune/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-neptune/package.json b/packages/@aws-cdk/aws-neptune/package.json index ccd99904925ae..578e89072d3ef 100644 --- a/packages/@aws-cdk/aws-neptune/package.json +++ b/packages/@aws-cdk/aws-neptune/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-neptune", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::Neptune", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -80,19 +80,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-opsworks/README.md b/packages/@aws-cdk/aws-opsworks/README.md index 3a6794294323c..53b1d0e80db02 100644 --- a/packages/@aws-cdk/aws-opsworks/README.md +++ b/packages/@aws-cdk/aws-opsworks/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-opsworks/package.json b/packages/@aws-cdk/aws-opsworks/package.json index 8c4308087dda4..d7c5546b22f24 100644 --- a/packages/@aws-cdk/aws-opsworks/package.json +++ b/packages/@aws-cdk/aws-opsworks/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-opsworks", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::OpsWorks", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,20 +79,20 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-opsworkscm/README.md b/packages/@aws-cdk/aws-opsworkscm/README.md index ce8c41c4e254c..fc90356dee167 100644 --- a/packages/@aws-cdk/aws-opsworkscm/README.md +++ b/packages/@aws-cdk/aws-opsworkscm/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-opsworkscm/package.json b/packages/@aws-cdk/aws-opsworkscm/package.json index 75bfb78602488..30afebc3cf2bc 100644 --- a/packages/@aws-cdk/aws-opsworkscm/package.json +++ b/packages/@aws-cdk/aws-opsworkscm/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-opsworkscm", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::OpsWorksCM", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-pinpoint/README.md b/packages/@aws-cdk/aws-pinpoint/README.md index 54b1002db0771..489a975fdcc61 100644 --- a/packages/@aws-cdk/aws-pinpoint/README.md +++ b/packages/@aws-cdk/aws-pinpoint/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-pinpoint/package.json b/packages/@aws-cdk/aws-pinpoint/package.json index deb7b5eb66256..76a4ef5e609b3 100644 --- a/packages/@aws-cdk/aws-pinpoint/package.json +++ b/packages/@aws-cdk/aws-pinpoint/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-pinpoint", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::Pinpoint", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-pinpointemail/README.md b/packages/@aws-cdk/aws-pinpointemail/README.md index a08d1840461fb..e5dc2323f0ab0 100644 --- a/packages/@aws-cdk/aws-pinpointemail/README.md +++ b/packages/@aws-cdk/aws-pinpointemail/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-pinpointemail/package.json b/packages/@aws-cdk/aws-pinpointemail/package.json index dbaa77d6f9bdf..3d296354db435 100644 --- a/packages/@aws-cdk/aws-pinpointemail/package.json +++ b/packages/@aws-cdk/aws-pinpointemail/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-pinpointemail", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::PinpointEmail", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-qldb/README.md b/packages/@aws-cdk/aws-qldb/README.md index 68aca70be320d..f7c6d658d572c 100644 --- a/packages/@aws-cdk/aws-qldb/README.md +++ b/packages/@aws-cdk/aws-qldb/README.md @@ -5,17 +5,18 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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 diff --git a/packages/@aws-cdk/aws-qldb/package.json b/packages/@aws-cdk/aws-qldb/package.json index 9864c19677e65..eb62ce3aa9c48 100644 --- a/packages/@aws-cdk/aws-qldb/package.json +++ b/packages/@aws-cdk/aws-qldb/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-qldb", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::QLDB", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-ram/README.md b/packages/@aws-cdk/aws-ram/README.md index 63edb05dbc366..b7047c782dd70 100644 --- a/packages/@aws-cdk/aws-ram/README.md +++ b/packages/@aws-cdk/aws-ram/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-ram/package.json b/packages/@aws-cdk/aws-ram/package.json index 5d163037ab114..abc7ec647d28c 100644 --- a/packages/@aws-cdk/aws-ram/package.json +++ b/packages/@aws-cdk/aws-ram/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-ram", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::RAM", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-rds/README.md b/packages/@aws-cdk/aws-rds/README.md index 838e6c5a84258..527a05e72fc7d 100644 --- a/packages/@aws-cdk/aws-rds/README.md +++ b/packages/@aws-cdk/aws-rds/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- @@ -119,7 +121,7 @@ instance.addRotationSingleUser(); // Will rotate automatically after 30 days The multi user rotation scheme is also available: ```ts instance.addRotationMultiUser('MyUser', { - secret: myImportedSecret + secret: myImportedSecret // This secret must have the `masterarn` key }); ``` @@ -127,6 +129,7 @@ It's also possible to create user credentials together with the instance/cluster ```ts const myUserSecret = new rds.DatabaseSecret(this, 'MyUserSecret', { username: 'myuser' + masterSecret: instance.secret }); const myUserSecretAttached = myUserSecret.attach(instance); // Adds DB connections information in the secret diff --git a/packages/@aws-cdk/aws-rds/lib/database-secret.ts b/packages/@aws-cdk/aws-rds/lib/database-secret.ts index c16e53be0de3b..a51a16b1448a4 100644 --- a/packages/@aws-cdk/aws-rds/lib/database-secret.ts +++ b/packages/@aws-cdk/aws-rds/lib/database-secret.ts @@ -17,6 +17,13 @@ export interface DatabaseSecretProps { * @default default master key */ readonly encryptionKey?: kms.IKey; + + /** + * The master secret which will be used to rotate this secret. + * + * @default - no master secret information will be included + */ + readonly masterSecret?: secretsmanager.ISecret; } /** @@ -31,7 +38,10 @@ export class DatabaseSecret extends secretsmanager.Secret { description: `Generated by the CDK for stack: ${Aws.STACK_NAME}`, generateSecretString: { passwordLength: 30, // Oracle password cannot have more than 30 characters - secretStringTemplate: JSON.stringify({ username: props.username }), + secretStringTemplate: JSON.stringify({ + username: props.username, + masterarn: props.masterSecret?.secretArn + }), generateStringKey: 'password', excludeCharacters: '"@/\\' } diff --git a/packages/@aws-cdk/aws-rds/lib/instance.ts b/packages/@aws-cdk/aws-rds/lib/instance.ts index d26c14b8f8e22..03e33c6c18fe1 100644 --- a/packages/@aws-cdk/aws-rds/lib/instance.ts +++ b/packages/@aws-cdk/aws-rds/lib/instance.ts @@ -616,7 +616,7 @@ export interface DatabaseInstanceSourceProps extends DatabaseInstanceNewProps { readonly allowMajorVersionUpgrade?: boolean; /** - * The time zone of the instance. + * The time zone of the instance. This is currently supported only by Microsoft Sql Server. * * @default - RDS default timezone */ @@ -678,6 +678,12 @@ abstract class DatabaseInstanceSource extends DatabaseInstanceNew implements IDa this.singleUserRotationApplication = props.engine.singleUserRotationApplication; this.multiUserRotationApplication = props.engine.multiUserRotationApplication; + const timezoneSupport = [ DatabaseInstanceEngine.SQL_SERVER_EE, DatabaseInstanceEngine.SQL_SERVER_EX, + DatabaseInstanceEngine.SQL_SERVER_SE, DatabaseInstanceEngine.SQL_SERVER_WEB ]; + if (props.timezone && !timezoneSupport.includes(props.engine)) { + throw new Error(`timezone property can be configured only for Microsoft SQL Server, not ${props.engine.name}`); + } + this.sourceCfnProps = { ...this.newCfnProps, allocatedStorage: props.allocatedStorage ? props.allocatedStorage.toString() : '100', diff --git a/packages/@aws-cdk/aws-rds/package.json b/packages/@aws-cdk/aws-rds/package.json index b23ba92a9adf0..57197b466e78f 100644 --- a/packages/@aws-cdk/aws-rds/package.json +++ b/packages/@aws-cdk/aws-rds/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-rds", - "version": "999.0.0", + "version": "0.0.0", "description": "CDK Constructs for AWS RDS", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,37 +62,37 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "@aws-cdk/aws-events-targets": "999.0.0", + "@aws-cdk/assert": "0.0.0", + "@aws-cdk/aws-events-targets": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-logs": "999.0.0", - "@aws-cdk/aws-secretsmanager": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/aws-secretsmanager": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-logs": "999.0.0", - "@aws-cdk/aws-secretsmanager": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/aws-secretsmanager": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -136,4 +136,4 @@ ] }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-rds/test/test.database-secret.ts b/packages/@aws-cdk/aws-rds/test/test.database-secret.ts new file mode 100644 index 0000000000000..f4552d50bdb25 --- /dev/null +++ b/packages/@aws-cdk/aws-rds/test/test.database-secret.ts @@ -0,0 +1,76 @@ +import { expect, haveResource } from '@aws-cdk/assert'; +import { Stack } from '@aws-cdk/core'; +import { Test } from 'nodeunit'; +import { DatabaseSecret } from '../lib'; + +export = { + 'create a database secret'(test: Test) { + // GIVEN + const stack = new Stack(); + + // WHEN + new DatabaseSecret(stack, 'Secret', { + username: 'admin-username' + }); + + // THEN + expect(stack).to(haveResource('AWS::SecretsManager::Secret', { + Description: { + 'Fn::Join': [ + '', + [ + 'Generated by the CDK for stack: ', + { + Ref: 'AWS::StackName' + } + ] + ] + }, + GenerateSecretString: { + ExcludeCharacters: '"@/\\', + GenerateStringKey: 'password', + PasswordLength: 30, + SecretStringTemplate: '{"username":"admin-username"}' + } + })); + + test.done(); + }, + + 'with master secret'(test: Test) { + // GIVEN + const stack = new Stack(); + const masterSecret = new DatabaseSecret(stack, 'MasterSecret', { + username: 'master-username' + }); + + // WHEN + new DatabaseSecret(stack, 'UserSecret', { + username: 'user-username', + masterSecret, + }); + + // THEN + expect(stack).to(haveResource('AWS::SecretsManager::Secret', { + GenerateSecretString: { + ExcludeCharacters: '"@/\\', + GenerateStringKey: 'password', + PasswordLength: 30, + SecretStringTemplate: { + 'Fn::Join': [ + '', + [ + '{"username":"user-username","masterarn":"', + { + Ref: 'MasterSecretA11BF785' + }, + '"}' + ] + ] + } + } + })); + + test.done(); + }, +}; diff --git a/packages/@aws-cdk/aws-rds/test/test.instance.ts b/packages/@aws-cdk/aws-rds/test/test.instance.ts index 5d265a337daec..2052594ef691f 100644 --- a/packages/@aws-cdk/aws-rds/test/test.instance.ts +++ b/packages/@aws-cdk/aws-rds/test/test.instance.ts @@ -685,4 +685,37 @@ export = { test.done(); }, + + 'throws when timezone is set for non-sqlserver database engine'(test: Test) { + // GIVEN + const stack = new cdk.Stack(); + const vpc = new ec2.Vpc(stack, 'vpc'); + const tzSupportedEngines = [ rds.DatabaseInstanceEngine.SQL_SERVER_EE, rds.DatabaseInstanceEngine.SQL_SERVER_EX, + rds.DatabaseInstanceEngine.SQL_SERVER_SE, rds.DatabaseInstanceEngine.SQL_SERVER_WEB ]; + const tzUnsupportedEngines = [ rds.DatabaseInstanceEngine.MYSQL, rds.DatabaseInstanceEngine.POSTGRES, + rds.DatabaseInstanceEngine.ORACLE_EE, rds.DatabaseInstanceEngine.MARIADB ]; + + // THEN + tzSupportedEngines.forEach((engine) => { + test.ok(new rds.DatabaseInstance(stack, `${engine.name}-db`, { + engine, + instanceClass: ec2.InstanceType.of(ec2.InstanceClass.C5, ec2.InstanceSize.SMALL), + masterUsername: 'master', + timezone: 'Europe/Zurich', + vpc, + })); + }); + + tzUnsupportedEngines.forEach((engine) => { + test.throws(() => new rds.DatabaseInstance(stack, `${engine.name}-db`, { + engine, + instanceClass: ec2.InstanceType.of(ec2.InstanceClass.C5, ec2.InstanceSize.SMALL), + masterUsername: 'master', + timezone: 'Europe/Zurich', + vpc, + }), /timezone property can be configured only for Microsoft SQL Server/); + }); + + test.done(); + } }; diff --git a/packages/@aws-cdk/aws-redshift/README.md b/packages/@aws-cdk/aws-redshift/README.md index f8f394ca2d02b..3e8b889716d62 100644 --- a/packages/@aws-cdk/aws-redshift/README.md +++ b/packages/@aws-cdk/aws-redshift/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-redshift/package.json b/packages/@aws-cdk/aws-redshift/package.json index 8306b8e03eaff..89007c1427f58 100644 --- a/packages/@aws-cdk/aws-redshift/package.json +++ b/packages/@aws-cdk/aws-redshift/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-redshift", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::Redshift", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,20 +79,20 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-robomaker/README.md b/packages/@aws-cdk/aws-robomaker/README.md index c87885fb2fbe6..4fa43920c0173 100644 --- a/packages/@aws-cdk/aws-robomaker/README.md +++ b/packages/@aws-cdk/aws-robomaker/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-robomaker/package.json b/packages/@aws-cdk/aws-robomaker/package.json index 6d1226be98a7b..7063eb3fc4074 100644 --- a/packages/@aws-cdk/aws-robomaker/package.json +++ b/packages/@aws-cdk/aws-robomaker/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-robomaker", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::RoboMaker", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-route53-patterns/README.md b/packages/@aws-cdk/aws-route53-patterns/README.md index 3c2494c11f020..5c332115ab7fe 100644 --- a/packages/@aws-cdk/aws-route53-patterns/README.md +++ b/packages/@aws-cdk/aws-route53-patterns/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-route53-patterns/package.json b/packages/@aws-cdk/aws-route53-patterns/package.json index e87a5b17b0cfc..8654c54b32f38 100644 --- a/packages/@aws-cdk/aws-route53-patterns/package.json +++ b/packages/@aws-cdk/aws-route53-patterns/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-route53-patterns", - "version": "999.0.0", + "version": "0.0.0", "description": "CDK Constructs for AWS Route53 patterns", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -76,33 +76,33 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "jest": "^24.9.0", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-certificatemanager": "999.0.0", - "@aws-cdk/aws-cloudfront": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-route53": "999.0.0", - "@aws-cdk/aws-route53-targets": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/region-info": "999.0.0" + "@aws-cdk/aws-certificatemanager": "0.0.0", + "@aws-cdk/aws-cloudfront": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-route53": "0.0.0", + "@aws-cdk/aws-route53-targets": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/region-info": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-certificatemanager": "999.0.0", - "@aws-cdk/aws-cloudfront": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-route53": "999.0.0", - "@aws-cdk/aws-route53-targets": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/region-info": "999.0.0" + "@aws-cdk/aws-certificatemanager": "0.0.0", + "@aws-cdk/aws-cloudfront": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-route53": "0.0.0", + "@aws-cdk/aws-route53-targets": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/region-info": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -114,4 +114,4 @@ "docs-public-apis:@aws-cdk/aws-route53-patterns.HttpsRedirectProps" ] } -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-route53-targets/package.json b/packages/@aws-cdk/aws-route53-targets/package.json index 16b8c42ecdcbf..142624e1ed124 100644 --- a/packages/@aws-cdk/aws-route53-targets/package.json +++ b/packages/@aws-cdk/aws-route53-targets/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-route53-targets", - "version": "999.0.0", + "version": "0.0.0", "description": "CDK Constructs for AWS Route53 Alias Targets", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -76,42 +76,42 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "@aws-cdk/aws-certificatemanager": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "@aws-cdk/assert": "0.0.0", + "@aws-cdk/aws-certificatemanager": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "jest": "^24.9.0", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-apigateway": "999.0.0", - "@aws-cdk/aws-cloudfront": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-elasticloadbalancing": "999.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-route53": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/region-info": "999.0.0" + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-cloudfront": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-elasticloadbalancing": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-route53": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/region-info": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-apigateway": "999.0.0", - "@aws-cdk/aws-cloudfront": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-elasticloadbalancing": "999.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-route53": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/region-info": "999.0.0" + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-cloudfront": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-elasticloadbalancing": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-route53": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/region-info": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-route53/package.json b/packages/@aws-cdk/aws-route53/package.json index 7e255333d70eb..88092f8218e65 100644 --- a/packages/@aws-cdk/aws-route53/package.json +++ b/packages/@aws-cdk/aws-route53/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-route53", - "version": "999.0.0", + "version": "0.0.0", "description": "CDK Constructs for AWS Route53", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,27 +62,27 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "aws-sdk": "^2.625.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "aws-sdk": "^2.631.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-logs": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/cx-api": "999.0.0" + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/cx-api": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-logs": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/cx-api": "999.0.0" + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/cx-api": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -137,4 +137,4 @@ "lines": 60, "branches": 60 } -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-route53resolver/README.md b/packages/@aws-cdk/aws-route53resolver/README.md index 771b6bfaab412..7cae7ab057ea0 100644 --- a/packages/@aws-cdk/aws-route53resolver/README.md +++ b/packages/@aws-cdk/aws-route53resolver/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-route53resolver/package.json b/packages/@aws-cdk/aws-route53resolver/package.json index 92259bbe46c47..77572a18fa207 100644 --- a/packages/@aws-cdk/aws-route53resolver/package.json +++ b/packages/@aws-cdk/aws-route53resolver/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-route53resolver", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::Route53Resolver", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -80,19 +80,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-s3-assets/README.md b/packages/@aws-cdk/aws-s3-assets/README.md index d5a4881aa76f7..44d054c962eab 100644 --- a/packages/@aws-cdk/aws-s3-assets/README.md +++ b/packages/@aws-cdk/aws-s3-assets/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-s3-assets/package.json b/packages/@aws-cdk/aws-s3-assets/package.json index f952497136926..672f29a395286 100644 --- a/packages/@aws-cdk/aws-s3-assets/package.json +++ b/packages/@aws-cdk/aws-s3-assets/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-s3-assets", - "version": "999.0.0", + "version": "0.0.0", "description": "Deploy local files and directories to S3", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -59,31 +59,31 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "@types/sinon": "^7.5.0", - "aws-cdk": "999.0.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", + "@types/sinon": "^7.5.2", + "aws-cdk": "0.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0", + "pkglint": "0.0.0", "sinon": "^9.0.0", "ts-mock-imports": "^1.2.6" }, "dependencies": { - "@aws-cdk/assets": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/cx-api": "999.0.0" + "@aws-cdk/assets": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/cx-api": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/assets": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/cx-api": "999.0.0" + "@aws-cdk/assets": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/cx-api": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -95,4 +95,4 @@ "docs-public-apis:@aws-cdk/aws-s3-assets.AssetProps" ] } -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-s3-deployment/README.md b/packages/@aws-cdk/aws-s3-deployment/README.md index 0bb95c52fc333..5b99c88ad8202 100644 --- a/packages/@aws-cdk/aws-s3-deployment/README.md +++ b/packages/@aws-cdk/aws-s3-deployment/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-s3-deployment/package.json b/packages/@aws-cdk/aws-s3-deployment/package.json index 8c2f44e525f7f..ff25556a8c4ac 100644 --- a/packages/@aws-cdk/aws-s3-deployment/package.json +++ b/packages/@aws-cdk/aws-s3-deployment/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-s3-deployment", - "version": "999.0.0", + "version": "0.0.0", "description": "Constructs for deploying contents to S3 buckets", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -76,31 +76,31 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-cloudformation": "999.0.0", - "@aws-cdk/aws-cloudfront": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/aws-s3-assets": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-cloudfront": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-s3-assets": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-cloudformation": "999.0.0", - "@aws-cdk/aws-cloudfront": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/aws-s3-assets": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-cloudfront": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-s3-assets": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -135,4 +135,4 @@ "docs-public-apis:@aws-cdk/aws-s3-deployment.StorageClass.DEEP_ARCHIVE" ] } -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-s3-notifications/package.json b/packages/@aws-cdk/aws-s3-notifications/package.json index 089e6b38a47aa..6380de3039d41 100644 --- a/packages/@aws-cdk/aws-s3-notifications/package.json +++ b/packages/@aws-cdk/aws-s3-notifications/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-s3-notifications", - "version": "999.0.0", + "version": "0.0.0", "description": "Bucket Notifications API for AWS S3", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -75,31 +75,31 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", "jest": "^24.9.0", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/aws-sqs": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/aws-sqs": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-s3/package.json b/packages/@aws-cdk/aws-s3/package.json index 776d855aa4917..b6f8f9bc9fe75 100644 --- a/packages/@aws-cdk/aws-s3/package.json +++ b/packages/@aws-cdk/aws-s3/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-s3", - "version": "999.0.0", + "version": "0.0.0", "description": "CDK Constructs for AWS S3", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,26 +62,26 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -136,4 +136,4 @@ ] }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-sagemaker/README.md b/packages/@aws-cdk/aws-sagemaker/README.md index 086704dec2736..ca404babbb155 100644 --- a/packages/@aws-cdk/aws-sagemaker/README.md +++ b/packages/@aws-cdk/aws-sagemaker/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-sagemaker/package.json b/packages/@aws-cdk/aws-sagemaker/package.json index 461c4923f4efd..e47d7dc1a176c 100644 --- a/packages/@aws-cdk/aws-sagemaker/package.json +++ b/packages/@aws-cdk/aws-sagemaker/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-sagemaker", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::SageMaker", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -80,19 +80,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-sam/README.md b/packages/@aws-cdk/aws-sam/README.md index 0eb3daf0db806..41e61dc6b31b3 100644 --- a/packages/@aws-cdk/aws-sam/README.md +++ b/packages/@aws-cdk/aws-sam/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-sam/package.json b/packages/@aws-cdk/aws-sam/package.json index e974122640d23..50e79ec1f9982 100644 --- a/packages/@aws-cdk/aws-sam/package.json +++ b/packages/@aws-cdk/aws-sam/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-sam", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for the AWS Serverless Application Model (SAM) resources", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -63,23 +63,23 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^25.1.2", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", "jest": "^24.9.0", - "pkglint": "999.0.0", + "pkglint": "0.0.0", "ts-jest": "^25.2.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "jest": {}, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-sdb/README.md b/packages/@aws-cdk/aws-sdb/README.md index 88ce4ec79cf89..4191264da6994 100644 --- a/packages/@aws-cdk/aws-sdb/README.md +++ b/packages/@aws-cdk/aws-sdb/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-sdb/package.json b/packages/@aws-cdk/aws-sdb/package.json index 5b0a39dd55a33..4c3d1493ed401 100644 --- a/packages/@aws-cdk/aws-sdb/package.json +++ b/packages/@aws-cdk/aws-sdb/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-sdb", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::SDB", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,20 +79,20 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-secretsmanager/package.json b/packages/@aws-cdk/aws-secretsmanager/package.json index 9ba41419a95dc..7363dd6d85ad5 100644 --- a/packages/@aws-cdk/aws-secretsmanager/package.json +++ b/packages/@aws-cdk/aws-secretsmanager/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-secretsmanager", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::SecretsManager", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -63,29 +63,29 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-sam": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-sam": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-sam": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-sam": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -106,4 +106,4 @@ ] }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-securityhub/README.md b/packages/@aws-cdk/aws-securityhub/README.md index b3b5cb12cb4ba..892ef4a260eac 100644 --- a/packages/@aws-cdk/aws-securityhub/README.md +++ b/packages/@aws-cdk/aws-securityhub/README.md @@ -5,17 +5,18 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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 diff --git a/packages/@aws-cdk/aws-securityhub/package.json b/packages/@aws-cdk/aws-securityhub/package.json index d04b12f2cc36e..67a328421121d 100644 --- a/packages/@aws-cdk/aws-securityhub/package.json +++ b/packages/@aws-cdk/aws-securityhub/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-securityhub", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::SecurityHub", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-servicecatalog/README.md b/packages/@aws-cdk/aws-servicecatalog/README.md index a162720fc6942..f9f4bde73a2e0 100644 --- a/packages/@aws-cdk/aws-servicecatalog/README.md +++ b/packages/@aws-cdk/aws-servicecatalog/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-servicecatalog/package.json b/packages/@aws-cdk/aws-servicecatalog/package.json index 3213795428b8c..5b0f74640782e 100644 --- a/packages/@aws-cdk/aws-servicecatalog/package.json +++ b/packages/@aws-cdk/aws-servicecatalog/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-servicecatalog", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::ServiceCatalog", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,20 +79,20 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-servicediscovery/package.json b/packages/@aws-cdk/aws-servicediscovery/package.json index b0b6ac5ffda11..faaa82bd5557a 100644 --- a/packages/@aws-cdk/aws-servicediscovery/package.json +++ b/packages/@aws-cdk/aws-servicediscovery/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-servicediscovery", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::ServiceDiscovery", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,26 +62,26 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "999.0.0", - "@aws-cdk/aws-route53": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-route53": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "999.0.0", - "@aws-cdk/aws-route53": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-route53": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -145,4 +145,4 @@ ] }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-ses-actions/README.md b/packages/@aws-cdk/aws-ses-actions/README.md index de7482425e61d..b6fa3f584563f 100644 --- a/packages/@aws-cdk/aws-ses-actions/README.md +++ b/packages/@aws-cdk/aws-ses-actions/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-ses-actions/package.json b/packages/@aws-cdk/aws-ses-actions/package.json index 13afde41103b8..5468d8df17695 100644 --- a/packages/@aws-cdk/aws-ses-actions/package.json +++ b/packages/@aws-cdk/aws-ses-actions/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-ses-actions", - "version": "999.0.0", + "version": "0.0.0", "description": "Receipt rule actions for AWS SES", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -77,31 +77,31 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "jest": "^24.9.0", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/aws-ses": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-ses": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/aws-ses": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-ses": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -119,4 +119,4 @@ "props-default-doc:@aws-cdk/aws-ses-actions.StopProps.topic" ] } -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-ses/README.md b/packages/@aws-cdk/aws-ses/README.md index 7d8d128c6dfe6..5bbc41e88a8ee 100644 --- a/packages/@aws-cdk/aws-ses/README.md +++ b/packages/@aws-cdk/aws-ses/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-ses/package.json b/packages/@aws-cdk/aws-ses/package.json index 7f477fecad89e..997f20271adff 100644 --- a/packages/@aws-cdk/aws-ses/package.json +++ b/packages/@aws-cdk/aws-ses/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-ses", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::SES", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,24 +62,24 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -99,4 +99,4 @@ "props-default-doc:@aws-cdk/aws-ses.ReceiptRuleActionConfig.lambdaAction" ] } -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-sns-subscriptions/package.json b/packages/@aws-cdk/aws-sns-subscriptions/package.json index 09398a54ec007..b7713c26010dd 100644 --- a/packages/@aws-cdk/aws-sns-subscriptions/package.json +++ b/packages/@aws-cdk/aws-sns-subscriptions/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-sns-subscriptions", - "version": "999.0.0", + "version": "0.0.0", "description": "CDK Subscription Constructs for AWS SNS", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -76,27 +76,27 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "jest": "^24.9.0", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/aws-sqs": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/aws-sqs": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -111,4 +111,4 @@ "docs-public-apis:@aws-cdk/aws-sns-subscriptions.SubscriptionProps" ] } -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-sns/package.json b/packages/@aws-cdk/aws-sns/package.json index fd3341927e156..a737a4b675493 100644 --- a/packages/@aws-cdk/aws-sns/package.json +++ b/packages/@aws-cdk/aws-sns/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-sns", - "version": "999.0.0", + "version": "0.0.0", "description": "CDK Constructs for AWS SNS", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -65,29 +65,29 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", + "@aws-cdk/assert": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -121,4 +121,4 @@ ] }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-sqs/package.json b/packages/@aws-cdk/aws-sqs/package.json index e5ff8491ceda1..7d1fd789d5d99 100644 --- a/packages/@aws-cdk/aws-sqs/package.json +++ b/packages/@aws-cdk/aws-sqs/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-sqs", - "version": "999.0.0", + "version": "0.0.0", "description": "CDK Constructs for AWS SQS", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,28 +62,28 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", + "@aws-cdk/assert": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", "@types/nodeunit": "^0.0.30", - "aws-sdk": "^2.625.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "aws-sdk": "^2.631.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -100,4 +100,4 @@ ] }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-ssm/package.json b/packages/@aws-cdk/aws-ssm/package.json index d82698bcc2b26..b014210edeb0d 100644 --- a/packages/@aws-cdk/aws-ssm/package.json +++ b/packages/@aws-cdk/aws-ssm/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-ssm", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::SSM", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,29 +62,29 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/cx-api": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/cx-api": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/cx-api": "999.0.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/cx-api": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-stepfunctions-tasks/README.md b/packages/@aws-cdk/aws-stepfunctions-tasks/README.md index 416beb43233e8..6805cc1ceaa44 100644 --- a/packages/@aws-cdk/aws-stepfunctions-tasks/README.md +++ b/packages/@aws-cdk/aws-stepfunctions-tasks/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-stepfunctions-tasks/lib/index.ts b/packages/@aws-cdk/aws-stepfunctions-tasks/lib/index.ts index c1ab798e39367..9908c6bb4e422 100644 --- a/packages/@aws-cdk/aws-stepfunctions-tasks/lib/index.ts +++ b/packages/@aws-cdk/aws-stepfunctions-tasks/lib/index.ts @@ -19,3 +19,4 @@ export * from './emr-add-step'; export * from './emr-cancel-step'; export * from './emr-modify-instance-fleet-by-name'; export * from './emr-modify-instance-group-by-name'; +export * from './run-glue-job-task'; diff --git a/packages/@aws-cdk/aws-stepfunctions-tasks/lib/run-glue-job-task.ts b/packages/@aws-cdk/aws-stepfunctions-tasks/lib/run-glue-job-task.ts new file mode 100644 index 0000000000000..725edfa615866 --- /dev/null +++ b/packages/@aws-cdk/aws-stepfunctions-tasks/lib/run-glue-job-task.ts @@ -0,0 +1,120 @@ +import * as iam from '@aws-cdk/aws-iam'; +import * as sfn from '@aws-cdk/aws-stepfunctions'; +import { Duration, Stack } from '@aws-cdk/core'; +import { getResourceArn } from './resource-arn-suffix'; + +/** + * Properties for RunGlueJobTask + */ +export interface RunGlueJobTaskProps { + + /** + * The service integration pattern indicates different ways to start the Glue job. + * + * The valid value for Glue is either FIRE_AND_FORGET or SYNC. + * + * @default FIRE_AND_FORGET + */ + readonly integrationPattern?: sfn.ServiceIntegrationPattern; + + /** + * The job arguments specifically for this run. + * + * For this job run, they replace the default arguments set in the job definition itself. + * + * @default - Default arguments set in the job definition + */ + readonly arguments?: { [key: string]: string }; + + /** + * The job run timeout. + * + * This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status. + * Must be at least 1 minute. + * + * @default - Default timeout set in the job definition + */ + readonly timeout?: Duration; + + /** + * The name of the SecurityConfiguration structure to be used with this job run. + * + * This must match the Glue API + * [single-line string pattern](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-common.html#aws-glue-api-regex-oneLine). + * + * @default - Default configuration set in the job definition + */ + readonly securityConfiguration?: string; + + /** + * After a job run starts, the number of minutes to wait before sending a job run delay notification. + * + * Must be at least 1 minute. + * + * @default - Default delay set in the job definition + */ + readonly notifyDelayAfter?: Duration; +} + +/** + * Invoke a Glue job as a Task + * + * OUTPUT: the output of this task is a JobRun structure, for details consult + * https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-runs.html#aws-glue-api-jobs-runs-JobRun + * + * @see https://docs.aws.amazon.com/step-functions/latest/dg/connect-glue.html + */ +export class RunGlueJobTask implements sfn.IStepFunctionsTask { + private readonly integrationPattern: sfn.ServiceIntegrationPattern; + + constructor(private readonly glueJobName: string, private readonly props: RunGlueJobTaskProps = {}) { + this.integrationPattern = props.integrationPattern || sfn.ServiceIntegrationPattern.FIRE_AND_FORGET; + + const supportedPatterns = [ + sfn.ServiceIntegrationPattern.FIRE_AND_FORGET, + sfn.ServiceIntegrationPattern.SYNC + ]; + + if (!supportedPatterns.includes(this.integrationPattern)) { + throw new Error(`Invalid Service Integration Pattern: ${this.integrationPattern} is not supported to call Glue.`); + } + } + + public bind(task: sfn.Task): sfn.StepFunctionsTaskConfig { + const notificationProperty = this.props.notifyDelayAfter ? { NotifyDelayAfter: this.props.notifyDelayAfter.toMinutes() } : null; + let iamActions: string[] | undefined; + if (this.integrationPattern === sfn.ServiceIntegrationPattern.FIRE_AND_FORGET) { + iamActions = ["glue:StartJobRun"]; + } else if (this.integrationPattern === sfn.ServiceIntegrationPattern.SYNC) { + iamActions = [ + "glue:StartJobRun", + "glue:GetJobRun", + "glue:GetJobRuns", + "glue:BatchStopJobRun" + ]; + } + return { + resourceArn: getResourceArn("glue", "startJobRun", this.integrationPattern), + policyStatements: [new iam.PolicyStatement({ + resources: [ + Stack.of(task).formatArn({ + service: "glue", + resource: "job", + resourceName: this.glueJobName + }) + ], + actions: iamActions + })], + metricPrefixSingular: 'GlueJob', + metricPrefixPlural: 'GlueJobs', + metricDimensions: { GlueJobName: this.glueJobName }, + parameters: { + JobName: this.glueJobName, + Arguments: this.props.arguments, + Timeout: this.props.timeout?.toMinutes(), + SecurityConfiguration: this.props.securityConfiguration, + NotificationProperty: notificationProperty + } + }; + } +} diff --git a/packages/@aws-cdk/aws-stepfunctions-tasks/package.json b/packages/@aws-cdk/aws-stepfunctions-tasks/package.json index 20dfb6be75711..7f29cd1fffd52 100644 --- a/packages/@aws-cdk/aws-stepfunctions-tasks/package.json +++ b/packages/@aws-cdk/aws-stepfunctions-tasks/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-stepfunctions-tasks", - "version": "999.0.0", + "version": "0.0.0", "description": "Task integrations for AWS StepFunctions", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,44 +79,47 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", + "@aws-cdk/assert": "0.0.0", + "@aws-cdk/aws-s3-assets": "0.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", "jest": "^24.9.0", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/assets": "999.0.0", - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-ecr": "999.0.0", - "@aws-cdk/aws-ecr-assets": "999.0.0", - "@aws-cdk/aws-ecs": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/aws-sqs": "999.0.0", - "@aws-cdk/aws-stepfunctions": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/assets": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-ecr": "0.0.0", + "@aws-cdk/aws-ecr-assets": "0.0.0", + "@aws-cdk/aws-ecs": "0.0.0", + "@aws-cdk/aws-glue": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/aws-stepfunctions": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/assets": "999.0.0", - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-ecr": "999.0.0", - "@aws-cdk/aws-ecr-assets": "999.0.0", - "@aws-cdk/aws-ecs": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/aws-sqs": "999.0.0", - "@aws-cdk/aws-stepfunctions": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/assets": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-ecr": "0.0.0", + "@aws-cdk/aws-ecr-assets": "0.0.0", + "@aws-cdk/aws-ecs": "0.0.0", + "@aws-cdk/aws-glue": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/aws-stepfunctions": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -182,4 +185,4 @@ "props-default-doc:@aws-cdk/aws-stepfunctions-tasks.VpcConfig.subnets" ] } -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-stepfunctions-tasks/test/integ.glue-task.expected.json b/packages/@aws-cdk/aws-stepfunctions-tasks/test/integ.glue-task.expected.json new file mode 100644 index 0000000000000..8f9e9aba0102f --- /dev/null +++ b/packages/@aws-cdk/aws-stepfunctions-tasks/test/integ.glue-task.expected.json @@ -0,0 +1,268 @@ +{ + "Parameters": { + "AssetParametersd030bb7913ca422df69f29b2ea678ab4e5085bb3cbb17029e4b101d2dc4e3e0dS3BucketB8F6851B": { + "Type": "String", + "Description": "S3 bucket for asset \"d030bb7913ca422df69f29b2ea678ab4e5085bb3cbb17029e4b101d2dc4e3e0d\"" + }, + "AssetParametersd030bb7913ca422df69f29b2ea678ab4e5085bb3cbb17029e4b101d2dc4e3e0dS3VersionKey7BCC06FC": { + "Type": "String", + "Description": "S3 key for asset version \"d030bb7913ca422df69f29b2ea678ab4e5085bb3cbb17029e4b101d2dc4e3e0d\"" + }, + "AssetParametersd030bb7913ca422df69f29b2ea678ab4e5085bb3cbb17029e4b101d2dc4e3e0dArtifactHashEC764944": { + "Type": "String", + "Description": "Artifact hash for asset \"d030bb7913ca422df69f29b2ea678ab4e5085bb3cbb17029e4b101d2dc4e3e0d\"" + } + }, + "Resources": { + "GlueJobRole1CD031E0": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "glue.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSGlueServiceRole" + ] + ] + } + ] + } + }, + "GlueJobRoleDefaultPolicy3D94D6F1": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "s3:GetObject*", + "s3:GetBucket*", + "s3:List*" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Ref": "AssetParametersd030bb7913ca422df69f29b2ea678ab4e5085bb3cbb17029e4b101d2dc4e3e0dS3BucketB8F6851B" + } + ] + ] + }, + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::", + { + "Ref": "AssetParametersd030bb7913ca422df69f29b2ea678ab4e5085bb3cbb17029e4b101d2dc4e3e0dS3BucketB8F6851B" + }, + "/*" + ] + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "GlueJobRoleDefaultPolicy3D94D6F1", + "Roles": [ + { + "Ref": "GlueJobRole1CD031E0" + } + ] + } + }, + "GlueJob": { + "Type": "AWS::Glue::Job", + "Properties": { + "Command": { + "Name": "glueetl", + "PythonVersion": "3", + "ScriptLocation": { + "Fn::Join": [ + "", + [ + "s3://", + { + "Ref": "AssetParametersd030bb7913ca422df69f29b2ea678ab4e5085bb3cbb17029e4b101d2dc4e3e0dS3BucketB8F6851B" + }, + "/", + { + "Fn::Select": [ + 0, + { + "Fn::Split": [ + "||", + { + "Ref": "AssetParametersd030bb7913ca422df69f29b2ea678ab4e5085bb3cbb17029e4b101d2dc4e3e0dS3VersionKey7BCC06FC" + } + ] + } + ] + }, + { + "Fn::Select": [ + 1, + { + "Fn::Split": [ + "||", + { + "Ref": "AssetParametersd030bb7913ca422df69f29b2ea678ab4e5085bb3cbb17029e4b101d2dc4e3e0dS3VersionKey7BCC06FC" + } + ] + } + ] + } + ] + ] + } + }, + "Role": { + "Fn::GetAtt": [ + "GlueJobRole1CD031E0", + "Arn" + ] + }, + "GlueVersion": "1.0", + "Name": "My Glue Job" + } + }, + "StateMachineRole543B9670": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": { + "Fn::Join": [ + "", + [ + "states.", + { + "Ref": "AWS::Region" + }, + ".amazonaws.com" + ] + ] + } + } + } + ], + "Version": "2012-10-17" + } + } + }, + "StateMachineRoleDefaultPolicyDA5F7DA8": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "glue:StartJobRun", + "glue:GetJobRun", + "glue:GetJobRuns", + "glue:BatchStopJobRun" + ], + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":glue:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":job/My Glue Job" + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "StateMachineRoleDefaultPolicyDA5F7DA8", + "Roles": [ + { + "Ref": "StateMachineRole543B9670" + } + ] + } + }, + "StateMachine81935E76": { + "Type": "AWS::StepFunctions::StateMachine", + "Properties": { + "DefinitionString": { + "Fn::Join": [ + "", + [ + "{\"StartAt\":\"Start Task\",\"States\":{\"Start Task\":{\"Type\":\"Pass\",\"Next\":\"Glue Job Task\"},\"Glue Job Task\":{\"Next\":\"End Task\",\"Parameters\":{\"JobName\":\"My Glue Job\",\"Arguments\":{\"--enable-metrics\":\"true\"}},\"Type\":\"Task\",\"Resource\":\"arn:", + { + "Ref": "AWS::Partition" + }, + ":states:::glue:startJobRun.sync\"},\"End Task\":{\"Type\":\"Pass\",\"End\":true}}}" + ] + ] + }, + "RoleArn": { + "Fn::GetAtt": [ + "StateMachineRole543B9670", + "Arn" + ] + } + }, + "DependsOn": [ + "StateMachineRoleDefaultPolicyDA5F7DA8", + "StateMachineRole543B9670" + ] + } + }, + "Outputs": { + "StateMachineARNOutput": { + "Value": { + "Ref": "StateMachine81935E76" + } + } + } +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-stepfunctions-tasks/test/integ.glue-task.ts b/packages/@aws-cdk/aws-stepfunctions-tasks/test/integ.glue-task.ts new file mode 100644 index 0000000000000..0c7573f5e9a26 --- /dev/null +++ b/packages/@aws-cdk/aws-stepfunctions-tasks/test/integ.glue-task.ts @@ -0,0 +1,64 @@ +import * as glue from '@aws-cdk/aws-glue'; +import * as iam from '@aws-cdk/aws-iam'; +import * as assets from '@aws-cdk/aws-s3-assets'; +import * as sfn from '@aws-cdk/aws-stepfunctions'; +import * as cdk from '@aws-cdk/core'; +import * as path from 'path'; +import * as tasks from '../lib'; + +/* + * Stack verification steps: + * * aws stepfunctions start-execution --state-machine-arn + * * aws stepfunctions describe-execution --execution-arn + * The "describe-execution" call should eventually return status "SUCCEEDED". + * NOTE: It will take up to 15 minutes for the step function to completem due to the cold start time + * for AWS Glue, which as of 02/2020, is around 10-15 minutes. + */ + +const app = new cdk.App(); +const stack = new cdk.Stack(app, 'aws-stepfunctions-integ'); + +const codeAsset = new assets.Asset(stack, 'Glue Job Script', { + path: path.join(__dirname, 'my-glue-script/job.py') +}); + +const jobRole = new iam.Role(stack, 'Glue Job Role', { + assumedBy: new iam.ServicePrincipal('glue'), + managedPolicies: [ + iam.ManagedPolicy.fromAwsManagedPolicyName('service-role/AWSGlueServiceRole') + ] +}); +codeAsset.grantRead(jobRole); + +const job = new glue.CfnJob(stack, 'Glue Job', { + name: 'My Glue Job', + glueVersion: '1.0', + command: { + name: 'glueetl', + pythonVersion: '3', + scriptLocation: `s3://${codeAsset.s3BucketName}/${codeAsset.s3ObjectKey}` + }, + role: jobRole.roleArn +}); + +const jobTask = new sfn.Task(stack, 'Glue Job Task', { + task: new tasks.RunGlueJobTask(job.name!, { + integrationPattern: sfn.ServiceIntegrationPattern.SYNC, + arguments: { + "--enable-metrics": "true" + } + }) +}); + +const startTask = new sfn.Pass(stack, 'Start Task'); +const endTask = new sfn.Pass(stack, 'End Task'); + +const stateMachine = new sfn.StateMachine(stack, 'State Machine', { + definition: sfn.Chain.start(startTask).next(jobTask).next(endTask) +}); + +new cdk.CfnOutput(stack, 'State Machine ARN Output', { + value: stateMachine.stateMachineArn +}); + +app.synth(); diff --git a/packages/@aws-cdk/aws-stepfunctions-tasks/test/my-glue-script/job.py b/packages/@aws-cdk/aws-stepfunctions-tasks/test/my-glue-script/job.py new file mode 100644 index 0000000000000..054cefb5a8804 --- /dev/null +++ b/packages/@aws-cdk/aws-stepfunctions-tasks/test/my-glue-script/job.py @@ -0,0 +1,16 @@ +import sys + +from awsglue.context import GlueContext +from awsglue.job import Job +from awsglue.utils import getResolvedOptions +from pyspark.context import SparkContext + +spark_context = SparkContext() +glue_context = GlueContext(spark_context) +job = Job(glue_context) +args = getResolvedOptions(sys.argv, ["JOB_NAME"]) +job.init(args["JOB_NAME"], args) + +print("Hello, World!") + +job.commit() diff --git a/packages/@aws-cdk/aws-stepfunctions-tasks/test/run-glue-job-task.test.ts b/packages/@aws-cdk/aws-stepfunctions-tasks/test/run-glue-job-task.test.ts new file mode 100644 index 0000000000000..b702d8c3f3d1f --- /dev/null +++ b/packages/@aws-cdk/aws-stepfunctions-tasks/test/run-glue-job-task.test.ts @@ -0,0 +1,141 @@ +import '@aws-cdk/assert/jest'; +import * as sfn from '@aws-cdk/aws-stepfunctions'; +import { Duration, Stack } from '@aws-cdk/core'; +import * as tasks from '../lib'; + +const jobName = "GlueJob"; +let stack: Stack; +beforeEach(() => { + stack = new Stack(); +}); + +test('Invoke glue job with just job ARN', () => { + const task = new sfn.Task(stack, 'Task', { + task: new tasks.RunGlueJobTask(jobName) + }); + new sfn.StateMachine(stack, 'SM', { + definition: task + }); + + expect(stack.resolve(task.toStateJson())).toEqual({ + Type: 'Task', + Resource: { + "Fn::Join": [ + "", + [ + "arn:", + { + Ref: "AWS::Partition", + }, + ":states:::glue:startJobRun", + ], + ], + }, + End: true, + Parameters: { + JobName: jobName + }, + }); +}); + +test('Invoke glue job with full properties', () => { + const jobArguments = { + key: "value" + }; + const timeoutMinutes = 1440; + const timeout = Duration.minutes(timeoutMinutes); + const securityConfiguration = "securityConfiguration"; + const notifyDelayAfterMinutes = 10; + const notifyDelayAfter = Duration.minutes(notifyDelayAfterMinutes); + const task = new sfn.Task(stack, 'Task', { + task: new tasks.RunGlueJobTask(jobName, { + integrationPattern: sfn.ServiceIntegrationPattern.SYNC, + arguments: jobArguments, + timeout, + securityConfiguration, + notifyDelayAfter + }) + }); + new sfn.StateMachine(stack, 'SM', { + definition: task + }); + + expect(stack.resolve(task.toStateJson())).toEqual({ + Type: 'Task', + Resource: { + "Fn::Join": [ + "", + [ + "arn:", + { + Ref: "AWS::Partition", + }, + ":states:::glue:startJobRun.sync", + ], + ], + }, + End: true, + Parameters: { + JobName: jobName, + Arguments: jobArguments, + Timeout: timeoutMinutes, + SecurityConfiguration: securityConfiguration, + NotificationProperty: { + NotifyDelayAfter: notifyDelayAfterMinutes + } + }, + }); +}); + +test('permitted role actions limited to start job run if service integration pattern is FIRE_AND_FORGET', () => { + const task = new sfn.Task(stack, 'Task', { + task: new tasks.RunGlueJobTask(jobName, { + integrationPattern: sfn.ServiceIntegrationPattern.FIRE_AND_FORGET, + }) + }); + new sfn.StateMachine(stack, 'SM', { + definition: task + }); + + expect(stack).toHaveResourceLike('AWS::IAM::Policy', { + PolicyDocument: { + Statement: [{ + Action: "glue:StartJobRun" + }] + } + }); +}); + +test('permitted role actions include start, get, and stop job run if service integration pattern is SYNC', () => { + const task = new sfn.Task(stack, 'Task', { + task: new tasks.RunGlueJobTask(jobName, { + integrationPattern: sfn.ServiceIntegrationPattern.SYNC, + }) + }); + new sfn.StateMachine(stack, 'SM', { + definition: task + }); + + expect(stack).toHaveResourceLike('AWS::IAM::Policy', { + PolicyDocument: { + Statement: [{ + Action: [ + "glue:StartJobRun", + "glue:GetJobRun", + "glue:GetJobRuns", + "glue:BatchStopJobRun" + ] + }] + } + }); +}); + +test('Task throws if WAIT_FOR_TASK_TOKEN is supplied as service integration pattern', () => { + expect(() => { + new sfn.Task(stack, 'Task', { + task: new tasks.RunGlueJobTask(jobName, { + integrationPattern: sfn.ServiceIntegrationPattern.WAIT_FOR_TASK_TOKEN + }) + }); + }).toThrow(/Invalid Service Integration Pattern: WAIT_FOR_TASK_TOKEN is not supported to call Glue./i); +}); diff --git a/packages/@aws-cdk/aws-stepfunctions/README.md b/packages/@aws-cdk/aws-stepfunctions/README.md index c15bdc7c86412..8768da56376bc 100644 --- a/packages/@aws-cdk/aws-stepfunctions/README.md +++ b/packages/@aws-cdk/aws-stepfunctions/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- @@ -126,6 +128,7 @@ couple of the tasks available are: queue that you poll on a compute fleet you manage yourself) * `tasks.InvokeFunction` -- invoke a Lambda function with function ARN * `tasks.RunLambdaTask` -- call Lambda as integrated service with magic ARN +* `tasks.RunGlueJobTask` -- call Glue Job as integrated service * `tasks.PublishToTopic` -- publish a message to an SNS topic * `tasks.SendToQueue` -- send a message to an SQS queue * `tasks.RunEcsFargateTask`/`ecs.RunEcsEc2Task` -- run a container task, @@ -185,6 +188,21 @@ task.next(nextState); }); ``` +#### Glue Job example + +```ts + const task = new sfn.Task(stack, 'ETL', { + task: new tasks.RunGlueJobTask(glueJobName, { + integrationPattern: sfn.ServiceIntegrationPattern.SYNC, + arguments: { + "--table-prefix": "myTable" + } + }) + }); +``` + +[Example CDK app](../aws-stepfunctions-tasks/test/integ.glue-task.ts) + #### SNS example ```ts diff --git a/packages/@aws-cdk/aws-stepfunctions/lib/fields.ts b/packages/@aws-cdk/aws-stepfunctions/lib/fields.ts index 2d35536cf9172..8792fe02776ee 100644 --- a/packages/@aws-cdk/aws-stepfunctions/lib/fields.ts +++ b/packages/@aws-cdk/aws-stepfunctions/lib/fields.ts @@ -129,13 +129,13 @@ export class FieldUtils { } function validateDataPath(path: string) { - if (!path.startsWith('$.')) { - throw new Error("Data JSON path values must start with '$.'"); + if (path !== '$' && !path.startsWith('$.')) { + throw new Error("Data JSON path values must either be exactly equal to '$' or start with '$.'"); } } function validateContextPath(path: string) { - if (!path.startsWith('$$.')) { - throw new Error("Context JSON path values must start with '$$.'"); + if (path !== '$$' && !path.startsWith('$$.')) { + throw new Error("Context JSON path values must either be exactly equal to '$$' or start with '$$.'"); } } diff --git a/packages/@aws-cdk/aws-stepfunctions/package.json b/packages/@aws-cdk/aws-stepfunctions/package.json index 7960f04f87103..f5dcfe668d701 100644 --- a/packages/@aws-cdk/aws-stepfunctions/package.json +++ b/packages/@aws-cdk/aws-stepfunctions/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-stepfunctions", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::StepFunctions", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -62,26 +62,26 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", + "@aws-cdk/assert": "0.0.0", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" @@ -106,4 +106,4 @@ ] }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-stepfunctions/test/test.fields.ts b/packages/@aws-cdk/aws-stepfunctions/test/test.fields.ts index 575b0d33d72e7..fdb41467815d5 100644 --- a/packages/@aws-cdk/aws-stepfunctions/test/test.fields.ts +++ b/packages/@aws-cdk/aws-stepfunctions/test/test.fields.ts @@ -80,17 +80,29 @@ export = { }, 'datafield path must be correct'(test: Test) { + test.ok(Data.stringAt('$')); + + test.throws(() => { + Data.stringAt('$hello'); + }, /exactly equal to '\$' or start with '\$.'/); + test.throws(() => { Data.stringAt('hello'); - }, /must start with '\$.'/); + }, /exactly equal to '\$' or start with '\$.'/); test.done(); }, 'context path must be correct'(test: Test) { + test.ok(Context.stringAt('$$')); + + test.throws(() => { + Context.stringAt('$$hello'); + }, /exactly equal to '\$\$' or start with '\$\$.'/); + test.throws(() => { Context.stringAt('hello'); - }, /must start with '\$\$.'/); + }, /exactly equal to '\$\$' or start with '\$\$.'/); test.done(); }, diff --git a/packages/@aws-cdk/aws-transfer/README.md b/packages/@aws-cdk/aws-transfer/README.md index c4dcb9c564064..08884fc3c8efa 100644 --- a/packages/@aws-cdk/aws-transfer/README.md +++ b/packages/@aws-cdk/aws-transfer/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-transfer/package.json b/packages/@aws-cdk/aws-transfer/package.json index 3eed8ce3ef473..d26d217f98b42 100644 --- a/packages/@aws-cdk/aws-transfer/package.json +++ b/packages/@aws-cdk/aws-transfer/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-transfer", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::Transfer", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-waf/README.md b/packages/@aws-cdk/aws-waf/README.md index d2fe37b96769a..8cbd4d4309110 100644 --- a/packages/@aws-cdk/aws-waf/README.md +++ b/packages/@aws-cdk/aws-waf/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-waf/package.json b/packages/@aws-cdk/aws-waf/package.json index b86d6e2a9426c..9c90689d682c2 100644 --- a/packages/@aws-cdk/aws-waf/package.json +++ b/packages/@aws-cdk/aws-waf/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-waf", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::WAF", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,20 +79,20 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-wafregional/README.md b/packages/@aws-cdk/aws-wafregional/README.md index ed3340b3cc7a0..7bea67ecaaca9 100644 --- a/packages/@aws-cdk/aws-wafregional/README.md +++ b/packages/@aws-cdk/aws-wafregional/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-wafregional/package.json b/packages/@aws-cdk/aws-wafregional/package.json index 64291d9ea0804..779baff57e884 100644 --- a/packages/@aws-cdk/aws-wafregional/package.json +++ b/packages/@aws-cdk/aws-wafregional/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-wafregional", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::WAFRegional", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,20 +79,20 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-wafv2/README.md b/packages/@aws-cdk/aws-wafv2/README.md index fc38c5dc9202a..76809df8263a6 100644 --- a/packages/@aws-cdk/aws-wafv2/README.md +++ b/packages/@aws-cdk/aws-wafv2/README.md @@ -5,17 +5,18 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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 diff --git a/packages/@aws-cdk/aws-wafv2/package.json b/packages/@aws-cdk/aws-wafv2/package.json index d243a3585a6d6..a6f4dda8e8ba7 100644 --- a/packages/@aws-cdk/aws-wafv2/package.json +++ b/packages/@aws-cdk/aws-wafv2/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-wafv2", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::WAFv2", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -81,19 +81,19 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/aws-workspaces/README.md b/packages/@aws-cdk/aws-workspaces/README.md index e96243e256ccc..b1fa97bdc0f4f 100644 --- a/packages/@aws-cdk/aws-workspaces/README.md +++ b/packages/@aws-cdk/aws-workspaces/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/aws-workspaces/package.json b/packages/@aws-cdk/aws-workspaces/package.json index 585f22e3e80dc..86fc88d4c395a 100644 --- a/packages/@aws-cdk/aws-workspaces/package.json +++ b/packages/@aws-cdk/aws-workspaces/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/aws-workspaces", - "version": "999.0.0", + "version": "0.0.0", "description": "The CDK Construct Library for AWS::WorkSpaces", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -79,20 +79,20 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", - "pkglint": "999.0.0" + "@aws-cdk/assert": "0.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/core": "999.0.0" + "@aws-cdk/core": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "experimental" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/cdk-assets-schema/package.json b/packages/@aws-cdk/cdk-assets-schema/package.json index 98233311eb8dc..289b65d20ec40 100644 --- a/packages/@aws-cdk/cdk-assets-schema/package.json +++ b/packages/@aws-cdk/cdk-assets-schema/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/cdk-assets-schema", - "version": "999.0.0", + "version": "0.0.0", "description": "Schema definition for the Asset Manifest", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -67,9 +67,9 @@ "license": "Apache-2.0", "devDependencies": { "@types/jest": "^25.1.2", - "cdk-build-tools": "999.0.0", + "cdk-build-tools": "0.0.0", "jest": "^24.9.0", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "repository": { "url": "https://github.com/aws/aws-cdk.git", 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 9633415b5e4d2..9ecf13489f81d 100644 --- a/packages/@aws-cdk/cfnspec/build-tools/create-missing-libraries.ts +++ b/packages/@aws-cdk/cfnspec/build-tools/create-missing-libraries.ts @@ -249,12 +249,14 @@ async function main() { '', '![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge)', '', - '> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have', - '> future breaking changes.**', + '> **This is a _developer preview_ (public beta) module.**', '>', - '> This API is still under active development and subject to non-backward', - '> compatible changes or removal in any future version. Use of the API is not recommended in production', - '> environments. Experimental APIs are not subject to the Semantic Versioning model.', + '> 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.', '', '---', '', diff --git a/packages/@aws-cdk/cfnspec/package.json b/packages/@aws-cdk/cfnspec/package.json index 878c76a289b51..364ff5bf633e5 100644 --- a/packages/@aws-cdk/cfnspec/package.json +++ b/packages/@aws-cdk/cfnspec/package.json @@ -1,7 +1,7 @@ { "name": "@aws-cdk/cfnspec", "description": "The CloudFormation resource specification used by @aws-cdk packages", - "version": "999.0.0", + "version": "0.0.0", "scripts": { "update": "cdk-build && /bin/bash build-tools/update.sh", "build": "cdk-build && node build-tools/build", @@ -25,12 +25,12 @@ "@types/fs-extra": "^8.1.0", "@types/md5": "^2.1.33", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", + "cdk-build-tools": "0.0.0", "fast-json-patch": "^2.2.1", "fs-extra": "^8.1.0", "json-diff": "^0.5.4", "nodeunit": "^0.11.3", - "pkglint": "999.0.0", + "pkglint": "0.0.0", "sort-json": "^2.0.0" }, "dependencies": { diff --git a/packages/@aws-cdk/cloudformation-diff/README.md b/packages/@aws-cdk/cloudformation-diff/README.md index 322affa5ce0a6..1f22e567b4477 100644 --- a/packages/@aws-cdk/cloudformation-diff/README.md +++ b/packages/@aws-cdk/cloudformation-diff/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/cloudformation-diff/package.json b/packages/@aws-cdk/cloudformation-diff/package.json index 1d16e65151523..dcc45fbfbb4ee 100644 --- a/packages/@aws-cdk/cloudformation-diff/package.json +++ b/packages/@aws-cdk/cloudformation-diff/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/cloudformation-diff", - "version": "999.0.0", + "version": "0.0.0", "description": "Utilities to diff CDK stacks against CloudFormation templates", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -30,7 +30,7 @@ }, "license": "Apache-2.0", "dependencies": { - "@aws-cdk/cfnspec": "999.0.0", + "@aws-cdk/cfnspec": "0.0.0", "colors": "^1.4.0", "diff": "^4.0.2", "fast-deep-equal": "^3.1.1", @@ -41,10 +41,10 @@ "@types/jest": "^25.1.2", "@types/string-width": "^4.0.1", "@types/table": "^4.0.7", - "cdk-build-tools": "999.0.0", + "cdk-build-tools": "0.0.0", "fast-check": "^1.22.2", "jest": "^24.9.0", - "pkglint": "999.0.0", + "pkglint": "0.0.0", "ts-jest": "^25.2.0" }, "repository": { diff --git a/packages/@aws-cdk/core/lib/cfn-resource-policy.ts b/packages/@aws-cdk/core/lib/cfn-resource-policy.ts index 10e02b1d98801..f740c8a988626 100644 --- a/packages/@aws-cdk/core/lib/cfn-resource-policy.ts +++ b/packages/@aws-cdk/core/lib/cfn-resource-policy.ts @@ -136,6 +136,12 @@ export interface CfnUpdatePolicy { */ readonly useOnlineResharding?: boolean; + /** + * To upgrade an Amazon ES domain to a new version of Elasticsearch rather than replacing the entire + * AWS::Elasticsearch::Domain resource, use the EnableVersionUpgrade update policy. + */ + readonly enableVersionUpgrade?: boolean; + } /** diff --git a/packages/@aws-cdk/core/package.json b/packages/@aws-cdk/core/package.json index 17db113c35f14..cff11f68a3298 100644 --- a/packages/@aws-cdk/core/package.json +++ b/packages/@aws-cdk/core/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/core", - "version": "999.0.0", + "version": "0.0.0", "description": "AWS Cloud Development Kit Core Library", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -149,22 +149,22 @@ "devDependencies": { "@types/lodash": "^4.14.149", "@types/nodeunit": "^0.0.30", - "cdk-build-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cfn2ts": "0.0.0", "fast-check": "^1.22.2", "lodash": "^4.17.15", "nodeunit": "^0.11.3", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/cx-api": "999.0.0" + "@aws-cdk/cx-api": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/cx-api": "999.0.0" + "@aws-cdk/cx-api": "0.0.0" }, "engines": { "node": ">= 10.3.0" }, "stability": "stable" -} \ No newline at end of file +} diff --git a/packages/@aws-cdk/core/test/test.resource.ts b/packages/@aws-cdk/core/test/test.resource.ts index c69dbf658d378..dcca545ea04b0 100644 --- a/packages/@aws-cdk/core/test/test.resource.ts +++ b/packages/@aws-cdk/core/test/test.resource.ts @@ -682,6 +682,28 @@ export = { test.done(); }, + + 'enableVersionUpgrade can be set on a resource'(test: Test) { + const stack = new Stack(); + const r1 = new CfnResource(stack, 'Resource', { type: 'Type' }); + + r1.cfnOptions.updatePolicy = { + enableVersionUpgrade: true + }; + + test.deepEqual(toCloudFormation(stack), { + Resources: { + Resource: { + Type: 'Type', + UpdatePolicy: { + EnableVersionUpgrade: true + } + } + } + }); + + test.done(); + }, }; interface CounterProps { diff --git a/packages/@aws-cdk/custom-resources/README.md b/packages/@aws-cdk/custom-resources/README.md index 56d496856e039..3c9c491cf0b55 100644 --- a/packages/@aws-cdk/custom-resources/README.md +++ b/packages/@aws-cdk/custom-resources/README.md @@ -1,21 +1,23 @@ # AWS CDK Custom Resources - --- ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **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. > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- + ## Provider Framework AWS CloudFormation [custom resources] are extension points to the provisioning @@ -63,7 +65,7 @@ The following example is a skeleton for a Python implementation of `onEvent`: ```py def on_event(event, context): - print(event) + print(event) request_type = event['RequestType'] if request_type == 'Create': return on_create(event) if request_type == 'Update': return on_update(event) @@ -76,9 +78,9 @@ def on_create(event): # add your create code here... physical_id = ... - + return { 'PhysicalResourceId': physical_id } - + def on_update(event): physical_id = event["PhysicalResourceId"] props = event["ResourceProperties"] @@ -104,8 +106,8 @@ def is_complete(event, context): request_type = event["RequestType"] # check if resource is stable based on request_type - is_ready = ... - + is_ready = ... + return { 'IsComplete': is_ready } ``` @@ -121,7 +123,7 @@ If `onEvent` returns successfully, the framework will submit a "SUCCESS" respons to AWS CloudFormation for this resource operation. If the provider is [asynchronous](#asynchronous-providers-iscomplete) (`isCompleteHandler` is defined), the framework will only submit a response based on the result of -`isComplete`. +`isComplete`. If `onEvent` throws an error, the framework will submit a "FAILED" response to AWS CloudFormation. @@ -153,10 +155,10 @@ The return value from `onEvent` must be a JSON object with the following fields: It is not uncommon for the provisioning of resources to be an asynchronous operation, which means that the operation does not immediately finish, and we -need to "wait" until the resource stabilizes. +need to "wait" until the resource stabilizes. The provider framework makes it easy to implement "waiters" by allowing users to -specify an additional AWS Lambda function in `isCompleteHandler`. +specify an additional AWS Lambda function in `isCompleteHandler`. The framework will repeatedly invoke the handler every `queryInterval`. When `isComplete` returns with `IsComplete: true`, the framework will submit a @@ -230,7 +232,7 @@ lifecycle events: ### Execution Policy Similarly to any AWS Lambda function, if the user-defined handlers require -access to AWS resources, you will have to define these permissions +access to AWS resources, you will have to define these permissions by calling "grant" methods such as `myBucket.grantRead(myHandler)`), using `myHandler.addToRolePolicy` or specifying an `initialPolicy` when defining the function. @@ -353,7 +355,7 @@ const awsCustom1 = new AwsCustomResource(this, 'API1', { onCreate: { service: '...', action: '...', - physicalResourceId: '...' + physicalResourceId: PhysicalResourceId.of('...') } }); @@ -364,7 +366,7 @@ const awsCustom2 = new AwsCustomResource(this, 'API2', { parameters: { text: awsCustom1.getDataString('Items.0.text') }, - physicalResourceId: '...' + physicalResourceId: PhysicalResourceId.of('...') } }) ``` @@ -381,7 +383,7 @@ const verifyDomainIdentity = new AwsCustomResource(this, 'VerifyDomainIdentity', parameters: { Domain: 'example.com' }, - physicalResourceIdPath: 'VerificationToken' // Use the token returned by the call as physical id + physicalResourceId: PhysicalResourceId.fromResponse('VerificationToken') // Use the token returned by the call as physical id } }); @@ -403,7 +405,7 @@ const getParameter = new AwsCustomResource(this, 'GetParameter', { Name: 'my-parameter', WithDecryption: true }, - physicalResourceId: Date.now().toString() // Update physical id to always fetch the latest version + physicalResourceId: PhysicalResourceId.of(Date.now().toString()) // Update physical id to always fetch the latest version } }); diff --git a/packages/@aws-cdk/custom-resources/lib/aws-custom-resource/aws-custom-resource.ts b/packages/@aws-cdk/custom-resources/lib/aws-custom-resource/aws-custom-resource.ts index f8c17c3db0aef..4ebcf8e9e1bbf 100644 --- a/packages/@aws-cdk/custom-resources/lib/aws-custom-resource/aws-custom-resource.ts +++ b/packages/@aws-cdk/custom-resources/lib/aws-custom-resource/aws-custom-resource.ts @@ -16,6 +16,32 @@ export type AwsSdkMetadata = {[key: string]: any}; const awsSdkMetadata: AwsSdkMetadata = metadata; +/** + * Physical ID of the custom resource. + */ +export class PhysicalResourceId { + + /** + * Extract the physical resource id from the path (dot notation) to the data in the API call response. + */ + public static fromResponse(responsePath: string): PhysicalResourceId { + return new PhysicalResourceId(responsePath, undefined); + } + + /** + * Explicit physical resource id. + */ + public static of(id: string): PhysicalResourceId { + return new PhysicalResourceId(undefined, id); + } + + /** + * @param responsePath Path to a response data element to be used as the physical id. + * @param id Literal string to be used as the physical id. + */ + private constructor(public readonly responsePath?: string, public readonly id?: string) { } +} + /** * An AWS SDK call. */ @@ -37,27 +63,18 @@ export interface AwsSdkCall { /** * The parameters for the service action * + * @default - no paramters * @see https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/index.html */ readonly parameters?: any; /** - * The path to the data in the API call response to use as the physical - * resource id. Either `physicalResourceId` or `physicalResourceIdPath` - * must be specified for onCreate or onUpdate calls. - * - * @default - no path - */ - readonly physicalResourceIdPath?: string; - - /** - * The physical resource id of the custom resource for this call. Either - * `physicalResourceId` or `physicalResourceIdPath` must be specified for - * onCreate or onUpdate calls. + * The physical resource id of the custom resource for this call. + * Mandatory for onCreate or onUpdate calls. * * @default - no physical resource id */ - readonly physicalResourceId?: string; + readonly physicalResourceId?: PhysicalResourceId; /** * The regex pattern to use to catch API errors. The `code` property of the @@ -98,6 +115,11 @@ export interface AwsSdkCall { readonly outputPath?: string; } +/** + * Properties for AwsCustomResource. + * + * Note that at least onCreate, onUpdate or onDelete must be specified. + */ export interface AwsCustomResourceProps { /** * Cloudformation Resource type. @@ -108,7 +130,6 @@ export interface AwsCustomResourceProps { /** * The AWS SDK call to make when the resource is created. - * At least onCreate, onUpdate or onDelete must be specified. * * @default - the call when the resource is updated */ @@ -161,11 +182,20 @@ export interface AwsCustomResourceProps { readonly timeout?: cdk.Duration } +/** + * Defines a custom resource that is materialized using specific AWS API calls. + * + * Use this to bridge any gap that might exist in the CloudFormation Coverage. + * You can specify exactly which calls are invoked for the 'CREATE', 'UPDATE' and 'DELETE' life cycle events. + * + */ export class AwsCustomResource extends cdk.Construct implements iam.IGrantable { public readonly grantPrincipal: iam.IPrincipal; private readonly customResource: CustomResource; + // 'props' cannot be optional, even though all its properties are optional. + // this is because at least one sdk call must be provided. constructor(scope: cdk.Construct, id: string, props: AwsCustomResourceProps) { super(scope, id); @@ -174,8 +204,8 @@ export class AwsCustomResource extends cdk.Construct implements iam.IGrantable { } for (const call of [props.onCreate, props.onUpdate]) { - if (call && !call.physicalResourceId && !call.physicalResourceIdPath) { - throw new Error('Either `physicalResourceId` or `physicalResourceIdPath` must be specified for onCreate and onUpdate calls.'); + if (call && !call.physicalResourceId) { + throw new Error('`physicalResourceId` must be specified for onCreate and onUpdate calls.'); } } diff --git a/packages/@aws-cdk/custom-resources/lib/aws-custom-resource/runtime/index.ts b/packages/@aws-cdk/custom-resources/lib/aws-custom-resource/runtime/index.ts index 7a6288d285e5a..9507a8f9388b1 100644 --- a/packages/@aws-cdk/custom-resources/lib/aws-custom-resource/runtime/index.ts +++ b/packages/@aws-cdk/custom-resources/lib/aws-custom-resource/runtime/index.ts @@ -86,7 +86,21 @@ export async function handler(event: AWSLambda.CloudFormationCustomResourceEvent console.log(JSON.stringify(event)); console.log('AWS SDK VERSION: ' + AWS.VERSION); - let physicalResourceId = (event as any).PhysicalResourceId; + // Default physical resource id + let physicalResourceId: string; + switch (event.RequestType) { + case 'Create': + physicalResourceId = event.ResourceProperties.Create?.physicalResourceId?.id ?? + event.ResourceProperties.Update?.physicalResourceId?.id ?? + event.ResourceProperties.Delete?.physicalResourceId?.id ?? + event.LogicalResourceId; + break; + case 'Update': + case 'Delete': + physicalResourceId = event.ResourceProperties[event.RequestType]?.physicalResourceId?.id ?? event.PhysicalResourceId; + break; + } + let flatData: { [key: string]: string } = {}; let data: { [key: string]: string } = {}; const call: AwsSdkCall | undefined = event.ResourceProperties[event.RequestType]; @@ -113,9 +127,9 @@ export async function handler(event: AWSLambda.CloudFormationCustomResourceEvent } } - physicalResourceId = call.physicalResourceIdPath - ? flatData[call.physicalResourceIdPath] - : call.physicalResourceId || (event as any).PhysicalResourceId; + if (call.physicalResourceId?.responsePath) { + physicalResourceId = flatData[call.physicalResourceId.responsePath]; + } } await respond('SUCCESS', 'OK', physicalResourceId, data); diff --git a/packages/@aws-cdk/custom-resources/package.json b/packages/@aws-cdk/custom-resources/package.json index e01d2fae26fac..7e6fe6de3f831 100644 --- a/packages/@aws-cdk/custom-resources/package.json +++ b/packages/@aws-cdk/custom-resources/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/custom-resources", - "version": "999.0.0", + "version": "0.0.0", "description": "Constructs for implementing CDK custom resources", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -66,41 +66,41 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/assert": "999.0.0", - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/aws-ssm": "999.0.0", + "@aws-cdk/assert": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-ssm": "0.0.0", "@types/aws-lambda": "^8.10.39", "@types/fs-extra": "^8.1.0", - "@types/sinon": "^7.5.0", - "aws-sdk": "^2.625.0", + "@types/sinon": "^7.5.2", + "aws-sdk": "^2.631.0", "aws-sdk-mock": "^5.0.0", - "cdk-build-tools": "999.0.0", - "cdk-integ-tools": "999.0.0", - "cfn2ts": "999.0.0", + "cdk-build-tools": "0.0.0", + "cdk-integ-tools": "0.0.0", + "cfn2ts": "0.0.0", "fs-extra": "^8.1.0", - "nock": "^12.0.1", - "pkglint": "999.0.0", + "nock": "^12.0.2", + "pkglint": "0.0.0", "sinon": "^9.0.0" }, "dependencies": { - "@aws-cdk/aws-cloudformation": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/aws-stepfunctions": "999.0.0", - "@aws-cdk/aws-stepfunctions-tasks": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-stepfunctions": "0.0.0", + "@aws-cdk/aws-stepfunctions-tasks": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "homepage": "https://github.com/aws/aws-cdk", "peerDependencies": { - "@aws-cdk/aws-cloudformation": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/aws-stepfunctions": "999.0.0", - "@aws-cdk/aws-stepfunctions-tasks": "999.0.0", - "@aws-cdk/core": "999.0.0" + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-stepfunctions": "0.0.0", + "@aws-cdk/aws-stepfunctions-tasks": "0.0.0", + "@aws-cdk/core": "0.0.0" }, "jest": { "moduleFileExtensions": [ @@ -125,11 +125,7 @@ "stability": "experimental", "awslint": { "exclude": [ - "construct-ctor-props-optional:@aws-cdk/custom-resources.AwsCustomResource", - "props-physical-name:@aws-cdk/custom-resources.AsyncCustomResourceProps", - "docs-public-apis:@aws-cdk/custom-resources.AwsCustomResource", - "docs-public-apis:@aws-cdk/custom-resources.AwsCustomResourceProps", - "props-default-doc:@aws-cdk/custom-resources.AwsSdkCall.parameters" + "construct-ctor-props-optional:@aws-cdk/custom-resources.AwsCustomResource" ] - } -} \ No newline at end of file + } +} diff --git a/packages/@aws-cdk/custom-resources/test/aws-custom-resource/aws-custom-resource-provider.test.ts b/packages/@aws-cdk/custom-resources/test/aws-custom-resource/aws-custom-resource-provider.test.ts index e613eccc879bc..9fa7fbfd936d6 100644 --- a/packages/@aws-cdk/custom-resources/test/aws-custom-resource/aws-custom-resource-provider.test.ts +++ b/packages/@aws-cdk/custom-resources/test/aws-custom-resource/aws-custom-resource-provider.test.ts @@ -3,7 +3,7 @@ import * as AWS from 'aws-sdk-mock'; import * as fs from 'fs-extra'; import * as nock from 'nock'; import * as sinon from 'sinon'; -import { AwsSdkCall } from '../../lib'; +import { AwsSdkCall, PhysicalResourceId } from '../../lib'; import { flatten, handler } from '../../lib/aws-custom-resource/runtime'; AWS.setSDK(require.resolve('aws-sdk')); @@ -62,7 +62,7 @@ test('create event with physical resource id path', async () => { parameters: { Bucket: 'my-bucket' }, - physicalResourceIdPath: 'Contents.1.ETag' + physicalResourceId: PhysicalResourceId.fromResponse('Contents.1.ETag') } as AwsSdkCall } }; @@ -101,7 +101,7 @@ test('update event with physical resource id', async () => { Message: 'hello', TopicArn: 'topicarn' }, - physicalResourceId: 'topicarn' + physicalResourceId: PhysicalResourceId.of('topicarn') } as AwsSdkCall } }; @@ -133,7 +133,7 @@ test('delete event', async () => { parameters: { Bucket: 'my-bucket' }, - physicalResourceIdPath: 'Contents.1.ETag' + physicalResourceId: PhysicalResourceId.fromResponse('Contents.1.ETag') } as AwsSdkCall } }; @@ -186,6 +186,38 @@ test('delete event with Delete call and no physical resource id in call', async expect(request.isDone()).toBeTruthy(); }); +test('create event with Delete call only', async () => { + const deleteParameterFake = sinon.fake.resolves({}); + + AWS.mock('SSM', 'deleteParameter', deleteParameterFake); + + const event: AWSLambda.CloudFormationCustomResourceCreateEvent = { + ...eventCommon, + RequestType: 'Create', + ResourceProperties: { + ServiceToken: 'token', + Delete: { + service: 'SSM', + action: 'deleteParameter', + parameters: { + Name: 'my-param' + }, + } as AwsSdkCall + } + }; + + const request = createRequest(body => + body.Status === 'SUCCESS' && + body.PhysicalResourceId === 'logicalResourceId' + ); + + await handler(event, {} as AWSLambda.Context); + + sinon.assert.notCalled(deleteParameterFake); + + expect(request.isDone()).toBeTruthy(); +}); + test('catch errors', async () => { const error: NodeJS.ErrnoException = new Error(); error.code = 'NoSuchBucket'; @@ -204,7 +236,7 @@ test('catch errors', async () => { parameters: { Bucket: 'my-bucket' }, - physicalResourceId: 'physicalResourceId', + physicalResourceId: PhysicalResourceId.of('physicalResourceId'), catchErrorPattern: 'NoSuchBucket' } as AwsSdkCall } @@ -251,7 +283,7 @@ test('decodes booleans', async () => { }, } }, - physicalResourceId: 'put-item' + physicalResourceId: PhysicalResourceId.of('put-item') } as AwsSdkCall } }; @@ -310,7 +342,7 @@ test('restrict output path', async () => { parameters: { Bucket: 'my-bucket' }, - physicalResourceId: 'id', + physicalResourceId: PhysicalResourceId.of('id'), outputPath: 'Contents.0' } as AwsSdkCall } @@ -347,7 +379,7 @@ test('can specify apiVersion and region', async () => { }, apiVersion: '2010-03-31', region: 'eu-west-1', - physicalResourceId: 'id', + physicalResourceId: PhysicalResourceId.of('id'), } as AwsSdkCall } }; @@ -401,7 +433,7 @@ test('installs the latest SDK', async () => { Message: 'message', TopicArn: 'topic' }, - physicalResourceId: 'id', + physicalResourceId: PhysicalResourceId.of('id'), } as AwsSdkCall } }; diff --git a/packages/@aws-cdk/custom-resources/test/aws-custom-resource/aws-custom-resource.test.ts b/packages/@aws-cdk/custom-resources/test/aws-custom-resource/aws-custom-resource.test.ts index 5527f2923ab33..38fca5e4b5757 100644 --- a/packages/@aws-cdk/custom-resources/test/aws-custom-resource/aws-custom-resource.test.ts +++ b/packages/@aws-cdk/custom-resources/test/aws-custom-resource/aws-custom-resource.test.ts @@ -1,7 +1,7 @@ import '@aws-cdk/assert/jest'; import * as iam from '@aws-cdk/aws-iam'; import * as cdk from '@aws-cdk/core'; -import { AwsCustomResource } from '../../lib'; +import { AwsCustomResource, PhysicalResourceId } from '../../lib'; // tslint:disable:object-literal-key-quotes @@ -19,7 +19,7 @@ test('aws sdk js custom resource with onCreate and onDelete', () => { logGroupName: '/aws/lambda/loggroup', retentionInDays: 90 }, - physicalResourceId: 'loggroup' + physicalResourceId: PhysicalResourceId.of('loggroup') }, onDelete: { service: 'CloudWatchLogs', @@ -39,7 +39,9 @@ test('aws sdk js custom resource with onCreate and onDelete', () => { "logGroupName": "/aws/lambda/loggroup", "retentionInDays": 90 }, - "physicalResourceId": "loggroup" + "physicalResourceId": { + "id": "loggroup" + } }, "Delete": { "service": "CloudWatchLogs", @@ -84,7 +86,7 @@ test('onCreate defaults to onUpdate', () => { Key: 'my-key', Body: 'my-body' }, - physicalResourceIdPath: 'ETag' + physicalResourceId: PhysicalResourceId.fromResponse('ETag') }, }); @@ -98,7 +100,9 @@ test('onCreate defaults to onUpdate', () => { "Key": "my-key", "Body": "my-body" }, - "physicalResourceIdPath": "ETag" + "physicalResourceId": { + "responsePath": "ETag" + } }, "Update": { "service": "s3", @@ -108,7 +112,9 @@ test('onCreate defaults to onUpdate', () => { "Key": "my-key", "Body": "my-body" }, - "physicalResourceIdPath": "ETag" + "physicalResourceId": { + "responsePath": "ETag" + } }, }); }); @@ -127,7 +133,7 @@ test('with custom policyStatements', () => { Key: 'my-key', Body: 'my-body' }, - physicalResourceIdPath: 'ETag' + physicalResourceId: PhysicalResourceId.fromResponse('ETag') }, policyStatements: [ new iam.PolicyStatement({ @@ -169,7 +175,7 @@ test('fails when no physical resource method is specified', () => { retentionInDays: 90 } } - })).toThrow(/`physicalResourceId`.+`physicalResourceIdPath`/); + })).toThrow(/`physicalResourceId`/); }); test('encodes booleans', () => { @@ -188,7 +194,7 @@ test('encodes booleans', () => { falseBoolean: false, falseString: 'false' }, - physicalResourceId: 'id' + physicalResourceId: PhysicalResourceId.of('id') }, }); @@ -203,7 +209,9 @@ test('encodes booleans', () => { "falseBoolean": "FALSE:BOOLEAN", "falseString": "false" }, - "physicalResourceId": "id" + "physicalResourceId": { + "id": "id" + } }, }); }); @@ -217,7 +225,7 @@ test('timeout defaults to 2 minutes', () => { onCreate: { service: 'service', action: 'action', - physicalResourceId: 'id' + physicalResourceId: PhysicalResourceId.of('id') } }); @@ -236,7 +244,7 @@ test('can specify timeout', () => { onCreate: { service: 'service', action: 'action', - physicalResourceId: 'id' + physicalResourceId: PhysicalResourceId.of('id') }, timeout: cdk.Duration.minutes(15) }); @@ -257,7 +265,7 @@ test('implements IGrantable', () => { onCreate: { service: 'service', action: 'action', - physicalResourceId: 'id' + physicalResourceId: PhysicalResourceId.of('id') } }); @@ -298,7 +306,7 @@ test('can use existing role', () => { onCreate: { service: 'service', action: 'action', - physicalResourceId: 'id' + physicalResourceId: PhysicalResourceId.of('id') }, role }); @@ -318,7 +326,7 @@ test('getData', () => { onCreate: { service: 'service', action: 'action', - physicalResourceId: 'id' + physicalResourceId: PhysicalResourceId.of('id') } }); @@ -341,7 +349,7 @@ test('getDataString', () => { onCreate: { service: 'service', action: 'action', - physicalResourceId: 'id' + physicalResourceId: PhysicalResourceId.of('id') } }); @@ -353,7 +361,7 @@ test('getDataString', () => { parameters: { a: awsSdk.getDataString('Data') }, - physicalResourceId: 'id' + physicalResourceId: PhysicalResourceId.of('id') } }); @@ -370,7 +378,9 @@ test('getDataString', () => { ] } }, - physicalResourceId: 'id' + physicalResourceId: { + "id": 'id' + } } }); }); diff --git a/packages/@aws-cdk/custom-resources/test/aws-custom-resource/integ.aws-custom-resource.expected.json b/packages/@aws-cdk/custom-resources/test/aws-custom-resource/integ.aws-custom-resource.expected.json index 880c33b630c11..68bebdc9bc22d 100644 --- a/packages/@aws-cdk/custom-resources/test/aws-custom-resource/integ.aws-custom-resource.expected.json +++ b/packages/@aws-cdk/custom-resources/test/aws-custom-resource/integ.aws-custom-resource.expected.json @@ -22,7 +22,9 @@ } }, "physicalResourceId": { - "Ref": "TopicBFC7AF6E" + "id": { + "Ref": "TopicBFC7AF6E" + } } }, "Update": { @@ -35,7 +37,9 @@ } }, "physicalResourceId": { - "Ref": "TopicBFC7AF6E" + "id": { + "Ref": "TopicBFC7AF6E" + } } } }, @@ -109,7 +113,7 @@ "Properties": { "Code": { "S3Bucket": { - "Ref": "AssetParametersc6841f16fc6689f1b3a9ae6e91f18d4e6cc06c23c2b1e7b7155625c258cb8999S3Bucket38F49C79" + "Ref": "AssetParameters6bf0eac2bfd1c5dcd41b3cc53f24814f9dba9cce0cb7fe2e34d0ded661481748S3BucketFC283D1B" }, "S3Key": { "Fn::Join": [ @@ -122,7 +126,7 @@ "Fn::Split": [ "||", { - "Ref": "AssetParametersc6841f16fc6689f1b3a9ae6e91f18d4e6cc06c23c2b1e7b7155625c258cb8999S3VersionKey9906BC0C" + "Ref": "AssetParameters6bf0eac2bfd1c5dcd41b3cc53f24814f9dba9cce0cb7fe2e34d0ded661481748S3VersionKey7E916B81" } ] } @@ -135,7 +139,7 @@ "Fn::Split": [ "||", { - "Ref": "AssetParametersc6841f16fc6689f1b3a9ae6e91f18d4e6cc06c23c2b1e7b7155625c258cb8999S3VersionKey9906BC0C" + "Ref": "AssetParameters6bf0eac2bfd1c5dcd41b3cc53f24814f9dba9cce0cb7fe2e34d0ded661481748S3VersionKey7E916B81" } ] } @@ -172,12 +176,16 @@ "Create": { "service": "SNS", "action": "listTopics", - "physicalResourceIdPath": "Topics.0.TopicArn" + "physicalResourceId": { + "responsePath": "Topics.0.TopicArn" + } }, "Update": { "service": "SNS", "action": "listTopics", - "physicalResourceIdPath": "Topics.0.TopicArn" + "physicalResourceId": { + "responsePath": "Topics.0.TopicArn" + } } }, "DependsOn": [ @@ -211,7 +219,9 @@ }, "WithDecryption": "TRUE:BOOLEAN" }, - "physicalResourceIdPath": "Parameter.ARN" + "physicalResourceId": { + "responsePath": "Parameter.ARN" + } }, "Update": { "service": "SSM", @@ -222,7 +232,9 @@ }, "WithDecryption": "TRUE:BOOLEAN" }, - "physicalResourceIdPath": "Parameter.ARN" + "physicalResourceId": { + "responsePath": "Parameter.ARN" + } } }, "UpdateReplacePolicy": "Delete", @@ -230,17 +242,17 @@ } }, "Parameters": { - "AssetParametersc6841f16fc6689f1b3a9ae6e91f18d4e6cc06c23c2b1e7b7155625c258cb8999S3Bucket38F49C79": { + "AssetParameters6bf0eac2bfd1c5dcd41b3cc53f24814f9dba9cce0cb7fe2e34d0ded661481748S3BucketFC283D1B": { "Type": "String", - "Description": "S3 bucket for asset \"c6841f16fc6689f1b3a9ae6e91f18d4e6cc06c23c2b1e7b7155625c258cb8999\"" + "Description": "S3 bucket for asset \"6bf0eac2bfd1c5dcd41b3cc53f24814f9dba9cce0cb7fe2e34d0ded661481748\"" }, - "AssetParametersc6841f16fc6689f1b3a9ae6e91f18d4e6cc06c23c2b1e7b7155625c258cb8999S3VersionKey9906BC0C": { + "AssetParameters6bf0eac2bfd1c5dcd41b3cc53f24814f9dba9cce0cb7fe2e34d0ded661481748S3VersionKey7E916B81": { "Type": "String", - "Description": "S3 key for asset version \"c6841f16fc6689f1b3a9ae6e91f18d4e6cc06c23c2b1e7b7155625c258cb8999\"" + "Description": "S3 key for asset version \"6bf0eac2bfd1c5dcd41b3cc53f24814f9dba9cce0cb7fe2e34d0ded661481748\"" }, - "AssetParametersc6841f16fc6689f1b3a9ae6e91f18d4e6cc06c23c2b1e7b7155625c258cb8999ArtifactHash5595423D": { + "AssetParameters6bf0eac2bfd1c5dcd41b3cc53f24814f9dba9cce0cb7fe2e34d0ded661481748ArtifactHashB96EE827": { "Type": "String", - "Description": "Artifact hash for asset \"c6841f16fc6689f1b3a9ae6e91f18d4e6cc06c23c2b1e7b7155625c258cb8999\"" + "Description": "Artifact hash for asset \"6bf0eac2bfd1c5dcd41b3cc53f24814f9dba9cce0cb7fe2e34d0ded661481748\"" } }, "Outputs": { diff --git a/packages/@aws-cdk/custom-resources/test/aws-custom-resource/integ.aws-custom-resource.ts b/packages/@aws-cdk/custom-resources/test/aws-custom-resource/integ.aws-custom-resource.ts index f736237e5bce1..3fd4f1b21f10a 100644 --- a/packages/@aws-cdk/custom-resources/test/aws-custom-resource/integ.aws-custom-resource.ts +++ b/packages/@aws-cdk/custom-resources/test/aws-custom-resource/integ.aws-custom-resource.ts @@ -2,7 +2,7 @@ import * as sns from '@aws-cdk/aws-sns'; import * as ssm from '@aws-cdk/aws-ssm'; import * as cdk from '@aws-cdk/core'; -import { AwsCustomResource } from '../../lib'; +import { AwsCustomResource, PhysicalResourceId } from '../../lib'; const app = new cdk.App(); @@ -19,7 +19,7 @@ const snsPublish = new AwsCustomResource(stack, 'Publish', { Message: 'hello', TopicArn: topic.topicArn }, - physicalResourceId: topic.topicArn, + physicalResourceId: PhysicalResourceId.of(topic.topicArn), } }); @@ -27,7 +27,7 @@ const listTopics = new AwsCustomResource(stack, 'ListTopics', { onUpdate: { service: 'SNS', action: 'listTopics', - physicalResourceIdPath: 'Topics.0.TopicArn' + physicalResourceId: PhysicalResourceId.fromResponse('Topics.0.TopicArn') } }); listTopics.node.addDependency(topic); @@ -44,7 +44,7 @@ const getParameter = new AwsCustomResource(stack, 'GetParameter', { Name: ssmParameter.parameterName, WithDecryption: true }, - physicalResourceIdPath: 'Parameter.ARN' + physicalResourceId: PhysicalResourceId.fromResponse('Parameter.ARN') } }); diff --git a/packages/@aws-cdk/cx-api/README.md b/packages/@aws-cdk/cx-api/README.md index 16221fdbee5f5..c7fb50e9f9ad2 100644 --- a/packages/@aws-cdk/cx-api/README.md +++ b/packages/@aws-cdk/cx-api/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/cx-api/package.json b/packages/@aws-cdk/cx-api/package.json index 1242c78a7d8b1..5d337f674bd0e 100644 --- a/packages/@aws-cdk/cx-api/package.json +++ b/packages/@aws-cdk/cx-api/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/cx-api", - "version": "999.0.0", + "version": "0.0.0", "description": "Cloud executable protocol", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -69,10 +69,10 @@ "@types/jest": "^25.1.2", "@types/mock-fs": "^4.10.0", "@types/semver": "^7.1.0", - "cdk-build-tools": "999.0.0", + "cdk-build-tools": "0.0.0", "jest": "^24.9.0", "mock-fs": "^4.11.0", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "repository": { "url": "https://github.com/aws/aws-cdk.git", diff --git a/packages/@aws-cdk/region-info/README.md b/packages/@aws-cdk/region-info/README.md index 7a9983405a7ac..21d1c107f3447 100644 --- a/packages/@aws-cdk/region-info/README.md +++ b/packages/@aws-cdk/region-info/README.md @@ -5,12 +5,14 @@ ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **This is a _developer preview_ (public beta) module.** > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- diff --git a/packages/@aws-cdk/region-info/package.json b/packages/@aws-cdk/region-info/package.json index 9d843841f06ce..d13e0b0192d30 100644 --- a/packages/@aws-cdk/region-info/package.json +++ b/packages/@aws-cdk/region-info/package.json @@ -1,6 +1,6 @@ { "name": "@aws-cdk/region-info", - "version": "999.0.0", + "version": "0.0.0", "description": "AWS region information, such as service principal names", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,9 +53,9 @@ "license": "Apache-2.0", "devDependencies": { "@types/fs-extra": "^8.1.0", - "cdk-build-tools": "999.0.0", + "cdk-build-tools": "0.0.0", "fs-extra": "^8.1.0", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "jest": { "moduleFileExtensions": [ diff --git a/packages/@monocdk-experiment/assert/.gitignore b/packages/@monocdk-experiment/assert/.gitignore index b5d0394a53a1c..02dc0fa7cdb6a 100644 --- a/packages/@monocdk-experiment/assert/.gitignore +++ b/packages/@monocdk-experiment/assert/.gitignore @@ -8,4 +8,4 @@ jest.ts .npmignore *.js -*.d.ts \ No newline at end of file +*.d.ts diff --git a/packages/@monocdk-experiment/assert/package.json b/packages/@monocdk-experiment/assert/package.json index c03cd66e0a359..7b6cab93a0c1b 100644 --- a/packages/@monocdk-experiment/assert/package.json +++ b/packages/@monocdk-experiment/assert/package.json @@ -1,6 +1,6 @@ { "name": "@monocdk-experiment/assert", - "version": "999.0.0", + "version": "0.0.0", "description": "An assertion library for use with CDK Apps", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -41,19 +41,19 @@ "license": "Apache-2.0", "devDependencies": { "@types/jest": "^25.1.2", - "cdk-build-tools": "999.0.0", + "cdk-build-tools": "0.0.0", "jest": "^24.9.0", - "pkglint": "999.0.0", + "pkglint": "0.0.0", "ts-jest": "^25.2.0", - "@monocdk-experiment/rewrite-imports": "999.0.0", - "monocdk-experiment": "999.0.0" + "@monocdk-experiment/rewrite-imports": "0.0.0", + "monocdk-experiment": "0.0.0" }, "dependencies": { - "@aws-cdk/cloudformation-diff": "999.0.0" + "@aws-cdk/cloudformation-diff": "0.0.0" }, "peerDependencies": { "jest": "^24.9.0", - "monocdk-experiment": "^999.0.0" + "monocdk-experiment": "^0.0.0" }, "repository": { "url": "https://github.com/aws/aws-cdk.git", diff --git a/packages/@monocdk-experiment/rewrite-imports/README.md b/packages/@monocdk-experiment/rewrite-imports/README.md index b08a599046e7f..9ac79de1b262b 100644 --- a/packages/@monocdk-experiment/rewrite-imports/README.md +++ b/packages/@monocdk-experiment/rewrite-imports/README.md @@ -1,4 +1,22 @@ # @monocdk-experiment/rewrite-imports + + +--- + +![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. + +--- + + A hacky tool to mass rewrite a bunch of TS files from the old style imports to the new style imports. diff --git a/packages/@monocdk-experiment/rewrite-imports/package.json b/packages/@monocdk-experiment/rewrite-imports/package.json index 440a03ea4f5d9..35319a9110df7 100644 --- a/packages/@monocdk-experiment/rewrite-imports/package.json +++ b/packages/@monocdk-experiment/rewrite-imports/package.json @@ -1,6 +1,6 @@ { "name": "@monocdk-experiment/rewrite-imports", - "version": "999.0.0", + "version": "0.0.0", "description": "Rewrites typescript 'import' statements from @aws-cdk/xxx to monocdk-experiment", "bin": { "rewrite-imports": "bin/rewrite-imports" @@ -16,7 +16,9 @@ "build+test": "npm run build && npm test" }, "keywords": [ - "aws", "cdk", "awscdk" + "aws", + "cdk", + "awscdk" ], "author": { "name": "Amazon Web Services", @@ -25,11 +27,11 @@ }, "license": "Apache-2.0", "dependencies": { - "typescript": "^3.7.5" + "typescript": "^3.8.3" }, "devDependencies": { - "cdk-build-tools": "999.0.0", - "pkglint": "999.0.0", - "@types/node": "^13.7.1" + "cdk-build-tools": "0.0.0", + "pkglint": "0.0.0", + "@types/node": "^10.17.17" } } diff --git a/packages/aws-cdk/README.md b/packages/aws-cdk/README.md index 9145aa5639e42..510fc63258837 100644 --- a/packages/aws-cdk/README.md +++ b/packages/aws-cdk/README.md @@ -128,9 +128,9 @@ bootstrapped (using `cdk bootstrap`), only stacks that are not using assets and $ cdk deploy --app='node bin/main.js' MyStackName ``` -Before creating a change set, `cdk deploy` will compare the template of the -currently deployed stack to the template that is about to be deployed and will -skip deployment if they are identical. Use `--force` to override this behavior +Before creating a change set, `cdk deploy` will compare the template and tags of the +currently deployed stack to the template and tags that are about to be deployed and +will skip deployment if they are identical. Use `--force` to override this behavior and always deploy the stack. #### `cdk destroy` diff --git a/packages/aws-cdk/lib/api/deploy-stack.ts b/packages/aws-cdk/lib/api/deploy-stack.ts index de79b13058b16..0a51851080483 100644 --- a/packages/aws-cdk/lib/api/deploy-stack.ts +++ b/packages/aws-cdk/lib/api/deploy-stack.ts @@ -74,10 +74,11 @@ export async function deployStack(options: DeployStackOptions): Promise { - const stackId = await getStackId(cfn, stackName); - if (!stackId) { +async function getDeployedStack(cfn: aws.CloudFormation, stackName: string): Promise<{ stackId: string, template: any, tags: Tag[] } | undefined> { + const stack = await getStack(cfn, stackName); + if (!stack) { + return undefined; + } + + if (!stack.StackId) { return undefined; } const template = await readCurrentTemplate(cfn, stackName); - return { stackId, template }; + return { + stackId: stack.StackId, + tags: stack.Tags ?? [], + template + }; } export async function readCurrentTemplate(cfn: aws.CloudFormation, stackName: string) { @@ -262,7 +271,7 @@ export async function readCurrentTemplate(cfn: aws.CloudFormation, stackName: st } } -async function getStackId(cfn: aws.CloudFormation, stackName: string): Promise { +async function getStack(cfn: aws.CloudFormation, stackName: string): Promise { try { const stacks = await cfn.describeStacks({ StackName: stackName }).promise(); if (!stacks.Stacks) { @@ -272,7 +281,7 @@ async function getStackId(cfn: aws.CloudFormation, stackName: string): Promise tag.Key === aTag.Key); + + if (!bTag || bTag.Value !== aTag.Value) { + return false; + } + } + + return true; +} diff --git a/packages/aws-cdk/lib/docker.ts b/packages/aws-cdk/lib/docker.ts index b151a166a5bce..664b4a5c9db36 100644 --- a/packages/aws-cdk/lib/docker.ts +++ b/packages/aws-cdk/lib/docker.ts @@ -172,8 +172,9 @@ export async function prepareContainerAssetNew(assemblyDir: string, buildCommand.push(contextPath); + // Login to ECR before build to allow building images that reference other docker assets try { - await shell(buildCommand); + await dockerLogin(toolkitInfo); } catch (e) { if (e.code === 'ENOENT') { throw new Error('Unable to execute "docker" in order to build a container asset. Please install "docker" and try again.'); @@ -181,8 +182,7 @@ export async function prepareContainerAssetNew(assemblyDir: string, throw e; } - // login to ECR - await dockerLogin(toolkitInfo); + await shell(buildCommand); // There's no way to make this quiet, so we can't use a PleaseHold. Print a header message. print(` ⌛ Pushing Docker image for ${contextPath}; this may take a while.`); diff --git a/packages/aws-cdk/package.json b/packages/aws-cdk/package.json index 08f55d0ee098a..ac5e2d6e6b14b 100644 --- a/packages/aws-cdk/package.json +++ b/packages/aws-cdk/package.json @@ -1,7 +1,7 @@ { "name": "aws-cdk", "description": "CDK Toolkit, the command line tool for CDK apps", - "version": "999.0.0", + "version": "0.0.0", "main": "lib/index.js", "types": "lib/index.d.ts", "bin": { @@ -40,38 +40,38 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/core": "999.0.0", - "@types/archiver": "^3.0.0", + "@aws-cdk/core": "0.0.0", + "@types/archiver": "^3.1.0", "@types/fs-extra": "^8.1.0", "@types/glob": "^7.1.1", "@types/jest": "^25.1.2", "@types/jszip": "^3.1.7", "@types/minimatch": "^3.0.3", "@types/mockery": "^1.4.29", - "@types/node": "^10.17.15", + "@types/node": "^10.17.17", "@types/promptly": "^3.0.0", "@types/request": "^2.48.4", "@types/semver": "^7.1.0", - "@types/sinon": "^7.5.0", + "@types/sinon": "^7.5.2", "@types/table": "^4.0.7", - "@types/uuid": "^3.4.7", + "@types/uuid": "^7.0.0", "@types/yaml": "^1.2.0", - "@types/yargs": "^15.0.3", + "@types/yargs": "^15.0.4", "aws-sdk-mock": "^5.0.0", - "cdk-build-tools": "999.0.0", + "cdk-build-tools": "0.0.0", "jest": "^24.9.0", "jszip": "^3.2.2", "mockery": "^2.1.0", - "pkglint": "999.0.0", + "pkglint": "0.0.0", "sinon": "^9.0.0", "ts-jest": "^25.2.0" }, "dependencies": { - "@aws-cdk/cloudformation-diff": "999.0.0", - "@aws-cdk/cx-api": "999.0.0", - "@aws-cdk/region-info": "999.0.0", + "@aws-cdk/cloudformation-diff": "0.0.0", + "@aws-cdk/cx-api": "0.0.0", + "@aws-cdk/region-info": "0.0.0", "archiver": "^3.1.1", - "aws-sdk": "^2.625.0", + "aws-sdk": "^2.631.0", "camelcase": "^5.3.1", "colors": "^1.4.0", "decamelize": "^4.0.0", @@ -85,9 +85,9 @@ "semver": "^7.1.3", "source-map-support": "^0.5.16", "table": "^5.4.6", - "uuid": "^7.0.0", + "uuid": "^7.0.1", "yaml": "^1.7.2", - "yargs": "^15.0.2" + "yargs": "^15.2.0" }, "repository": { "url": "https://github.com/aws/aws-cdk.git", diff --git a/packages/aws-cdk/test/api/deploy-stack.test.ts b/packages/aws-cdk/test/api/deploy-stack.test.ts index 95b12fc384d8e..a79e43a90fd4c 100644 --- a/packages/aws-cdk/test/api/deploy-stack.test.ts +++ b/packages/aws-cdk/test/api/deploy-stack.test.ts @@ -145,6 +145,216 @@ test('deploy is skipped if template did not change', async () => { expect(getTemplateInput!).toStrictEqual({ StackName: 'withouterrors', TemplateStage: 'Original' }); }); +test('deploy is skipped if template and tags did not change', async () => { + const sdk = new MockSDK(); + let describeStacksInput: AWS.CloudFormation.DescribeStacksInput; + let getTemplateInput: AWS.CloudFormation.GetTemplateInput; + let createChangeSetCalled = false; + let executeChangeSetCalled = false; + + sdk.stubCloudFormation({ + getTemplate(input) { + getTemplateInput = input; + return { + TemplateBody: JSON.stringify(FAKE_TEMPLATE) + }; + }, + describeStacks(input) { + describeStacksInput = input; + return { + Stacks: [ + { + StackName: 'mock-stack-name', + StackId: 'mock-stack-id', + CreationTime: new Date(), + StackStatus: 'CREATE_COMPLETE', + Tags: [ + { + Key: 'Key1', + Value: 'Value1' + }, + { + Key: 'Key2', + Value: 'Value2' + } + ] + } + ] + }; + }, + createChangeSet() { + createChangeSetCalled = true; + return { }; + }, + executeChangeSet() { + executeChangeSetCalled = true; + return { }; + } + }); + + await deployStack({ + stack: FAKE_STACK, + tags: [ + { + Key: 'Key1', + Value: 'Value1' + }, + { + Key: 'Key2', + Value: 'Value2' + } + ], + sdk + }); + + expect(createChangeSetCalled).toBeFalsy(); + expect(executeChangeSetCalled).toBeFalsy(); + expect(describeStacksInput!).toStrictEqual({ StackName: 'withouterrors' }); + expect(getTemplateInput!).toStrictEqual({ StackName: 'withouterrors', TemplateStage: 'Original' }); +}); + +test('deploy not skipped if template did not change but tags changed', async () => { + const sdk = new MockSDK(); + let describeStacksInput: AWS.CloudFormation.DescribeStacksInput; + let getTemplateInput: AWS.CloudFormation.GetTemplateInput; + let createChangeSetCalled = false; + let executeChangeSetCalled = false; + let describeChangeSetCalled = false; + + sdk.stubCloudFormation({ + getTemplate(input) { + getTemplateInput = input; + return { + TemplateBody: JSON.stringify(FAKE_TEMPLATE) + }; + }, + describeStacks(input) { + describeStacksInput = input; + return { + Stacks: [ + { + StackName: 'mock-stack-name', + StackId: 'mock-stack-id', + CreationTime: new Date(), + StackStatus: 'CREATE_COMPLETE', + Tags: [ + { + Key: 'Key', + Value: 'Value' + }, + ] + } + ] + }; + }, + createChangeSet() { + createChangeSetCalled = true; + return { }; + }, + executeChangeSet() { + executeChangeSetCalled = true; + return { }; + }, + describeChangeSet() { + describeChangeSetCalled = true; + return { + Status: 'CREATE_COMPLETE', + Changes: [], + }; + } + }); + + await deployStack({ + stack: FAKE_STACK, + sdk, + tags: [ + { + Key: 'Key', + Value: 'NewValue' + } + ] + }); + + expect(createChangeSetCalled).toBeTruthy(); + expect(executeChangeSetCalled).toBeTruthy(); + expect(describeChangeSetCalled).toBeTruthy(); + expect(describeStacksInput!).toStrictEqual({ StackName: "withouterrors" }); + expect(getTemplateInput!).toStrictEqual({ StackName: 'withouterrors', TemplateStage: 'Original' }); +}); + +test('deploy not skipped if template did not change but one tag removed', async () => { + const sdk = new MockSDK(); + let describeStacksInput: AWS.CloudFormation.DescribeStacksInput; + let getTemplateInput: AWS.CloudFormation.GetTemplateInput; + let createChangeSetCalled = false; + let executeChangeSetCalled = false; + let describeChangeSetCalled = false; + + sdk.stubCloudFormation({ + getTemplate(input) { + getTemplateInput = input; + return { + TemplateBody: JSON.stringify(FAKE_TEMPLATE) + }; + }, + describeStacks(input) { + describeStacksInput = input; + return { + Stacks: [ + { + StackName: 'mock-stack-name', + StackId: 'mock-stack-id', + CreationTime: new Date(), + StackStatus: 'CREATE_COMPLETE', + Tags: [ + { + Key: 'Key1', + Value: 'Value1' + }, + { + Key: 'Key2', + Value: 'Value2' + }, + ] + } + ] + }; + }, + createChangeSet() { + createChangeSetCalled = true; + return { }; + }, + executeChangeSet() { + executeChangeSetCalled = true; + return { }; + }, + describeChangeSet() { + describeChangeSetCalled = true; + return { + Status: 'CREATE_COMPLETE', + Changes: [], + }; + } + }); + + await deployStack({ + stack: FAKE_STACK, + sdk, + tags: [ + { + Key: 'Key1', + Value: 'Value1' + } + ] + }); + + expect(createChangeSetCalled).toBeTruthy(); + expect(executeChangeSetCalled).toBeTruthy(); + expect(describeChangeSetCalled).toBeTruthy(); + expect(describeStacksInput!).toStrictEqual({ StackName: "withouterrors" }); + expect(getTemplateInput!).toStrictEqual({ StackName: 'withouterrors', TemplateStage: 'Original' }); +}); + test('deploy not skipped if template did not change and --force is applied', async () => { const sdk = new MockSDK(); let describeStacksInput: AWS.CloudFormation.DescribeStacksInput; @@ -250,13 +460,12 @@ test('deploy not skipped if template changed', async () => { await deployStack({ stack: FAKE_STACK, - sdk, - force: true + sdk }); expect(createChangeSetCalled).toBeTruthy(); expect(executeChangeSetCalled).toBeTruthy(); expect(describeChangeSetCalled).toBeTruthy(); - expect(getTemplateInput!).toBeUndefined(); expect(describeStacksInput!).toStrictEqual({ StackName: "withouterrors" }); -}); \ No newline at end of file + expect(getTemplateInput!).toStrictEqual({ StackName: 'withouterrors', TemplateStage: 'Original' }); +}); diff --git a/packages/aws-cdk/test/docker-new.test.ts b/packages/aws-cdk/test/docker-new.test.ts index ebb49c531d0ad..cf49ee68af8a9 100644 --- a/packages/aws-cdk/test/docker-new.test.ts +++ b/packages/aws-cdk/test/docker-new.test.ts @@ -5,6 +5,18 @@ import { prepareContainerAsset } from '../lib/docker'; import * as os from '../lib/os'; import { MockSDK } from './util/mock-sdk'; +const shellFake = async (args: string[]) => { + if (args[1] === 'login') { + return 'LOGIN'; + } + + if (args[1] === 'build') { + throw new Error('STOPTEST'); + } + + throw new Error('UNEXPECTED'); +}; + test('fails if "repositoryName" and "imageTag" are not specified', async () => { // GIVEN const toolkit = newMockToolkitInfo(); @@ -118,13 +130,62 @@ test('configures image scanning', async () => { }); }); +test('calls docker login with the corrects args and before docker build', async () => { + // GIVEN + const toolkit = newMockToolkitInfo(); + + const prepareEcrRepositoryStub = sinon.stub(toolkit, 'prepareEcrRepository').resolves({ repositoryUri: 'uri' }); + const checkEcrImageStub = sinon.stub(toolkit, 'checkEcrImage').resolves(false); + const shellStub = sinon.stub(os, 'shell').callsFake(shellFake); + const getEcrCredentialsStub = sinon.stub(toolkit, 'getEcrCredentials').resolves({ + username: 'username', + password: 'password', + endpoint: 'endpoint' + }); + + // WHEN + const asset: cxapi.ContainerImageAssetMetadataEntry = { + id: 'assetId', + packaging: 'container-image', + path: '/foo', + sourceHash: '1234567890abcdef', + repositoryName: 'some-name', + imageTag: 'some-tag', + buildArgs: { + a: 'b', + c: 'd' + }, + target: 'a-target', + }; + + try { + await prepareContainerAsset('.', asset, toolkit, false); + } catch (e) { + if (!/STOPTEST/.test(e.toString())) { throw e; } + } + + // THEN + const command = ['docker', 'login', '--username', 'username', '--password', 'password', 'endpoint']; + sinon.assert.calledWith(shellStub.firstCall, command); + + prepareEcrRepositoryStub.restore(); + shellStub.restore(); + checkEcrImageStub.restore(); + getEcrCredentialsStub.restore(); +}); + test('passes the correct target to docker build', async () => { // GIVEN const toolkit = newMockToolkitInfo(); const prepareEcrRepositoryStub = sinon.stub(toolkit, 'prepareEcrRepository').resolves({ repositoryUri: 'uri' }); const checkEcrImageStub = sinon.stub(toolkit, 'checkEcrImage').resolves(false); - const shellStub = sinon.stub(os, 'shell').rejects('STOPTEST'); + const shellStub = sinon.stub(os, 'shell').callsFake(shellFake); + const getEcrCredentialsStub = sinon.stub(toolkit, 'getEcrCredentials').resolves({ + username: 'username', + password: 'password', + endpoint: 'endpoint' + }); // WHEN const asset: cxapi.ContainerImageAssetMetadataEntry = { @@ -154,6 +215,7 @@ test('passes the correct target to docker build', async () => { prepareEcrRepositoryStub.restore(); shellStub.restore(); checkEcrImageStub.restore(); + getEcrCredentialsStub.restore(); }); test('passes the correct args to docker build', async () => { @@ -162,7 +224,12 @@ test('passes the correct args to docker build', async () => { const prepareEcrRepositoryStub = sinon.stub(toolkit, 'prepareEcrRepository').resolves({ repositoryUri: 'uri' }); const checkEcrImageStub = sinon.stub(toolkit, 'checkEcrImage').resolves(false); - const shellStub = sinon.stub(os, 'shell').rejects('STOPTEST'); + const shellStub = sinon.stub(os, 'shell').callsFake(shellFake); + const getEcrCredentialsStub = sinon.stub(toolkit, 'getEcrCredentials').resolves({ + username: 'username', + password: 'password', + endpoint: 'endpoint' + }); // WHEN const asset: cxapi.ContainerImageAssetMetadataEntry = { @@ -191,13 +258,19 @@ test('passes the correct args to docker build', async () => { prepareEcrRepositoryStub.restore(); checkEcrImageStub.restore(); shellStub.restore(); + getEcrCredentialsStub.restore(); }); test('passes the correct docker file name if specified', async () => { const toolkit = newMockToolkitInfo(); const prepareEcrRepositoryStub = sinon.stub(toolkit, 'prepareEcrRepository').resolves({ repositoryUri: 'uri' }); const checkEcrImageStub = sinon.stub(toolkit, 'checkEcrImage').resolves(false); - const shellStub = sinon.stub(os, 'shell').rejects('STOPTEST'); + const shellStub = sinon.stub(os, 'shell').callsFake(shellFake); + const getEcrCredentialsStub = sinon.stub(toolkit, 'getEcrCredentials').resolves({ + username: 'username', + password: 'password', + endpoint: 'endpoint' + }); // WHEN const asset: cxapi.ContainerImageAssetMetadataEntry = { @@ -227,6 +300,7 @@ test('passes the correct docker file name if specified', async () => { prepareEcrRepositoryStub.restore(); checkEcrImageStub.restore(); shellStub.restore(); + getEcrCredentialsStub.restore(); }); test('relative path', async () => { @@ -234,7 +308,12 @@ test('relative path', async () => { const toolkit = newMockToolkitInfo(); const prepareEcrRepositoryStub = sinon.stub(toolkit, 'prepareEcrRepository').resolves({ repositoryUri: 'uri' }); const checkEcrImageStub = sinon.stub(toolkit, 'checkEcrImage').resolves(false); - const shellStub = sinon.stub(os, 'shell').rejects('STOPTEST'); + const shellStub = sinon.stub(os, 'shell').callsFake(shellFake); + const getEcrCredentialsStub = sinon.stub(toolkit, 'getEcrCredentials').resolves({ + username: 'username', + password: 'password', + endpoint: 'endpoint' + }); // WHEN const asset: cxapi.ContainerImageAssetMetadataEntry = { @@ -263,6 +342,7 @@ test('relative path', async () => { prepareEcrRepositoryStub.restore(); checkEcrImageStub.restore(); shellStub.restore(); + getEcrCredentialsStub.restore(); }); test('skips build & push if image already exists in the ECR repo', async () => { diff --git a/packages/aws-cdk/test/integ/cli/common.bash b/packages/aws-cdk/test/integ/cli/common.bash index 4d7941962cff3..690ef418f6ca5 100644 --- a/packages/aws-cdk/test/integ/cli/common.bash +++ b/packages/aws-cdk/test/integ/cli/common.bash @@ -66,20 +66,20 @@ function prepare_fixture() { cp -R app/* $integ_test_dir cd $integ_test_dir - # if this directory is missing, but exists in any of the + # if this directory is missing, but exists in any of the # parent directories, npm will install these packages there. lets make sure # we install locally. mkdir -p node_modules npm install \ - @aws-cdk/core \ - @aws-cdk/aws-sns \ - @aws-cdk/aws-iam \ - @aws-cdk/aws-lambda \ - @aws-cdk/aws-ssm \ - @aws-cdk/aws-ecr-assets \ - @aws-cdk/aws-cloudformation \ - @aws-cdk/aws-ec2 + @aws-cdk/core@^1 \ + @aws-cdk/aws-sns@^1 \ + @aws-cdk/aws-iam@^1 \ + @aws-cdk/aws-lambda@^1 \ + @aws-cdk/aws-ssm@^1 \ + @aws-cdk/aws-ecr-assets@^1 \ + @aws-cdk/aws-cloudformation@^1 \ + @aws-cdk/aws-ec2@^1 echo "| setup complete at: $PWD" echo "| 'cdk' is: $(type -p cdk)" diff --git a/packages/aws-cdk/test/integ/cli/test-cdk-fast-deploy.sh b/packages/aws-cdk/test/integ/cli/test-cdk-fast-deploy.sh index 940c4ab8cc198..6649588d56949 100755 --- a/packages/aws-cdk/test/integ/cli/test-cdk-fast-deploy.sh +++ b/packages/aws-cdk/test/integ/cli/test-cdk-fast-deploy.sh @@ -45,6 +45,16 @@ if [ "${changeset3}" == "${changeset1}" ]; then exit 1 fi +echo "============================================================" +echo " deploying the same stack again with different tags" +echo "============================================================" +cdk deploy -v ${stack_name} --tags key=value +changeset4=$(get_last_changeset) +if [ "${changeset4}" == "${changeset1}" ]; then + echo "TEST FAILED: expected tags to create a new changeset" + exit 1 +fi + # destroy cdk destroy -f ${stack_name} diff --git a/packages/aws-cdk/test/integ/run-wrappers/repo/npm b/packages/aws-cdk/test/integ/run-wrappers/repo/npm index 204398e857c71..4a49bd85621b5 100755 --- a/packages/aws-cdk/test/integ/run-wrappers/repo/npm +++ b/packages/aws-cdk/test/integ/run-wrappers/repo/npm @@ -11,15 +11,23 @@ if [[ "$command" == "install" || "$command" == "i" ]]; then while [[ "${1:-}" != "" ]]; do packageloc=$(cd $REPO_ROOT && npx lerna ls --loglevel silent -p --scope $1) && { - # Rewrite to 'npm install /path/to/@aws-cdk/pkg' - npmargs="$npmargs $packageloc" + # Symlink that location into node_modules + dir=$(dirname node_modules/$1) + mkdir -p $dir + echo "$dir/$1 -> $packageloc" >&2 + ln -s $packageloc $dir/ } || { npmargs="$npmargs $1" } shift done + if [[ "$npmargs" == "install" ]]; then + # No rewrites + exit 0 + fi + exec $ORIGINAL_NPM $npmargs fi -exec $ORIGINAL_NPM "$@" +exec $ORIGINAL_NPM "$@" \ No newline at end of file diff --git a/packages/cdk-assets/README.md b/packages/cdk-assets/README.md index bca9505c87294..efd9c79af1df4 100644 --- a/packages/cdk-assets/README.md +++ b/packages/cdk-assets/README.md @@ -1,23 +1,25 @@ # cdk-assets - -A tool for publishing CDK assets to AWS environments. - --- ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge) -> **This is a _developer preview_ (public beta) module. Releases might lack important features and might have -> future breaking changes.** +> **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. > -> This API is still under active development and subject to non-backward -> compatible changes or removal in any future version. Use of the API is not recommended in production -> environments. Experimental APIs are not subject to the Semantic Versioning model. +> 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. --- + +A tool for publishing CDK assets to AWS environments. + ## Overview `cdk-assets` requires an asset manifest file called `assets.json`, in a CDK diff --git a/packages/cdk-assets/package.json b/packages/cdk-assets/package.json index 049caac12eb2f..d92819021b416 100644 --- a/packages/cdk-assets/package.json +++ b/packages/cdk-assets/package.json @@ -1,7 +1,7 @@ { "name": "cdk-assets", "description": "CDK Asset Publishing Tool", - "version": "999.0.0", + "version": "0.0.0", "main": "lib/index.js", "types": "lib/index.d.ts", "bin": { @@ -28,23 +28,23 @@ }, "license": "Apache-2.0", "devDependencies": { - "@types/archiver": "^3.0.0", + "@types/archiver": "^3.1.0", "@types/glob": "^7.1.1", "@types/jest": "^24.0.25", "@types/mock-fs": "^4.10.0", - "@types/node": "^10.17.13", - "@types/yargs": "^15.0.0", - "cdk-build-tools": "999.0.0", + "@types/node": "^10.17.17", + "@types/yargs": "^15.0.4", + "cdk-build-tools": "0.0.0", "jest": "^24.9.0", "mock-fs": "^4.11.0", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/cdk-assets-schema": "999.0.0", + "@aws-cdk/cdk-assets-schema": "0.0.0", "archiver": "^3.1.1", - "aws-sdk": "^2.625.0", + "aws-sdk": "^2.631.0", "glob": "^7.1.6", - "yargs": "^15.0.2" + "yargs": "^15.2.0" }, "repository": { "url": "https://github.com/aws/aws-cdk.git", diff --git a/packages/cdk-dasm/package.json b/packages/cdk-dasm/package.json index 95910b3e7a233..397e45109048e 100644 --- a/packages/cdk-dasm/package.json +++ b/packages/cdk-dasm/package.json @@ -1,6 +1,6 @@ { "name": "cdk-dasm", - "version": "999.0.0", + "version": "0.0.0", "description": "AWS CDK disassembler: convert CloudFormation to code", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -42,4 +42,4 @@ "engines": { "node": ">= 8.10.0" } -} +} \ No newline at end of file diff --git a/packages/cdk/package.json b/packages/cdk/package.json index 51c6bb5325910..bdd0279a59380 100644 --- a/packages/cdk/package.json +++ b/packages/cdk/package.json @@ -1,12 +1,12 @@ { "name": "cdk", - "version": "999.0.0", + "version": "0.0.0", "description": "AWS CDK Toolkit", "bin": { "cdk": "bin/cdk" }, "dependencies": { - "aws-cdk": "999.0.0" + "aws-cdk": "0.0.0" }, "repository": { "type": "git", @@ -36,4 +36,4 @@ "engines": { "node": ">= 8.10.0" } -} +} \ No newline at end of file diff --git a/packages/decdk/package.json b/packages/decdk/package.json index 13350364b8167..67557c0f9ab45 100644 --- a/packages/decdk/package.json +++ b/packages/decdk/package.json @@ -1,6 +1,6 @@ { "name": "decdk", - "version": "999.0.0", + "version": "0.0.0", "description": "Declarative CDK: a CloudFormation-like syntax for defining CDK stacks", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -27,153 +27,153 @@ }, "license": "Apache-2.0", "dependencies": { - "@aws-cdk/alexa-ask": "999.0.0", - "@aws-cdk/app-delivery": "999.0.0", - "@aws-cdk/assets": "999.0.0", - "@aws-cdk/aws-accessanalyzer": "999.0.0", - "@aws-cdk/aws-acmpca": "999.0.0", - "@aws-cdk/aws-amazonmq": "999.0.0", - "@aws-cdk/aws-amplify": "999.0.0", - "@aws-cdk/aws-apigateway": "999.0.0", - "@aws-cdk/aws-apigatewayv2": "999.0.0", - "@aws-cdk/aws-appconfig": "999.0.0", - "@aws-cdk/aws-applicationautoscaling": "999.0.0", - "@aws-cdk/aws-appmesh": "999.0.0", - "@aws-cdk/aws-appstream": "999.0.0", - "@aws-cdk/aws-appsync": "999.0.0", - "@aws-cdk/aws-athena": "999.0.0", - "@aws-cdk/aws-autoscaling": "999.0.0", - "@aws-cdk/aws-autoscaling-common": "999.0.0", - "@aws-cdk/aws-autoscaling-hooktargets": "999.0.0", - "@aws-cdk/aws-autoscalingplans": "999.0.0", - "@aws-cdk/aws-backup": "999.0.0", - "@aws-cdk/aws-batch": "999.0.0", - "@aws-cdk/aws-budgets": "999.0.0", - "@aws-cdk/aws-certificatemanager": "999.0.0", - "@aws-cdk/aws-cloud9": "999.0.0", - "@aws-cdk/aws-cloudformation": "999.0.0", - "@aws-cdk/aws-cloudfront": "999.0.0", - "@aws-cdk/aws-cloudtrail": "999.0.0", - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-cloudwatch-actions": "999.0.0", - "@aws-cdk/aws-codebuild": "999.0.0", - "@aws-cdk/aws-codecommit": "999.0.0", - "@aws-cdk/aws-codedeploy": "999.0.0", - "@aws-cdk/aws-codepipeline": "999.0.0", - "@aws-cdk/aws-codepipeline-actions": "999.0.0", - "@aws-cdk/aws-codestar": "999.0.0", - "@aws-cdk/aws-codestarnotifications": "999.0.0", - "@aws-cdk/aws-cognito": "999.0.0", - "@aws-cdk/aws-config": "999.0.0", - "@aws-cdk/aws-datapipeline": "999.0.0", - "@aws-cdk/aws-dax": "999.0.0", - "@aws-cdk/aws-directoryservice": "999.0.0", - "@aws-cdk/aws-dlm": "999.0.0", - "@aws-cdk/aws-dms": "999.0.0", - "@aws-cdk/aws-docdb": "999.0.0", - "@aws-cdk/aws-dynamodb": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-ecr": "999.0.0", - "@aws-cdk/aws-ecr-assets": "999.0.0", - "@aws-cdk/aws-ecs": "999.0.0", - "@aws-cdk/aws-ecs-patterns": "999.0.0", - "@aws-cdk/aws-efs": "999.0.0", - "@aws-cdk/aws-eks": "999.0.0", - "@aws-cdk/aws-eks-legacy": "999.0.0", - "@aws-cdk/aws-elasticache": "999.0.0", - "@aws-cdk/aws-elasticbeanstalk": "999.0.0", - "@aws-cdk/aws-elasticloadbalancing": "999.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "999.0.0", - "@aws-cdk/aws-elasticloadbalancingv2-targets": "999.0.0", - "@aws-cdk/aws-elasticsearch": "999.0.0", - "@aws-cdk/aws-emr": "999.0.0", - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-events-targets": "999.0.0", - "@aws-cdk/aws-eventschemas": "999.0.0", - "@aws-cdk/aws-fms": "999.0.0", - "@aws-cdk/aws-fsx": "999.0.0", - "@aws-cdk/aws-gamelift": "999.0.0", - "@aws-cdk/aws-glue": "999.0.0", - "@aws-cdk/aws-greengrass": "999.0.0", - "@aws-cdk/aws-guardduty": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-inspector": "999.0.0", - "@aws-cdk/aws-iot": "999.0.0", - "@aws-cdk/aws-iot1click": "999.0.0", - "@aws-cdk/aws-iotanalytics": "999.0.0", - "@aws-cdk/aws-iotevents": "999.0.0", - "@aws-cdk/aws-iotthingsgraph": "999.0.0", - "@aws-cdk/aws-kinesis": "999.0.0", - "@aws-cdk/aws-kinesisanalytics": "999.0.0", - "@aws-cdk/aws-kinesisfirehose": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/aws-lakeformation": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-lambda-destinations": "999.0.0", - "@aws-cdk/aws-lambda-event-sources": "999.0.0", - "@aws-cdk/aws-lambda-nodejs": "999.0.0", - "@aws-cdk/aws-logs": "999.0.0", - "@aws-cdk/aws-logs-destinations": "999.0.0", - "@aws-cdk/aws-managedblockchain": "999.0.0", - "@aws-cdk/aws-mediaconvert": "999.0.0", - "@aws-cdk/aws-medialive": "999.0.0", - "@aws-cdk/aws-mediastore": "999.0.0", - "@aws-cdk/aws-msk": "999.0.0", - "@aws-cdk/aws-neptune": "999.0.0", - "@aws-cdk/aws-opsworks": "999.0.0", - "@aws-cdk/aws-opsworkscm": "999.0.0", - "@aws-cdk/aws-pinpoint": "999.0.0", - "@aws-cdk/aws-pinpointemail": "999.0.0", - "@aws-cdk/aws-qldb": "999.0.0", - "@aws-cdk/aws-ram": "999.0.0", - "@aws-cdk/aws-rds": "999.0.0", - "@aws-cdk/aws-redshift": "999.0.0", - "@aws-cdk/aws-robomaker": "999.0.0", - "@aws-cdk/aws-route53": "999.0.0", - "@aws-cdk/aws-route53-patterns": "999.0.0", - "@aws-cdk/aws-route53-targets": "999.0.0", - "@aws-cdk/aws-route53resolver": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/aws-s3-assets": "999.0.0", - "@aws-cdk/aws-s3-deployment": "999.0.0", - "@aws-cdk/aws-s3-notifications": "999.0.0", - "@aws-cdk/aws-sagemaker": "999.0.0", - "@aws-cdk/aws-sam": "999.0.0", - "@aws-cdk/aws-sdb": "999.0.0", - "@aws-cdk/aws-secretsmanager": "999.0.0", - "@aws-cdk/aws-securityhub": "999.0.0", - "@aws-cdk/aws-servicecatalog": "999.0.0", - "@aws-cdk/aws-servicediscovery": "999.0.0", - "@aws-cdk/aws-ses": "999.0.0", - "@aws-cdk/aws-ses-actions": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/aws-sns-subscriptions": "999.0.0", - "@aws-cdk/aws-sqs": "999.0.0", - "@aws-cdk/aws-ssm": "999.0.0", - "@aws-cdk/aws-stepfunctions": "999.0.0", - "@aws-cdk/aws-stepfunctions-tasks": "999.0.0", - "@aws-cdk/aws-transfer": "999.0.0", - "@aws-cdk/aws-waf": "999.0.0", - "@aws-cdk/aws-wafregional": "999.0.0", - "@aws-cdk/aws-wafv2": "999.0.0", - "@aws-cdk/aws-workspaces": "999.0.0", - "@aws-cdk/cdk-assets-schema": "999.0.0", - "@aws-cdk/cfnspec": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/custom-resources": "999.0.0", - "@aws-cdk/cx-api": "999.0.0", - "@aws-cdk/region-info": "999.0.0", + "@aws-cdk/alexa-ask": "0.0.0", + "@aws-cdk/app-delivery": "0.0.0", + "@aws-cdk/assets": "0.0.0", + "@aws-cdk/aws-accessanalyzer": "0.0.0", + "@aws-cdk/aws-acmpca": "0.0.0", + "@aws-cdk/aws-amazonmq": "0.0.0", + "@aws-cdk/aws-amplify": "0.0.0", + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-apigatewayv2": "0.0.0", + "@aws-cdk/aws-appconfig": "0.0.0", + "@aws-cdk/aws-applicationautoscaling": "0.0.0", + "@aws-cdk/aws-appmesh": "0.0.0", + "@aws-cdk/aws-appstream": "0.0.0", + "@aws-cdk/aws-appsync": "0.0.0", + "@aws-cdk/aws-athena": "0.0.0", + "@aws-cdk/aws-autoscaling": "0.0.0", + "@aws-cdk/aws-autoscaling-common": "0.0.0", + "@aws-cdk/aws-autoscaling-hooktargets": "0.0.0", + "@aws-cdk/aws-autoscalingplans": "0.0.0", + "@aws-cdk/aws-backup": "0.0.0", + "@aws-cdk/aws-batch": "0.0.0", + "@aws-cdk/aws-budgets": "0.0.0", + "@aws-cdk/aws-certificatemanager": "0.0.0", + "@aws-cdk/aws-cloud9": "0.0.0", + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-cloudfront": "0.0.0", + "@aws-cdk/aws-cloudtrail": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-cloudwatch-actions": "0.0.0", + "@aws-cdk/aws-codebuild": "0.0.0", + "@aws-cdk/aws-codecommit": "0.0.0", + "@aws-cdk/aws-codedeploy": "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", + "@aws-cdk/aws-codestarnotifications": "0.0.0", + "@aws-cdk/aws-cognito": "0.0.0", + "@aws-cdk/aws-config": "0.0.0", + "@aws-cdk/aws-datapipeline": "0.0.0", + "@aws-cdk/aws-dax": "0.0.0", + "@aws-cdk/aws-directoryservice": "0.0.0", + "@aws-cdk/aws-dlm": "0.0.0", + "@aws-cdk/aws-dms": "0.0.0", + "@aws-cdk/aws-docdb": "0.0.0", + "@aws-cdk/aws-dynamodb": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-ecr": "0.0.0", + "@aws-cdk/aws-ecr-assets": "0.0.0", + "@aws-cdk/aws-ecs": "0.0.0", + "@aws-cdk/aws-ecs-patterns": "0.0.0", + "@aws-cdk/aws-efs": "0.0.0", + "@aws-cdk/aws-eks": "0.0.0", + "@aws-cdk/aws-eks-legacy": "0.0.0", + "@aws-cdk/aws-elasticache": "0.0.0", + "@aws-cdk/aws-elasticbeanstalk": "0.0.0", + "@aws-cdk/aws-elasticloadbalancing": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2-targets": "0.0.0", + "@aws-cdk/aws-elasticsearch": "0.0.0", + "@aws-cdk/aws-emr": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-events-targets": "0.0.0", + "@aws-cdk/aws-eventschemas": "0.0.0", + "@aws-cdk/aws-fms": "0.0.0", + "@aws-cdk/aws-fsx": "0.0.0", + "@aws-cdk/aws-gamelift": "0.0.0", + "@aws-cdk/aws-glue": "0.0.0", + "@aws-cdk/aws-greengrass": "0.0.0", + "@aws-cdk/aws-guardduty": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-inspector": "0.0.0", + "@aws-cdk/aws-iot": "0.0.0", + "@aws-cdk/aws-iot1click": "0.0.0", + "@aws-cdk/aws-iotanalytics": "0.0.0", + "@aws-cdk/aws-iotevents": "0.0.0", + "@aws-cdk/aws-iotthingsgraph": "0.0.0", + "@aws-cdk/aws-kinesis": "0.0.0", + "@aws-cdk/aws-kinesisanalytics": "0.0.0", + "@aws-cdk/aws-kinesisfirehose": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-lakeformation": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-lambda-destinations": "0.0.0", + "@aws-cdk/aws-lambda-event-sources": "0.0.0", + "@aws-cdk/aws-lambda-nodejs": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/aws-logs-destinations": "0.0.0", + "@aws-cdk/aws-managedblockchain": "0.0.0", + "@aws-cdk/aws-mediaconvert": "0.0.0", + "@aws-cdk/aws-medialive": "0.0.0", + "@aws-cdk/aws-mediastore": "0.0.0", + "@aws-cdk/aws-msk": "0.0.0", + "@aws-cdk/aws-neptune": "0.0.0", + "@aws-cdk/aws-opsworks": "0.0.0", + "@aws-cdk/aws-opsworkscm": "0.0.0", + "@aws-cdk/aws-pinpoint": "0.0.0", + "@aws-cdk/aws-pinpointemail": "0.0.0", + "@aws-cdk/aws-qldb": "0.0.0", + "@aws-cdk/aws-ram": "0.0.0", + "@aws-cdk/aws-rds": "0.0.0", + "@aws-cdk/aws-redshift": "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", + "@aws-cdk/aws-route53-targets": "0.0.0", + "@aws-cdk/aws-route53resolver": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-s3-assets": "0.0.0", + "@aws-cdk/aws-s3-deployment": "0.0.0", + "@aws-cdk/aws-s3-notifications": "0.0.0", + "@aws-cdk/aws-sagemaker": "0.0.0", + "@aws-cdk/aws-sam": "0.0.0", + "@aws-cdk/aws-sdb": "0.0.0", + "@aws-cdk/aws-secretsmanager": "0.0.0", + "@aws-cdk/aws-securityhub": "0.0.0", + "@aws-cdk/aws-servicecatalog": "0.0.0", + "@aws-cdk/aws-servicediscovery": "0.0.0", + "@aws-cdk/aws-ses": "0.0.0", + "@aws-cdk/aws-ses-actions": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-sns-subscriptions": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/aws-ssm": "0.0.0", + "@aws-cdk/aws-stepfunctions": "0.0.0", + "@aws-cdk/aws-stepfunctions-tasks": "0.0.0", + "@aws-cdk/aws-transfer": "0.0.0", + "@aws-cdk/aws-waf": "0.0.0", + "@aws-cdk/aws-wafregional": "0.0.0", + "@aws-cdk/aws-wafv2": "0.0.0", + "@aws-cdk/aws-workspaces": "0.0.0", + "@aws-cdk/cdk-assets-schema": "0.0.0", + "@aws-cdk/cfnspec": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/custom-resources": "0.0.0", + "@aws-cdk/cx-api": "0.0.0", + "@aws-cdk/region-info": "0.0.0", "fs-extra": "^8.1.0", "jsii-reflect": "^1.0.0", "jsonschema": "^1.2.5", "yaml": "1.7.2", - "yargs": "^15.1.0" + "yargs": "^15.2.0" }, "devDependencies": { "@types/fs-extra": "^8.1.0", "@types/jest": "^25.1.2", "@types/yaml": "1.2.0", - "@types/yargs": "^15.0.3", + "@types/yargs": "^15.0.4", "jest": "^24.9.0", "jsii": "^0.22.0" }, @@ -185,4 +185,4 @@ "engines": { "node": ">= 8.10.0" } -} +} \ No newline at end of file diff --git a/packages/decdk/test/fixture/package.json b/packages/decdk/test/fixture/package.json index 4eb64a3b53f23..37ba6d2665de7 100644 --- a/packages/decdk/test/fixture/package.json +++ b/packages/decdk/test/fixture/package.json @@ -1,6 +1,6 @@ { "name": "fixture", - "version": "999.0.0", + "version": "0.0.0", "description": "test fixtures for deCDK", "main": "index.js", "types": "index.d.ts", @@ -16,4 +16,4 @@ "url": "https://aws.amazon.com" }, "license": "Apache-2.0" -} +} \ No newline at end of file diff --git a/packages/monocdk-experiment/package.json b/packages/monocdk-experiment/package.json index 4d3a28f402e76..905fc3009d753 100644 --- a/packages/monocdk-experiment/package.json +++ b/packages/monocdk-experiment/package.json @@ -1,6 +1,6 @@ { "name": "monocdk-experiment", - "version": "999.0.0", + "version": "0.0.0", "description": "An experiment to bundle the entire CDK into a single module", "main": "src/index.js", "types": "src/index.d.ts", @@ -23,145 +23,145 @@ }, "license": "Apache-2.0", "devDependencies": { - "@aws-cdk/alexa-ask": "999.0.0", - "@aws-cdk/app-delivery": "999.0.0", - "@aws-cdk/assets": "999.0.0", - "@aws-cdk/aws-accessanalyzer": "999.0.0", - "@aws-cdk/aws-acmpca": "999.0.0", - "@aws-cdk/aws-amazonmq": "999.0.0", - "@aws-cdk/aws-amplify": "999.0.0", - "@aws-cdk/aws-apigateway": "999.0.0", - "@aws-cdk/aws-apigatewayv2": "999.0.0", - "@aws-cdk/aws-appconfig": "999.0.0", - "@aws-cdk/aws-applicationautoscaling": "999.0.0", - "@aws-cdk/aws-appmesh": "999.0.0", - "@aws-cdk/aws-appstream": "999.0.0", - "@aws-cdk/aws-appsync": "999.0.0", - "@aws-cdk/aws-athena": "999.0.0", - "@aws-cdk/aws-autoscaling": "999.0.0", - "@aws-cdk/aws-autoscaling-common": "999.0.0", - "@aws-cdk/aws-autoscaling-hooktargets": "999.0.0", - "@aws-cdk/aws-autoscalingplans": "999.0.0", - "@aws-cdk/aws-backup": "999.0.0", - "@aws-cdk/aws-batch": "999.0.0", - "@aws-cdk/aws-budgets": "999.0.0", - "@aws-cdk/aws-certificatemanager": "999.0.0", - "@aws-cdk/aws-cloud9": "999.0.0", - "@aws-cdk/aws-cloudformation": "999.0.0", - "@aws-cdk/aws-cloudfront": "999.0.0", - "@aws-cdk/aws-cloudtrail": "999.0.0", - "@aws-cdk/aws-cloudwatch": "999.0.0", - "@aws-cdk/aws-cloudwatch-actions": "999.0.0", - "@aws-cdk/aws-codebuild": "999.0.0", - "@aws-cdk/aws-codecommit": "999.0.0", - "@aws-cdk/aws-codedeploy": "999.0.0", - "@aws-cdk/aws-codepipeline": "999.0.0", - "@aws-cdk/aws-codepipeline-actions": "999.0.0", - "@aws-cdk/aws-codestar": "999.0.0", - "@aws-cdk/aws-codestarnotifications": "999.0.0", - "@aws-cdk/aws-cognito": "999.0.0", - "@aws-cdk/aws-config": "999.0.0", - "@aws-cdk/aws-datapipeline": "999.0.0", - "@aws-cdk/aws-dax": "999.0.0", - "@aws-cdk/aws-directoryservice": "999.0.0", - "@aws-cdk/aws-dlm": "999.0.0", - "@aws-cdk/aws-dms": "999.0.0", - "@aws-cdk/aws-docdb": "999.0.0", - "@aws-cdk/aws-dynamodb": "999.0.0", - "@aws-cdk/aws-ec2": "999.0.0", - "@aws-cdk/aws-ecr": "999.0.0", - "@aws-cdk/aws-ecr-assets": "999.0.0", - "@aws-cdk/aws-ecs": "999.0.0", - "@aws-cdk/aws-ecs-patterns": "999.0.0", - "@aws-cdk/aws-efs": "999.0.0", - "@aws-cdk/aws-eks": "999.0.0", - "@aws-cdk/aws-eks-legacy": "999.0.0", - "@aws-cdk/aws-elasticache": "999.0.0", - "@aws-cdk/aws-elasticbeanstalk": "999.0.0", - "@aws-cdk/aws-elasticloadbalancing": "999.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "999.0.0", - "@aws-cdk/aws-elasticloadbalancingv2-targets": "999.0.0", - "@aws-cdk/aws-elasticsearch": "999.0.0", - "@aws-cdk/aws-emr": "999.0.0", - "@aws-cdk/aws-events": "999.0.0", - "@aws-cdk/aws-events-targets": "999.0.0", - "@aws-cdk/aws-eventschemas": "999.0.0", - "@aws-cdk/aws-fms": "999.0.0", - "@aws-cdk/aws-fsx": "999.0.0", - "@aws-cdk/aws-gamelift": "999.0.0", - "@aws-cdk/aws-glue": "999.0.0", - "@aws-cdk/aws-greengrass": "999.0.0", - "@aws-cdk/aws-guardduty": "999.0.0", - "@aws-cdk/aws-iam": "999.0.0", - "@aws-cdk/aws-inspector": "999.0.0", - "@aws-cdk/aws-iot": "999.0.0", - "@aws-cdk/aws-iot1click": "999.0.0", - "@aws-cdk/aws-iotanalytics": "999.0.0", - "@aws-cdk/aws-iotevents": "999.0.0", - "@aws-cdk/aws-iotthingsgraph": "999.0.0", - "@aws-cdk/aws-kinesis": "999.0.0", - "@aws-cdk/aws-kinesisanalytics": "999.0.0", - "@aws-cdk/aws-kinesisfirehose": "999.0.0", - "@aws-cdk/aws-kms": "999.0.0", - "@aws-cdk/aws-lakeformation": "999.0.0", - "@aws-cdk/aws-lambda": "999.0.0", - "@aws-cdk/aws-lambda-destinations": "999.0.0", - "@aws-cdk/aws-lambda-event-sources": "999.0.0", - "@aws-cdk/aws-lambda-nodejs": "999.0.0", - "@aws-cdk/aws-logs": "999.0.0", - "@aws-cdk/aws-logs-destinations": "999.0.0", - "@aws-cdk/aws-managedblockchain": "999.0.0", - "@aws-cdk/aws-mediaconvert": "999.0.0", - "@aws-cdk/aws-medialive": "999.0.0", - "@aws-cdk/aws-mediastore": "999.0.0", - "@aws-cdk/aws-msk": "999.0.0", - "@aws-cdk/aws-neptune": "999.0.0", - "@aws-cdk/aws-opsworks": "999.0.0", - "@aws-cdk/aws-opsworkscm": "999.0.0", - "@aws-cdk/aws-pinpoint": "999.0.0", - "@aws-cdk/aws-pinpointemail": "999.0.0", - "@aws-cdk/aws-qldb": "999.0.0", - "@aws-cdk/aws-ram": "999.0.0", - "@aws-cdk/aws-rds": "999.0.0", - "@aws-cdk/aws-redshift": "999.0.0", - "@aws-cdk/aws-robomaker": "999.0.0", - "@aws-cdk/aws-route53": "999.0.0", - "@aws-cdk/aws-route53-patterns": "999.0.0", - "@aws-cdk/aws-route53-targets": "999.0.0", - "@aws-cdk/aws-route53resolver": "999.0.0", - "@aws-cdk/aws-s3": "999.0.0", - "@aws-cdk/aws-s3-assets": "999.0.0", - "@aws-cdk/aws-s3-deployment": "999.0.0", - "@aws-cdk/aws-s3-notifications": "999.0.0", - "@aws-cdk/aws-sagemaker": "999.0.0", - "@aws-cdk/aws-sam": "999.0.0", - "@aws-cdk/aws-sdb": "999.0.0", - "@aws-cdk/aws-secretsmanager": "999.0.0", - "@aws-cdk/aws-securityhub": "999.0.0", - "@aws-cdk/aws-servicecatalog": "999.0.0", - "@aws-cdk/aws-servicediscovery": "999.0.0", - "@aws-cdk/aws-ses": "999.0.0", - "@aws-cdk/aws-ses-actions": "999.0.0", - "@aws-cdk/aws-sns": "999.0.0", - "@aws-cdk/aws-sns-subscriptions": "999.0.0", - "@aws-cdk/aws-sqs": "999.0.0", - "@aws-cdk/aws-ssm": "999.0.0", - "@aws-cdk/aws-stepfunctions": "999.0.0", - "@aws-cdk/aws-stepfunctions-tasks": "999.0.0", - "@aws-cdk/aws-transfer": "999.0.0", - "@aws-cdk/aws-waf": "999.0.0", - "@aws-cdk/aws-wafregional": "999.0.0", - "@aws-cdk/aws-wafv2": "999.0.0", - "@aws-cdk/aws-workspaces": "999.0.0", - "@aws-cdk/cdk-assets-schema": "999.0.0", - "@aws-cdk/core": "999.0.0", - "@aws-cdk/custom-resources": "999.0.0", - "@aws-cdk/cx-api": "999.0.0", - "@aws-cdk/region-info": "999.0.0", - "@types/node": "^10.17.15" + "@aws-cdk/alexa-ask": "0.0.0", + "@aws-cdk/app-delivery": "0.0.0", + "@aws-cdk/assets": "0.0.0", + "@aws-cdk/aws-accessanalyzer": "0.0.0", + "@aws-cdk/aws-acmpca": "0.0.0", + "@aws-cdk/aws-amazonmq": "0.0.0", + "@aws-cdk/aws-amplify": "0.0.0", + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-apigatewayv2": "0.0.0", + "@aws-cdk/aws-appconfig": "0.0.0", + "@aws-cdk/aws-applicationautoscaling": "0.0.0", + "@aws-cdk/aws-appmesh": "0.0.0", + "@aws-cdk/aws-appstream": "0.0.0", + "@aws-cdk/aws-appsync": "0.0.0", + "@aws-cdk/aws-athena": "0.0.0", + "@aws-cdk/aws-autoscaling": "0.0.0", + "@aws-cdk/aws-autoscaling-common": "0.0.0", + "@aws-cdk/aws-autoscaling-hooktargets": "0.0.0", + "@aws-cdk/aws-autoscalingplans": "0.0.0", + "@aws-cdk/aws-backup": "0.0.0", + "@aws-cdk/aws-batch": "0.0.0", + "@aws-cdk/aws-budgets": "0.0.0", + "@aws-cdk/aws-certificatemanager": "0.0.0", + "@aws-cdk/aws-cloud9": "0.0.0", + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-cloudfront": "0.0.0", + "@aws-cdk/aws-cloudtrail": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-cloudwatch-actions": "0.0.0", + "@aws-cdk/aws-codebuild": "0.0.0", + "@aws-cdk/aws-codecommit": "0.0.0", + "@aws-cdk/aws-codedeploy": "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", + "@aws-cdk/aws-codestarnotifications": "0.0.0", + "@aws-cdk/aws-cognito": "0.0.0", + "@aws-cdk/aws-config": "0.0.0", + "@aws-cdk/aws-datapipeline": "0.0.0", + "@aws-cdk/aws-dax": "0.0.0", + "@aws-cdk/aws-directoryservice": "0.0.0", + "@aws-cdk/aws-dlm": "0.0.0", + "@aws-cdk/aws-dms": "0.0.0", + "@aws-cdk/aws-docdb": "0.0.0", + "@aws-cdk/aws-dynamodb": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-ecr": "0.0.0", + "@aws-cdk/aws-ecr-assets": "0.0.0", + "@aws-cdk/aws-ecs": "0.0.0", + "@aws-cdk/aws-ecs-patterns": "0.0.0", + "@aws-cdk/aws-efs": "0.0.0", + "@aws-cdk/aws-eks": "0.0.0", + "@aws-cdk/aws-eks-legacy": "0.0.0", + "@aws-cdk/aws-elasticache": "0.0.0", + "@aws-cdk/aws-elasticbeanstalk": "0.0.0", + "@aws-cdk/aws-elasticloadbalancing": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2-targets": "0.0.0", + "@aws-cdk/aws-elasticsearch": "0.0.0", + "@aws-cdk/aws-emr": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-events-targets": "0.0.0", + "@aws-cdk/aws-eventschemas": "0.0.0", + "@aws-cdk/aws-fms": "0.0.0", + "@aws-cdk/aws-fsx": "0.0.0", + "@aws-cdk/aws-gamelift": "0.0.0", + "@aws-cdk/aws-glue": "0.0.0", + "@aws-cdk/aws-greengrass": "0.0.0", + "@aws-cdk/aws-guardduty": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-inspector": "0.0.0", + "@aws-cdk/aws-iot": "0.0.0", + "@aws-cdk/aws-iot1click": "0.0.0", + "@aws-cdk/aws-iotanalytics": "0.0.0", + "@aws-cdk/aws-iotevents": "0.0.0", + "@aws-cdk/aws-iotthingsgraph": "0.0.0", + "@aws-cdk/aws-kinesis": "0.0.0", + "@aws-cdk/aws-kinesisanalytics": "0.0.0", + "@aws-cdk/aws-kinesisfirehose": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-lakeformation": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-lambda-destinations": "0.0.0", + "@aws-cdk/aws-lambda-event-sources": "0.0.0", + "@aws-cdk/aws-lambda-nodejs": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/aws-logs-destinations": "0.0.0", + "@aws-cdk/aws-managedblockchain": "0.0.0", + "@aws-cdk/aws-mediaconvert": "0.0.0", + "@aws-cdk/aws-medialive": "0.0.0", + "@aws-cdk/aws-mediastore": "0.0.0", + "@aws-cdk/aws-msk": "0.0.0", + "@aws-cdk/aws-neptune": "0.0.0", + "@aws-cdk/aws-opsworks": "0.0.0", + "@aws-cdk/aws-opsworkscm": "0.0.0", + "@aws-cdk/aws-pinpoint": "0.0.0", + "@aws-cdk/aws-pinpointemail": "0.0.0", + "@aws-cdk/aws-qldb": "0.0.0", + "@aws-cdk/aws-ram": "0.0.0", + "@aws-cdk/aws-rds": "0.0.0", + "@aws-cdk/aws-redshift": "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", + "@aws-cdk/aws-route53-targets": "0.0.0", + "@aws-cdk/aws-route53resolver": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-s3-assets": "0.0.0", + "@aws-cdk/aws-s3-deployment": "0.0.0", + "@aws-cdk/aws-s3-notifications": "0.0.0", + "@aws-cdk/aws-sagemaker": "0.0.0", + "@aws-cdk/aws-sam": "0.0.0", + "@aws-cdk/aws-sdb": "0.0.0", + "@aws-cdk/aws-secretsmanager": "0.0.0", + "@aws-cdk/aws-securityhub": "0.0.0", + "@aws-cdk/aws-servicecatalog": "0.0.0", + "@aws-cdk/aws-servicediscovery": "0.0.0", + "@aws-cdk/aws-ses": "0.0.0", + "@aws-cdk/aws-ses-actions": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-sns-subscriptions": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/aws-ssm": "0.0.0", + "@aws-cdk/aws-stepfunctions": "0.0.0", + "@aws-cdk/aws-stepfunctions-tasks": "0.0.0", + "@aws-cdk/aws-transfer": "0.0.0", + "@aws-cdk/aws-waf": "0.0.0", + "@aws-cdk/aws-wafregional": "0.0.0", + "@aws-cdk/aws-wafv2": "0.0.0", + "@aws-cdk/aws-workspaces": "0.0.0", + "@aws-cdk/cdk-assets-schema": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@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" }, "homepage": "https://github.com/aws/aws-cdk", "engines": { "node": ">= 10.3.0" } -} +} \ No newline at end of file diff --git a/scripts/align-version.js b/scripts/align-version.js index 5a02cd24ba6eb..2b372e373dcee 100755 --- a/scripts/align-version.js +++ b/scripts/align-version.js @@ -4,29 +4,30 @@ // const fs = require('fs'); -const marker = '999.0.0'; -const repoVersion = require('../package.json').version; +const marker = require('./get-version-marker'); +const repoVersion = require('./get-version'); for (const file of process.argv.splice(2)) { const pkg = JSON.parse(fs.readFileSync(file).toString()); if (pkg.version !== marker) { - throw new Error(`unexpected - all package.json files in this repo should have a version of 999.0.0: ${file}`); + throw new Error(`unexpected - all package.json files in this repo should have a version of ${marker}: ${file}`); } pkg.version = repoVersion; - processSection(pkg.dependencies || { }); - processSection(pkg.devDependencies || { }); - processSection(pkg.peerDependencies || { }); + processSection(pkg.dependencies || { }, file); + processSection(pkg.devDependencies || { }, file); + processSection(pkg.peerDependencies || { }, file); + console.error(`${file} => ${repoVersion}`); fs.writeFileSync(file, JSON.stringify(pkg, undefined, 2)); } -function processSection(section) { +function processSection(section, file) { for (const [ name, version ] of Object.entries(section)) { - if (version.includes(marker)) { + if (version === marker || version === '^' + marker) { section[name] = version.replace(marker, repoVersion); } } -} \ No newline at end of file +} diff --git a/scripts/align-version.sh b/scripts/align-version.sh index 1d896841eee2c..e4a4cc6f6248a 100755 --- a/scripts/align-version.sh +++ b/scripts/align-version.sh @@ -9,11 +9,12 @@ scriptdir=$(cd $(dirname $0) && pwd) # go to repo root cd ${scriptdir}/.. -files="lerna.json $(find . -name package.json | grep -v node_modules | grep -v "^./package.json" | xargs)" +files="$(find . -name package.json | grep -v node_modules | xargs)" ${scriptdir}/align-version.js ${files} # validation -if find . -name package.json | grep -v node_modules | xargs grep "999.0.0"; then - echo "ERROR: unexpected version marker 999.0.0 in a package.json file" +marker=$(node -p "require('./scripts/get-version-marker')") +if find . -name package.json | grep -v node_modules | xargs grep "[^0-9]${marker}"; then + echo "ERROR: unexpected version marker ${marker} in a package.json file" exit 1 -fi \ No newline at end of file +fi diff --git a/scripts/get-version-marker.js b/scripts/get-version-marker.js new file mode 100644 index 0000000000000..e5f8c49806a67 --- /dev/null +++ b/scripts/get-version-marker.js @@ -0,0 +1,13 @@ +/** + * Returns the version marker used to indicate this is a local dependency. + * + * Usage: + * + * const version = require('./get-version-marker'); + * + * Or from the command line: + * + * node -p require('./get-version-marker') + * + */ +module.exports = '0.0.0'; diff --git a/scripts/get-version.js b/scripts/get-version.js new file mode 100644 index 0000000000000..9e6972582c427 --- /dev/null +++ b/scripts/get-version.js @@ -0,0 +1,18 @@ +/** + * Returns the current repo version. + * + * Usage: + * + * const version = require('./get-version'); + * + * Or from the command line: + * + * node -p require('./get-version') + * + */ +const versionFile = require('../.versionrc.json').packageFiles[0].filename; +if (!versionFile) { + throw new Error(`unable to determine version filename from .versionrc.json at the root of the repo`); +} + +module.exports = require(`../${versionFile}`).version; diff --git a/tools/awslint/package.json b/tools/awslint/package.json index a1d5e91317539..2763a93b69a91 100644 --- a/tools/awslint/package.json +++ b/tools/awslint/package.json @@ -1,7 +1,7 @@ { "name": "awslint", "private": true, - "version": "999.0.0", + "version": "0.0.0", "description": "Enforces the AWS Construct Library guidelines", "main": "index.js", "scripts": { @@ -21,13 +21,13 @@ "colors": "^1.4.0", "fs-extra": "^8.1.0", "jsii-reflect": "^1.0.0", - "yargs": "^15.1.0" + "yargs": "^15.2.0" }, "devDependencies": { "@types/fs-extra": "^8.1.0", - "@types/yargs": "^15.0.3", + "@types/yargs": "^15.0.4", "tslint": "^5.20.1", - "typescript": "~3.8.2" + "typescript": "~3.8.3" }, "repository": { "type": "git", @@ -47,4 +47,4 @@ "engines": { "node": ">= 10.3.0" } -} +} \ No newline at end of file diff --git a/tools/cdk-build-tools/package.json b/tools/cdk-build-tools/package.json index 99b1390b41798..5d5c6af7cd026 100644 --- a/tools/cdk-build-tools/package.json +++ b/tools/cdk-build-tools/package.json @@ -1,7 +1,7 @@ { "name": "cdk-build-tools", "private": true, - "version": "999.0.0", + "version": "0.0.0", "description": "Tools package with shared build scripts for CDK packages", "main": "lib/index.js", "repository": { @@ -33,13 +33,13 @@ "devDependencies": { "@types/fs-extra": "^8.1.0", "@types/jest": "^25.1.2", - "@types/yargs": "^15.0.3", - "pkglint": "999.0.0" + "@types/yargs": "^15.0.4", + "pkglint": "0.0.0" }, "dependencies": { - "@typescript-eslint/eslint-plugin": "^2.21.0", + "@typescript-eslint/eslint-plugin": "^2.22.0", "@typescript-eslint/parser": "^2.19.2", - "awslint": "999.0.0", + "awslint": "0.0.0", "colors": "^1.4.0", "eslint": "^6.8.0", "eslint-import-resolver-node": "^0.3.3", @@ -53,8 +53,8 @@ "nyc": "^15.0.0", "ts-jest": "^25.2.0", "tslint": "^5.20.1", - "typescript": "~3.8.2", - "yargs": "^15.1.0" + "typescript": "~3.8.3", + "yargs": "^15.2.0" }, "keywords": [ "aws", diff --git a/tools/cdk-integ-tools/package.json b/tools/cdk-integ-tools/package.json index dafffc74fdd64..717fb95215fc5 100644 --- a/tools/cdk-integ-tools/package.json +++ b/tools/cdk-integ-tools/package.json @@ -1,7 +1,7 @@ { "name": "cdk-integ-tools", "private": true, - "version": "999.0.0", + "version": "0.0.0", "description": "Package with integration test scripts for CDK packages", "main": "index.js", "repository": { @@ -30,16 +30,16 @@ "license": "Apache-2.0", "devDependencies": { "@types/fs-extra": "^8.1.0", - "@types/yargs": "^15.0.3", - "cdk-build-tools": "999.0.0", - "pkglint": "999.0.0" + "@types/yargs": "^15.0.4", + "cdk-build-tools": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { - "@aws-cdk/cloudformation-diff": "999.0.0", - "@aws-cdk/cx-api": "999.0.0", - "aws-cdk": "999.0.0", + "@aws-cdk/cloudformation-diff": "0.0.0", + "@aws-cdk/cx-api": "0.0.0", + "aws-cdk": "0.0.0", "fs-extra": "^8.1.0", - "yargs": "^15.1.0" + "yargs": "^15.2.0" }, "keywords": [ "aws", diff --git a/tools/cfn2ts/package.json b/tools/cfn2ts/package.json index 85fccc029c7f6..3b2c20a8863c7 100644 --- a/tools/cfn2ts/package.json +++ b/tools/cfn2ts/package.json @@ -1,7 +1,7 @@ { "name": "cfn2ts", "private": true, - "version": "999.0.0", + "version": "0.0.0", "description": "Generates typescript types from CloudFormation spec, with support for enrichments", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -29,19 +29,19 @@ }, "license": "Apache-2.0", "dependencies": { - "@aws-cdk/cfnspec": "999.0.0", + "@aws-cdk/cfnspec": "0.0.0", "codemaker": "^1.0.0", "fast-json-patch": "^3.0.0-1", "fs-extra": "^8.1.0", - "yargs": "^15.1.0" + "yargs": "^15.2.0" }, "devDependencies": { "@types/fs-extra": "^8.1.0", "@types/jest": "^25.1.2", - "@types/yargs": "^15.0.3", - "cdk-build-tools": "999.0.0", + "@types/yargs": "^15.0.4", + "cdk-build-tools": "0.0.0", "jest": "^24.9.0", - "pkglint": "999.0.0" + "pkglint": "0.0.0" }, "cdk-build": { "eslint": { diff --git a/tools/pkglint/lib/rules.ts b/tools/pkglint/lib/rules.ts index 5f7ccb5077fd6..83fc603002941 100644 --- a/tools/pkglint/lib/rules.ts +++ b/tools/pkglint/lib/rules.ts @@ -11,7 +11,6 @@ import { fileShouldNotContain, findInnerPackages, monoRepoRoot, - monoRepoVersion, } from './util'; // tslint:disable-next-line: no-var-requires @@ -234,12 +233,14 @@ export class StabilitySetting extends ValidationRule { case 'experimental': return _div( { label: 'Experimental', color: 'important' }, - '**This is a _developer preview_ (public beta) module. Releases might lack important features and might have', - 'future breaking changes.**', + '**This is a _developer preview_ (public beta) module.**', '', - 'This API is still under active development and subject to non-backward', - 'compatible changes or removal in any future version. Use of the API is not recommended in production', - 'environments. Experimental APIs are not subject to the Semantic Versioning model.', + '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.', ); case 'stable': return _div( @@ -664,7 +665,12 @@ export class MustDependonCdkByPointVersions extends ValidationRule { public readonly name = 'dependencies/cdk-point-dependencies'; public validate(pkg: PackageJson): void { - const expectedVersion = monoRepoVersion(); + // yes, ugly, but we have a bunch of references to other files in the repo. + // we use the root package.json to determine what should be the version + // across the repo: in local builds, this should be 0.0.0 and in CI builds + // this would be the actual version of the repo after it's been aligned + // using scripts/align-version.sh + const expectedVersion = require('../../../package.json').version; const ignore = [ '@aws-cdk/cloudformation-diff', '@aws-cdk/cfnspec', diff --git a/tools/pkglint/lib/util.ts b/tools/pkglint/lib/util.ts index d80c2e383a732..85f33afb2e7b0 100644 --- a/tools/pkglint/lib/util.ts +++ b/tools/pkglint/lib/util.ts @@ -137,15 +137,6 @@ export function deepSet(x: any, jsonPath: string[], value: any) { x[jsonPath[0]] = value; } -/** - * Find 'lerna.json' and read the global package version from there - */ -export function monoRepoVersion() { - const found = findLernaJSON(); - const lernaJson = require(found); - return lernaJson.version; -} - export function findUpward(dir: string, pred: (x: string) => boolean): string | undefined { while (true) { if (pred(dir)) { return dir; } @@ -167,10 +158,6 @@ export function monoRepoRoot() { return ret; } -function findLernaJSON() { - return path.join(monoRepoRoot(), 'lerna.json'); -} - export function* findInnerPackages(dir: string): IterableIterator { for (const fname of fs.readdirSync(dir, { encoding: 'utf8' })) { try { diff --git a/tools/pkglint/package.json b/tools/pkglint/package.json index 9ac95aa793a2b..52110d963a6da 100644 --- a/tools/pkglint/package.json +++ b/tools/pkglint/package.json @@ -1,6 +1,6 @@ { "name": "pkglint", - "version": "999.0.0", + "version": "0.0.0", "private": true, "description": "Validate and fix package.json files", "main": "lib/index.js", @@ -36,13 +36,13 @@ "devDependencies": { "@types/fs-extra": "^8.1.0", "@types/semver": "^7.1.0", - "@types/yargs": "^15.0.3" + "@types/yargs": "^15.0.4" }, "dependencies": { "case": "^1.6.2", "colors": "^1.4.0", "fs-extra": "^8.1.0", "semver": "^7.1.3", - "yargs": "^15.1.0" + "yargs": "^15.2.0" } -} +} \ No newline at end of file diff --git a/tools/pkgtools/package.json b/tools/pkgtools/package.json index 73c56a2ac8023..3e603f4c0c339 100644 --- a/tools/pkgtools/package.json +++ b/tools/pkgtools/package.json @@ -1,7 +1,7 @@ { "name": "pkgtools", "private": true, - "version": "999.0.0", + "version": "0.0.0", "description": "Tools for generating cross-package artifacts", "main": "index.js", "repository": { @@ -30,13 +30,13 @@ "license": "Apache-2.0", "devDependencies": { "@types/fs-extra": "^8.1.0", - "@types/yargs": "^15.0.3", - "cdk-build-tools": "999.0.0", - "pkglint": "999.0.0" + "@types/yargs": "^15.0.4", + "cdk-build-tools": "0.0.0", + "pkglint": "0.0.0" }, "dependencies": { "fs-extra": "^8.1.0", - "yargs": "^15.1.0" + "yargs": "^15.2.0" }, "keywords": [ "aws", diff --git a/tools/prlint/package.json b/tools/prlint/package.json index c4005e3dddbaa..30175eca33662 100644 --- a/tools/prlint/package.json +++ b/tools/prlint/package.json @@ -1,7 +1,7 @@ { "name": "prlint", "private": true, - "version": "999.0.0", + "version": "0.0.0", "description": "", "main": "index.js", "keywords": [], @@ -14,4 +14,4 @@ "github-api": "^3.3.0", "make-runnable": "^1.3.6" } -} +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 0281488853dee..4c80537e58616 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1891,10 +1891,10 @@ resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== -"@types/archiver@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/archiver/-/archiver-3.0.0.tgz#c0a53e0ed3b7aef626ce683d081d7821d8c638b4" - integrity sha512-orghAMOF+//wSg4ru2znk6jt0eIPvKTtMVLH7XcYcjbcRyAXRClDlh27QVdqnAvVM37yu9xDP6Nh7egRhNr8tQ== +"@types/archiver@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/archiver/-/archiver-3.1.0.tgz#0d5bd922ba5cf06e137cd6793db7942439b1805e" + integrity sha512-nTvHwgWONL+iXG+9CX+gnQ/tTOV+qucAjwpXqeUn4OCRMxP42T29FFP/7XaOo0EqqO3TlENhObeZEe7RUJAriw== dependencies: "@types/glob" "*" @@ -2058,10 +2058,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-13.1.8.tgz#1d590429fe8187a02707720ecf38a6fe46ce294b" integrity sha512-6XzyyNM9EKQW4HKuzbo/CkOIjn/evtCmsU+MUM1xDfJ+3/rNjBttM1NgN7AOQvN6tP1Sl1D1PIKMreTArnxM9A== -"@types/node@^10.17.13", "@types/node@^10.17.15": - version "10.17.16" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.16.tgz#ee96ddac1a38d98d2c8a71c7df0cdad5758e8993" - integrity sha512-A4283YSA1OmnIivcpy/4nN86YlnKRiQp8PYwI2KdPCONEBN093QTb0gCtERtkLyVNGKKIGazTZ2nAmVzQU51zA== +"@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/nodeunit@^0.0.30": version "0.0.30" @@ -2102,10 +2102,10 @@ dependencies: "@types/node" "*" -"@types/sinon@^7.5.0": - version "7.5.1" - resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-7.5.1.tgz#d27b81af0d1cfe1f9b24eebe7a24f74ae40f5b7c" - integrity sha512-EZQUP3hSZQyTQRfiLqelC9NMWd1kqLcmQE0dMiklxBkgi84T+cHOhnKpgk4NnOWpGX863yE6+IaGnOXUNFqDnQ== +"@types/sinon@^7.5.2": + version "7.5.2" + resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-7.5.2.tgz#5e2f1d120f07b9cda07e5dedd4f3bf8888fccdb9" + integrity sha512-T+m89VdXj/eidZyejvmoP9jivXgBDdkOSBVQjU9kF349NEx10QdPNGxHeZUaj1IlJ32/ewdyXJjnJxyxJroYwg== "@types/stack-utils@^1.0.1": version "1.0.1" @@ -2129,10 +2129,10 @@ resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-2.3.6.tgz#c880579e087d7a0db13777ff8af689f4ffc7b0d5" integrity sha512-wHNBMnkoEBiRAd3s8KTKwIuO9biFtTf0LehITzBhSco+HQI0xkXZbLOD55SW3Aqw3oUkHstkm5SPv58yaAdFPQ== -"@types/uuid@^3.4.7": - version "3.4.7" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-3.4.7.tgz#51d42247473bc00e38cc8dfaf70d936842a36c03" - integrity sha512-C2j2FWgQkF1ru12SjZJyMaTPxs/f6n90+5G5qNakBxKXjTBc/YTSelHh4Pz1HUDwxFXD9WvpQhOGCDC+/Y4mIQ== +"@types/uuid@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-7.0.0.tgz#9f6993ccc8210efa90bda7e1afabbb06a9f860cd" + integrity sha512-RiX1I0lK9WFLFqy2xOxke396f0wKIzk5sAll0tL4J4XDYJXURI7JOs96XQb3nP+2gEpQ/LutBb66jgiT5oQshQ== "@types/yaml@1.2.0", "@types/yaml@^1.2.0": version "1.2.0" @@ -2151,26 +2151,19 @@ dependencies: "@types/yargs-parser" "*" -"@types/yargs@^15.0.0": - version "15.0.2" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.2.tgz#0bf292a0369493cee030e2e4f4ff84f5982b028d" - integrity sha512-hFkuAp58M2xOc1QgJhkFrLMnqa8KWTFRTnzrI1zlEcOfg3DZ0eH3aPAo/N6QlVVu8E4KS4xD1jtEG3rdQYFmIg== - dependencies: - "@types/yargs-parser" "*" - -"@types/yargs@^15.0.3": - version "15.0.3" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.3.tgz#41453a0bc7ab393e995d1f5451455638edbd2baf" - integrity sha512-XCMQRK6kfpNBixHLyHUsGmXrpEmFFxzMrcnSXFMziHd8CoNJo8l16FkHyQq4x+xbM7E2XL83/O78OD8u+iZTdQ== +"@types/yargs@^15.0.0", "@types/yargs@^15.0.4": + version "15.0.4" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.4.tgz#7e5d0f8ca25e9d5849f2ea443cf7c402decd8299" + integrity sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg== dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^2.21.0": - version "2.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.21.0.tgz#a34de84a0791cae0357c4dda805c5b4e8203b6c6" - integrity sha512-b5jjjDMxzcjh/Sbjuo7WyhrQmVJg0WipTHQgXh5Xwx10uYm6nPWqN1WGOsaNq4HR3Zh4wUx4IRQdDkCHwyewyw== +"@typescript-eslint/eslint-plugin@^2.22.0": + version "2.22.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.22.0.tgz#218ce6d4aa0244c6a40baba39ca1e021b26bb017" + integrity sha512-BvxRLaTDVQ3N+Qq8BivLiE9akQLAOUfxNHIEhedOcg8B2+jY8Rc4/D+iVprvuMX1AdezFYautuGDwr9QxqSxBQ== dependencies: - "@typescript-eslint/experimental-utils" "2.21.0" + "@typescript-eslint/experimental-utils" "2.22.0" eslint-utils "^1.4.3" functional-red-black-tree "^1.0.1" regexpp "^3.0.0" @@ -2185,13 +2178,13 @@ "@typescript-eslint/typescript-estree" "2.20.0" eslint-scope "^5.0.0" -"@typescript-eslint/experimental-utils@2.21.0": - version "2.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.21.0.tgz#71de390a3ec00b280b69138d80733406e6e86bfa" - integrity sha512-olKw9JP/XUkav4lq0I7S1mhGgONJF9rHNhKFn9wJlpfRVjNo3PPjSvybxEldvCXnvD+WAshSzqH5cEjPp9CsBA== +"@typescript-eslint/experimental-utils@2.22.0": + version "2.22.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.22.0.tgz#4d00c91fbaaa68e56e7869be284999a265707f85" + integrity sha512-sJt1GYBe6yC0dWOQzXlp+tiuGglNhJC9eXZeC8GBVH98Zv9jtatccuhz0OF5kC/DwChqsNfghHx7OlIDQjNYAQ== dependencies: "@types/json-schema" "^7.0.3" - "@typescript-eslint/typescript-estree" "2.21.0" + "@typescript-eslint/typescript-estree" "2.22.0" eslint-scope "^5.0.0" "@typescript-eslint/parser@^2.19.2": @@ -2217,10 +2210,10 @@ semver "^6.3.0" tsutils "^3.17.1" -"@typescript-eslint/typescript-estree@2.21.0": - version "2.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.21.0.tgz#7e4be29f2e338195a2e8c818949ed0ff727cc943" - integrity sha512-NC/nogZNb9IK2MEFQqyDBAciOT8Lp8O3KgAfvHx2Skx6WBo+KmDqlU3R9KxHONaijfTIKtojRe3SZQyMjr3wBw== +"@typescript-eslint/typescript-estree@2.22.0": + version "2.22.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.22.0.tgz#a16ed45876abf743e1f5857e2f4a1c3199fd219e" + integrity sha512-2HFZW2FQc4MhIBB8WhDm9lVFaBDy6h9jGrJ4V2Uzxe/ON29HCHBTj3GkgcsgMWfsl2U5as+pTOr30Nibaw7qRQ== dependencies: debug "^4.1.1" eslint-visitor-keys "^1.1.0" @@ -2653,10 +2646,10 @@ aws-sdk-mock@^5.0.0: sinon "^8.0.1" traverse "^0.6.6" -aws-sdk@^2.596.0, aws-sdk@^2.625.0: - version "2.625.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.625.0.tgz#d6783f591c231f0100d60a6d79e54b23b1046662" - integrity sha512-8OoXw5SE/IliSo8q204amuLN46E2g1pGJQjVFTstoiETfaZvRxabL+DzIigJSV8QdybzzETGV3w50jvMfbsJ8A== +aws-sdk@^2.596.0, aws-sdk@^2.631.0: + version "2.631.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.631.0.tgz#31f5327ea9afb55f1e60ba594727fc16a04e8cf0" + integrity sha512-oGYe21pc8b1rxJFZMETZIhY4e/QBJv8Keq4RCef3D/GNXR+oxDQsEDk9KchbkW0WJDxiglj3LnZzPYUhISnBbw== dependencies: buffer "4.9.1" events "1.1.1" @@ -7944,7 +7937,7 @@ mkdirp-promise@^5.0.1: dependencies: mkdirp "*" -mkdirp@*, mkdirp@^1.0.0: +mkdirp@*: version "1.0.3" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.3.tgz#4cf2e30ad45959dddea53ad97d518b6c8205e1ea" integrity sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g== @@ -8103,15 +8096,14 @@ nise@^4.0.1: just-extend "^4.0.2" path-to-regexp "^1.7.0" -nock@^12.0.1: - version "12.0.1" - resolved "https://registry.yarnpkg.com/nock/-/nock-12.0.1.tgz#6d497d01f23cb52c733545c97e09e8318f6af801" - integrity sha512-f5u5k7O5D2YXH2WEFQVLLPa36D5C0dxU9Lrg6KOuaFCMDt7yd1W4S3hbZClCMczxc4EZ0k1bEhPeMWSewrxYNw== +nock@^12.0.2: + version "12.0.2" + resolved "https://registry.yarnpkg.com/nock/-/nock-12.0.2.tgz#47617b34738e026b29d2294b4579e35b27e6a4d3" + integrity sha512-pTckyfP8QHvwXP/oX+zQuSIL3S/mWTd84ba4pOGZlS/FgRZyljv4C3ZyOjgMilvkydSaERML/aJEF13EBUuDTQ== dependencies: debug "^4.1.0" json-stringify-safe "^5.0.1" lodash "^4.17.13" - mkdirp "^1.0.0" propagate "^2.0.0" node-addon-api@^1.7.1: @@ -11593,10 +11585,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^3.3.3, typescript@~3.8.2: - version "3.8.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.2.tgz#91d6868aaead7da74f493c553aeff76c0c0b1d5a" - integrity sha512-EgOVgL/4xfVrCMbhYKUQTdF37SQn4Iw73H5BgCrF1Abdun7Kwy/QZsE/ssAy0y4LxBbvua3PIbFsbRczWWnDdQ== +typescript@^3.3.3, typescript@^3.8.3, typescript@~3.8.3: + version "3.8.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061" + integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w== typescript@~3.7.5: version "3.7.5" @@ -11828,10 +11820,10 @@ uuid@^3.0.1, uuid@^3.3.2, uuid@^3.3.3: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.0.tgz#1833d4b9ce50b732bfaa271f9cb74e974d303c79" - integrity sha512-LNUrNsXdI/fUsypJbWM8Jt4DgQdFAZh41p9C7WE9Cn+CULOEkoG2lgQyH68v3wnIy5K3fN4jdSt270K6IFA3MQ== +uuid@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.1.tgz#95ed6ff3d8c881cbf85f0f05cc3915ef994818ef" + integrity sha512-yqjRXZzSJm9Dbl84H2VDHpM3zMjzSJQ+hn6C4zqd5ilW+7P4ZmLEEqwho9LjP+tGuZlF4xrHQXT0h9QZUS/pWA== v8-compile-cache@^2.0.0, v8-compile-cache@^2.0.3: version "2.1.0" @@ -12239,6 +12231,14 @@ yargs-parser@^16.1.0: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^17.1.0: + version "17.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-17.1.0.tgz#b95ff3201e98b89e86070f92bef636016a0b0766" + integrity sha512-67zLl4/kWtp9eyVuxX+fHZ2Ey4ySWh0awDJlk/EtT0vzspsXbzrFsh76WjYSP3L++zhSwHQRUE3MCBe754RuEg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + yargs-parser@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4" @@ -12297,10 +12297,10 @@ yargs@^14.0.0, yargs@^14.2.2: y18n "^4.0.0" yargs-parser "^15.0.0" -yargs@^15.0.2, yargs@^15.1.0: - version "15.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.1.0.tgz#e111381f5830e863a89550bd4b136bb6a5f37219" - integrity sha512-T39FNN1b6hCW4SOIk1XyTOWxtXdcen0t+XYrysQmChzSipvhBO8Bj0nK1ozAasdk24dNWuMZvr4k24nz+8HHLg== +yargs@^15.0.2, yargs@^15.1.0, yargs@^15.2.0: + version "15.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.2.0.tgz#cb9fc7f7ec429f7e9329b623f5c707a62dae506a" + integrity sha512-E+o8C37U+M7N15rBJVxr0MoInp+O7XNhMqveSGWA5uhddqs8qtkZ+uvT9FI32QML0SKidXdDONr40Xe3tDO9FA== dependencies: cliui "^6.0.0" decamelize "^1.2.0" @@ -12312,7 +12312,7 @@ yargs@^15.0.2, yargs@^15.1.0: string-width "^4.2.0" which-module "^2.0.0" y18n "^4.0.0" - yargs-parser "^16.1.0" + yargs-parser "^17.1.0" yargs@^4.7.1: version "4.8.1"