diff --git a/source/common/config/rush/pnpm-lock.yaml b/source/common/config/rush/pnpm-lock.yaml index 7a37dc8be..a9a21090f 100644 --- a/source/common/config/rush/pnpm-lock.yaml +++ b/source/common/config/rush/pnpm-lock.yaml @@ -26,46 +26,46 @@ importers: specifier: ~3.38.0 version: 3.38.0(@aws-sdk/signature-v4-crt@3.38.0) '@awssolutions/cdf-assetlibrary-client': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../libraries/clients/assetlibrary-client '@awssolutions/cdf-assetlibraryhistory-client': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../libraries/clients/assetlibraryhistory-client '@awssolutions/cdf-commandandcontrol-client': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../libraries/clients/commandandcontrol-client '@awssolutions/cdf-commands-client': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../libraries/clients/commands-client '@awssolutions/cdf-config-inject': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../libraries/config/config-inject '@awssolutions/cdf-device-patcher-client': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../libraries/clients/device-patcher-client '@awssolutions/cdf-errors': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../libraries/core/errors '@awssolutions/cdf-greengrass2-provisioning-client': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../libraries/clients/greengrass2-provisioning-client '@awssolutions/cdf-lambda-invoke': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../libraries/core/lambda-invoke '@awssolutions/cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../libraries/core/logger '@awssolutions/cdf-notifications-client': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../libraries/clients/notifications-client '@awssolutions/cdf-organizationmanager-client': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../libraries/clients/organizationmanager-client '@awssolutions/cdf-provisioning-client': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../libraries/clients/provisioning-client '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../libraries/core/simple-cdf-logger '@cucumber/cucumber': specifier: 7.3.2 @@ -204,13 +204,13 @@ importers: ../../packages/libraries/clients/assetlibrary-client: dependencies: '@awssolutions/cdf-client-request-signer': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/cdf-client-request-signer '@awssolutions/cdf-lambda-invoke': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/lambda-invoke '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/simple-cdf-logger aws-sdk: specifier: 2.1386.0 @@ -322,13 +322,13 @@ importers: ../../packages/libraries/clients/assetlibraryhistory-client: dependencies: '@awssolutions/cdf-client-request-signer': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/cdf-client-request-signer '@awssolutions/cdf-lambda-invoke': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/lambda-invoke '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/simple-cdf-logger aws-sdk: specifier: 2.1386.0 @@ -428,13 +428,13 @@ importers: ../../packages/libraries/clients/bulkcerts-client: dependencies: '@awssolutions/cdf-client-request-signer': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/cdf-client-request-signer '@awssolutions/cdf-lambda-invoke': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/lambda-invoke '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/simple-cdf-logger aws-sdk: specifier: 2.1386.0 @@ -537,19 +537,19 @@ importers: ../../packages/libraries/clients/commandandcontrol-client: dependencies: '@awssolutions/cdf-assetlibrary-client': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../assetlibrary-client '@awssolutions/cdf-client-request-signer': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/cdf-client-request-signer '@awssolutions/cdf-config-inject': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../config/config-inject '@awssolutions/cdf-lambda-invoke': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/lambda-invoke '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/simple-cdf-logger aws-sdk: specifier: 2.1386.0 @@ -652,7 +652,7 @@ importers: ../../packages/libraries/clients/commands-client: dependencies: '@awssolutions/cdf-lambda-invoke': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/lambda-invoke aws-sdk: specifier: 2.1386.0 @@ -749,13 +749,13 @@ importers: ../../packages/libraries/clients/device-patcher-client: dependencies: '@awssolutions/cdf-client-request-signer': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/cdf-client-request-signer '@awssolutions/cdf-lambda-invoke': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/lambda-invoke '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/simple-cdf-logger aws-sdk: specifier: 2.1386.0 @@ -861,16 +861,16 @@ importers: ../../packages/libraries/clients/greengrass2-provisioning-client: dependencies: '@awssolutions/cdf-assetlibrary-client': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../assetlibrary-client '@awssolutions/cdf-client-request-signer': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/cdf-client-request-signer '@awssolutions/cdf-lambda-invoke': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/lambda-invoke '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/simple-cdf-logger aws-sdk: specifier: 2.1386.0 @@ -973,13 +973,13 @@ importers: ../../packages/libraries/clients/notifications-client: dependencies: '@awssolutions/cdf-client-request-signer': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/cdf-client-request-signer '@awssolutions/cdf-lambda-invoke': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/lambda-invoke '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/simple-cdf-logger aws-sdk: specifier: 2.1386.0 @@ -1082,13 +1082,13 @@ importers: ../../packages/libraries/clients/organizationmanager-client: dependencies: '@awssolutions/cdf-client-request-signer': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/cdf-client-request-signer '@awssolutions/cdf-lambda-invoke': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/lambda-invoke '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/simple-cdf-logger aws-sdk: specifier: 2.1386.0 @@ -1194,13 +1194,13 @@ importers: ../../packages/libraries/clients/provisioning-client: dependencies: '@awssolutions/cdf-client-request-signer': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/cdf-client-request-signer '@awssolutions/cdf-lambda-invoke': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/lambda-invoke '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/simple-cdf-logger aws-sdk: specifier: 2.1386.0 @@ -1300,13 +1300,13 @@ importers: ../../packages/libraries/config/config-inject: dependencies: '@awssolutions/cdf-environment-sanitizer': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/environment-sanitizer '@awssolutions/cdf-errors': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/errors '@awssolutions/cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../core/logger dotenv: specifier: ^8.2.0 @@ -1447,25 +1447,25 @@ importers: ../../packages/libraries/core/deployment-helper: devDependencies: '@awssolutions/cdf-commandandcontrol-client': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../clients/commandandcontrol-client '@awssolutions/cdf-config-inject': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../config/config-inject '@awssolutions/cdf-lambda-invoke': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../lambda-invoke '@awssolutions/cdf-lambda-zip': specifier: workspace:~0.0.0 version: link:../lambda-zip '@awssolutions/cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../logger '@awssolutions/eslint-config-custom': specifier: workspace:~0.0.0 version: link:../../config/eslint-config-custom '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../simple-cdf-logger '@types/aws-lambda': specifier: 8.10.65 @@ -1672,13 +1672,13 @@ importers: specifier: ~3.37.0 version: 3.37.0 '@awssolutions/cdf-lambda-invoke': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../lambda-invoke '@awssolutions/cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../logger '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../simple-cdf-logger inversify: specifier: 6.0.1 @@ -1803,7 +1803,7 @@ importers: ../../packages/libraries/core/lambda-invoke: dependencies: '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../simple-cdf-logger aws-sdk: specifier: 2.1386.0 @@ -2056,16 +2056,16 @@ importers: specifier: ~3.37.0 version: 3.37.0 '@awssolutions/cdf-assetlibrary-client': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../clients/assetlibrary-client '@awssolutions/cdf-lambda-invoke': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../lambda-invoke '@awssolutions/cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../logger '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../simple-cdf-logger inversify: specifier: 6.0.1 @@ -2259,10 +2259,10 @@ importers: ../../packages/services/assetlibrary: devDependencies: '@awssolutions/cdf-config-inject': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/config/config-inject '@awssolutions/cdf-errors': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/errors '@awssolutions/cdf-express-middleware': specifier: workspace:~0.0.0 @@ -2271,13 +2271,13 @@ importers: specifier: workspace:~0.0.0 version: link:../../libraries/core/lambda-zip '@awssolutions/cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/logger '@awssolutions/eslint-config-custom': specifier: workspace:~0.0.0 version: link:../../libraries/config/eslint-config-custom '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/simple-cdf-logger '@types/body-parser': specifier: 1.19.2 @@ -2343,8 +2343,8 @@ importers: specifier: 1.7.0 version: 1.7.0 fast-json-patch: - specifier: 3.0.0-1 - version: 3.0.0-1 + specifier: 3.1.1 + version: 3.1.1 gremlin: specifier: 3.4.12 version: 3.4.12 @@ -2436,19 +2436,19 @@ importers: ../../packages/services/assetlibrary-export: devDependencies: '@awssolutions/cdf-config-inject': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/config/config-inject '@awssolutions/cdf-lambda-zip': specifier: workspace:~0.0.0 version: link:../../libraries/core/lambda-zip '@awssolutions/cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/logger '@awssolutions/eslint-config-custom': specifier: workspace:~0.0.0 version: link:../../libraries/config/eslint-config-custom '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/simple-cdf-logger '@types/body-parser': specifier: 1.19.2 @@ -2601,10 +2601,10 @@ importers: ../../packages/services/assetlibraryhistory: devDependencies: '@awssolutions/cdf-config-inject': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/config/config-inject '@awssolutions/cdf-errors': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/errors '@awssolutions/cdf-express-middleware': specifier: workspace:~0.0.0 @@ -2613,13 +2613,13 @@ importers: specifier: workspace:~0.0.0 version: link:../../libraries/core/lambda-zip '@awssolutions/cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/logger '@awssolutions/eslint-config-custom': specifier: workspace:~0.0.0 version: link:../../libraries/config/eslint-config-custom '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/simple-cdf-logger '@types/atob': specifier: 2.1.2 @@ -2751,10 +2751,10 @@ importers: ../../packages/services/auth-devicecert: dependencies: '@awssolutions/cdf-config-inject': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/config/config-inject '@awssolutions/cdf-errors': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/errors aws-sdk: specifier: 2.1386.0 @@ -2839,10 +2839,10 @@ importers: ../../packages/services/auth-jwt: dependencies: '@awssolutions/cdf-config-inject': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/config/config-inject '@awssolutions/cdf-errors': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/errors axios: specifier: 0.21.2 @@ -2942,10 +2942,10 @@ importers: ../../packages/services/bulkcerts: devDependencies: '@awssolutions/cdf-config-inject': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/config/config-inject '@awssolutions/cdf-errors': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/errors '@awssolutions/cdf-express-middleware': specifier: workspace:~0.0.0 @@ -2954,13 +2954,13 @@ importers: specifier: workspace:~0.0.0 version: link:../../libraries/core/lambda-zip '@awssolutions/cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/logger '@awssolutions/eslint-config-custom': specifier: workspace:~0.0.0 version: link:../../libraries/config/eslint-config-custom '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/simple-cdf-logger '@types/aws-lambda': specifier: 8.10.65 @@ -3095,31 +3095,31 @@ importers: ../../packages/services/certificateactivator: devDependencies: '@awssolutions/cdf-assetlibrary-client': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/clients/assetlibrary-client '@awssolutions/cdf-config-inject': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/config/config-inject '@awssolutions/cdf-errors': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/errors '@awssolutions/cdf-lambda-invoke': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/lambda-invoke '@awssolutions/cdf-lambda-zip': specifier: workspace:~0.0.0 version: link:../../libraries/core/lambda-zip '@awssolutions/cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/logger '@awssolutions/cdf-provisioning-client': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/clients/provisioning-client '@awssolutions/eslint-config-custom': specifier: workspace:~0.0.0 version: link:../../libraries/config/eslint-config-custom '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/simple-cdf-logger '@types/atob': specifier: 2.1.2 @@ -3227,28 +3227,28 @@ importers: ../../packages/services/certificatevendor: devDependencies: '@awssolutions/cdf-assetlibrary-client': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/clients/assetlibrary-client '@awssolutions/cdf-config-inject': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/config/config-inject '@awssolutions/cdf-errors': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/errors '@awssolutions/cdf-lambda-invoke': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/lambda-invoke '@awssolutions/cdf-lambda-zip': specifier: workspace:~0.0.0 version: link:../../libraries/core/lambda-zip '@awssolutions/cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/logger '@awssolutions/eslint-config-custom': specifier: workspace:~0.0.0 version: link:../../libraries/config/eslint-config-custom '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/simple-cdf-logger '@types/dotenv-flow': specifier: ~3.2.0 @@ -3344,28 +3344,28 @@ importers: ../../packages/services/command-and-control: devDependencies: '@awssolutions/cdf-assetlibrary-client': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/clients/assetlibrary-client '@awssolutions/cdf-config-inject': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/config/config-inject '@awssolutions/cdf-errors': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/errors '@awssolutions/cdf-express-middleware': specifier: workspace:~0.0.0 version: link:../../libraries/core/express-middleware '@awssolutions/cdf-lambda-invoke': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/lambda-invoke '@awssolutions/cdf-lambda-zip': specifier: workspace:~0.0.0 version: link:../../libraries/core/lambda-zip '@awssolutions/cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/logger '@awssolutions/cdf-provisioning-client': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/clients/provisioning-client '@awssolutions/cdf-thing-list-builder': specifier: workspace:~0.0.0 @@ -3374,7 +3374,7 @@ importers: specifier: workspace:~0.0.0 version: link:../../libraries/config/eslint-config-custom '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/simple-cdf-logger '@types/aws-lambda': specifier: 8.10.89 @@ -3515,25 +3515,25 @@ importers: ../../packages/services/commands: dependencies: '@awssolutions/cdf-assetlibrary-client': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/clients/assetlibrary-client '@awssolutions/cdf-config-inject': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/config/config-inject '@awssolutions/cdf-errors': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/errors '@awssolutions/cdf-express-middleware': specifier: workspace:~0.0.0 version: link:../../libraries/core/express-middleware '@awssolutions/cdf-lambda-invoke': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/lambda-invoke '@awssolutions/cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/logger '@awssolutions/cdf-provisioning-client': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/clients/provisioning-client ajv: specifier: 6.12.3 @@ -3672,28 +3672,28 @@ importers: ../../packages/services/device-monitoring: devDependencies: '@awssolutions/cdf-assetlibrary-client': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/clients/assetlibrary-client '@awssolutions/cdf-config-inject': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/config/config-inject '@awssolutions/cdf-errors': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/errors '@awssolutions/cdf-lambda-invoke': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/lambda-invoke '@awssolutions/cdf-lambda-zip': specifier: workspace:~0.0.0 version: link:../../libraries/core/lambda-zip '@awssolutions/cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/logger '@awssolutions/eslint-config-custom': specifier: workspace:~0.0.0 version: link:../../libraries/config/eslint-config-custom '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/simple-cdf-logger '@types/dotenv-flow': specifier: ~3.2.0 @@ -3789,10 +3789,10 @@ importers: ../../packages/services/device-patcher: devDependencies: '@awssolutions/cdf-config-inject': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/config/config-inject '@awssolutions/cdf-errors': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/errors '@awssolutions/cdf-express-middleware': specifier: workspace:~0.0.0 @@ -3801,13 +3801,13 @@ importers: specifier: workspace:~0.0.0 version: link:../../libraries/core/lambda-zip '@awssolutions/cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/logger '@awssolutions/eslint-config-custom': specifier: workspace:~0.0.0 version: link:../../libraries/config/eslint-config-custom '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/simple-cdf-logger '@types/atob': specifier: 2.1.2 @@ -3957,22 +3957,22 @@ importers: ../../packages/services/events-alerts: devDependencies: '@awssolutions/cdf-config-inject': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/config/config-inject '@awssolutions/cdf-errors': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/errors '@awssolutions/cdf-lambda-zip': specifier: workspace:~0.0.0 version: link:../../libraries/core/lambda-zip '@awssolutions/cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/logger '@awssolutions/eslint-config-custom': specifier: workspace:~0.0.0 version: link:../../libraries/config/eslint-config-custom '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/simple-cdf-logger '@types/cors': specifier: 2.8.10 @@ -4080,10 +4080,10 @@ importers: ../../packages/services/events-processor: devDependencies: '@awssolutions/cdf-config-inject': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/config/config-inject '@awssolutions/cdf-errors': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/errors '@awssolutions/cdf-express-middleware': specifier: workspace:~0.0.0 @@ -4092,13 +4092,13 @@ importers: specifier: workspace:~0.0.0 version: link:../../libraries/core/lambda-zip '@awssolutions/cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/logger '@awssolutions/eslint-config-custom': specifier: workspace:~0.0.0 version: link:../../libraries/config/eslint-config-custom '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/simple-cdf-logger '@types/aws-lambda': specifier: 8.10.65 @@ -4239,22 +4239,22 @@ importers: ../../packages/services/greengrass2-installer-config-generators: devDependencies: '@awssolutions/cdf-config-inject': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/config/config-inject '@awssolutions/cdf-errors': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/errors '@awssolutions/cdf-lambda-zip': specifier: workspace:~0.0.0 version: link:../../libraries/core/lambda-zip '@awssolutions/cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/logger '@awssolutions/eslint-config-custom': specifier: workspace:~0.0.0 version: link:../../libraries/config/eslint-config-custom '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/simple-cdf-logger '@types/aws-lambda': specifier: 8.10.84 @@ -4380,13 +4380,13 @@ importers: specifier: 3.38.0 version: 3.38.0 '@awssolutions/cdf-assetlibrary-client': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/clients/assetlibrary-client '@awssolutions/cdf-config-inject': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/config/config-inject '@awssolutions/cdf-errors': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/errors '@awssolutions/cdf-event-publisher': specifier: workspace:~0.0.0 @@ -4395,16 +4395,16 @@ importers: specifier: workspace:~0.0.0 version: link:../../libraries/core/express-middleware '@awssolutions/cdf-lambda-invoke': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/lambda-invoke '@awssolutions/cdf-lambda-zip': specifier: workspace:~0.0.0 version: link:../../libraries/core/lambda-zip '@awssolutions/cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/logger '@awssolutions/cdf-provisioning-client': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/clients/provisioning-client '@awssolutions/cdf-thing-list-builder': specifier: workspace:~0.0.0 @@ -4413,7 +4413,7 @@ importers: specifier: workspace:~0.0.0 version: link:../../libraries/config/eslint-config-custom '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/simple-cdf-logger '@types/adm-zip': specifier: 0.4.34 @@ -4581,7 +4581,7 @@ importers: specifier: ~3.53.0 version: 3.53.0(@aws-sdk/abort-controller@3.38.0)(@aws-sdk/client-s3@3.53.0) '@awssolutions/cdf-config-inject': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/config/config-inject chalk: specifier: ~4.1.2 @@ -4696,28 +4696,28 @@ importers: ../../packages/services/organization-manager: devDependencies: '@awssolutions/cdf-config-inject': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/config/config-inject '@awssolutions/cdf-errors': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/errors '@awssolutions/cdf-express-middleware': specifier: workspace:~0.0.0 version: link:../../libraries/core/express-middleware '@awssolutions/cdf-lambda-invoke': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/lambda-invoke '@awssolutions/cdf-lambda-zip': specifier: workspace:~0.0.0 version: link:../../libraries/core/lambda-zip '@awssolutions/cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/logger '@awssolutions/eslint-config-custom': specifier: workspace:~0.0.0 version: link:../../libraries/config/eslint-config-custom '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/simple-cdf-logger '@types/aws-lambda': specifier: ~8.10.83 @@ -4837,10 +4837,10 @@ importers: ../../packages/services/provisioning: devDependencies: '@awssolutions/cdf-config-inject': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/config/config-inject '@awssolutions/cdf-errors': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/errors '@awssolutions/cdf-express-middleware': specifier: workspace:~0.0.0 @@ -4849,13 +4849,13 @@ importers: specifier: workspace:~0.0.0 version: link:../../libraries/core/lambda-zip '@awssolutions/cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/logger '@awssolutions/eslint-config-custom': specifier: workspace:~0.0.0 version: link:../../libraries/config/eslint-config-custom '@awssolutions/simple-cdf-logger': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/core/simple-cdf-logger '@types/body-parser': specifier: 1.19.2 @@ -4996,7 +4996,7 @@ importers: ../../packages/services/simulation-launcher: dependencies: '@awssolutions/cdf-config-inject': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/config/config-inject aws-sdk: specifier: 2.1386.0 @@ -5081,7 +5081,7 @@ importers: ../../packages/services/simulation-manager: dependencies: '@awssolutions/cdf-config-inject': - specifier: workspace:^2.4.0 + specifier: workspace:^2.5.2 version: link:../../libraries/config/config-inject aws-sdk: specifier: 2.1386.0 @@ -13234,8 +13234,8 @@ packages: merge2: 1.4.1 micromatch: 4.0.5 - /fast-json-patch@3.0.0-1: - resolution: {integrity: sha512-6pdFb07cknxvPzCeLsFHStEy+MysPJPgZQ9LbQ/2O67unQF93SNqfdSqnPPl71YMHX+AD8gbl7iuoGFzHEdDuw==} + /fast-json-patch@3.1.1: + resolution: {integrity: sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==} dev: true /fast-json-stable-stringify@2.1.0: diff --git a/source/common/config/rush/repo-state.json b/source/common/config/rush/repo-state.json index f10b1b179..3baf89083 100644 --- a/source/common/config/rush/repo-state.json +++ b/source/common/config/rush/repo-state.json @@ -1,5 +1,5 @@ // DO NOT MODIFY THIS FILE MANUALLY BUT DO COMMIT IT. It is generated and used by Rush. { - "pnpmShrinkwrapHash": "6ff045f325a4557e2c96b1cf8e6a73cea9638863", + "pnpmShrinkwrapHash": "a91e3cdfb0f70338c98919f90c62b3eb5bfe08c0", "preferredVersionsHash": "14c05a7722342014cec64c4bef7d9bed0d0b7b7f" } diff --git a/source/packages/services/assetlibrary/infrastructure/cfn-assetLibrary.yaml b/source/packages/services/assetlibrary/infrastructure/cfn-assetLibrary.yaml index 6e4a92b98..4b121e02b 100644 --- a/source/packages/services/assetlibrary/infrastructure/cfn-assetLibrary.yaml +++ b/source/packages/services/assetlibrary/infrastructure/cfn-assetLibrary.yaml @@ -2,7 +2,7 @@ #----------------------------------------------------------------------------------------------------------------------- # Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. # -# Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance +# Licensed under the Apache License, Version 2.0 (the 'License'). You may not use this file except in compliance # with the License. A copy of the License is located at # # http://www.apache.org/licenses/LICENSE-2.0 @@ -107,6 +107,30 @@ Parameters: - false MinLength: 1 + ApplyNeptuneAutoscaling: + Description: If true, will apply auto-scaling as defined in `./cfn-autoscaling-neptune.yml' + Type: String + Default: false + AllowedValues: + - true + - false + MinLength: 1 + + NeptuneAutoScalingMinCapacity: + Description: The no. of desired minimum read replicas to provision + Type: Number + Default: 1 + + NeptuneAutoScalingMaxCapacity: + Description: The no. of desired maximum read replicas to provision + Type: Number + Default: 1 + + NeptuneTargetUtilization: + Description: Target utilization (0 to 100). + Type: Number + Default: 75 + CdfService: Description: Service name to tag resources. Type: String @@ -136,11 +160,16 @@ Conditions: DeployInVPC: !Not [!Equals [!Ref VpcId, 'N/A']] - DeployWithProvisionedCapacity: !Not [!Equals [!Ref ProvisionedConcurrentExecutions, '0']] + DeployWithProvisionedCapacity: + !Not [!Equals [!Ref ProvisionedConcurrentExecutions, '0']] DeployWithScaling: !Equals [!Ref ApplyAutoscaling, 'true'] + DeployWithNeptuneScaling: !Equals [!Ref ApplyNeptuneAutoscaling, 'true'] DeployWithLambdaAuth: - !Or [!Equals [!Ref AuthType, 'LambdaRequest'], !Equals [!Ref AuthType, 'LambdaToken']] + !Or [ + !Equals [!Ref AuthType, 'LambdaRequest'], + !Equals [!Ref AuthType, 'LambdaToken'], + ] EnableApiGatewayAccessLogs: !Equals [!Ref EnableApiGatewayAccessLogs, 'true'] Resources: @@ -321,6 +350,25 @@ Resources: Value: !Ref CdfService DependsOn: LambdaFunction + # Optional Neptune auto-scaling configuration + AutoScalingNeptuneNestedStack: + Type: AWS::CloudFormation::Stack + Condition: DeployWithNeptuneScaling + Properties: + TemplateURL: ./cfn-autoscaling-neptune.yml + Parameters: + NeptuneClusterID: !Sub '{{resolve:ssm:/cdf/asset-library/${Environment}/neptuneClusterID}}' + MinCapacity: !Ref NeptuneAutoScalingMinCapacity + MaxCapacity: !Ref NeptuneAutoScalingMaxCapacity + TargetUtilization: !Ref NeptuneTargetUtilization + TimeoutInMinutes: 5 + Tags: + - Key: cdf_environment + Value: !Ref Environment + - Key: cdf_service + Value: !Ref CdfService + DependsOn: LambdaFunction + IotFleetIndex: Type: Custom::IotFleetIndex Condition: DeployLiteMode diff --git a/source/packages/services/assetlibrary/infrastructure/cfn-autoscaling-neptune.yml b/source/packages/services/assetlibrary/infrastructure/cfn-autoscaling-neptune.yml new file mode 100644 index 000000000..f57fcb8a3 --- /dev/null +++ b/source/packages/services/assetlibrary/infrastructure/cfn-autoscaling-neptune.yml @@ -0,0 +1,60 @@ +--- +#----------------------------------------------------------------------------------------------------------------------- +# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the 'License'). You may not use this file except in compliance +# with the License. A copy of the License is located at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES +# OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions +# and limitations under the License. +#----------------------------------------------------------------------------------------------------------------------- +AWSTemplateFormatVersion: '2010-09-09' +Transform: AWS::Serverless-2016-10-31 + +Description: | + CDF Asset Library Service Scaling + ================================= + This template provides an example of how to apply auto-scaling to the Asset Library Neptune Cluster. + +Parameters: + MinCapacity: + Description: The minimum value to scale to in response to a scale-in event. + Type: Number + Default: 1 + MaxCapacity: + Description: The maximum value to scale to in response to a scale-out event. + Type: Number + Default: 1 + TargetUtilization: + Description: Target utilization (0 to 90). + Type: Number + Default: 75 + NeptuneClusterID: + Description: This parameter will contain the ClusterID used for Neptune Auto Scaling + Type: String + Default: cluster:test + +Resources: + ScalableTarget: + Type: AWS::ApplicationAutoScaling::ScalableTarget + Properties: + MaxCapacity: !Ref MaxCapacity + MinCapacity: !Ref MinCapacity + ResourceId: !Ref NeptuneClusterID + RoleARN: !Sub arn:aws:iam::${AWS::AccountId}:role/aws-service-role/neptune.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_NeptuneCluster + ScalableDimension: neptune:cluster:ReadReplicaCount + ServiceNamespace: neptune + + TargetTrackingScalingPolicy: + Type: AWS::ApplicationAutoScaling::ScalingPolicy + Properties: + PolicyName: utilizationNeptune + PolicyType: TargetTrackingScaling + ScalingTargetId: !Ref ScalableTarget + TargetTrackingScalingPolicyConfiguration: + TargetValue: !Ref TargetUtilization + PredefinedMetricSpecification: + PredefinedMetricType: NeptuneReaderAverageCPUUtilization diff --git a/source/packages/services/assetlibrary/infrastructure/cfn-neptune.yaml b/source/packages/services/assetlibrary/infrastructure/cfn-neptune.yaml index e73443b58..0720bf9b4 100644 --- a/source/packages/services/assetlibrary/infrastructure/cfn-neptune.yaml +++ b/source/packages/services/assetlibrary/infrastructure/cfn-neptune.yaml @@ -2,7 +2,7 @@ #----------------------------------------------------------------------------------------------------------------------- # Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. # -# Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance +# Licensed under the Apache License, Version 2.0 (the 'License'). You may not use this file except in compliance # with the License. A copy of the License is located at # # http://www.apache.org/licenses/LICENSE-2.0 @@ -33,7 +33,7 @@ Parameters: Neptune DB instance type. The list of available instance types for your region can be found here: https://aws.amazon.com/neptune/pricing/ Type: String - AllowedPattern: "^db\\.[tr]\\d+[a-z0-9]*\\.[a-z0-9]*$" + AllowedPattern: '^db\\.[tr]\\d+[a-z0-9]*\\.[a-z0-9]*$' ConstraintDescription: Must be a valid Neptune instance type. CreateDBReplicaInstance: Description: Create a read replica for MultiAZ? @@ -308,6 +308,14 @@ Resources: DependsOn: - NeptuneDBInstance + DBClusterIdSsmParameter: + Type: 'AWS::SSM::Parameter' + Properties: + Description: VPC ID for the account + Name: !Sub '/cdf/asset-library/${Environment}/neptuneClusterID' + Type: String + Value: !Sub 'cluster:${NeptuneDBCluster}' + Outputs: DBClusterId: Description: Neptune Cluster Identifier diff --git a/source/packages/services/installer/src/commands/modules/service/assetLibrary.ts b/source/packages/services/installer/src/commands/modules/service/assetLibrary.ts index f0f2c04a2..07ef16f06 100644 --- a/source/packages/services/installer/src/commands/modules/service/assetLibrary.ts +++ b/source/packages/services/installer/src/commands/modules/service/assetLibrary.ts @@ -19,7 +19,11 @@ import { ModuleName, PostmanEnvironment, RestModule } from '../../../models/modu import { applicationConfigurationPrompt } from '../../../prompts/applicationConfiguration.prompt'; import { enableAutoScaling, - provisionedConcurrentExecutions, + enableNeptuneAutoScaling, + maxNeptuneReadReplicas, + minNeptuneReadReplicas, + neptuneTargetUtilization, + provisionedConcurrentExecutions } from '../../../prompts/autoscaling.prompt'; import { customDomainPrompt } from '../../../prompts/domain.prompt'; import { redeployIfAlreadyExistsPrompt } from '../../../prompts/modules.prompt'; @@ -175,6 +179,10 @@ export class AssetLibraryInstaller implements RestModule { }, enableAutoScaling(this.name, answers), provisionedConcurrentExecutions(this.name, answers), + enableNeptuneAutoScaling(this.name, answers), + minNeptuneReadReplicas(this.name, answers), + maxNeptuneReadReplicas(this.name, answers), + neptuneTargetUtilization(this.name, answers), ...applicationConfigurationPrompt(this.name, answers, [ { question: 'Enable authorization?', @@ -288,6 +296,11 @@ export class AssetLibraryInstaller implements RestModule { 'ProvisionedConcurrentExecutions', answers.assetLibrary.provisionedConcurrentExecutions ); + addIfSpecified('ApplyNeptuneAutoscaling', answers.assetLibrary.enableNeptuneAutoScaling); + addIfSpecified('NeptuneAutoScalingMinCapacity', answers.assetLibrary.minNeptuneReadReplicaCapacity); + addIfSpecified('NeptuneAutoScalingMaxCapacity', answers.assetLibrary.maxNeptuneReadReplicaCapacity); + addIfSpecified('NeptuneTargetUtilization', answers.assetLibrary.neptuneTargetUtilization); + addIfSpecified( 'CustomResourceVPCLambdaArn', answers.assetLibrary.mode === 'full' diff --git a/source/packages/services/installer/src/models/answers.ts b/source/packages/services/installer/src/models/answers.ts index 249e28056..f3f006d09 100644 --- a/source/packages/services/installer/src/models/answers.ts +++ b/source/packages/services/installer/src/models/answers.ts @@ -103,6 +103,13 @@ export interface ProvisionedConcurrencyModuleAttribues extends ServiceModuleAttr provisionedConcurrentExecutions?: number; enableAutoScaling?: boolean; } + +export interface NeptuneScalingAttributes { + minNeptuneReadReplicaCapacity?: number; + maxNeptuneReadReplicaCapacity?: number; + enableNeptuneAutoScaling?: boolean; + neptuneTargetUtilization?: number; +} export interface RestServiceModuleAttribues extends ServiceModuleAttributes { enableCustomDomain?: boolean; customDomainBasePath?: string; @@ -123,7 +130,8 @@ export interface OrganizationManager extends RestServiceModuleAttribues { export interface AssetLibrary extends RestServiceModuleAttribues, - ProvisionedConcurrencyModuleAttribues { + ProvisionedConcurrencyModuleAttribues, + NeptuneScalingAttributes { mode?: 'full' | 'lite'; neptuneDbInstanceType?: string; createDbReplicaInstance?: boolean; diff --git a/source/packages/services/installer/src/prompts/autoscaling.prompt.ts b/source/packages/services/installer/src/prompts/autoscaling.prompt.ts index 73279a466..8437f6697 100644 --- a/source/packages/services/installer/src/prompts/autoscaling.prompt.ts +++ b/source/packages/services/installer/src/prompts/autoscaling.prompt.ts @@ -13,7 +13,8 @@ import { Question } from 'inquirer'; import { Answers, - ProvisionedConcurrencyModuleAttribues as ProvisionedConcurrencyModuleAttributes, + NeptuneScalingAttributes, + ProvisionedConcurrencyModuleAttribues as ProvisionedConcurrencyModuleAttributes } from '../models/answers'; import { ModuleName } from '../models/modules'; @@ -49,3 +50,71 @@ export function provisionedConcurrentExecutions( }, }; } + +export function enableNeptuneAutoScaling(moduleName: ModuleName, answers: Answers): Question { + return { + message: 'Deployed with a autoscaling for Neptune?', + type: 'confirm', + name: `${moduleName}.enableNeptuneAutoScaling`, + default: (answers[moduleName] as NeptuneScalingAttributes)?.enableNeptuneAutoScaling ?? false, + askAnswered: true, + }; +} + + +export function maxNeptuneReadReplicas(moduleName: ModuleName, answers: Answers): Question { + return { + message: 'The max number of read replicas when neptune is scaled. Default is 1', + type: 'input', + name: `${moduleName}.maxNeptuneReadReplicas`, + default: (answers[moduleName] as NeptuneScalingAttributes)?.maxNeptuneReadReplicaCapacity ?? 1, + askAnswered: true, + when(answers: Answers) { + return answers.assetLibrary?.enableNeptuneAutoScaling + }, + validate(answer: number) { + if (answer < 0) { + return `You must enter number 0 or larger than 0.`; + } + return true; + }, + }; +} + +export function minNeptuneReadReplicas(moduleName: ModuleName, answers: Answers): Question { + return { + message: 'The minimum number of read replicas when neptune is scaled. Default is 1', + type: 'input', + name: `${moduleName}.minNeptuneReadReplicas`, + default: (answers[moduleName] as NeptuneScalingAttributes)?.minNeptuneReadReplicaCapacity ?? 1, + askAnswered: true, + when(answers: Answers) { + return answers.assetLibrary?.enableNeptuneAutoScaling + }, + validate(answer: number) { + if (answer < 0) { + return `You must enter number 0 or larger than 0.`; + } + return true; + }, + }; +} + +export function neptuneTargetUtilization(moduleName: ModuleName, answers: Answers): Question { + return { + message: 'The target CPU utilization for Neptune to auto-scale read replica?', + type: 'input', + name: `${moduleName}.neptuneTargetUtilization`, + default: (answers[moduleName] as NeptuneScalingAttributes)?.neptuneTargetUtilization ?? 75, + askAnswered: true, + when(answers: Answers) { + return answers.assetLibrary?.enableNeptuneAutoScaling + }, + validate(answer: number) { + if (answer <= 0) { + return `You must enter number 1 or larger .`; + } + return true; + }, + }; +} \ No newline at end of file