aws-cdk 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRIBUTING.md +276 -0
- package/LICENSE +202 -0
- package/NOTICE +16 -0
- package/README.md +1274 -0
- package/THIRD_PARTY_LICENSES +26821 -0
- package/bin/cdk +6 -0
- package/build-info.json +4 -0
- package/db.json.gz +0 -0
- package/generate.sh +25 -0
- package/images/garbage-collection.png +0 -0
- package/lib/api/aws-auth/account-cache.d.ts +39 -0
- package/lib/api/aws-auth/account-cache.js +102 -0
- package/lib/api/aws-auth/awscli-compatible.d.ts +42 -0
- package/lib/api/aws-auth/awscli-compatible.js +264 -0
- package/lib/api/aws-auth/cached.d.ts +11 -0
- package/lib/api/aws-auth/cached.js +26 -0
- package/lib/api/aws-auth/credential-plugins.d.ts +36 -0
- package/lib/api/aws-auth/credential-plugins.js +153 -0
- package/lib/api/aws-auth/index.d.ts +3 -0
- package/lib/api/aws-auth/index.js +20 -0
- package/lib/api/aws-auth/provider-caching.d.ts +13 -0
- package/lib/api/aws-auth/provider-caching.js +24 -0
- package/lib/api/aws-auth/sdk-logger.d.ts +69 -0
- package/lib/api/aws-auth/sdk-logger.js +130 -0
- package/lib/api/aws-auth/sdk-provider.d.ts +207 -0
- package/lib/api/aws-auth/sdk-provider.js +359 -0
- package/lib/api/aws-auth/sdk.d.ts +223 -0
- package/lib/api/aws-auth/sdk.js +366 -0
- package/lib/api/aws-auth/tracing.d.ts +11 -0
- package/lib/api/aws-auth/tracing.js +61 -0
- package/lib/api/aws-auth/user-agent.d.ts +7 -0
- package/lib/api/aws-auth/user-agent.js +21 -0
- package/lib/api/aws-auth/util.d.ts +6 -0
- package/lib/api/aws-auth/util.js +23 -0
- package/lib/api/bootstrap/bootstrap-environment.d.ts +33 -0
- package/lib/api/bootstrap/bootstrap-environment.js +322 -0
- package/lib/api/bootstrap/bootstrap-props.d.ts +130 -0
- package/lib/api/bootstrap/bootstrap-props.js +14 -0
- package/lib/api/bootstrap/bootstrap-template.yaml +692 -0
- package/lib/api/bootstrap/deploy-bootstrap.d.ts +37 -0
- package/lib/api/bootstrap/deploy-bootstrap.js +143 -0
- package/lib/api/bootstrap/index.d.ts +2 -0
- package/lib/api/bootstrap/index.js +19 -0
- package/lib/api/bootstrap/legacy-template.d.ts +2 -0
- package/lib/api/bootstrap/legacy-template.js +82 -0
- package/lib/api/context.d.ts +40 -0
- package/lib/api/context.js +82 -0
- package/lib/api/cxapp/cloud-assembly.d.ts +150 -0
- package/lib/api/cxapp/cloud-assembly.js +305 -0
- package/lib/api/cxapp/cloud-executable.d.ts +44 -0
- package/lib/api/cxapp/cloud-executable.js +90 -0
- package/lib/api/cxapp/environments.d.ts +9 -0
- package/lib/api/cxapp/environments.js +66 -0
- package/lib/api/cxapp/exec.d.ts +56 -0
- package/lib/api/cxapp/exec.js +275 -0
- package/lib/api/deployments/asset-manifest-builder.d.ts +8 -0
- package/lib/api/deployments/asset-manifest-builder.js +35 -0
- package/lib/api/deployments/asset-publishing.d.ts +77 -0
- package/lib/api/deployments/asset-publishing.js +163 -0
- package/lib/api/deployments/assets.d.ts +10 -0
- package/lib/api/deployments/assets.js +111 -0
- package/lib/api/deployments/checks.d.ts +8 -0
- package/lib/api/deployments/checks.js +73 -0
- package/lib/api/deployments/cloudformation.d.ts +235 -0
- package/lib/api/deployments/cloudformation.js +598 -0
- package/lib/api/deployments/deploy-stack.d.ts +177 -0
- package/lib/api/deployments/deploy-stack.js +484 -0
- package/lib/api/deployments/deployment-method.d.ts +24 -0
- package/lib/api/deployments/deployment-method.js +3 -0
- package/lib/api/deployments/deployment-result.d.ts +21 -0
- package/lib/api/deployments/deployment-result.js +10 -0
- package/lib/api/deployments/deployments.d.ts +340 -0
- package/lib/api/deployments/deployments.js +369 -0
- package/lib/api/deployments/hotswap-deployments.d.ts +14 -0
- package/lib/api/deployments/hotswap-deployments.js +357 -0
- package/lib/api/deployments/index.d.ts +6 -0
- package/lib/api/deployments/index.js +23 -0
- package/lib/api/deployments/nested-stack-helpers.d.ts +25 -0
- package/lib/api/deployments/nested-stack-helpers.js +88 -0
- package/lib/api/environment-access.d.ts +138 -0
- package/lib/api/environment-access.js +203 -0
- package/lib/api/environment-resources.d.ts +73 -0
- package/lib/api/environment-resources.js +208 -0
- package/lib/api/evaluate-cloudformation-template.d.ts +84 -0
- package/lib/api/evaluate-cloudformation-template.js +443 -0
- package/lib/api/garbage-collection/garbage-collector.d.ts +152 -0
- package/lib/api/garbage-collection/garbage-collector.js +607 -0
- package/lib/api/garbage-collection/progress-printer.d.ts +21 -0
- package/lib/api/garbage-collection/progress-printer.js +69 -0
- package/lib/api/garbage-collection/stack-refresh.d.ts +44 -0
- package/lib/api/garbage-collection/stack-refresh.js +154 -0
- package/lib/api/hotswap/appsync-mapping-templates.d.ts +3 -0
- package/lib/api/hotswap/appsync-mapping-templates.js +157 -0
- package/lib/api/hotswap/code-build-projects.d.ts +3 -0
- package/lib/api/hotswap/code-build-projects.js +55 -0
- package/lib/api/hotswap/common.d.ts +126 -0
- package/lib/api/hotswap/common.js +170 -0
- package/lib/api/hotswap/ecs-services.d.ts +3 -0
- package/lib/api/hotswap/ecs-services.js +140 -0
- package/lib/api/hotswap/lambda-functions.d.ts +3 -0
- package/lib/api/hotswap/lambda-functions.js +309 -0
- package/lib/api/hotswap/s3-bucket-deployments.d.ts +9 -0
- package/lib/api/hotswap/s3-bucket-deployments.js +112 -0
- package/lib/api/hotswap/stepfunctions-state-machines.d.ts +3 -0
- package/lib/api/hotswap/stepfunctions-state-machines.js +42 -0
- package/lib/api/index.d.ts +5 -0
- package/lib/api/index.js +22 -0
- package/lib/api/logs/find-cloudwatch-logs.d.ts +24 -0
- package/lib/api/logs/find-cloudwatch-logs.js +97 -0
- package/lib/api/logs/logs-monitor.d.ts +53 -0
- package/lib/api/logs/logs-monitor.js +169 -0
- package/lib/api/plugin/context-provider-plugin.d.ts +6 -0
- package/lib/api/plugin/context-provider-plugin.js +7 -0
- package/lib/api/plugin/index.d.ts +3 -0
- package/lib/api/plugin/index.js +20 -0
- package/lib/api/plugin/mode.d.ts +4 -0
- package/lib/api/plugin/mode.js +9 -0
- package/lib/api/plugin/plugin.d.ts +63 -0
- package/lib/api/plugin/plugin.js +106 -0
- package/lib/api/settings.d.ts +29 -0
- package/lib/api/settings.js +141 -0
- package/lib/api/tags.d.ts +9 -0
- package/lib/api/tags.js +10 -0
- package/lib/api/toolkit-info.d.ts +51 -0
- package/lib/api/toolkit-info.js +156 -0
- package/lib/api/util/cloudformation/stack-activity-monitor.d.ts +237 -0
- package/lib/api/util/cloudformation/stack-activity-monitor.js +550 -0
- package/lib/api/util/cloudformation/stack-event-poller.d.ts +63 -0
- package/lib/api/util/cloudformation/stack-event-poller.js +129 -0
- package/lib/api/util/cloudformation/stack-status.d.ts +42 -0
- package/lib/api/util/cloudformation/stack-status.js +88 -0
- package/lib/api/util/display.d.ts +13 -0
- package/lib/api/util/display.js +80 -0
- package/lib/api/util/placeholders.d.ts +10 -0
- package/lib/api/util/placeholders.js +24 -0
- package/lib/api/util/rwlock.d.ts +65 -0
- package/lib/api/util/rwlock.js +179 -0
- package/lib/api/util/string-manipulation.d.ts +10 -0
- package/lib/api/util/string-manipulation.js +33 -0
- package/lib/api/util/template-body-parameter.d.ts +21 -0
- package/lib/api/util/template-body-parameter.js +104 -0
- package/lib/cli/cdk-toolkit.d.ts +594 -0
- package/lib/cli/cdk-toolkit.js +1019 -0
- package/lib/cli/cli-config.d.ts +10 -0
- package/lib/cli/cli-config.js +406 -0
- package/lib/cli/cli.d.ts +4 -0
- package/lib/cli/cli.js +538 -0
- package/lib/cli/convert-to-user-input.d.ts +3 -0
- package/lib/cli/convert-to-user-input.js +434 -0
- package/lib/cli/parse-command-line-arguments.d.ts +1 -0
- package/lib/cli/parse-command-line-arguments.js +806 -0
- package/lib/cli/platform-warnings.d.ts +2 -0
- package/lib/cli/platform-warnings.js +45 -0
- package/lib/cli/user-configuration.d.ts +90 -0
- package/lib/cli/user-configuration.js +272 -0
- package/lib/cli/user-input.d.ts +1163 -0
- package/lib/cli/user-input.js +3 -0
- package/lib/cli/util/console-formatters.d.ts +18 -0
- package/lib/cli/util/console-formatters.js +42 -0
- package/lib/cli/util/npm.d.ts +1 -0
- package/lib/cli/util/npm.js +22 -0
- package/lib/cli/util/yargs-helpers.d.ts +22 -0
- package/lib/cli/util/yargs-helpers.js +49 -0
- package/lib/cli/version.d.ts +13 -0
- package/lib/cli/version.js +120 -0
- package/lib/commands/context.d.ts +35 -0
- package/lib/commands/context.js +156 -0
- package/lib/commands/docs.d.ts +13 -0
- package/lib/commands/docs.js +32 -0
- package/lib/commands/doctor.d.ts +1 -0
- package/lib/commands/doctor.js +69 -0
- package/lib/commands/migrate.d.ts +327 -0
- package/lib/commands/migrate.js +804 -0
- package/lib/context-providers/ami.d.ts +11 -0
- package/lib/context-providers/ami.js +50 -0
- package/lib/context-providers/availability-zones.d.ts +11 -0
- package/lib/context-providers/availability-zones.js +27 -0
- package/lib/context-providers/endpoint-service-availability-zones.d.ts +11 -0
- package/lib/context-providers/endpoint-service-availability-zones.js +33 -0
- package/lib/context-providers/hosted-zones.d.ts +10 -0
- package/lib/context-providers/hosted-zones.js +67 -0
- package/lib/context-providers/index.d.ts +30 -0
- package/lib/context-providers/index.js +109 -0
- package/lib/context-providers/keys.d.ts +11 -0
- package/lib/context-providers/keys.js +52 -0
- package/lib/context-providers/load-balancers.d.ts +20 -0
- package/lib/context-providers/load-balancers.js +159 -0
- package/lib/context-providers/security-groups.d.ts +9 -0
- package/lib/context-providers/security-groups.js +70 -0
- package/lib/context-providers/ssm-parameters.d.ts +23 -0
- package/lib/context-providers/ssm-parameters.js +59 -0
- package/lib/context-providers/vpcs.d.ts +11 -0
- package/lib/context-providers/vpcs.js +288 -0
- package/lib/diff.d.ts +28 -0
- package/lib/diff.js +165 -0
- package/lib/import.d.ts +182 -0
- package/lib/import.js +335 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +348304 -0
- package/lib/index_bg.wasm +0 -0
- package/lib/init-hooks.d.ts +40 -0
- package/lib/init-hooks.js +64 -0
- package/lib/init-templates/.init-version.json +1 -0
- package/lib/init-templates/.no-packagejson-validator +0 -0
- package/lib/init-templates/.recommended-feature-flags.json +68 -0
- package/lib/init-templates/LICENSE +16 -0
- package/lib/init-templates/app/csharp/.template.gitignore +342 -0
- package/lib/init-templates/app/csharp/README.md +14 -0
- package/lib/init-templates/app/csharp/cdk.template.json +15 -0
- package/lib/init-templates/app/csharp/src/%name.PascalCased%/%name.PascalCased%.template.csproj +20 -0
- package/lib/init-templates/app/csharp/src/%name.PascalCased%/%name.PascalCased%Stack.template.cs +13 -0
- package/lib/init-templates/app/csharp/src/%name.PascalCased%/GlobalSuppressions.cs +1 -0
- package/lib/init-templates/app/csharp/src/%name.PascalCased%/Program.template.cs +44 -0
- package/lib/init-templates/app/csharp/src/%name.PascalCased%.template.sln +18 -0
- package/lib/init-templates/app/fsharp/.template.gitignore +342 -0
- package/lib/init-templates/app/fsharp/README.md +18 -0
- package/lib/init-templates/app/fsharp/cdk.template.json +14 -0
- package/lib/init-templates/app/fsharp/src/%name.PascalCased%/%name.PascalCased%.template.fsproj +25 -0
- package/lib/init-templates/app/fsharp/src/%name.PascalCased%/%name.PascalCased%Stack.template.fs +8 -0
- package/lib/init-templates/app/fsharp/src/%name.PascalCased%/Program.template.fs +11 -0
- package/lib/init-templates/app/fsharp/src/%name.PascalCased%.template.sln +18 -0
- package/lib/init-templates/app/go/%name%.template.go +70 -0
- package/lib/init-templates/app/go/%name%_test.template.go +26 -0
- package/lib/init-templates/app/go/.template.gitignore +19 -0
- package/lib/init-templates/app/go/README.md +12 -0
- package/lib/init-templates/app/go/cdk.template.json +13 -0
- package/lib/init-templates/app/go/go.template.mod +9 -0
- package/lib/init-templates/app/info.json +4 -0
- package/lib/init-templates/app/java/.template.gitignore +13 -0
- package/lib/init-templates/app/java/README.md +18 -0
- package/lib/init-templates/app/java/cdk.json +13 -0
- package/lib/init-templates/app/java/pom.xml +60 -0
- package/lib/init-templates/app/java/src/main/java/com/myorg/%name.PascalCased%App.template.java +42 -0
- package/lib/init-templates/app/java/src/main/java/com/myorg/%name.PascalCased%Stack.template.java +24 -0
- package/lib/init-templates/app/java/src/test/java/com/myorg/%name.PascalCased%Test.template.java +26 -0
- package/lib/init-templates/app/javascript/.template.gitignore +5 -0
- package/lib/init-templates/app/javascript/.template.npmignore +3 -0
- package/lib/init-templates/app/javascript/README.md +12 -0
- package/lib/init-templates/app/javascript/bin/%name%.template.js +21 -0
- package/lib/init-templates/app/javascript/cdk.template.json +15 -0
- package/lib/init-templates/app/javascript/jest.config.js +3 -0
- package/lib/init-templates/app/javascript/lib/%name%-stack.template.js +23 -0
- package/lib/init-templates/app/javascript/package.json +20 -0
- package/lib/init-templates/app/javascript/test/%name%.test.template.js +17 -0
- package/lib/init-templates/app/python/%name.PythonModule%/%name.PythonModule%_stack.template.py +19 -0
- package/lib/init-templates/app/python/%name.PythonModule%/__init__.py +0 -0
- package/lib/init-templates/app/python/.template.gitignore +10 -0
- package/lib/init-templates/app/python/README.template.md +58 -0
- package/lib/init-templates/app/python/app.template.py +28 -0
- package/lib/init-templates/app/python/cdk.template.json +15 -0
- package/lib/init-templates/app/python/requirements-dev.txt +1 -0
- package/lib/init-templates/app/python/requirements.txt +2 -0
- package/lib/init-templates/app/python/source.bat +13 -0
- package/lib/init-templates/app/python/tests/__init__.py +0 -0
- package/lib/init-templates/app/python/tests/unit/__init__.py +0 -0
- package/lib/init-templates/app/python/tests/unit/test_%name.PythonModule%_stack.template.py +15 -0
- package/lib/init-templates/app/typescript/.template.gitignore +8 -0
- package/lib/init-templates/app/typescript/.template.npmignore +6 -0
- package/lib/init-templates/app/typescript/README.md +14 -0
- package/lib/init-templates/app/typescript/bin/%name%.template.ts +20 -0
- package/lib/init-templates/app/typescript/cdk.template.json +17 -0
- package/lib/init-templates/app/typescript/jest.config.js +8 -0
- package/lib/init-templates/app/typescript/lib/%name%-stack.template.ts +16 -0
- package/lib/init-templates/app/typescript/package.json +26 -0
- package/lib/init-templates/app/typescript/test/%name%.test.template.ts +17 -0
- package/lib/init-templates/app/typescript/tsconfig.json +31 -0
- package/lib/init-templates/lib/info.json +4 -0
- package/lib/init-templates/lib/typescript/.template.gitignore +8 -0
- package/lib/init-templates/lib/typescript/.template.npmignore +6 -0
- package/lib/init-templates/lib/typescript/README.template.md +12 -0
- package/lib/init-templates/lib/typescript/jest.config.js +8 -0
- package/lib/init-templates/lib/typescript/lib/index.template.ts +21 -0
- package/lib/init-templates/lib/typescript/package.json +24 -0
- package/lib/init-templates/lib/typescript/test/%name%.test.template.ts +18 -0
- package/lib/init-templates/lib/typescript/tsconfig.json +31 -0
- package/lib/init-templates/sample-app/csharp/.template.gitignore +342 -0
- package/lib/init-templates/sample-app/csharp/README.template.md +19 -0
- package/lib/init-templates/sample-app/csharp/cdk.template.json +15 -0
- package/lib/init-templates/sample-app/csharp/src/%name.PascalCased%/%name.PascalCased%.template.csproj +20 -0
- package/lib/init-templates/sample-app/csharp/src/%name.PascalCased%/%name.PascalCased%Stack.template.cs +24 -0
- package/lib/init-templates/sample-app/csharp/src/%name.PascalCased%/GlobalSuppressions.cs +1 -0
- package/lib/init-templates/sample-app/csharp/src/%name.PascalCased%/Program.template.cs +15 -0
- package/lib/init-templates/sample-app/csharp/src/%name.PascalCased%.template.sln +18 -0
- package/lib/init-templates/sample-app/fsharp/.template.gitignore +342 -0
- package/lib/init-templates/sample-app/fsharp/README.template.md +20 -0
- package/lib/init-templates/sample-app/fsharp/cdk.template.json +14 -0
- package/lib/init-templates/sample-app/fsharp/src/%name.PascalCased%/%name.PascalCased%.template.fsproj +25 -0
- package/lib/init-templates/sample-app/fsharp/src/%name.PascalCased%/%name.PascalCased%Stack.template.fs +14 -0
- package/lib/init-templates/sample-app/fsharp/src/%name.PascalCased%/Program.template.fs +11 -0
- package/lib/init-templates/sample-app/fsharp/src/%name.PascalCased%.template.sln +18 -0
- package/lib/init-templates/sample-app/go/%name%.template.go +73 -0
- package/lib/init-templates/sample-app/go/%name%_test.template.go +25 -0
- package/lib/init-templates/sample-app/go/.template.gitignore +19 -0
- package/lib/init-templates/sample-app/go/README.md +12 -0
- package/lib/init-templates/sample-app/go/cdk.template.json +13 -0
- package/lib/init-templates/sample-app/go/go.template.mod +9 -0
- package/lib/init-templates/sample-app/info.json +4 -0
- package/lib/init-templates/sample-app/java/.template.gitignore +13 -0
- package/lib/init-templates/sample-app/java/README.template.md +19 -0
- package/lib/init-templates/sample-app/java/cdk.json +13 -0
- package/lib/init-templates/sample-app/java/pom.xml +55 -0
- package/lib/init-templates/sample-app/java/src/main/java/com/myorg/%name.PascalCased%App.template.java +13 -0
- package/lib/init-templates/sample-app/java/src/main/java/com/myorg/%name.PascalCased%Stack.template.java +29 -0
- package/lib/init-templates/sample-app/java/src/test/java/com/myorg/%name.PascalCased%StackTest.template.java +27 -0
- package/lib/init-templates/sample-app/javascript/.template.gitignore +5 -0
- package/lib/init-templates/sample-app/javascript/.template.npmignore +3 -0
- package/lib/init-templates/sample-app/javascript/README.template.md +13 -0
- package/lib/init-templates/sample-app/javascript/bin/%name%.template.js +6 -0
- package/lib/init-templates/sample-app/javascript/cdk.template.json +15 -0
- package/lib/init-templates/sample-app/javascript/jest.config.js +3 -0
- package/lib/init-templates/sample-app/javascript/lib/%name%-stack.template.js +25 -0
- package/lib/init-templates/sample-app/javascript/package.json +20 -0
- package/lib/init-templates/sample-app/javascript/test/%name%.test.template.js +16 -0
- package/lib/init-templates/sample-app/javascript/tsconfig.json +34 -0
- package/lib/init-templates/sample-app/python/%name.PythonModule%/%name.PythonModule%_stack.template.py +26 -0
- package/lib/init-templates/sample-app/python/%name.PythonModule%/__init__.py +0 -0
- package/lib/init-templates/sample-app/python/.template.gitignore +22 -0
- package/lib/init-templates/sample-app/python/README.template.md +65 -0
- package/lib/init-templates/sample-app/python/app.template.py +11 -0
- package/lib/init-templates/sample-app/python/cdk.template.json +15 -0
- package/lib/init-templates/sample-app/python/requirements-dev.txt +1 -0
- package/lib/init-templates/sample-app/python/requirements.txt +2 -0
- package/lib/init-templates/sample-app/python/source.bat +13 -0
- package/lib/init-templates/sample-app/python/tests/__init__.py +0 -0
- package/lib/init-templates/sample-app/python/tests/unit/__init__.py +0 -0
- package/lib/init-templates/sample-app/python/tests/unit/test_%name.PythonModule%_stack.template.py +21 -0
- package/lib/init-templates/sample-app/typescript/.template.gitignore +8 -0
- package/lib/init-templates/sample-app/typescript/.template.npmignore +6 -0
- package/lib/init-templates/sample-app/typescript/README.template.md +15 -0
- package/lib/init-templates/sample-app/typescript/bin/%name%.template.ts +6 -0
- package/lib/init-templates/sample-app/typescript/cdk.template.json +17 -0
- package/lib/init-templates/sample-app/typescript/jest.config.js +8 -0
- package/lib/init-templates/sample-app/typescript/lib/%name%-stack.template.ts +19 -0
- package/lib/init-templates/sample-app/typescript/package.json +26 -0
- package/lib/init-templates/sample-app/typescript/test/%name%.test.template.ts +17 -0
- package/lib/init-templates/sample-app/typescript/tsconfig.json +31 -0
- package/lib/init.d.ts +52 -0
- package/lib/init.js +430 -0
- package/lib/legacy-exports-source.d.ts +27 -0
- package/lib/legacy-exports-source.js +88 -0
- package/lib/legacy-exports.d.ts +10 -0
- package/lib/legacy-exports.js +28 -0
- package/lib/legacy-logging-source.d.ts +32 -0
- package/lib/legacy-logging-source.js +107 -0
- package/lib/list-stacks.d.ts +22 -0
- package/lib/list-stacks.js +23 -0
- package/lib/logging.d.ts +109 -0
- package/lib/logging.js +159 -0
- package/lib/migrator.d.ts +25 -0
- package/lib/migrator.js +67 -0
- package/lib/notices.d.ts +156 -0
- package/lib/notices.js +373 -0
- package/lib/os.d.ts +7 -0
- package/lib/os.js +92 -0
- package/lib/serialize.d.ts +27 -0
- package/lib/serialize.js +86 -0
- package/lib/toolkit/cli-io-host.d.ts +208 -0
- package/lib/toolkit/cli-io-host.js +282 -0
- package/lib/toolkit/error.d.ts +44 -0
- package/lib/toolkit/error.js +78 -0
- package/lib/tree.d.ts +31 -0
- package/lib/tree.js +40 -0
- package/lib/util/archive.d.ts +1 -0
- package/lib/util/archive.js +86 -0
- package/lib/util/arrays.d.ts +14 -0
- package/lib/util/arrays.js +36 -0
- package/lib/util/bool.d.ts +7 -0
- package/lib/util/bool.js +13 -0
- package/lib/util/bytes.d.ts +8 -0
- package/lib/util/bytes.js +21 -0
- package/lib/util/content-hash.d.ts +5 -0
- package/lib/util/content-hash.js +43 -0
- package/lib/util/directories.d.ts +23 -0
- package/lib/util/directories.js +57 -0
- package/lib/util/error.d.ts +9 -0
- package/lib/util/error.js +22 -0
- package/lib/util/index.d.ts +5 -0
- package/lib/util/index.js +22 -0
- package/lib/util/objects.d.ts +52 -0
- package/lib/util/objects.js +183 -0
- package/lib/util/parallel.d.ts +6 -0
- package/lib/util/parallel.js +44 -0
- package/lib/util/tables.d.ts +1 -0
- package/lib/util/tables.js +10 -0
- package/lib/util/type-brands.d.ts +39 -0
- package/lib/util/type-brands.js +38 -0
- package/lib/util/types.d.ts +27 -0
- package/lib/util/types.js +25 -0
- package/lib/util/validate-notification-arn.d.ts +4 -0
- package/lib/util/validate-notification-arn.js +10 -0
- package/lib/util/version-range.d.ts +2 -0
- package/lib/util/version-range.js +36 -0
- package/lib/util/work-graph-builder.d.ts +32 -0
- package/lib/util/work-graph-builder.js +167 -0
- package/lib/util/work-graph-types.d.ts +50 -0
- package/lib/util/work-graph-types.js +14 -0
- package/lib/util/work-graph.d.ts +70 -0
- package/lib/util/work-graph.js +344 -0
- package/lib/util/yaml-cfn.d.ts +15 -0
- package/lib/util/yaml-cfn.js +56 -0
- package/package.json +197 -0
- package/scripts/user-input-gen +2 -0
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.contextHandler = contextHandler;
|
|
4
|
+
const chalk = require("chalk");
|
|
5
|
+
const minimatch_1 = require("minimatch");
|
|
6
|
+
const user_configuration_1 = require("../cli/user-configuration");
|
|
7
|
+
const version = require("../cli/version");
|
|
8
|
+
const logging_1 = require("../logging");
|
|
9
|
+
const error_1 = require("../toolkit/error");
|
|
10
|
+
const util_1 = require("../util");
|
|
11
|
+
async function contextHandler(options) {
|
|
12
|
+
var _a;
|
|
13
|
+
if (options.clear) {
|
|
14
|
+
options.context.clear();
|
|
15
|
+
await options.context.save(user_configuration_1.PROJECT_CONTEXT);
|
|
16
|
+
(0, logging_1.info)('All context values cleared.');
|
|
17
|
+
}
|
|
18
|
+
else if (options.reset) {
|
|
19
|
+
invalidateContext(options.context, options.reset, (_a = options.force) !== null && _a !== void 0 ? _a : false);
|
|
20
|
+
await options.context.save(user_configuration_1.PROJECT_CONTEXT);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
// List -- support '--json' flag
|
|
24
|
+
if (options.json) {
|
|
25
|
+
/* istanbul ignore next */
|
|
26
|
+
const contextValues = options.context.all;
|
|
27
|
+
(0, logging_1.result)(JSON.stringify(contextValues, undefined, 2));
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
listContext(options.context);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
await version.displayVersionMessage();
|
|
34
|
+
return 0;
|
|
35
|
+
}
|
|
36
|
+
function listContext(context) {
|
|
37
|
+
const keys = contextKeys(context);
|
|
38
|
+
if (keys.length === 0) {
|
|
39
|
+
(0, logging_1.info)('This CDK application does not have any saved context values yet.');
|
|
40
|
+
(0, logging_1.info)('');
|
|
41
|
+
(0, logging_1.info)('Context will automatically be saved when you synthesize CDK apps');
|
|
42
|
+
(0, logging_1.info)('that use environment context information like AZ information, VPCs,');
|
|
43
|
+
(0, logging_1.info)('SSM parameters, and so on.');
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
// Print config by default
|
|
47
|
+
const data_out = [[chalk.green('#'), chalk.green('Key'), chalk.green('Value')]];
|
|
48
|
+
for (const [i, key] of keys) {
|
|
49
|
+
const jsonWithoutNewlines = JSON.stringify(context.all[key], undefined, 2).replace(/\s+/g, ' ');
|
|
50
|
+
data_out.push([i, key, jsonWithoutNewlines]);
|
|
51
|
+
}
|
|
52
|
+
(0, logging_1.info)('Context found in %s:', chalk.blue(user_configuration_1.PROJECT_CONFIG));
|
|
53
|
+
(0, logging_1.info)('');
|
|
54
|
+
(0, logging_1.info)((0, util_1.renderTable)(data_out, process.stdout.columns));
|
|
55
|
+
// eslint-disable-next-line max-len
|
|
56
|
+
(0, logging_1.info)(`Run ${chalk.blue('cdk context --reset KEY_OR_NUMBER')} to remove a context key. It will be refreshed on the next CDK synthesis run.`);
|
|
57
|
+
}
|
|
58
|
+
function invalidateContext(context, key, force) {
|
|
59
|
+
const i = parseInt(key, 10);
|
|
60
|
+
if (`${i}` === key) {
|
|
61
|
+
// was a number and we fully parsed it.
|
|
62
|
+
key = keyByNumber(context, i);
|
|
63
|
+
}
|
|
64
|
+
// Unset!
|
|
65
|
+
if (context.has(key)) {
|
|
66
|
+
context.unset(key);
|
|
67
|
+
// check if the value was actually unset.
|
|
68
|
+
if (!context.has(key)) {
|
|
69
|
+
(0, logging_1.info)('Context value %s reset. It will be refreshed on next synthesis', chalk.blue(key));
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
// Value must be in readonly bag
|
|
73
|
+
(0, logging_1.error)('Only context values specified in %s can be reset through the CLI', chalk.blue(user_configuration_1.PROJECT_CONTEXT));
|
|
74
|
+
if (!force) {
|
|
75
|
+
throw new error_1.ToolkitError(`Cannot reset readonly context value with key: ${key}`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// check if value is expression matching keys
|
|
79
|
+
const matches = keysByExpression(context, key);
|
|
80
|
+
if (matches.length > 0) {
|
|
81
|
+
matches.forEach((match) => {
|
|
82
|
+
context.unset(match);
|
|
83
|
+
});
|
|
84
|
+
const { unset, readonly } = getUnsetAndReadonly(context, matches);
|
|
85
|
+
// output the reset values
|
|
86
|
+
printUnset(unset);
|
|
87
|
+
// warn about values not reset
|
|
88
|
+
printReadonly(readonly);
|
|
89
|
+
// throw when none of the matches were reset
|
|
90
|
+
if (!force && unset.length === 0) {
|
|
91
|
+
throw new error_1.ToolkitError('None of the matched context values could be reset');
|
|
92
|
+
}
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
if (!force) {
|
|
96
|
+
throw new error_1.ToolkitError(`No context value matching key: ${key}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
function printUnset(unset) {
|
|
100
|
+
if (unset.length === 0)
|
|
101
|
+
return;
|
|
102
|
+
(0, logging_1.info)('The following matched context values reset. They will be refreshed on next synthesis');
|
|
103
|
+
unset.forEach((match) => {
|
|
104
|
+
(0, logging_1.info)(' %s', match);
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
function printReadonly(readonly) {
|
|
108
|
+
if (readonly.length === 0)
|
|
109
|
+
return;
|
|
110
|
+
(0, logging_1.warning)('The following matched context values could not be reset through the CLI');
|
|
111
|
+
readonly.forEach((match) => {
|
|
112
|
+
(0, logging_1.info)(' %s', match);
|
|
113
|
+
});
|
|
114
|
+
(0, logging_1.info)('');
|
|
115
|
+
(0, logging_1.info)('This usually means they are configured in %s or %s', chalk.blue(user_configuration_1.PROJECT_CONFIG), chalk.blue(user_configuration_1.USER_DEFAULTS));
|
|
116
|
+
}
|
|
117
|
+
function keysByExpression(context, expression) {
|
|
118
|
+
return context.keys.filter(minimatch_1.minimatch.filter(expression));
|
|
119
|
+
}
|
|
120
|
+
function getUnsetAndReadonly(context, matches) {
|
|
121
|
+
return matches.reduce((acc, match) => {
|
|
122
|
+
if (context.has(match)) {
|
|
123
|
+
acc.readonly.push(match);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
acc.unset.push(match);
|
|
127
|
+
}
|
|
128
|
+
return acc;
|
|
129
|
+
}, { unset: [], readonly: [] });
|
|
130
|
+
}
|
|
131
|
+
function keyByNumber(context, n) {
|
|
132
|
+
for (const [i, key] of contextKeys(context)) {
|
|
133
|
+
if (n === i) {
|
|
134
|
+
return key;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
throw new error_1.ToolkitError(`No context key with number: ${n}`);
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Return enumerated keys in a definitive order
|
|
141
|
+
*/
|
|
142
|
+
function contextKeys(context) {
|
|
143
|
+
const keys = context.keys;
|
|
144
|
+
keys.sort();
|
|
145
|
+
return enumerate1(keys);
|
|
146
|
+
}
|
|
147
|
+
function enumerate1(xs) {
|
|
148
|
+
const ret = new Array();
|
|
149
|
+
let i = 1;
|
|
150
|
+
for (const x of xs) {
|
|
151
|
+
ret.push([i, x]);
|
|
152
|
+
i += 1;
|
|
153
|
+
}
|
|
154
|
+
return ret;
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUErQ0Esd0NBcUJDO0FBcEVELCtCQUErQjtBQUMvQix5Q0FBc0M7QUFFdEMsa0VBQTJGO0FBQzNGLDBDQUEwQztBQUMxQyx3Q0FBMEQ7QUFDMUQsNENBQWdEO0FBQ2hELGtDQUFzQztBQXdDL0IsS0FBSyxVQUFVLGNBQWMsQ0FBQyxPQUF1Qjs7SUFDMUQsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN4QixNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG9DQUFlLENBQUMsQ0FBQztRQUM1QyxJQUFBLGNBQUksRUFBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7U0FBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6QixpQkFBaUIsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBQSxPQUFPLENBQUMsS0FBSyxtQ0FBSSxLQUFLLENBQUMsQ0FBQztRQUMxRSxNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG9DQUFlLENBQUMsQ0FBQztJQUM5QyxDQUFDO1NBQU0sQ0FBQztRQUNOLGdDQUFnQztRQUNoQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQiwwQkFBMEI7WUFDMUIsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDMUMsSUFBQSxnQkFBTSxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RELENBQUM7YUFBTSxDQUFDO1lBQ04sV0FBVyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQixDQUFDO0lB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QVcsQ0FBQyxPQUFnQixFQUFFLENBQVM7SUFDOUMsS0FBSyxNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ1osT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO0lBQ0gsQ0FBQztJQUNELE1BQU0sSUFBSSxvQkFBWSxDQUFDLCtCQUErQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsV0FBVyxDQUFDLE9BQWdCO0lBQ25DLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDMUIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ1osT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDMUIsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFJLEVBQU87SUFDNUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxLQUFLLEVBQWUsQ0FBQztJQUNyQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDVixLQUFLLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ25CLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB7IG1pbmltYXRjaCB9IGZyb20gJ21pbmltYXRjaCc7XG5pbXBvcnQgeyBDb250ZXh0IH0gZnJvbSAnLi4vYXBpL2NvbnRleHQnO1xuaW1wb3J0IHsgUFJPSkVDVF9DT05GSUcsIFBST0pFQ1RfQ09OVEVYVCwgVVNFUl9ERUZBVUxUUyB9IGZyb20gJy4uL2NsaS91c2VyLWNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0ICogYXMgdmVyc2lvbiBmcm9tICcuLi9jbGkvdmVyc2lvbic7XG5pbXBvcnQgeyBlcnJvciwgd2FybmluZywgaW5mbywgcmVzdWx0IH0gZnJvbSAnLi4vbG9nZ2luZyc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi90b29sa2l0L2Vycm9yJztcbmltcG9ydCB7IHJlbmRlclRhYmxlIH0gZnJvbSAnLi4vdXRpbCc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGNvbnRleHQgY29tbWFuZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnRleHRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBjb250ZXh0IG9iamVjdCBzb3VyY2VkIGZyb20gYWxsIGNvbnRleHQgbG9jYXRpb25zXG4gICAqL1xuICBjb250ZXh0OiBDb250ZXh0O1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGV4dCBrZXkgKG9yIGl0cyBpbmRleCkgdG8gcmVzZXRcbiAgICpcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICByZXNldD86IHN0cmluZztcblxuICAvKipcbiAgICogSWdub3JlIG1pc3Npbmcga2V5IGVycm9yXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBmb3JjZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENsZWFyIGFsbCBjb250ZXh0XG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBjbGVhcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFVzZSBKU09OIG91dHB1dCBpbnN0ZWFkIG9mIFlBTUwgd2hlbiB0ZW1wbGF0ZXMgYXJlIHByaW50ZWQgdG8gU1RET1VUXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBqc29uPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvbnRleHRIYW5kbGVyKG9wdGlvbnM6IENvbnRleHRPcHRpb25zKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgaWYgKG9wdGlvbnMuY2xlYXIpIHtcbiAgICBvcHRpb25zLmNvbnRleHQuY2xlYXIoKTtcbiAgICBhd2FpdCBvcHRpb25zLmNvbnRleHQuc2F2ZShQUk9KRUNUX0NPTlRFWFQpO1xuICAgIGluZm8oJ0FsbCBjb250ZXh0IHZhbHVlcyBjbGVhcmVkLicpO1xuICB9IGVsc2UgaWYgKG9wdGlvbnMucmVzZXQpIHtcbiAgICBpbnZhbGlkYXRlQ29udGV4dChvcHRpb25zLmNvbnRleHQsIG9wdGlvbnMucmVzZXQsIG9wdGlvbnMuZm9yY2UgPz8gZmFsc2UpO1xuICAgIGF3YWl0IG9wdGlvbnMuY29udGV4dC5zYXZlKFBST0pFQ1RfQ09OVEVYVCk7XG4gIH0gZWxzZSB7XG4gICAgLy8gTGlzdCAtLSBzdXBwb3J0ICctLWpzb24nIGZsYWdcbiAgICBpZiAob3B0aW9ucy5qc29uKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgY29uc3QgY29udGV4dFZhbHVlcyA9IG9wdGlvbnMuY29udGV4dC5hbGw7XG4gICAgICByZXN1bHQoSlNPTi5zdHJpbmdpZnkoY29udGV4dFZhbHVlcywgdW5kZWZpbmVkLCAyKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxpc3RDb250ZXh0KG9wdGlvbnMuY29udGV4dCk7XG4gICAgfVxuICB9XG4gIGF3YWl0IHZlcnNpb24uZGlzcGxheVZlcnNpb25NZXNzYWdlKCk7XG5cbiAgcmV0dXJuIDA7XG59XG5cbmZ1bmN0aW9uIGxpc3RDb250ZXh0KGNvbnRleHQ6IENvbnRleHQpIHtcbiAgY29uc3Qga2V5cyA9IGNvbnRleHRLZXlzKGNvbnRleHQpO1xuXG4gIGlmIChrZXlzLmxlbmd0aCA9PT0gMCkge1xuICAgIGluZm8oJ1RoaXMgQ0RLIGFwcGxpY2F0aW9uIGRvZXMgbm90IGhhdmUgYW55IHNhdmVkIGNvbnRleHQgdmFsdWVzIHlldC4nKTtcbiAgICBpbmZvKCcnKTtcbiAgICBpbmZvKCdDb250ZXh0IHdpbGwgYXV0b21hdGljYWxseSBiZSBzYXZlZCB3aGVuIHlvdSBzeW50aGVzaXplIENESyBhcHBzJyk7XG4gICAgaW5mbygndGhhdCB1c2UgZW52aXJvbm1lbnQgY29udGV4dCBpbmZvcm1hdGlvbiBsaWtlIEFaIGluZm9ybWF0aW9uLCBWUENzLCcpO1xuICAgIGluZm8oJ1NTTSBwYXJhbWV0ZXJzLCBhbmQgc28gb24uJyk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBQcmludCBjb25maWcgYnkgZGVmYXVsdFxuICBjb25zdCBkYXRhX291dDogYW55W10gPSBbW2NoYWxrLmdyZWVuKCcjJyksIGNoYWxrLmdyZWVuKCdLZXknKSwgY2hhbGsuZ3JlZW4oJ1ZhbHVlJyldXTtcbiAgZm9yIChjb25zdCBbaSwga2V5XSBvZiBrZXlzKSB7XG4gICAgY29uc3QganNvbldpdGhvdXROZXdsaW5lcyA9IEpTT04uc3RyaW5naWZ5KGNvbnRleHQuYWxsW2tleV0sIHVuZGVmaW5lZCwgMikucmVwbGFjZSgvXFxzKy9nLCAnICcpO1xuICAgIGRhdGFfb3V0LnB1c2goW2ksIGtleSwganNvbldpdGhvdXROZXdsaW5lc10pO1xuICB9XG4gIGluZm8oJ0NvbnRleHQgZm91bmQgaW4gJXM6JywgY2hhbGsuYmx1ZShQUk9KRUNUX0NPTkZJRykpO1xuICBpbmZvKCcnKTtcbiAgaW5mbyhyZW5kZXJUYWJsZShkYXRhX291dCwgcHJvY2Vzcy5zdGRvdXQuY29sdW1ucykpO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gIGluZm8oYFJ1biAke2NoYWxrLmJsdWUoJ2NkayBjb250ZXh0IC0tcmVzZXQgS0VZX09SX05VTUJFUicpfSB0byByZW1vdmUgYSBjb250ZXh0IGtleS4gSXQgd2lsbCBiZSByZWZyZXNoZWQgb24gdGhlIG5leHQgQ0RLIHN5bnRoZXNpcyBydW4uYCk7XG59XG5cbmZ1bmN0aW9uIGludmFsaWRhdGVDb250ZXh0KGNvbnRleHQ6IENvbnRleHQsIGtleTogc3RyaW5nLCBmb3JjZTogYm9vbGVhbikge1xuICBjb25zdCBpID0gcGFyc2VJbnQoa2V5LCAxMCk7XG4gIGlmIChgJHtpfWAgPT09IGtleSkge1xuICAgIC8vIHdhcyBhIG51bWJlciBhbmQgd2UgZnVsbHkgcGFyc2VkIGl0LlxuICAgIGtleSA9IGtleUJ5TnVtYmVyKGNvbnRleHQsIGkpO1xuICB9XG4gIC8vIFVuc2V0IVxuICBpZiAoY29udGV4dC5oYXMoa2V5KSkge1xuICAgIGNvbnRleHQudW5zZXQoa2V5KTtcbiAgICAvLyBjaGVjayBpZiB0aGUgdmFsdWUgd2FzIGFjdHVhbGx5IHVuc2V0LlxuICAgIGlmICghY29udGV4dC5oYXMoa2V5KSkge1xuICAgICAgaW5mbygnQ29udGV4dCB2YWx1ZSAlcyByZXNldC4gSXQgd2lsbCBiZSByZWZyZXNoZWQgb24gbmV4dCBzeW50aGVzaXMnLCBjaGFsay5ibHVlKGtleSkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFZhbHVlIG11c3QgYmUgaW4gcmVhZG9ubHkgYmFnXG4gICAgZXJyb3IoJ09ubHkgY29udGV4dCB2YWx1ZXMgc3BlY2lmaWVkIGluICVzIGNhbiBiZSByZXNldCB0aHJvdWdoIHRoZSBDTEknLCBjaGFsay5ibHVlKFBST0pFQ1RfQ09OVEVYVCkpO1xuICAgIGlmICghZm9yY2UpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoYENhbm5vdCByZXNldCByZWFkb25seSBjb250ZXh0IHZhbHVlIHdpdGgga2V5OiAke2tleX1gKTtcbiAgICB9XG4gIH1cblxuICAvLyBjaGVjayBpZiB2YWx1ZSBpcyBleHByZXNzaW9uIG1hdGNoaW5nIGtleXNcbiAgY29uc3QgbWF0Y2hlcyA9IGtleXNCeUV4cHJlc3Npb24oY29udGV4dCwga2V5KTtcblxuICBpZiAobWF0Y2hlcy5sZW5ndGggPiAwKSB7XG5cbiAgICBtYXRjaGVzLmZvckVhY2goKG1hdGNoKSA9PiB7XG4gICAgICBjb250ZXh0LnVuc2V0KG1hdGNoKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHsgdW5zZXQsIHJlYWRvbmx5IH0gPSBnZXRVbnNldEFuZFJlYWRvbmx5KGNvbnRleHQsIG1hdGNoZXMpO1xuXG4gICAgLy8gb3V0cHV0IHRoZSByZXNldCB2YWx1ZXNcbiAgICBwcmludFVuc2V0KHVuc2V0KTtcblxuICAgIC8vIHdhcm4gYWJvdXQgdmFsdWVzIG5vdCByZXNldFxuICAgIHByaW50UmVhZG9ubHkocmVhZG9ubHkpO1xuXG4gICAgLy8gdGhyb3cgd2hlbiBub25lIG9mIHRoZSBtYXRjaGVzIHdlcmUgcmVzZXRcbiAgICBpZiAoIWZvcmNlICYmIHVuc2V0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignTm9uZSBvZiB0aGUgbWF0Y2hlZCBjb250ZXh0IHZhbHVlcyBjb3VsZCBiZSByZXNldCcpO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKCFmb3JjZSkge1xuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoYE5vIGNvbnRleHQgdmFsdWUgbWF0Y2hpbmcga2V5OiAke2tleX1gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwcmludFVuc2V0KHVuc2V0OiBzdHJpbmdbXSkge1xuICBpZiAodW5zZXQubGVuZ3RoID09PSAwKSByZXR1cm47XG4gIGluZm8oJ1RoZSBmb2xsb3dpbmcgbWF0Y2hlZCBjb250ZXh0IHZhbHVlcyByZXNldC4gVGhleSB3aWxsIGJlIHJlZnJlc2hlZCBvbiBuZXh0IHN5bnRoZXNpcycpO1xuICB1bnNldC5mb3JFYWNoKChtYXRjaCkgPT4ge1xuICAgIGluZm8oJyAgJXMnLCBtYXRjaCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBwcmludFJlYWRvbmx5KHJlYWRvbmx5OiBzdHJpbmdbXSkge1xuICBpZiAocmVhZG9ubHkubGVuZ3RoID09PSAwKSByZXR1cm47XG4gIHdhcm5pbmcoJ1RoZSBmb2xsb3dpbmcgbWF0Y2hlZCBjb250ZXh0IHZhbHVlcyBjb3VsZCBub3QgYmUgcmVzZXQgdGhyb3VnaCB0aGUgQ0xJJyk7XG4gIHJlYWRvbmx5LmZvckVhY2goKG1hdGNoKSA9PiB7XG4gICAgaW5mbygnICAlcycsIG1hdGNoKTtcbiAgfSk7XG4gIGluZm8oJycpO1xuICBpbmZvKCdUaGlzIHVzdWFsbHkgbWVhbnMgdGhleSBhcmUgY29uZmlndXJlZCBpbiAlcyBvciAlcycsIGNoYWxrLmJsdWUoUFJPSkVDVF9DT05GSUcpLCBjaGFsay5ibHVlKFVTRVJfREVGQVVMVFMpKTtcbn1cblxuZnVuY3Rpb24ga2V5c0J5RXhwcmVzc2lvbihjb250ZXh0OiBDb250ZXh0LCBleHByZXNzaW9uOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGNvbnRleHQua2V5cy5maWx0ZXIobWluaW1hdGNoLmZpbHRlcihleHByZXNzaW9uKSk7XG59XG5cbmZ1bmN0aW9uIGdldFVuc2V0QW5kUmVhZG9ubHkoY29udGV4dDogQ29udGV4dCwgbWF0Y2hlczogc3RyaW5nW10pIHtcbiAgcmV0dXJuIG1hdGNoZXMucmVkdWNlPHsgdW5zZXQ6IHN0cmluZ1tdOyByZWFkb25seTogc3RyaW5nW10gfT4oKGFjYywgbWF0Y2gpID0+IHtcbiAgICBpZiAoY29udGV4dC5oYXMobWF0Y2gpKSB7XG4gICAgICBhY2MucmVhZG9ubHkucHVzaChtYXRjaCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFjYy51bnNldC5wdXNoKG1hdGNoKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgeyB1bnNldDogW10sIHJlYWRvbmx5OiBbXSB9KTtcbn1cblxuZnVuY3Rpb24ga2V5QnlOdW1iZXIoY29udGV4dDogQ29udGV4dCwgbjogbnVtYmVyKSB7XG4gIGZvciAoY29uc3QgW2ksIGtleV0gb2YgY29udGV4dEtleXMoY29udGV4dCkpIHtcbiAgICBpZiAobiA9PT0gaSkge1xuICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG4gIH1cbiAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihgTm8gY29udGV4dCBrZXkgd2l0aCBudW1iZXI6ICR7bn1gKTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gZW51bWVyYXRlZCBrZXlzIGluIGEgZGVmaW5pdGl2ZSBvcmRlclxuICovXG5mdW5jdGlvbiBjb250ZXh0S2V5cyhjb250ZXh0OiBDb250ZXh0KTogW251bWJlciwgc3RyaW5nXVtdIHtcbiAgY29uc3Qga2V5cyA9IGNvbnRleHQua2V5cztcbiAga2V5cy5zb3J0KCk7XG4gIHJldHVybiBlbnVtZXJhdGUxKGtleXMpO1xufVxuXG5mdW5jdGlvbiBlbnVtZXJhdGUxPFQ+KHhzOiBUW10pOiBBcnJheTxbbnVtYmVyLCBUXT4ge1xuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8W251bWJlciwgVF0+KCk7XG4gIGxldCBpID0gMTtcbiAgZm9yIChjb25zdCB4IG9mIHhzKSB7XG4gICAgcmV0LnB1c2goW2ksIHhdKTtcbiAgICBpICs9IDE7XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const command = "docs";
|
|
2
|
+
export declare const describe = "Opens the reference documentation in a browser";
|
|
3
|
+
export declare const aliases: string[];
|
|
4
|
+
/**
|
|
5
|
+
* Options for the docs command
|
|
6
|
+
*/
|
|
7
|
+
export interface DocsOptions {
|
|
8
|
+
/**
|
|
9
|
+
* The command to use to open the browser
|
|
10
|
+
*/
|
|
11
|
+
browser: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function docs(options: DocsOptions): Promise<number>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.aliases = exports.describe = exports.command = void 0;
|
|
4
|
+
exports.docs = docs;
|
|
5
|
+
const childProcess = require("child_process");
|
|
6
|
+
const chalk = require("chalk");
|
|
7
|
+
const logging_1 = require("../../lib/logging");
|
|
8
|
+
exports.command = 'docs';
|
|
9
|
+
exports.describe = 'Opens the reference documentation in a browser';
|
|
10
|
+
exports.aliases = ['doc'];
|
|
11
|
+
async function docs(options) {
|
|
12
|
+
const url = 'https://docs.aws.amazon.com/cdk/api/v2/';
|
|
13
|
+
(0, logging_1.info)(chalk.green(url));
|
|
14
|
+
const browserCommand = (options.browser).replace(/%u/g, url);
|
|
15
|
+
(0, logging_1.debug)(`Opening documentation ${chalk.green(browserCommand)}`);
|
|
16
|
+
return new Promise((resolve, _reject) => {
|
|
17
|
+
childProcess.exec(browserCommand, (err, stdout, stderr) => {
|
|
18
|
+
if (err) {
|
|
19
|
+
(0, logging_1.debug)(`An error occurred when trying to open a browser: ${err.stack || err.message}`);
|
|
20
|
+
return resolve(0);
|
|
21
|
+
}
|
|
22
|
+
if (stdout) {
|
|
23
|
+
(0, logging_1.debug)(stdout);
|
|
24
|
+
}
|
|
25
|
+
if (stderr) {
|
|
26
|
+
(0, logging_1.warning)(stderr);
|
|
27
|
+
}
|
|
28
|
+
resolve(0);
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRvY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBa0JBLG9CQWdCQztBQWxDRCw4Q0FBOEM7QUFDOUMsK0JBQStCO0FBQy9CLCtDQUF5RDtBQUU1QyxRQUFBLE9BQU8sR0FBRyxNQUFNLENBQUM7QUFDakIsUUFBQSxRQUFRLEdBQUcsZ0RBQWdELENBQUM7QUFDNUQsUUFBQSxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQVl4QixLQUFLLFVBQVUsSUFBSSxDQUFDLE9BQW9CO0lBQzdDLE1BQU0sR0FBRyxHQUFHLHlDQUF5QyxDQUFDO0lBQ3RELElBQUEsY0FBSSxFQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN2QixNQUFNLGNBQWMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzdELElBQUEsZUFBSyxFQUFDLHlCQUF5QixLQUFLLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5RCxPQUFPLElBQUksT0FBTyxDQUFTLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQzlDLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN4RCxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNSLElBQUEsZUFBSyxFQUFDLG9EQUFvRCxHQUFHLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO2dCQUN0RixPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQixDQUFDO1lBQ0QsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFBQyxJQUFBLGVBQUssRUFBQyxNQUFNLENBQUMsQ0FBQztZQUFDLENBQUM7WUFDOUIsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFBQyxJQUFBLGlCQUFPLEVBQUMsTUFBTSxDQUFDLENBQUM7WUFBQyxDQUFDO1lBQ2hDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNiLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2hpbGRQcm9jZXNzIGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0ICogYXMgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHsgZGVidWcsIGluZm8sIHdhcm5pbmcgfSBmcm9tICcuLi8uLi9saWIvbG9nZ2luZyc7XG5cbmV4cG9ydCBjb25zdCBjb21tYW5kID0gJ2RvY3MnO1xuZXhwb3J0IGNvbnN0IGRlc2NyaWJlID0gJ09wZW5zIHRoZSByZWZlcmVuY2UgZG9jdW1lbnRhdGlvbiBpbiBhIGJyb3dzZXInO1xuZXhwb3J0IGNvbnN0IGFsaWFzZXMgPSBbJ2RvYyddO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBkb2NzIGNvbW1hbmRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2NzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgY29tbWFuZCB0byB1c2UgdG8gb3BlbiB0aGUgYnJvd3NlclxuICAgKi9cbiAgYnJvd3Nlcjogc3RyaW5nO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZG9jcyhvcHRpb25zOiBEb2NzT3B0aW9ucyk6IFByb21pc2U8bnVtYmVyPiB7XG4gIGNvbnN0IHVybCA9ICdodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2RrL2FwaS92Mi8nO1xuICBpbmZvKGNoYWxrLmdyZWVuKHVybCkpO1xuICBjb25zdCBicm93c2VyQ29tbWFuZCA9IChvcHRpb25zLmJyb3dzZXIpLnJlcGxhY2UoLyV1L2csIHVybCk7XG4gIGRlYnVnKGBPcGVuaW5nIGRvY3VtZW50YXRpb24gJHtjaGFsay5ncmVlbihicm93c2VyQ29tbWFuZCl9YCk7XG4gIHJldHVybiBuZXcgUHJvbWlzZTxudW1iZXI+KChyZXNvbHZlLCBfcmVqZWN0KSA9PiB7XG4gICAgY2hpbGRQcm9jZXNzLmV4ZWMoYnJvd3NlckNvbW1hbmQsIChlcnIsIHN0ZG91dCwgc3RkZXJyKSA9PiB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIGRlYnVnKGBBbiBlcnJvciBvY2N1cnJlZCB3aGVuIHRyeWluZyB0byBvcGVuIGEgYnJvd3NlcjogJHtlcnIuc3RhY2sgfHwgZXJyLm1lc3NhZ2V9YCk7XG4gICAgICAgIHJldHVybiByZXNvbHZlKDApO1xuICAgICAgfVxuICAgICAgaWYgKHN0ZG91dCkgeyBkZWJ1ZyhzdGRvdXQpOyB9XG4gICAgICBpZiAoc3RkZXJyKSB7IHdhcm5pbmcoc3RkZXJyKTsgfVxuICAgICAgcmVzb2x2ZSgwKTtcbiAgICB9KTtcbiAgfSk7XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function doctor(): Promise<number>;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.doctor = doctor;
|
|
4
|
+
const process = require("process");
|
|
5
|
+
const cxapi = require("@aws-cdk/cx-api");
|
|
6
|
+
const chalk = require("chalk");
|
|
7
|
+
const logging_1 = require("../../lib/logging");
|
|
8
|
+
const version = require("../cli/version");
|
|
9
|
+
async function doctor() {
|
|
10
|
+
let exitStatus = 0;
|
|
11
|
+
for (const verification of verifications) {
|
|
12
|
+
if (!await verification()) {
|
|
13
|
+
exitStatus = -1;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
await version.displayVersionMessage();
|
|
17
|
+
return exitStatus;
|
|
18
|
+
}
|
|
19
|
+
const verifications = [
|
|
20
|
+
displayVersionInformation,
|
|
21
|
+
displayAwsEnvironmentVariables,
|
|
22
|
+
displayCdkEnvironmentVariables,
|
|
23
|
+
];
|
|
24
|
+
// ### Verifications ###
|
|
25
|
+
function displayVersionInformation() {
|
|
26
|
+
(0, logging_1.info)(`ℹ️ CDK Version: ${chalk.green(version.DISPLAY_VERSION)}`);
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
function displayAwsEnvironmentVariables() {
|
|
30
|
+
const keys = Object.keys(process.env).filter(s => s.startsWith('AWS_'));
|
|
31
|
+
if (keys.length === 0) {
|
|
32
|
+
(0, logging_1.info)('ℹ️ No AWS environment variables');
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
(0, logging_1.info)('ℹ️ AWS environment variables:');
|
|
36
|
+
for (const key of keys) {
|
|
37
|
+
(0, logging_1.info)(` - ${chalk.blue(key)} = ${chalk.green(anonymizeAwsVariable(key, process.env[key]))}`);
|
|
38
|
+
}
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
function displayCdkEnvironmentVariables() {
|
|
42
|
+
const keys = Object.keys(process.env).filter(s => s.startsWith('CDK_'));
|
|
43
|
+
if (keys.length === 0) {
|
|
44
|
+
(0, logging_1.info)('ℹ️ No CDK environment variables');
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
(0, logging_1.info)('ℹ️ CDK environment variables:');
|
|
48
|
+
let healthy = true;
|
|
49
|
+
for (const key of keys.sort()) {
|
|
50
|
+
if (key === cxapi.CONTEXT_ENV || key === cxapi.CONTEXT_OVERFLOW_LOCATION_ENV || key === cxapi.OUTDIR_ENV) {
|
|
51
|
+
(0, logging_1.info)(` - ${chalk.red(key)} = ${chalk.green(process.env[key])} (⚠️ reserved for use by the CDK toolkit)`);
|
|
52
|
+
healthy = false;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
(0, logging_1.info)(` - ${chalk.blue(key)} = ${chalk.green(process.env[key])}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return healthy;
|
|
59
|
+
}
|
|
60
|
+
function anonymizeAwsVariable(name, value) {
|
|
61
|
+
if (name === 'AWS_ACCESS_KEY_ID') {
|
|
62
|
+
return value.slice(0, 4) + '<redacted>';
|
|
63
|
+
} // Show ASIA/AKIA key type, but hide identifier
|
|
64
|
+
if (name === 'AWS_SECRET_ACCESS_KEY' || name === 'AWS_SESSION_TOKEN' || name === 'AWS_SECURITY_TOKEN') {
|
|
65
|
+
return '<redacted>';
|
|
66
|
+
}
|
|
67
|
+
return value;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZG9jdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBTUEsd0JBU0M7QUFmRCxtQ0FBbUM7QUFDbkMseUNBQXlDO0FBQ3pDLCtCQUErQjtBQUMvQiwrQ0FBeUM7QUFDekMsMENBQTBDO0FBRW5DLEtBQUssVUFBVSxNQUFNO0lBQzFCLElBQUksVUFBVSxHQUFXLENBQUMsQ0FBQztJQUMzQixLQUFLLE1BQU0sWUFBWSxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLFlBQVksRUFBRSxFQUFFLENBQUM7WUFDMUIsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUN0QyxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDO0FBRUQsTUFBTSxhQUFhLEdBQTRDO0lBQzdELHlCQUF5QjtJQUN6Qiw4QkFBOEI7SUFDOUIsOEJBQThCO0NBQy9CLENBQUM7QUFFRix3QkFBd0I7QUFFeEIsU0FBUyx5QkFBeUI7SUFDaEMsSUFBQSxjQUFJLEVBQUMsbUJBQW1CLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoRSxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxTQUFTLDhCQUE4QjtJQUNyQyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDeEUsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3RCLElBQUEsY0FBSSxFQUFDLGlDQUFpQyxDQUFDLENBQUM7UUFDeEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsSUFBQSxjQUFJLEVBQUMsK0JBQStCLENBQUMsQ0FBQztJQUN0QyxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQUEsY0FBSSxFQUFDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELFNBQVMsOEJBQThCO0lBQ3JDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN4RSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdEIsSUFBQSxjQUFJLEVBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUN4QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFBLGNBQUksRUFBQywrQkFBK0IsQ0FBQyxDQUFDO0lBQ3RDLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQztJQUNuQixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQzlCLElBQUksR0FBRyxLQUFLLEtBQUssQ0FBQyxXQUFXLElBQUksR0FBRyxLQUFLLEtBQUssQ0FBQyw2QkFBNkIsSUFBSSxHQUFHLEtBQUssS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3pHLElBQUEsY0FBSSxFQUFDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFFLENBQUMsMkNBQTJDLENBQUMsQ0FBQztZQUMzRyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBQSxjQUFJLEVBQUMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyRSxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUFDLElBQVksRUFBRSxLQUFhO0lBQ3ZELElBQUksSUFBSSxLQUFLLG1CQUFtQixFQUFFLENBQUM7UUFBQyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQztJQUFDLENBQUMsQ0FBQywrQ0FBK0M7SUFDOUgsSUFBSSxJQUFJLEtBQUssdUJBQXVCLElBQUksSUFBSSxLQUFLLG1CQUFtQixJQUFJLElBQUksS0FBSyxvQkFBb0IsRUFBRSxDQUFDO1FBQUMsT0FBTyxZQUFZLENBQUM7SUFBQyxDQUFDO0lBQy9ILE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHByb2Nlc3MgZnJvbSAncHJvY2Vzcyc7XG5pbXBvcnQgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0ICogYXMgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHsgaW5mbyB9IGZyb20gJy4uLy4uL2xpYi9sb2dnaW5nJztcbmltcG9ydCAqIGFzIHZlcnNpb24gZnJvbSAnLi4vY2xpL3ZlcnNpb24nO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZG9jdG9yKCk6IFByb21pc2U8bnVtYmVyPiB7XG4gIGxldCBleGl0U3RhdHVzOiBudW1iZXIgPSAwO1xuICBmb3IgKGNvbnN0IHZlcmlmaWNhdGlvbiBvZiB2ZXJpZmljYXRpb25zKSB7XG4gICAgaWYgKCFhd2FpdCB2ZXJpZmljYXRpb24oKSkge1xuICAgICAgZXhpdFN0YXR1cyA9IC0xO1xuICAgIH1cbiAgfVxuICBhd2FpdCB2ZXJzaW9uLmRpc3BsYXlWZXJzaW9uTWVzc2FnZSgpO1xuICByZXR1cm4gZXhpdFN0YXR1cztcbn1cblxuY29uc3QgdmVyaWZpY2F0aW9uczogQXJyYXk8KCkgPT4gYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj4+ID0gW1xuICBkaXNwbGF5VmVyc2lvbkluZm9ybWF0aW9uLFxuICBkaXNwbGF5QXdzRW52aXJvbm1lbnRWYXJpYWJsZXMsXG4gIGRpc3BsYXlDZGtFbnZpcm9ubWVudFZhcmlhYmxlcyxcbl07XG5cbi8vICMjIyBWZXJpZmljYXRpb25zICMjI1xuXG5mdW5jdGlvbiBkaXNwbGF5VmVyc2lvbkluZm9ybWF0aW9uKCkge1xuICBpbmZvKGDihLnvuI8gQ0RLIFZlcnNpb246ICR7Y2hhbGsuZ3JlZW4odmVyc2lvbi5ESVNQTEFZX1ZFUlNJT04pfWApO1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gZGlzcGxheUF3c0Vudmlyb25tZW50VmFyaWFibGVzKCkge1xuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMocHJvY2Vzcy5lbnYpLmZpbHRlcihzID0+IHMuc3RhcnRzV2l0aCgnQVdTXycpKTtcbiAgaWYgKGtleXMubGVuZ3RoID09PSAwKSB7XG4gICAgaW5mbygn4oS577iPIE5vIEFXUyBlbnZpcm9ubWVudCB2YXJpYWJsZXMnKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpbmZvKCfihLnvuI8gQVdTIGVudmlyb25tZW50IHZhcmlhYmxlczonKTtcbiAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgIGluZm8oYCAgLSAke2NoYWxrLmJsdWUoa2V5KX0gPSAke2NoYWxrLmdyZWVuKGFub255bWl6ZUF3c1ZhcmlhYmxlKGtleSwgcHJvY2Vzcy5lbnZba2V5XSEpKX1gKTtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gZGlzcGxheUNka0Vudmlyb25tZW50VmFyaWFibGVzKCkge1xuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMocHJvY2Vzcy5lbnYpLmZpbHRlcihzID0+IHMuc3RhcnRzV2l0aCgnQ0RLXycpKTtcbiAgaWYgKGtleXMubGVuZ3RoID09PSAwKSB7XG4gICAgaW5mbygn4oS577iPIE5vIENESyBlbnZpcm9ubWVudCB2YXJpYWJsZXMnKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpbmZvKCfihLnvuI8gQ0RLIGVudmlyb25tZW50IHZhcmlhYmxlczonKTtcbiAgbGV0IGhlYWx0aHkgPSB0cnVlO1xuICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzLnNvcnQoKSkge1xuICAgIGlmIChrZXkgPT09IGN4YXBpLkNPTlRFWFRfRU5WIHx8IGtleSA9PT0gY3hhcGkuQ09OVEVYVF9PVkVSRkxPV19MT0NBVElPTl9FTlYgfHwga2V5ID09PSBjeGFwaS5PVVRESVJfRU5WKSB7XG4gICAgICBpbmZvKGAgIC0gJHtjaGFsay5yZWQoa2V5KX0gPSAke2NoYWxrLmdyZWVuKHByb2Nlc3MuZW52W2tleV0hKX0gKOKaoO+4jyByZXNlcnZlZCBmb3IgdXNlIGJ5IHRoZSBDREsgdG9vbGtpdClgKTtcbiAgICAgIGhlYWx0aHkgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaW5mbyhgICAtICR7Y2hhbGsuYmx1ZShrZXkpfSA9ICR7Y2hhbGsuZ3JlZW4ocHJvY2Vzcy5lbnZba2V5XSEpfWApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gaGVhbHRoeTtcbn1cblxuZnVuY3Rpb24gYW5vbnltaXplQXdzVmFyaWFibGUobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gIGlmIChuYW1lID09PSAnQVdTX0FDQ0VTU19LRVlfSUQnKSB7IHJldHVybiB2YWx1ZS5zbGljZSgwLCA0KSArICc8cmVkYWN0ZWQ+JzsgfSAvLyBTaG93IEFTSUEvQUtJQSBrZXkgdHlwZSwgYnV0IGhpZGUgaWRlbnRpZmllclxuICBpZiAobmFtZSA9PT0gJ0FXU19TRUNSRVRfQUNDRVNTX0tFWScgfHwgbmFtZSA9PT0gJ0FXU19TRVNTSU9OX1RPS0VOJyB8fCBuYW1lID09PSAnQVdTX1NFQ1VSSVRZX1RPS0VOJykgeyByZXR1cm4gJzxyZWRhY3RlZD4nOyB9XG4gIHJldHVybiB2YWx1ZTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
import { Environment } from '@aws-cdk/cx-api';
|
|
2
|
+
import type { DescribeGeneratedTemplateCommandOutput, DescribeResourceScanCommandOutput, GetGeneratedTemplateCommandOutput, ResourceDefinition, ResourceDetail, ResourceIdentifierSummary, ResourceScanSummary, ScannedResource, ScannedResourceIdentifier } from '@aws-sdk/client-cloudformation';
|
|
3
|
+
import type { ICloudFormationClient, SdkProvider } from '../api/aws-auth';
|
|
4
|
+
/**
|
|
5
|
+
* Generates a CDK app from a yaml or json template.
|
|
6
|
+
*
|
|
7
|
+
* @param stackName The name to assign to the stack in the generated app
|
|
8
|
+
* @param stack The yaml or json template for the stack
|
|
9
|
+
* @param language The language to generate the CDK app in
|
|
10
|
+
* @param outputPath The path at which to generate the CDK app
|
|
11
|
+
*/
|
|
12
|
+
export declare function generateCdkApp(stackName: string, stack: string, language: string, outputPath?: string, compress?: boolean): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Generates a CDK stack file.
|
|
15
|
+
* @param template The template to translate into a CDK stack
|
|
16
|
+
* @param stackName The name to assign to the stack
|
|
17
|
+
* @param language The language to generate the stack in
|
|
18
|
+
* @returns A string representation of a CDK stack file
|
|
19
|
+
*/
|
|
20
|
+
export declare function generateStack(template: string, stackName: string, language: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Reads and returns a stack template from a local path.
|
|
23
|
+
*
|
|
24
|
+
* @param inputPath The location of the template
|
|
25
|
+
* @returns A string representation of the template if present, otherwise undefined
|
|
26
|
+
*/
|
|
27
|
+
export declare function readFromPath(inputPath: string): string;
|
|
28
|
+
/**
|
|
29
|
+
* Reads and returns a stack template from a deployed CloudFormation stack.
|
|
30
|
+
*
|
|
31
|
+
* @param stackName The name of the stack
|
|
32
|
+
* @param sdkProvider The sdk provider for making CloudFormation calls
|
|
33
|
+
* @param environment The account and region where the stack is deployed
|
|
34
|
+
* @returns A string representation of the template if present, otherwise undefined
|
|
35
|
+
*/
|
|
36
|
+
export declare function readFromStack(stackName: string, sdkProvider: SdkProvider, environment: Environment): Promise<string | undefined>;
|
|
37
|
+
/**
|
|
38
|
+
* Takes in a stack name and account and region and returns a generated cloudformation template using the cloudformation
|
|
39
|
+
* template generator.
|
|
40
|
+
*
|
|
41
|
+
* @param GenerateTemplateOptions An object containing the stack name, filters, sdkProvider, environment, and newScan flag
|
|
42
|
+
* @returns a generated cloudformation template
|
|
43
|
+
*/
|
|
44
|
+
export declare function generateTemplate(options: GenerateTemplateOptions): Promise<GenerateTemplateOutput>;
|
|
45
|
+
/**
|
|
46
|
+
* Takes a list of any type and breaks it up into chunks of a specified size.
|
|
47
|
+
*
|
|
48
|
+
* @param list The list to break up
|
|
49
|
+
* @param chunkSize The size of each chunk
|
|
50
|
+
* @returns A list of lists of the specified size
|
|
51
|
+
*/
|
|
52
|
+
export declare function chunks(list: any[], chunkSize: number): any[][];
|
|
53
|
+
/**
|
|
54
|
+
* Sets the account and region for making CloudFormation calls.
|
|
55
|
+
* @param account The account to use
|
|
56
|
+
* @param region The region to use
|
|
57
|
+
* @returns The environment object
|
|
58
|
+
*/
|
|
59
|
+
export declare function setEnvironment(account?: string, region?: string): Environment;
|
|
60
|
+
/**
|
|
61
|
+
* Enum for the source options for the template
|
|
62
|
+
*/
|
|
63
|
+
export declare enum TemplateSourceOptions {
|
|
64
|
+
PATH = "path",
|
|
65
|
+
STACK = "stack",
|
|
66
|
+
SCAN = "scan"
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* An object representing the source of a template.
|
|
70
|
+
*/
|
|
71
|
+
type TemplateSource = {
|
|
72
|
+
source: TemplateSourceOptions.SCAN;
|
|
73
|
+
} | {
|
|
74
|
+
source: TemplateSourceOptions.PATH;
|
|
75
|
+
templatePath: string;
|
|
76
|
+
} | {
|
|
77
|
+
source: TemplateSourceOptions.STACK;
|
|
78
|
+
stackName: string;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Enum for the status of a resource scan
|
|
82
|
+
*/
|
|
83
|
+
export declare enum ScanStatus {
|
|
84
|
+
IN_PROGRESS = "IN_PROGRESS",
|
|
85
|
+
COMPLETE = "COMPLETE",
|
|
86
|
+
FAILED = "FAILED"
|
|
87
|
+
}
|
|
88
|
+
export declare enum FilterType {
|
|
89
|
+
RESOURCE_IDENTIFIER = "resource-identifier",
|
|
90
|
+
RESOURCE_TYPE_PREFIX = "resource-type-prefix",
|
|
91
|
+
TAG_KEY = "tag-key",
|
|
92
|
+
TAG_VALUE = "tag-value"
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Validates that exactly one source option has been provided.
|
|
96
|
+
* @param fromPath The content of the flag `--from-path`
|
|
97
|
+
* @param fromStack the content of the flag `--from-stack`
|
|
98
|
+
*/
|
|
99
|
+
export declare function parseSourceOptions(fromPath?: string, fromStack?: boolean, stackName?: string): TemplateSource;
|
|
100
|
+
/**
|
|
101
|
+
* Takes a scan id and maintains a progress bar to display the progress of a scan to the user.
|
|
102
|
+
*
|
|
103
|
+
* @param scanId A string representing the scan id
|
|
104
|
+
* @param cloudFormation The CloudFormation sdk client to use
|
|
105
|
+
*/
|
|
106
|
+
export declare function scanProgressBar(scanId: string, cfn: CfnTemplateGeneratorProvider): Promise<void>;
|
|
107
|
+
/**
|
|
108
|
+
* Prints a progress bar to the console. To be used in a while loop to show progress of a long running task.
|
|
109
|
+
* The progress bar deletes the current line on the console and rewrites it with the progress amount.
|
|
110
|
+
*
|
|
111
|
+
* @param width The width of the progress bar
|
|
112
|
+
* @param progress The current progress to display as a percentage of 100
|
|
113
|
+
*/
|
|
114
|
+
export declare function printBar(width: number, progress: number): void;
|
|
115
|
+
/**
|
|
116
|
+
* Prints a message to the console with a series periods appended to it. To be used in a while loop to show progress of a long running task.
|
|
117
|
+
* The message deletes the current line and rewrites it several times to display 1-3 periods to show the user that the task is still running.
|
|
118
|
+
*
|
|
119
|
+
* @param message The message to display
|
|
120
|
+
* @param timeoutx4 The amount of time to wait before printing the next period
|
|
121
|
+
*/
|
|
122
|
+
export declare function printDots(message: string, timeoutx4: number): Promise<void>;
|
|
123
|
+
/**
|
|
124
|
+
* Rewrites the current line on the console and writes a new message to it.
|
|
125
|
+
* This is a helper funciton for printDots and printBar.
|
|
126
|
+
*
|
|
127
|
+
* @param message The message to display
|
|
128
|
+
*/
|
|
129
|
+
export declare function rewriteLine(message: string): void;
|
|
130
|
+
/**
|
|
131
|
+
* Prints the time difference between two dates in days, hours, and minutes.
|
|
132
|
+
*
|
|
133
|
+
* @param time1 The first date to compare
|
|
134
|
+
* @param time2 The second date to compare
|
|
135
|
+
*/
|
|
136
|
+
export declare function displayTimeDiff(time1: Date, time2: Date): void;
|
|
137
|
+
/**
|
|
138
|
+
* Writes a migrate.json file to the output directory.
|
|
139
|
+
*
|
|
140
|
+
* @param outputPath The path to write the migrate.json file to
|
|
141
|
+
* @param stackName The name of the stack
|
|
142
|
+
* @param generatedOutput The output of the template generator
|
|
143
|
+
*/
|
|
144
|
+
export declare function writeMigrateJsonFile(outputPath: string | undefined, stackName: string, migrateJson: MigrateJsonFormat): void;
|
|
145
|
+
/**
|
|
146
|
+
* Takes a string representing the from-scan flag and returns a FromScan enum value.
|
|
147
|
+
*
|
|
148
|
+
* @param scanType A string representing the from-scan flag
|
|
149
|
+
* @returns A FromScan enum value
|
|
150
|
+
*/
|
|
151
|
+
export declare function getMigrateScanType(scanType: string): FromScan;
|
|
152
|
+
/**
|
|
153
|
+
* Takes a generatedTemplateOutput objct and returns a boolean representing whether there are any warnings on any rescources.
|
|
154
|
+
*
|
|
155
|
+
* @param generatedTemplateOutput A GenerateTemplateOutput object
|
|
156
|
+
* @returns A boolean representing whether there are any warnings on any rescources
|
|
157
|
+
*/
|
|
158
|
+
export declare function isThereAWarning(generatedTemplateOutput: GenerateTemplateOutput): boolean;
|
|
159
|
+
/**
|
|
160
|
+
* Builds the GenerateTemplateOutput object from the DescribeGeneratedTemplateOutput and the template body.
|
|
161
|
+
*
|
|
162
|
+
* @param generatedTemplateSummary The output of the describe generated template call
|
|
163
|
+
* @param templateBody The body of the generated template
|
|
164
|
+
* @returns A GenerateTemplateOutput object
|
|
165
|
+
*/
|
|
166
|
+
export declare function buildGenertedTemplateOutput(generatedTemplateSummary: DescribeGeneratedTemplateCommandOutput, templateBody: string, source: string): GenerateTemplateOutput;
|
|
167
|
+
/**
|
|
168
|
+
* Builds a CloudFormation sdk client for making requests with the CFN template generator.
|
|
169
|
+
*
|
|
170
|
+
* @param sdkProvider The sdk provider for making CloudFormation calls
|
|
171
|
+
* @param environment The account and region where the stack is deployed
|
|
172
|
+
* @returns A CloudFormation sdk client
|
|
173
|
+
*/
|
|
174
|
+
export declare function buildCfnClient(sdkProvider: SdkProvider, environment: Environment): Promise<ICloudFormationClient>;
|
|
175
|
+
/**
|
|
176
|
+
* Appends a list of warnings to a readme file.
|
|
177
|
+
*
|
|
178
|
+
* @param filepath The path to the readme file
|
|
179
|
+
* @param resources A list of resources to append warnings for
|
|
180
|
+
*/
|
|
181
|
+
export declare function appendWarningsToReadme(filepath: string, resources: ResourceDetail[]): void;
|
|
182
|
+
/**
|
|
183
|
+
* Class for making CloudFormation template generator calls
|
|
184
|
+
*/
|
|
185
|
+
export declare class CfnTemplateGeneratorProvider {
|
|
186
|
+
private cfn;
|
|
187
|
+
constructor(cfn: ICloudFormationClient);
|
|
188
|
+
checkForResourceScan(resourceScanSummaries: ResourceScanSummary[] | undefined, options: GenerateTemplateOptions, clientRequestToken: string): Promise<void>;
|
|
189
|
+
/**
|
|
190
|
+
* Retrieves a tokenized list of resources and their associated scan. If a token is present the function
|
|
191
|
+
* will loop through all pages and combine them into a single list of ScannedRelatedResources
|
|
192
|
+
*
|
|
193
|
+
* @param scanId scan id for the to list resources for
|
|
194
|
+
* @param resources A list of resources to find related resources for
|
|
195
|
+
*/
|
|
196
|
+
getResourceScanRelatedResources(scanId: string, resources: ScannedResource[]): Promise<ScannedResourceIdentifier[]>;
|
|
197
|
+
/**
|
|
198
|
+
* Kicks off a scan of a customers account, returning the scan id. A scan can take
|
|
199
|
+
* 10 minutes or longer to complete. However this will return a scan id as soon as
|
|
200
|
+
* the scan has begun.
|
|
201
|
+
*
|
|
202
|
+
* @returns A string representing the scan id
|
|
203
|
+
*/
|
|
204
|
+
startResourceScan(requestToken: string): Promise<string | undefined>;
|
|
205
|
+
/**
|
|
206
|
+
* Gets the most recent scans a customer has completed
|
|
207
|
+
*
|
|
208
|
+
* @returns a list of resource scan summaries
|
|
209
|
+
*/
|
|
210
|
+
listResourceScans(): Promise<import("@aws-sdk/client-cloudformation").ListResourceScansCommandOutput>;
|
|
211
|
+
/**
|
|
212
|
+
* Retrieves a tokenized list of resources from a resource scan. If a token is present, this function
|
|
213
|
+
* will loop through all pages and combine them into a single list of ScannedResource[].
|
|
214
|
+
* Additionally will apply any filters provided by the customer.
|
|
215
|
+
*
|
|
216
|
+
* @param scanId scan id for the to list resources for
|
|
217
|
+
* @param filters a string of filters in the format of key1=value1,key2=value2
|
|
218
|
+
* @returns a combined list of all resources from the scan
|
|
219
|
+
*/
|
|
220
|
+
listResourceScanResources(scanId: string, filters?: string[]): Promise<ScannedResourceIdentifier[]>;
|
|
221
|
+
/**
|
|
222
|
+
* Retrieves information about a resource scan.
|
|
223
|
+
*
|
|
224
|
+
* @param scanId scan id for the to list resources for
|
|
225
|
+
* @returns information about the scan
|
|
226
|
+
*/
|
|
227
|
+
describeResourceScan(scanId: string): Promise<DescribeResourceScanCommandOutput>;
|
|
228
|
+
/**
|
|
229
|
+
* Describes the current status of the template being generated.
|
|
230
|
+
*
|
|
231
|
+
* @param templateId A string representing the template id
|
|
232
|
+
* @returns DescribeGeneratedTemplateOutput an object containing the template status and results
|
|
233
|
+
*/
|
|
234
|
+
describeGeneratedTemplate(templateId: string): Promise<DescribeGeneratedTemplateCommandOutput>;
|
|
235
|
+
/**
|
|
236
|
+
* Retrieves a completed generated cloudformation template from the template generator.
|
|
237
|
+
*
|
|
238
|
+
* @param templateId A string representing the template id
|
|
239
|
+
* @param cloudFormation The CloudFormation sdk client to use
|
|
240
|
+
* @returns DescribeGeneratedTemplateOutput an object containing the template status and body
|
|
241
|
+
*/
|
|
242
|
+
getGeneratedTemplate(templateId: string): Promise<GetGeneratedTemplateCommandOutput>;
|
|
243
|
+
/**
|
|
244
|
+
* Kicks off a template generation for a set of resources.
|
|
245
|
+
*
|
|
246
|
+
* @param stackName The name of the stack
|
|
247
|
+
* @param resources A list of resources to generate the template from
|
|
248
|
+
* @returns CreateGeneratedTemplateOutput an object containing the template arn to query on later
|
|
249
|
+
*/
|
|
250
|
+
createGeneratedTemplate(stackName: string, resources: ResourceDefinition[]): Promise<import("@aws-sdk/client-cloudformation").CreateGeneratedTemplateCommandOutput>;
|
|
251
|
+
/**
|
|
252
|
+
* Deletes a generated template from the template generator.
|
|
253
|
+
*
|
|
254
|
+
* @param templateArn The arn of the template to delete
|
|
255
|
+
* @returns A promise that resolves when the template has been deleted
|
|
256
|
+
*/
|
|
257
|
+
deleteGeneratedTemplate(templateArn: string): Promise<void>;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* The possible ways to choose a scan to generate a CDK application from
|
|
261
|
+
*/
|
|
262
|
+
export declare enum FromScan {
|
|
263
|
+
/**
|
|
264
|
+
* Initiate a new resource scan to build the CDK application from.
|
|
265
|
+
*/
|
|
266
|
+
NEW = 0,
|
|
267
|
+
/**
|
|
268
|
+
* Use the last successful scan to build the CDK application from. Will fail if no scan is found.
|
|
269
|
+
*/
|
|
270
|
+
MOST_RECENT = 1,
|
|
271
|
+
/**
|
|
272
|
+
* Starts a scan if none exists, otherwise uses the most recent successful scan to build the CDK application from.
|
|
273
|
+
*/
|
|
274
|
+
DEFAULT = 2
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Interface for the options object passed to the generateTemplate function
|
|
278
|
+
*
|
|
279
|
+
* @param stackName The name of the stack
|
|
280
|
+
* @param filters A list of filters to apply to the scan
|
|
281
|
+
* @param fromScan An enum value specifying whether a new scan should be started or the most recent successful scan should be used
|
|
282
|
+
* @param sdkProvider The sdk provider for making CloudFormation calls
|
|
283
|
+
* @param environment The account and region where the stack is deployed
|
|
284
|
+
*/
|
|
285
|
+
export interface GenerateTemplateOptions {
|
|
286
|
+
stackName: string;
|
|
287
|
+
filters?: string[];
|
|
288
|
+
fromScan?: FromScan;
|
|
289
|
+
sdkProvider: SdkProvider;
|
|
290
|
+
environment: Environment;
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Interface for the output of the generateTemplate function
|
|
294
|
+
*
|
|
295
|
+
* @param migrateJson The generated Migrate.json file
|
|
296
|
+
* @param resources The generated template
|
|
297
|
+
*/
|
|
298
|
+
export interface GenerateTemplateOutput {
|
|
299
|
+
migrateJson: MigrateJsonFormat;
|
|
300
|
+
resources?: ResourceDetail[];
|
|
301
|
+
templateId?: string;
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Interface defining the format of the generated Migrate.json file
|
|
305
|
+
*
|
|
306
|
+
* @param TemplateBody The generated template
|
|
307
|
+
* @param Source The source of the template
|
|
308
|
+
* @param Resources A list of resources that were used to generate the template
|
|
309
|
+
*/
|
|
310
|
+
export interface MigrateJsonFormat {
|
|
311
|
+
templateBody: string;
|
|
312
|
+
source: string;
|
|
313
|
+
resources?: GeneratedResourceImportIdentifier[];
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Interface representing the format of a resource identifier required for resource import
|
|
317
|
+
*
|
|
318
|
+
* @param ResourceType The type of resource
|
|
319
|
+
* @param LogicalResourceId The logical id of the resource
|
|
320
|
+
* @param ResourceIdentifier The resource identifier of the resource
|
|
321
|
+
*/
|
|
322
|
+
export interface GeneratedResourceImportIdentifier {
|
|
323
|
+
ResourceType: string;
|
|
324
|
+
LogicalResourceId: string;
|
|
325
|
+
ResourceIdentifier: ResourceIdentifierSummary;
|
|
326
|
+
}
|
|
327
|
+
export {};
|