@kensio/yulin 1.17.0 → 1.17.1
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/dist/service/acm/certificate/register-sim-acm-certificate.d.ts +41 -0
- package/dist/service/acm/certificate/register-sim-acm-certificate.d.ts.map +1 -0
- package/dist/service/acm/certificate/register-sim-acm-certificate.js +60 -0
- package/dist/service/acm/certificate/register-sim-acm-certificate.js.map +1 -0
- package/dist/service/acm/command/request-certificate/request-certificate.handler.d.ts +9 -0
- package/dist/service/acm/command/request-certificate/request-certificate.handler.d.ts.map +1 -1
- package/dist/service/acm/command/request-certificate/request-certificate.handler.js +18 -1
- package/dist/service/acm/command/request-certificate/request-certificate.handler.js.map +1 -1
- package/dist/service/acm/sim-acm.d.ts +15 -0
- package/dist/service/acm/sim-acm.d.ts.map +1 -1
- package/dist/service/acm/sim-acm.js +21 -0
- package/dist/service/acm/sim-acm.js.map +1 -1
- package/dist/service/cloudformation/cdk/sim-cdk-assembly-selection.d.ts +4 -0
- package/dist/service/cloudformation/cdk/sim-cdk-assembly-selection.d.ts.map +1 -1
- package/dist/service/cloudformation/cdk/sim-cdk-assembly-selection.js +7 -2
- package/dist/service/cloudformation/cdk/sim-cdk-assembly-selection.js.map +1 -1
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.d.ts +1 -1
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.d.ts.map +1 -1
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js +6 -4
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js.map +1 -1
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.d.ts +4 -0
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.d.ts.map +1 -1
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.js.map +1 -1
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts +25 -2
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts.map +1 -1
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.js +13 -0
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.js.map +1 -1
- package/dist/service/cloudformation/index.d.ts +1 -1
- package/dist/service/cloudformation/index.d.ts.map +1 -1
- package/dist/service/cloudformation/resource/cfn/iam/sim-iam-cfn-value-adapter.d.ts.map +1 -1
- package/dist/service/cloudformation/resource/cfn/iam/sim-iam-cfn-value-adapter.js +4 -0
- package/dist/service/cloudformation/resource/cfn/iam/sim-iam-cfn-value-adapter.js.map +1 -1
- package/dist/service/cloudformation/resource/cfn/iam/sim-iam-user-cfn.d.ts +28 -0
- package/dist/service/cloudformation/resource/cfn/iam/sim-iam-user-cfn.d.ts.map +1 -0
- package/dist/service/cloudformation/resource/cfn/iam/sim-iam-user-cfn.js +33 -0
- package/dist/service/cloudformation/resource/cfn/iam/sim-iam-user-cfn.js.map +1 -0
- package/dist/service/cloudformation/resource/resolve/property/sim-cfn-resource-property-resolver.d.ts +6 -0
- package/dist/service/cloudformation/resource/resolve/property/sim-cfn-resource-property-resolver.d.ts.map +1 -1
- package/dist/service/cloudformation/resource/resolve/property/sim-cfn-resource-property-resolver.js +3 -0
- package/dist/service/cloudformation/resource/resolve/property/sim-cfn-resource-property-resolver.js.map +1 -1
- package/dist/service/cloudformation/resource/sim-cfn-resource-record.d.ts.map +1 -1
- package/dist/service/cloudformation/resource/sim-cfn-resource-record.js +1 -0
- package/dist/service/cloudformation/resource/sim-cfn-resource-record.js.map +1 -1
- package/dist/service/cloudformation/template/dynamic/make-sim-cfn-dynamic-references.d.ts +1 -0
- package/dist/service/cloudformation/template/dynamic/make-sim-cfn-dynamic-references.d.ts.map +1 -1
- package/dist/service/cloudformation/template/dynamic/make-sim-cfn-dynamic-references.js +2 -1
- package/dist/service/cloudformation/template/dynamic/make-sim-cfn-dynamic-references.js.map +1 -1
- package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-reference-resolvers.d.ts.map +1 -1
- package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-reference-resolvers.js +4 -0
- package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-reference-resolvers.js.map +1 -1
- package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-reference.type.d.ts +19 -1
- package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-reference.type.d.ts.map +1 -1
- package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-references.d.ts +6 -0
- package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-references.d.ts.map +1 -1
- package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-references.js +9 -3
- package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-references.js.map +1 -1
- package/dist/service/cloudfront/command/create-function/create-function-code-size.d.ts +23 -0
- package/dist/service/cloudfront/command/create-function/create-function-code-size.d.ts.map +1 -0
- package/dist/service/cloudfront/command/create-function/create-function-code-size.js +33 -0
- package/dist/service/cloudfront/command/create-function/create-function-code-size.js.map +1 -0
- package/dist/service/cloudfront/command/create-function/create-function.handler.d.ts.map +1 -1
- package/dist/service/cloudfront/command/create-function/create-function.handler.js +2 -0
- package/dist/service/cloudfront/command/create-function/create-function.handler.js.map +1 -1
- package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts +11 -0
- package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts.map +1 -1
- package/dist/service/cloudfront/error/sim-cloudfront.error.js +13 -0
- package/dist/service/cloudfront/error/sim-cloudfront.error.js.map +1 -1
- package/dist/service/cloudfront/index.d.ts +1 -1
- package/dist/service/cloudfront/index.d.ts.map +1 -1
- package/dist/service/cloudfront/index.js +1 -1
- package/dist/service/cloudfront/index.js.map +1 -1
- package/dist/service/cognito/command/sim-cognito-commands.d.ts +6 -0
- package/dist/service/cognito/command/sim-cognito-commands.d.ts.map +1 -1
- package/dist/service/cognito/command/sim-cognito-commands.js +22 -6
- package/dist/service/cognito/command/sim-cognito-commands.js.map +1 -1
- package/dist/service/cognito/error/sim-cognito.error.d.ts +22 -0
- package/dist/service/cognito/error/sim-cognito.error.d.ts.map +1 -1
- package/dist/service/cognito/error/sim-cognito.error.js +26 -0
- package/dist/service/cognito/error/sim-cognito.error.js.map +1 -1
- package/dist/service/cognito/index.d.ts +2 -1
- package/dist/service/cognito/index.d.ts.map +1 -1
- package/dist/service/cognito/index.js +1 -1
- package/dist/service/cognito/index.js.map +1 -1
- package/dist/service/cognito/sim-cognito-identity-provider.d.ts +24 -0
- package/dist/service/cognito/sim-cognito-identity-provider.d.ts.map +1 -1
- package/dist/service/cognito/sim-cognito-identity-provider.js +26 -0
- package/dist/service/cognito/sim-cognito-identity-provider.js.map +1 -1
- package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-factory.d.ts +9 -0
- package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-factory.d.ts.map +1 -1
- package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-factory.js +2 -2
- package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-factory.js.map +1 -1
- package/dist/service/cognito/user-pool/register-sim-cognito-user-pool-client.d.ts +22 -0
- package/dist/service/cognito/user-pool/register-sim-cognito-user-pool-client.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/register-sim-cognito-user-pool-client.js +36 -0
- package/dist/service/cognito/user-pool/register-sim-cognito-user-pool-client.js.map +1 -0
- package/dist/service/cognito/user-pool/register-sim-cognito-user-pool.d.ts +25 -0
- package/dist/service/cognito/user-pool/register-sim-cognito-user-pool.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/register-sim-cognito-user-pool.js +30 -0
- package/dist/service/cognito/user-pool/register-sim-cognito-user-pool.js.map +1 -0
- package/dist/service/cognito/user-pool/sim-cognito-registration.types.d.ts +40 -0
- package/dist/service/cognito/user-pool/sim-cognito-registration.types.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/sim-cognito-registration.types.js +2 -0
- package/dist/service/cognito/user-pool/sim-cognito-registration.types.js.map +1 -0
- package/dist/service/cognito/user-pool/sim-cognito-registrations.d.ts +34 -0
- package/dist/service/cognito/user-pool/sim-cognito-registrations.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/sim-cognito-registrations.js +28 -0
- package/dist/service/cognito/user-pool/sim-cognito-registrations.js.map +1 -0
- package/dist/service/cognito/user-pool/sim-cognito-user-pool-factory.d.ts +9 -0
- package/dist/service/cognito/user-pool/sim-cognito-user-pool-factory.d.ts.map +1 -1
- package/dist/service/cognito/user-pool/sim-cognito-user-pool-factory.js +3 -2
- package/dist/service/cognito/user-pool/sim-cognito-user-pool-factory.js.map +1 -1
- package/dist/service/cognito/user-pool/sim-cognito-user-pool-id.d.ts +9 -0
- package/dist/service/cognito/user-pool/sim-cognito-user-pool-id.d.ts.map +1 -1
- package/dist/service/cognito/user-pool/sim-cognito-user-pool-id.js +18 -0
- package/dist/service/cognito/user-pool/sim-cognito-user-pool-id.js.map +1 -1
- package/dist/service/cognito/user-pool/sim-cognito-user-pool-store.d.ts +8 -0
- package/dist/service/cognito/user-pool/sim-cognito-user-pool-store.d.ts.map +1 -1
- package/dist/service/cognito/user-pool/sim-cognito-user-pool-store.js +15 -1
- package/dist/service/cognito/user-pool/sim-cognito-user-pool-store.js.map +1 -1
- package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-attacher.d.ts +40 -0
- package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-attacher.d.ts.map +1 -0
- package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-attacher.js +65 -0
- package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-attacher.js.map +1 -0
- package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.d.ts +1 -0
- package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.d.ts.map +1 -1
- package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.js +5 -0
- package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.js.map +1 -1
- package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-creator.d.ts +11 -20
- package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-creator.d.ts.map +1 -1
- package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-creator.js +29 -61
- package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-creator.js.map +1 -1
- package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-properties-parser.d.ts +38 -0
- package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-properties-parser.d.ts.map +1 -0
- package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-properties-parser.js +79 -0
- package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-properties-parser.js.map +1 -0
- package/dist/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.d.ts +2 -2
- package/dist/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.d.ts.map +1 -1
- package/dist/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.js +4 -2
- package/dist/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.js.map +1 -1
- package/dist/service/iam/cfn/sim-cfn-iam-policies-parser.d.ts +35 -0
- package/dist/service/iam/cfn/sim-cfn-iam-policies-parser.d.ts.map +1 -0
- package/dist/service/iam/cfn/{role/sim-cfn-iam-role-policies-parser.js → sim-cfn-iam-policies-parser.js} +17 -12
- package/dist/service/iam/cfn/sim-cfn-iam-policies-parser.js.map +1 -0
- package/dist/service/iam/cfn/sim-cfn-iam-resource-deleter.d.ts +11 -0
- package/dist/service/iam/cfn/sim-cfn-iam-resource-deleter.d.ts.map +1 -1
- package/dist/service/iam/cfn/sim-cfn-iam-resource-deleter.js +25 -0
- package/dist/service/iam/cfn/sim-cfn-iam-resource-deleter.js.map +1 -1
- package/dist/service/iam/cfn/sim-cfn-iam-resource-factory.d.ts +1 -0
- package/dist/service/iam/cfn/sim-cfn-iam-resource-factory.d.ts.map +1 -1
- package/dist/service/iam/cfn/sim-cfn-iam-resource-factory.js +6 -0
- package/dist/service/iam/cfn/sim-cfn-iam-resource-factory.js.map +1 -1
- package/dist/service/iam/cfn/user/sim-cfn-iam-user-creator.d.ts +28 -0
- package/dist/service/iam/cfn/user/sim-cfn-iam-user-creator.d.ts.map +1 -0
- package/dist/service/iam/cfn/user/sim-cfn-iam-user-creator.js +67 -0
- package/dist/service/iam/cfn/user/sim-cfn-iam-user-creator.js.map +1 -0
- package/dist/service/iam/cfn/user/sim-cfn-iam-user-deleter.d.ts +26 -0
- package/dist/service/iam/cfn/user/sim-cfn-iam-user-deleter.d.ts.map +1 -0
- package/dist/service/iam/cfn/user/sim-cfn-iam-user-deleter.js +29 -0
- package/dist/service/iam/cfn/user/sim-cfn-iam-user-deleter.js.map +1 -0
- package/dist/service/iam/cfn/user/sim-cfn-iam-user-properties-parser.d.ts +38 -0
- package/dist/service/iam/cfn/user/sim-cfn-iam-user-properties-parser.d.ts.map +1 -0
- package/dist/service/iam/cfn/user/sim-cfn-iam-user-properties-parser.js +80 -0
- package/dist/service/iam/cfn/user/sim-cfn-iam-user-properties-parser.js.map +1 -0
- package/dist/service/iam/command/sim-iam-command.types.d.ts +3 -0
- package/dist/service/iam/command/sim-iam-command.types.d.ts.map +1 -1
- package/dist/service/iam/command/user/attach-user-policy/attach-user-policy.command.d.ts +9 -0
- package/dist/service/iam/command/user/attach-user-policy/attach-user-policy.command.d.ts.map +1 -0
- package/dist/service/iam/command/user/attach-user-policy/attach-user-policy.command.js +2 -0
- package/dist/service/iam/command/user/attach-user-policy/attach-user-policy.command.js.map +1 -0
- package/dist/service/iam/command/user/attach-user-policy/attach-user-policy.handler.d.ts +30 -0
- package/dist/service/iam/command/user/attach-user-policy/attach-user-policy.handler.d.ts.map +1 -0
- package/dist/service/iam/command/user/attach-user-policy/attach-user-policy.handler.js +44 -0
- package/dist/service/iam/command/user/attach-user-policy/attach-user-policy.handler.js.map +1 -0
- package/dist/service/iam/command/user/create-login-profile/create-login-profile.command.d.ts +16 -0
- package/dist/service/iam/command/user/create-login-profile/create-login-profile.command.d.ts.map +1 -0
- package/dist/service/iam/command/user/create-login-profile/create-login-profile.command.js +2 -0
- package/dist/service/iam/command/user/create-login-profile/create-login-profile.command.js.map +1 -0
- package/dist/service/iam/command/user/create-login-profile/create-login-profile.handler.d.ts +32 -0
- package/dist/service/iam/command/user/create-login-profile/create-login-profile.handler.d.ts.map +1 -0
- package/dist/service/iam/command/user/create-login-profile/create-login-profile.handler.js +59 -0
- package/dist/service/iam/command/user/create-login-profile/create-login-profile.handler.js.map +1 -0
- package/dist/service/iam/command/user/create-user/create-user-record-factory.d.ts.map +1 -1
- package/dist/service/iam/command/user/create-user/create-user-record-factory.js +1 -0
- package/dist/service/iam/command/user/create-user/create-user-record-factory.js.map +1 -1
- package/dist/service/iam/command/user/delete-user/delete-user.command.d.ts +19 -0
- package/dist/service/iam/command/user/delete-user/delete-user.command.d.ts.map +1 -0
- package/dist/service/iam/command/user/delete-user/delete-user.command.js +2 -0
- package/dist/service/iam/command/user/delete-user/delete-user.command.js.map +1 -0
- package/dist/service/iam/command/user/delete-user/delete-user.handler.d.ts +34 -0
- package/dist/service/iam/command/user/delete-user/delete-user.handler.d.ts.map +1 -0
- package/dist/service/iam/command/user/delete-user/delete-user.handler.js +51 -0
- package/dist/service/iam/command/user/delete-user/delete-user.handler.js.map +1 -0
- package/dist/service/iam/command/user/sim-iam-user-command-handlers.d.ts +15 -0
- package/dist/service/iam/command/user/sim-iam-user-command-handlers.d.ts.map +1 -1
- package/dist/service/iam/command/user/sim-iam-user-command-handlers.js +36 -0
- package/dist/service/iam/command/user/sim-iam-user-command-handlers.js.map +1 -1
- package/dist/service/iam/sdk/sim-iam-sdk-command-router.d.ts.map +1 -1
- package/dist/service/iam/sdk/sim-iam-sdk-command-router.js +12 -0
- package/dist/service/iam/sdk/sim-iam-sdk-command-router.js.map +1 -1
- package/dist/service/iam/sim-iam.d.ts +12 -0
- package/dist/service/iam/sim-iam.d.ts.map +1 -1
- package/dist/service/iam/sim-iam.js +18 -0
- package/dist/service/iam/sim-iam.js.map +1 -1
- package/dist/service/iam/user/sim-iam-user-login-profile.d.ts +14 -0
- package/dist/service/iam/user/sim-iam-user-login-profile.d.ts.map +1 -0
- package/dist/service/iam/user/sim-iam-user-login-profile.js +2 -0
- package/dist/service/iam/user/sim-iam-user-login-profile.js.map +1 -0
- package/dist/service/iam/user/sim-iam-user.d.ts +8 -0
- package/dist/service/iam/user/sim-iam-user.d.ts.map +1 -1
- package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts +6 -5
- package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts.map +1 -1
- package/dist/service/lambda/function/code/sim-lambda-executable-code.js +7 -6
- package/dist/service/lambda/function/code/sim-lambda-executable-code.js.map +1 -1
- package/dist/service/lambda/function/invoke/sim-lambda-host-scope.d.ts +11 -3
- package/dist/service/lambda/function/invoke/sim-lambda-host-scope.d.ts.map +1 -1
- package/dist/service/lambda/function/invoke/sim-lambda-host-scope.js +13 -7
- package/dist/service/lambda/function/invoke/sim-lambda-host-scope.js.map +1 -1
- package/dist/service/lambda/function/invoke/sim-lambda-process-output.d.ts +104 -0
- package/dist/service/lambda/function/invoke/sim-lambda-process-output.d.ts.map +1 -0
- package/dist/service/lambda/function/invoke/sim-lambda-process-output.js +133 -0
- package/dist/service/lambda/function/invoke/sim-lambda-process-output.js.map +1 -0
- package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts +10 -0
- package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts.map +1 -1
- package/dist/service/lambda/function/logging/sim-lambda-function-logging.js +11 -0
- package/dist/service/lambda/function/logging/sim-lambda-function-logging.js.map +1 -1
- package/dist/service/lambda/function/sim-lambda-function.d.ts +2 -1
- package/dist/service/lambda/function/sim-lambda-function.d.ts.map +1 -1
- package/dist/service/lambda/function/sim-lambda-function.js +5 -2
- package/dist/service/lambda/function/sim-lambda-function.js.map +1 -1
- package/dist/service/s3/command/get-object/get-object-loader.d.ts +5 -3
- package/dist/service/s3/command/get-object/get-object-loader.d.ts.map +1 -1
- package/dist/service/s3/command/get-object/get-object-loader.js +19 -4
- package/dist/service/s3/command/get-object/get-object-loader.js.map +1 -1
- package/dist/service/s3/command/get-object/get-object.command.d.ts +13 -0
- package/dist/service/s3/command/get-object/get-object.command.d.ts.map +1 -1
- package/dist/service/s3/command/get-object/get-object.handler.d.ts +3 -0
- package/dist/service/s3/command/get-object/get-object.handler.d.ts.map +1 -1
- package/dist/service/s3/command/get-object/get-object.handler.js +4 -1
- package/dist/service/s3/command/get-object/get-object.handler.js.map +1 -1
- package/dist/service/s3/error/sim-s3.error.d.ts +13 -0
- package/dist/service/s3/error/sim-s3.error.d.ts.map +1 -1
- package/dist/service/s3/error/sim-s3.error.js +15 -0
- package/dist/service/s3/error/sim-s3.error.js.map +1 -1
- package/dist/service/s3/object/s3-object-range.d.ts +26 -0
- package/dist/service/s3/object/s3-object-range.d.ts.map +1 -0
- package/dist/service/s3/object/s3-object-range.js +89 -0
- package/dist/service/s3/object/s3-object-range.js.map +1 -0
- package/dist/service/s3/object/s3-object-response-headers.d.ts +7 -1
- package/dist/service/s3/object/s3-object-response-headers.d.ts.map +1 -1
- package/dist/service/s3/object/s3-object-response-headers.js +5 -1
- package/dist/service/s3/object/s3-object-response-headers.js.map +1 -1
- package/dist/service/s3/serve/api/sim-s3-api-input.d.ts +0 -14
- package/dist/service/s3/serve/api/sim-s3-api-input.d.ts.map +1 -1
- package/dist/service/s3/serve/api/sim-s3-api-input.js +0 -29
- package/dist/service/s3/serve/api/sim-s3-api-input.js.map +1 -1
- package/dist/service/s3/serve/api/sim-s3-api-object-input.d.ts +27 -0
- package/dist/service/s3/serve/api/sim-s3-api-object-input.d.ts.map +1 -0
- package/dist/service/s3/serve/api/sim-s3-api-object-input.js +47 -0
- package/dist/service/s3/serve/api/sim-s3-api-object-input.js.map +1 -0
- package/dist/service/s3/serve/api/sim-s3-api-object-output.d.ts +5 -0
- package/dist/service/s3/serve/api/sim-s3-api-object-output.d.ts.map +1 -1
- package/dist/service/s3/serve/api/sim-s3-api-object-output.js +8 -1
- package/dist/service/s3/serve/api/sim-s3-api-object-output.js.map +1 -1
- package/dist/service/s3/serve/api/sim-s3-api-object-routes.d.ts.map +1 -1
- package/dist/service/s3/serve/api/sim-s3-api-object-routes.js +2 -2
- package/dist/service/s3/serve/api/sim-s3-api-object-routes.js.map +1 -1
- package/dist/service/s3/serve/sim-s3-rest-object-reader.d.ts +5 -0
- package/dist/service/s3/serve/sim-s3-rest-object-reader.d.ts.map +1 -1
- package/dist/service/s3/serve/sim-s3-rest-object-reader.js +20 -3
- package/dist/service/s3/serve/sim-s3-rest-object-reader.js.map +1 -1
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-dynamic-reference-resolver.d.ts +0 -7
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-dynamic-reference-resolver.d.ts.map +1 -1
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-dynamic-reference-resolver.js +7 -41
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-dynamic-reference-resolver.js.map +1 -1
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-reference-body.d.ts +14 -0
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-reference-body.d.ts.map +1 -0
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-reference-body.js +26 -0
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-reference-body.js.map +1 -0
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-reference-stand-in.d.ts +11 -0
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-reference-stand-in.d.ts.map +1 -0
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-reference-stand-in.js +16 -0
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-reference-stand-in.js.map +1 -0
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-dynamic-reference-resolver.d.ts +40 -0
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-dynamic-reference-resolver.d.ts.map +1 -0
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-dynamic-reference-resolver.js +67 -0
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-dynamic-reference-resolver.js.map +1 -0
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-reference-properties.d.ts +8 -0
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-reference-properties.d.ts.map +1 -0
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-reference-properties.js +61 -0
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-reference-properties.js.map +1 -0
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-refusals.d.ts +19 -0
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-refusals.d.ts.map +1 -0
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-refusals.js +37 -0
- package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-refusals.js.map +1 -0
- package/dist/service/ssm/sim-ssm.d.ts +5 -0
- package/dist/service/ssm/sim-ssm.d.ts.map +1 -1
- package/dist/service/ssm/sim-ssm.js +7 -0
- package/dist/service/ssm/sim-ssm.js.map +1 -1
- package/package.json +1 -1
- package/dist/service/iam/cfn/role/sim-cfn-iam-role-policies-parser.d.ts +0 -25
- package/dist/service/iam/cfn/role/sim-cfn-iam-role-policies-parser.d.ts.map +0 -1
- package/dist/service/iam/cfn/role/sim-cfn-iam-role-policies-parser.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-cfn-iam-policy-creator.js","sourceRoot":"","sources":["../../../../../src/service/iam/cfn/policy/sim-cfn-iam-policy-creator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sim-cfn-iam-policy-creator.js","sourceRoot":"","sources":["../../../../../src/service/iam/cfn/policy/sim-cfn-iam-policy-creator.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,+BAA+B,GAEhC,MAAM,2CAA2C,CAAC;AAMnD;;;;;;;;;;GAUG;AACH,MAAM,OAAO,sBAAsB;IAChB,GAAG,CAAS;IACZ,WAAW,GAAG,IAAI,+BAA+B,EAAE,CAAC;IAErE,YAAY,UAA4C;QACtD,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,QAAwB,EACxB,UAAqC;QAErC,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAEtE,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;SACvC,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,gBAA2C;QAE3C,MAAM,OAAO,CAAC,GAAG,CACf,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAChD,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;YACrB,KAAK,EAAE;gBACL,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,gBAAgB,CAAC,UAAU;gBACvC,cAAc,EAAE,gBAAgB,CAAC,cAAc;aAChD;SACF,CAAC,CACH,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,gBAA2C;QAE3C,MAAM,OAAO,CAAC,GAAG,CACf,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAChD,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;YACrB,KAAK,EAAE;gBACL,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,gBAAgB,CAAC,UAAU;gBACvC,cAAc,EAAE,gBAAgB,CAAC,cAAc;aAChD;SACF,CAAC,CACH,CACF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { SimCfnResource } from "../../../cloudformation/resource/sim-cfn-resource.js";
|
|
2
|
+
import type { SimCfnTemplateValueRecord } from "../../../cloudformation/template/value/sim-cfn-template-value.js";
|
|
3
|
+
export interface SimCfnIamPolicyProperties {
|
|
4
|
+
readonly policyName: string;
|
|
5
|
+
readonly policyDocument: string;
|
|
6
|
+
readonly roleNames: readonly string[];
|
|
7
|
+
readonly usernames: readonly string[];
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Parses and validates AWS::IAM::Policy CloudFormation properties into the
|
|
11
|
+
* shape the sim IAM inline policy creator needs.
|
|
12
|
+
*
|
|
13
|
+
* Keeping the property-shape validation here keeps the creator focused on
|
|
14
|
+
* orchestrating IAM command calls.
|
|
15
|
+
*/
|
|
16
|
+
export declare class SimCfnIamPolicyPropertiesParser {
|
|
17
|
+
/**
|
|
18
|
+
* Parse the resolved CloudFormation properties for an AWS::IAM::Policy.
|
|
19
|
+
*/
|
|
20
|
+
parse(resource: SimCfnResource, properties: SimCfnTemplateValueRecord): SimCfnIamPolicyProperties;
|
|
21
|
+
private policyName;
|
|
22
|
+
private policyDocument;
|
|
23
|
+
/**
|
|
24
|
+
* The principal names one property attaches the policy to. Role and User
|
|
25
|
+
* Refs are resolved to names before creation, so entries arrive as plain
|
|
26
|
+
* strings. An absent property is not an error on its own, because a policy
|
|
27
|
+
* naming only the other kind of principal is the usual CDK shape.
|
|
28
|
+
*/
|
|
29
|
+
private principalNames;
|
|
30
|
+
/**
|
|
31
|
+
* IAM Groups are not simulated as CloudFormation policy principals, and
|
|
32
|
+
* silently dropping a grant would be misleading, so their presence fails
|
|
33
|
+
* creation.
|
|
34
|
+
*/
|
|
35
|
+
private rejectGroups;
|
|
36
|
+
private invalid;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=sim-cfn-iam-policy-properties-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cfn-iam-policy-properties-parser.d.ts","sourceRoot":"","sources":["../../../../../src/service/iam/cfn/policy/sim-cfn-iam-policy-properties-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kEAAkE,CAAC;AAElH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAMD;;;;;;GAMG;AACH,qBAAa,+BAA+B;IAC1C;;OAEG;IACH,KAAK,CACH,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,yBAAyB,GACpC,yBAAyB,CAmB3B;IAED,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,cAAc;IAiBtB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAwBtB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,OAAO;CAKhB"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
const resourceType = "AWS::IAM::Policy";
|
|
2
|
+
/**
|
|
3
|
+
* Parses and validates AWS::IAM::Policy CloudFormation properties into the
|
|
4
|
+
* shape the sim IAM inline policy creator needs.
|
|
5
|
+
*
|
|
6
|
+
* Keeping the property-shape validation here keeps the creator focused on
|
|
7
|
+
* orchestrating IAM command calls.
|
|
8
|
+
*/
|
|
9
|
+
export class SimCfnIamPolicyPropertiesParser {
|
|
10
|
+
/**
|
|
11
|
+
* Parse the resolved CloudFormation properties for an AWS::IAM::Policy.
|
|
12
|
+
*/
|
|
13
|
+
parse(resource, properties) {
|
|
14
|
+
this.rejectGroups(resource, properties);
|
|
15
|
+
const roleNames = this.principalNames(resource, properties, "Roles");
|
|
16
|
+
const usernames = this.principalNames(resource, properties, "Users");
|
|
17
|
+
if (roleNames.length === 0 && usernames.length === 0) {
|
|
18
|
+
throw this.invalid(resource, "Roles or Users must name at least one principal");
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
policyName: this.policyName(resource, properties),
|
|
22
|
+
policyDocument: this.policyDocument(resource, properties),
|
|
23
|
+
roleNames,
|
|
24
|
+
usernames,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
policyName(resource, properties) {
|
|
28
|
+
const policyName = properties["PolicyName"];
|
|
29
|
+
if (typeof policyName !== "string") {
|
|
30
|
+
throw this.invalid(resource, "PolicyName must be a string");
|
|
31
|
+
}
|
|
32
|
+
return policyName;
|
|
33
|
+
}
|
|
34
|
+
policyDocument(resource, properties) {
|
|
35
|
+
const policyDocument = properties["PolicyDocument"];
|
|
36
|
+
if (typeof policyDocument !== "object" ||
|
|
37
|
+
policyDocument === null ||
|
|
38
|
+
Array.isArray(policyDocument)) {
|
|
39
|
+
throw this.invalid(resource, "PolicyDocument must be an object");
|
|
40
|
+
}
|
|
41
|
+
return JSON.stringify(policyDocument);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The principal names one property attaches the policy to. Role and User
|
|
45
|
+
* Refs are resolved to names before creation, so entries arrive as plain
|
|
46
|
+
* strings. An absent property is not an error on its own, because a policy
|
|
47
|
+
* naming only the other kind of principal is the usual CDK shape.
|
|
48
|
+
*/
|
|
49
|
+
principalNames(resource, properties, property) {
|
|
50
|
+
// oxlint-disable-next-line security/detect-object-injection -- fixed property names.
|
|
51
|
+
const principals = properties[property];
|
|
52
|
+
if (principals === undefined) {
|
|
53
|
+
return [];
|
|
54
|
+
}
|
|
55
|
+
if (!Array.isArray(principals)) {
|
|
56
|
+
throw this.invalid(resource, `${property} must be an array`);
|
|
57
|
+
}
|
|
58
|
+
return principals.map((name) => {
|
|
59
|
+
if (typeof name !== "string") {
|
|
60
|
+
throw this.invalid(resource, `${property} entries must be strings`);
|
|
61
|
+
}
|
|
62
|
+
return name;
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* IAM Groups are not simulated as CloudFormation policy principals, and
|
|
67
|
+
* silently dropping a grant would be misleading, so their presence fails
|
|
68
|
+
* creation.
|
|
69
|
+
*/
|
|
70
|
+
rejectGroups(resource, properties) {
|
|
71
|
+
if (properties["Groups"] !== undefined) {
|
|
72
|
+
throw this.invalid(resource, "Groups are not simulated");
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
invalid(resource, reason) {
|
|
76
|
+
return new TypeError(`Invalid ${resourceType} ${resource.logicalId}: ${reason}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=sim-cfn-iam-policy-properties-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cfn-iam-policy-properties-parser.js","sourceRoot":"","sources":["../../../../../src/service/iam/cfn/policy/sim-cfn-iam-policy-properties-parser.ts"],"names":[],"mappings":"AAYA,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAExC;;;;;;GAMG;AACH,MAAM,OAAO,+BAA+B;IAC1C;;OAEG;IACH,KAAK,CACH,QAAwB,EACxB,UAAqC;QAErC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAExC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACrE,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAErE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,CAAC,OAAO,CAChB,QAAQ,EACR,iDAAiD,CAClD,CAAC;QACJ,CAAC;QAED,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC;YACjD,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC;YACzD,SAAS;YACT,SAAS;SACV,CAAC;IACJ,CAAC;IAEO,UAAU,CAChB,QAAwB,EACxB,UAAqC;QAErC,MAAM,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;QAE5C,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,cAAc,CACpB,QAAwB,EACxB,UAAqC;QAErC,MAAM,cAAc,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAEpD,IACE,OAAO,cAAc,KAAK,QAAQ;YAClC,cAAc,KAAK,IAAI;YACvB,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAC7B,CAAC;YACD,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,kCAAkC,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IACxC,CAAC;IAED;;;;;OAKG;IACK,cAAc,CACpB,QAAwB,EACxB,UAAqC,EACrC,QAA0C;QAE1C,qFAAqF;QACrF,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAExC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,QAAQ,mBAAmB,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC7B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,QAAQ,0BAA0B,CAAC,CAAC;YACtE,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,YAAY,CAClB,QAAwB,EACxB,UAAqC;QAErC,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAEO,OAAO,CAAC,QAAwB,EAAE,MAAc;QACtD,OAAO,IAAI,SAAS,CAClB,WAAW,YAAY,IAAI,QAAQ,CAAC,SAAS,KAAK,MAAM,EAAE,CAC3D,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { SimCfnResource } from "../../../cloudformation/resource/sim-cfn-resource.js";
|
|
2
2
|
import type { SimCfnTemplateValueRecord } from "../../../cloudformation/template/value/sim-cfn-template-value.js";
|
|
3
|
-
import { type
|
|
3
|
+
import { type SimCfnIamInlinePolicy } from "../sim-cfn-iam-policies-parser.js";
|
|
4
4
|
export interface SimCfnIamRoleProperties {
|
|
5
5
|
readonly roleName: string;
|
|
6
6
|
readonly path: string | undefined;
|
|
7
7
|
readonly description: string | undefined;
|
|
8
8
|
readonly assumeRolePolicyDocument: string;
|
|
9
|
-
readonly inlinePolicies: readonly
|
|
9
|
+
readonly inlinePolicies: readonly SimCfnIamInlinePolicy[];
|
|
10
10
|
readonly managedPolicyArns: readonly string[];
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-cfn-iam-role-properties-parser.d.ts","sourceRoot":"","sources":["../../../../../src/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kEAAkE,CAAC;AAClH,OAAO,EAEL,KAAK,
|
|
1
|
+
{"version":3,"file":"sim-cfn-iam-role-properties-parser.d.ts","sourceRoot":"","sources":["../../../../../src/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kEAAkE,CAAC;AAClH,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,mCAAmC,CAAC;AAE3C,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC1D,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/C;AAED;;;;;;GAMG;AACH,qBAAa,6BAA6B;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAE5B;IAEH;;OAEG;IACH,KAAK,CACH,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,yBAAyB,GACpC,uBAAuB,CAsBzB;IAED,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,UAAU;CAanB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SimCfnIamPoliciesParser, } from "../sim-cfn-iam-policies-parser.js";
|
|
2
2
|
/**
|
|
3
3
|
* Parses and validates AWS::IAM::Role CloudFormation properties into the shape
|
|
4
4
|
* the sim IAM Role creator needs.
|
|
@@ -7,7 +7,9 @@ import { SimCfnIamRolePoliciesParser, } from "./sim-cfn-iam-role-policies-parser
|
|
|
7
7
|
* orchestrating IAM command calls.
|
|
8
8
|
*/
|
|
9
9
|
export class SimCfnIamRolePropertiesParser {
|
|
10
|
-
policiesParser = new
|
|
10
|
+
policiesParser = new SimCfnIamPoliciesParser({
|
|
11
|
+
resourceType: "AWS::IAM::Role",
|
|
12
|
+
});
|
|
11
13
|
/**
|
|
12
14
|
* Parse the resolved CloudFormation properties for an AWS::IAM::Role.
|
|
13
15
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-cfn-iam-role-properties-parser.js","sourceRoot":"","sources":["../../../../../src/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"sim-cfn-iam-role-properties-parser.js","sourceRoot":"","sources":["../../../../../src/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,uBAAuB,GAExB,MAAM,mCAAmC,CAAC;AAW3C;;;;;;GAMG;AACH,MAAM,OAAO,6BAA6B;IACvB,cAAc,GAAG,IAAI,uBAAuB,CAAC;QAC5D,YAAY,EAAE,gBAAgB;KAC/B,CAAC,CAAC;IAEH;;OAEG;IACH,KAAK,CACH,QAAwB,EACxB,UAAqC;QAErC,OAAO;YACL,QAAQ,EACN,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;gBACjE,QAAQ,CAAC,SAAS;YACpB,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;YAC/D,WAAW,EAAE,IAAI,CAAC,cAAc,CAC9B,QAAQ,EACR,UAAU,CAAC,aAAa,CAAC,EACzB,aAAa,CACd;YACD,wBAAwB,EAAE,IAAI,CAAC,UAAU,CACvC,QAAQ,EACR,UAAU,CAAC,0BAA0B,CAAC,EACtC,0BAA0B,CAC3B;YACD,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC;YACxE,iBAAiB,EAAE,IAAI,CAAC,cAAc,CAAC,iBAAiB,CACtD,QAAQ,EACR,UAAU,CACX;SACF,CAAC;IACJ,CAAC;IAEO,cAAc,CACpB,QAAwB,EACxB,KAAoD,EACpD,KAAa;QAEb,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,SAAS,CACjB,0BAA0B,QAAQ,CAAC,SAAS,KAAK,KAAK,mBAAmB,CAC1E,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,UAAU,CAChB,QAAwB,EACxB,KAAoD,EACpD,KAAa;QAEb,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACxE,MAAM,IAAI,SAAS,CACjB,0BAA0B,QAAQ,CAAC,SAAS,KAAK,KAAK,oBAAoB,CAC3E,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;CACF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { SimCfnResource } from "../../cloudformation/resource/sim-cfn-resource.js";
|
|
2
|
+
import type { SimCfnTemplateValueRecord } from "../../cloudformation/template/value/sim-cfn-template-value.js";
|
|
3
|
+
export interface SimCfnIamInlinePolicy {
|
|
4
|
+
readonly policyName: string;
|
|
5
|
+
readonly policyDocument: string;
|
|
6
|
+
}
|
|
7
|
+
interface SimCfnIamPoliciesParserProperties {
|
|
8
|
+
/**
|
|
9
|
+
* The Resource type being parsed, for error messages.
|
|
10
|
+
*/
|
|
11
|
+
readonly resourceType: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Parses the policy collection properties an IAM identity Resource carries:
|
|
15
|
+
* the inline `Policies` list and the attached `ManagedPolicyArns` list.
|
|
16
|
+
*
|
|
17
|
+
* AWS::IAM::Role and AWS::IAM::User declare both in the same shape, and these
|
|
18
|
+
* list-shaped properties carry the bulk of the property validation, so
|
|
19
|
+
* grouping them here keeps each identity's own props parser small.
|
|
20
|
+
*/
|
|
21
|
+
export declare class SimCfnIamPoliciesParser {
|
|
22
|
+
private readonly resourceType;
|
|
23
|
+
constructor(properties: SimCfnIamPoliciesParserProperties);
|
|
24
|
+
/**
|
|
25
|
+
* Parse the inline `Policies` property into normalised inline policies.
|
|
26
|
+
*/
|
|
27
|
+
inlinePolicies(resource: SimCfnResource, properties: SimCfnTemplateValueRecord): readonly SimCfnIamInlinePolicy[];
|
|
28
|
+
/**
|
|
29
|
+
* Parse the attached `ManagedPolicyArns` property into policy ARN strings.
|
|
30
|
+
*/
|
|
31
|
+
managedPolicyArns(resource: SimCfnResource, properties: SimCfnTemplateValueRecord): readonly string[];
|
|
32
|
+
private inlinePolicy;
|
|
33
|
+
}
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=sim-cfn-iam-policies-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cfn-iam-policies-parser.d.ts","sourceRoot":"","sources":["../../../../src/service/iam/cfn/sim-cfn-iam-policies-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AACxF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+DAA+D,CAAC;AAE/G,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,UAAU,iCAAiC;IACzC;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;GAOG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC,YAAY,UAAU,EAAE,iCAAiC,EAExD;IAED;;OAEG;IACH,cAAc,CACZ,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,yBAAyB,GACpC,SAAS,qBAAqB,EAAE,CAclC;IAED;;OAEG;IACH,iBAAiB,CACf,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,yBAAyB,GACpC,SAAS,MAAM,EAAE,CAsBnB;IAED,OAAO,CAAC,YAAY;CAuCrB"}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Parses the
|
|
3
|
-
* list and the attached `ManagedPolicyArns` list.
|
|
2
|
+
* Parses the policy collection properties an IAM identity Resource carries:
|
|
3
|
+
* the inline `Policies` list and the attached `ManagedPolicyArns` list.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* AWS::IAM::Role and AWS::IAM::User declare both in the same shape, and these
|
|
6
|
+
* list-shaped properties carry the bulk of the property validation, so
|
|
7
|
+
* grouping them here keeps each identity's own props parser small.
|
|
7
8
|
*/
|
|
8
|
-
export class
|
|
9
|
+
export class SimCfnIamPoliciesParser {
|
|
10
|
+
resourceType;
|
|
11
|
+
constructor(properties) {
|
|
12
|
+
this.resourceType = properties.resourceType;
|
|
13
|
+
}
|
|
9
14
|
/**
|
|
10
15
|
* Parse the inline `Policies` property into normalised inline policies.
|
|
11
16
|
*/
|
|
@@ -15,7 +20,7 @@ export class SimCfnIamRolePoliciesParser {
|
|
|
15
20
|
return [];
|
|
16
21
|
}
|
|
17
22
|
if (!Array.isArray(policies)) {
|
|
18
|
-
throw new TypeError(`Invalid
|
|
23
|
+
throw new TypeError(`Invalid ${this.resourceType} ${resource.logicalId}: Policies must be an array`);
|
|
19
24
|
}
|
|
20
25
|
return policies.map((policy) => this.inlinePolicy(resource, policy));
|
|
21
26
|
}
|
|
@@ -28,11 +33,11 @@ export class SimCfnIamRolePoliciesParser {
|
|
|
28
33
|
return [];
|
|
29
34
|
}
|
|
30
35
|
if (!Array.isArray(managedPolicyArns)) {
|
|
31
|
-
throw new TypeError(`Invalid
|
|
36
|
+
throw new TypeError(`Invalid ${this.resourceType} ${resource.logicalId}: ManagedPolicyArns must be an array`);
|
|
32
37
|
}
|
|
33
38
|
return managedPolicyArns.map((arn) => {
|
|
34
39
|
if (typeof arn !== "string") {
|
|
35
|
-
throw new TypeError(`Invalid
|
|
40
|
+
throw new TypeError(`Invalid ${this.resourceType} ${resource.logicalId}: each ManagedPolicyArns entry must be a string`);
|
|
36
41
|
}
|
|
37
42
|
return arn;
|
|
38
43
|
});
|
|
@@ -41,17 +46,17 @@ export class SimCfnIamRolePoliciesParser {
|
|
|
41
46
|
if (typeof policy !== "object" ||
|
|
42
47
|
policy === null ||
|
|
43
48
|
Array.isArray(policy)) {
|
|
44
|
-
throw new TypeError(`Invalid
|
|
49
|
+
throw new TypeError(`Invalid ${this.resourceType} ${resource.logicalId}: each Policies entry must be an object`);
|
|
45
50
|
}
|
|
46
51
|
const policyName = policy["PolicyName"];
|
|
47
52
|
if (typeof policyName !== "string") {
|
|
48
|
-
throw new TypeError(`Invalid
|
|
53
|
+
throw new TypeError(`Invalid ${this.resourceType} ${resource.logicalId}: Policies entry PolicyName must be a string`);
|
|
49
54
|
}
|
|
50
55
|
const policyDocument = policy["PolicyDocument"];
|
|
51
56
|
if (typeof policyDocument !== "object" ||
|
|
52
57
|
policyDocument === null ||
|
|
53
58
|
Array.isArray(policyDocument)) {
|
|
54
|
-
throw new TypeError(`Invalid
|
|
59
|
+
throw new TypeError(`Invalid ${this.resourceType} ${resource.logicalId}: Policies entry PolicyDocument must be an object`);
|
|
55
60
|
}
|
|
56
61
|
return {
|
|
57
62
|
policyName,
|
|
@@ -59,4 +64,4 @@ export class SimCfnIamRolePoliciesParser {
|
|
|
59
64
|
};
|
|
60
65
|
}
|
|
61
66
|
}
|
|
62
|
-
//# sourceMappingURL=sim-cfn-iam-
|
|
67
|
+
//# sourceMappingURL=sim-cfn-iam-policies-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cfn-iam-policies-parser.js","sourceRoot":"","sources":["../../../../src/service/iam/cfn/sim-cfn-iam-policies-parser.ts"],"names":[],"mappings":"AAeA;;;;;;;GAOG;AACH,MAAM,OAAO,uBAAuB;IACjB,YAAY,CAAS;IAEtC,YAAY,UAA6C;QACvD,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,cAAc,CACZ,QAAwB,EACxB,UAAqC;QAErC,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QAExC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,SAAS,CACjB,WAAW,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,SAAS,6BAA6B,CAChF,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,iBAAiB,CACf,QAAwB,EACxB,UAAqC;QAErC,MAAM,iBAAiB,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;QAE1D,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,SAAS,CACjB,WAAW,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,SAAS,sCAAsC,CACzF,CAAC;QACJ,CAAC;QAED,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACnC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,IAAI,SAAS,CACjB,WAAW,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,SAAS,iDAAiD,CACpG,CAAC;YACJ,CAAC;YAED,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,YAAY,CAClB,QAAwB,EACxB,MAAqD;QAErD,IACE,OAAO,MAAM,KAAK,QAAQ;YAC1B,MAAM,KAAK,IAAI;YACf,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EACrB,CAAC;YACD,MAAM,IAAI,SAAS,CACjB,WAAW,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,SAAS,yCAAyC,CAC5F,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QAExC,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,IAAI,SAAS,CACjB,WAAW,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,SAAS,8CAA8C,CACjG,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAEhD,IACE,OAAO,cAAc,KAAK,QAAQ;YAClC,cAAc,KAAK,IAAI;YACvB,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAC7B,CAAC;YACD,MAAM,IAAI,SAAS,CACjB,WAAW,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,SAAS,mDAAmD,CACtG,CAAC;QACJ,CAAC;QAED,OAAO;YACL,UAAU;YACV,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;SAC/C,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -10,12 +10,23 @@ interface SimCfnIamResourceDeleterProperties {
|
|
|
10
10
|
export declare class SimCfnIamResourceDeleter {
|
|
11
11
|
private readonly iam;
|
|
12
12
|
private readonly roleDeleter;
|
|
13
|
+
private readonly userDeleter;
|
|
13
14
|
constructor(properties: SimCfnIamResourceDeleterProperties);
|
|
14
15
|
/**
|
|
15
16
|
* Delete a simulated IAM resource created from a CloudFormation Resource.
|
|
16
17
|
*/
|
|
17
18
|
delete(resourceTypeName: string, resource: SimCfnResource, properties: SimCfnTemplateValueRecord): Promise<void>;
|
|
18
19
|
private deleteManagedPolicy;
|
|
20
|
+
/**
|
|
21
|
+
* Take the Managed Policy off every Role still carrying it.
|
|
22
|
+
*
|
|
23
|
+
* DeletePolicy refuses a policy anything is attached to, and an
|
|
24
|
+
* AWS::IAM::ManagedPolicy attaches itself to the Roles its `Roles` property
|
|
25
|
+
* names. A Role the same Stack created gives the policy up as its own
|
|
26
|
+
* Resource is deleted. A Role declared outside the Stack keeps it. This
|
|
27
|
+
* clears whatever attachments are left either way.
|
|
28
|
+
*/
|
|
29
|
+
private detachManagedPolicy;
|
|
19
30
|
/**
|
|
20
31
|
* Take an AWS::IAM::Policy back off the Roles it was put on.
|
|
21
32
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-cfn-iam-resource-deleter.d.ts","sourceRoot":"","sources":["../../../../src/service/iam/cfn/sim-cfn-iam-resource-deleter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sim-cfn-iam-resource-deleter.d.ts","sourceRoot":"","sources":["../../../../src/service/iam/cfn/sim-cfn-iam-resource-deleter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AACxF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+DAA+D,CAAC;AAC/G,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAM5C,UAAU,kCAAkC;IAC1C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IAEnD,YAAY,UAAU,EAAE,kCAAkC,EAIzD;IAED;;OAEG;IACG,MAAM,CACV,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,yBAAyB,GACpC,OAAO,CAAC,IAAI,CAAC,CAwBf;YAEa,mBAAmB;IAWjC;;;;;;;;OAQG;YACW,mBAAmB;IAajC;;;;;;OAMG;YACW,kBAAkB;CAqBjC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SimCfnIamRoleDeleter } from "./role/sim-cfn-iam-role-deleter.js";
|
|
2
|
+
import { SimCfnIamUserDeleter } from "./user/sim-cfn-iam-user-deleter.js";
|
|
2
3
|
import { assertDefined } from "../../../util/type-guard/defined.js";
|
|
3
4
|
/**
|
|
4
5
|
* Deletes the simulated IAM resources a CloudFormation Stack created.
|
|
@@ -6,9 +7,11 @@ import { assertDefined } from "../../../util/type-guard/defined.js";
|
|
|
6
7
|
export class SimCfnIamResourceDeleter {
|
|
7
8
|
iam;
|
|
8
9
|
roleDeleter;
|
|
10
|
+
userDeleter;
|
|
9
11
|
constructor(properties) {
|
|
10
12
|
this.iam = properties.iam;
|
|
11
13
|
this.roleDeleter = new SimCfnIamRoleDeleter({ iam: properties.iam });
|
|
14
|
+
this.userDeleter = new SimCfnIamUserDeleter({ iam: properties.iam });
|
|
12
15
|
}
|
|
13
16
|
/**
|
|
14
17
|
* Delete a simulated IAM resource created from a CloudFormation Resource.
|
|
@@ -27,6 +30,10 @@ export class SimCfnIamResourceDeleter {
|
|
|
27
30
|
await this.roleDeleter.delete(resource);
|
|
28
31
|
return;
|
|
29
32
|
}
|
|
33
|
+
case "User": {
|
|
34
|
+
await this.userDeleter.delete(resource);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
30
37
|
default: {
|
|
31
38
|
throw new Error(`Unsupported sim IAM CloudFormation Resource ${resourceTypeName} deletion`);
|
|
32
39
|
}
|
|
@@ -35,8 +42,26 @@ export class SimCfnIamResourceDeleter {
|
|
|
35
42
|
async deleteManagedPolicy(resource) {
|
|
36
43
|
const policy = resource.simResource;
|
|
37
44
|
assertDefined(policy, `sim IAM Managed Policy for CloudFormation Resource ${resource.logicalId}`);
|
|
45
|
+
await this.detachManagedPolicy(policy.arn);
|
|
38
46
|
await this.iam.deletePolicy({ input: { PolicyArn: policy.arn } });
|
|
39
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Take the Managed Policy off every Role still carrying it.
|
|
50
|
+
*
|
|
51
|
+
* DeletePolicy refuses a policy anything is attached to, and an
|
|
52
|
+
* AWS::IAM::ManagedPolicy attaches itself to the Roles its `Roles` property
|
|
53
|
+
* names. A Role the same Stack created gives the policy up as its own
|
|
54
|
+
* Resource is deleted. A Role declared outside the Stack keeps it. This
|
|
55
|
+
* clears whatever attachments are left either way.
|
|
56
|
+
*/
|
|
57
|
+
async detachManagedPolicy(policyArn) {
|
|
58
|
+
await Promise.all(this.iam.roles
|
|
59
|
+
.values()
|
|
60
|
+
.filter((role) => role.attachedPolicyArns.has(policyArn))
|
|
61
|
+
.map(async (role) => this.iam.detachRolePolicy({
|
|
62
|
+
input: { RoleName: role.roleName, PolicyArn: policyArn },
|
|
63
|
+
})));
|
|
64
|
+
}
|
|
40
65
|
/**
|
|
41
66
|
* Take an AWS::IAM::Policy back off the Roles it was put on.
|
|
42
67
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-cfn-iam-resource-deleter.js","sourceRoot":"","sources":["../../../../src/service/iam/cfn/sim-cfn-iam-resource-deleter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sim-cfn-iam-resource-deleter.js","sourceRoot":"","sources":["../../../../src/service/iam/cfn/sim-cfn-iam-resource-deleter.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAMpE;;GAEG;AACH,MAAM,OAAO,wBAAwB;IAClB,GAAG,CAAS;IACZ,WAAW,CAAuB;IAClC,WAAW,CAAuB;IAEnD,YAAY,UAA8C;QACxD,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,oBAAoB,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,WAAW,GAAG,IAAI,oBAAoB,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,gBAAwB,EACxB,QAAwB,EACxB,UAAqC;QAErC,QAAQ,gBAAgB,EAAE,CAAC;YACzB,KAAK,eAAe,EAAE,CAAC;gBACrB,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;gBACzC,OAAO;YACT,CAAC;YACD,KAAK,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBAC1C,OAAO;YACT,CAAC;YACD,KAAK,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACxC,OAAO;YACT,CAAC;YACD,KAAK,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACxC,OAAO;YACT,CAAC;YACD,SAAS,CAAC;gBACR,MAAM,IAAI,KAAK,CACb,+CAA+C,gBAAgB,WAAW,CAC3E,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,QAAwB;QACxD,MAAM,MAAM,GAAG,QAAQ,CAAC,WAA8C,CAAC;QACvE,aAAa,CACX,MAAM,EACN,sDAAsD,QAAQ,CAAC,SAAS,EAAE,CAC3E,CAAC;QAEF,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,mBAAmB,CAAC,SAAiB;QACjD,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,GAAG,CAAC,KAAK;aACX,MAAM,EAAE;aACR,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;aACxD,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAClB,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC;YACxB,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE;SACzD,CAAC,CACH,CACJ,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,kBAAkB,CAC9B,UAAqC;QAErC,MAAM,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QAElC,yEAAyE;QACzE,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,MAAM,OAAO,CAAC,GAAG,CACf,KAAK;aACF,MAAM,CAAC,CAAC,QAAQ,EAAsB,EAAE,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC;aACtE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CACtB,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC;YACxB,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE;SACtD,CAAC,CACH,CACJ,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -9,6 +9,7 @@ export declare class SimIamCloudFormationResourceFactory implements SimCfnServic
|
|
|
9
9
|
private readonly managedPolicyCreator;
|
|
10
10
|
private readonly policyCreator;
|
|
11
11
|
private readonly roleCreator;
|
|
12
|
+
private readonly userCreator;
|
|
12
13
|
private readonly deleter;
|
|
13
14
|
constructor(iam: SimIam);
|
|
14
15
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-cfn-iam-resource-factory.d.ts","sourceRoot":"","sources":["../../../../src/service/iam/cfn/sim-cfn-iam-resource-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,sCAAsC,EACvC,MAAM,mDAAmD,CAAC;AAC3D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wEAAwE,CAAC;AAC3H,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"sim-cfn-iam-resource-factory.d.ts","sourceRoot":"","sources":["../../../../src/service/iam/cfn/sim-cfn-iam-resource-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,sCAAsC,EACvC,MAAM,mDAAmD,CAAC;AAC3D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wEAAwE,CAAC;AAC3H,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAM5C,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAErH;;GAEG;AACH,qBAAa,mCAAoC,YAAW,4BAA4B;IACtF,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAgC;IACrE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;IACvD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IAEnD,YAAY,GAAG,EAAE,MAAM,EAMtB;IAED;;OAEG;IACG,MAAM,CACV,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,sCAAsC,GAC9C,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAiC7B;IAED;;OAEG;IACG,MAAM,CACV,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,sCAAsC,GAC9C,OAAO,CAAC,IAAI,CAAC,CAMf;CACF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { SimCfnIamManagedPolicyCreator } from "./managed-policy/sim-cfn-iam-managed-policy-creator.js";
|
|
2
2
|
import { SimCfnIamPolicyCreator } from "./policy/sim-cfn-iam-policy-creator.js";
|
|
3
3
|
import { SimCfnIamRoleCreator } from "./role/sim-cfn-iam-role-creator.js";
|
|
4
|
+
import { SimCfnIamUserCreator } from "./user/sim-cfn-iam-user-creator.js";
|
|
4
5
|
import { SimCfnIamResourceDeleter } from "./sim-cfn-iam-resource-deleter.js";
|
|
5
6
|
/**
|
|
6
7
|
* CloudFormation Resource factory for simulated IAM resources.
|
|
@@ -9,11 +10,13 @@ export class SimIamCloudFormationResourceFactory {
|
|
|
9
10
|
managedPolicyCreator;
|
|
10
11
|
policyCreator;
|
|
11
12
|
roleCreator;
|
|
13
|
+
userCreator;
|
|
12
14
|
deleter;
|
|
13
15
|
constructor(iam) {
|
|
14
16
|
this.managedPolicyCreator = new SimCfnIamManagedPolicyCreator({ iam });
|
|
15
17
|
this.policyCreator = new SimCfnIamPolicyCreator({ iam });
|
|
16
18
|
this.roleCreator = new SimCfnIamRoleCreator({ iam });
|
|
19
|
+
this.userCreator = new SimCfnIamUserCreator({ iam });
|
|
17
20
|
this.deleter = new SimCfnIamResourceDeleter({ iam });
|
|
18
21
|
}
|
|
19
22
|
/**
|
|
@@ -31,6 +34,9 @@ export class SimIamCloudFormationResourceFactory {
|
|
|
31
34
|
case "Role": {
|
|
32
35
|
return await this.roleCreator.create(resource, context.resolvedProperties ?? resource.properties);
|
|
33
36
|
}
|
|
37
|
+
case "User": {
|
|
38
|
+
return await this.userCreator.create(resource, context.resolvedProperties ?? resource.properties);
|
|
39
|
+
}
|
|
34
40
|
default: {
|
|
35
41
|
throw new Error(`Unsupported sim IAM CloudFormation Resource ${resourceTypeName}`);
|
|
36
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-cfn-iam-resource-factory.js","sourceRoot":"","sources":["../../../../src/service/iam/cfn/sim-cfn-iam-resource-factory.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,6BAA6B,EAAE,MAAM,wDAAwD,CAAC;AACvG,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAG7E;;GAEG;AACH,MAAM,OAAO,mCAAmC;IAC7B,oBAAoB,CAAgC;IACpD,aAAa,CAAyB;IACtC,WAAW,CAAuB;IAClC,OAAO,CAA2B;IAEnD,YAAY,GAAW;QACrB,IAAI,CAAC,oBAAoB,GAAG,IAAI,6BAA6B,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,IAAI,sBAAsB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,GAAG,IAAI,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,GAAG,IAAI,wBAAwB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,gBAAwB,EACxB,QAAwB,EACxB,OAA+C;QAE/C,QAAQ,gBAAgB,EAAE,CAAC;YACzB,KAAK,eAAe,EAAE,CAAC;gBACrB,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAC3C,QAAQ,EACR,OAAO,CAAC,kBAAkB,IAAI,QAAQ,CAAC,UAAU,CAClD,CAAC;YACJ,CAAC;YACD,KAAK,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAC7B,QAAQ,EACR,OAAO,CAAC,kBAAkB,IAAI,QAAQ,CAAC,UAAU,CAClD,CAAC;gBACF,OAAO;YACT,CAAC;YACD,KAAK,MAAM,EAAE,CAAC;gBACZ,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAClC,QAAQ,EACR,OAAO,CAAC,kBAAkB,IAAI,QAAQ,CAAC,UAAU,CAClD,CAAC;YACJ,CAAC;YACD,SAAS,CAAC;gBACR,MAAM,IAAI,KAAK,CACb,+CAA+C,gBAAgB,EAAE,CAClE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,gBAAwB,EACxB,QAAwB,EACxB,OAA+C;QAE/C,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CACvB,gBAAgB,EAChB,QAAQ,EACR,OAAO,CAAC,kBAAkB,IAAI,QAAQ,CAAC,UAAU,CAClD,CAAC;IACJ,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"sim-cfn-iam-resource-factory.js","sourceRoot":"","sources":["../../../../src/service/iam/cfn/sim-cfn-iam-resource-factory.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,6BAA6B,EAAE,MAAM,wDAAwD,CAAC;AACvG,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAG7E;;GAEG;AACH,MAAM,OAAO,mCAAmC;IAC7B,oBAAoB,CAAgC;IACpD,aAAa,CAAyB;IACtC,WAAW,CAAuB;IAClC,WAAW,CAAuB;IAClC,OAAO,CAA2B;IAEnD,YAAY,GAAW;QACrB,IAAI,CAAC,oBAAoB,GAAG,IAAI,6BAA6B,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,IAAI,sBAAsB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,GAAG,IAAI,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,IAAI,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,GAAG,IAAI,wBAAwB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,gBAAwB,EACxB,QAAwB,EACxB,OAA+C;QAE/C,QAAQ,gBAAgB,EAAE,CAAC;YACzB,KAAK,eAAe,EAAE,CAAC;gBACrB,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAC3C,QAAQ,EACR,OAAO,CAAC,kBAAkB,IAAI,QAAQ,CAAC,UAAU,CAClD,CAAC;YACJ,CAAC;YACD,KAAK,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAC7B,QAAQ,EACR,OAAO,CAAC,kBAAkB,IAAI,QAAQ,CAAC,UAAU,CAClD,CAAC;gBACF,OAAO;YACT,CAAC;YACD,KAAK,MAAM,EAAE,CAAC;gBACZ,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAClC,QAAQ,EACR,OAAO,CAAC,kBAAkB,IAAI,QAAQ,CAAC,UAAU,CAClD,CAAC;YACJ,CAAC;YACD,KAAK,MAAM,EAAE,CAAC;gBACZ,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAClC,QAAQ,EACR,OAAO,CAAC,kBAAkB,IAAI,QAAQ,CAAC,UAAU,CAClD,CAAC;YACJ,CAAC;YACD,SAAS,CAAC;gBACR,MAAM,IAAI,KAAK,CACb,+CAA+C,gBAAgB,EAAE,CAClE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,gBAAwB,EACxB,QAAwB,EACxB,OAA+C;QAE/C,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CACvB,gBAAgB,EAChB,QAAQ,EACR,OAAO,CAAC,kBAAkB,IAAI,QAAQ,CAAC,UAAU,CAClD,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { SimCfnResource } from "../../../cloudformation/resource/sim-cfn-resource.js";
|
|
2
|
+
import type { SimCfnTemplateValueRecord } from "../../../cloudformation/template/value/sim-cfn-template-value.js";
|
|
3
|
+
import type { SimIam } from "../../sim-iam.js";
|
|
4
|
+
import type { SimIamUser } from "../../user/sim-iam-user.js";
|
|
5
|
+
interface SimCfnIamUserCreatorProperties {
|
|
6
|
+
readonly iam: SimIam;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Creates simulated IAM Users from CloudFormation Resources.
|
|
10
|
+
*/
|
|
11
|
+
export declare class SimCfnIamUserCreator {
|
|
12
|
+
private readonly iam;
|
|
13
|
+
private readonly propsParser;
|
|
14
|
+
constructor(properties: SimCfnIamUserCreatorProperties);
|
|
15
|
+
/**
|
|
16
|
+
* Create a simulated User from an AWS::IAM::User Resource.
|
|
17
|
+
*/
|
|
18
|
+
create(resource: SimCfnResource, properties: SimCfnTemplateValueRecord): Promise<SimIamUser>;
|
|
19
|
+
private putInlinePolicies;
|
|
20
|
+
private attachManagedPolicies;
|
|
21
|
+
/**
|
|
22
|
+
* Give the User a console password, the way real CloudFormation calls
|
|
23
|
+
* CreateLoginProfile for a `LoginProfile` property.
|
|
24
|
+
*/
|
|
25
|
+
private createLoginProfile;
|
|
26
|
+
}
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=sim-cfn-iam-user-creator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cfn-iam-user-creator.d.ts","sourceRoot":"","sources":["../../../../../src/service/iam/cfn/user/sim-cfn-iam-user-creator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kEAAkE,CAAC;AAClH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,4BAA4B,CAAC;AAO7E,UAAU,8BAA8B;IACtC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuC;IAEnE,YAAY,UAAU,EAAE,8BAA8B,EAErD;IAED;;OAEG;IACG,MAAM,CACV,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,yBAAyB,GACpC,OAAO,CAAC,UAAU,CAAC,CAuBrB;YAEa,iBAAiB;YAgBjB,qBAAqB;IAenC;;;OAGG;YACW,kBAAkB;CAiBjC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { assertDefined } from "../../../../util/type-guard/defined.js";
|
|
2
|
+
import { SimCfnIamUserPropertiesParser, } from "./sim-cfn-iam-user-properties-parser.js";
|
|
3
|
+
/**
|
|
4
|
+
* Creates simulated IAM Users from CloudFormation Resources.
|
|
5
|
+
*/
|
|
6
|
+
export class SimCfnIamUserCreator {
|
|
7
|
+
iam;
|
|
8
|
+
propsParser = new SimCfnIamUserPropertiesParser();
|
|
9
|
+
constructor(properties) {
|
|
10
|
+
this.iam = properties.iam;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Create a simulated User from an AWS::IAM::User Resource.
|
|
14
|
+
*/
|
|
15
|
+
async create(resource, properties) {
|
|
16
|
+
const userProperties = this.propsParser.parse(resource, properties);
|
|
17
|
+
await this.iam.createUser({
|
|
18
|
+
input: {
|
|
19
|
+
UserName: userProperties.userName,
|
|
20
|
+
Path: userProperties.path,
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
await Promise.all([
|
|
24
|
+
this.putInlinePolicies(userProperties),
|
|
25
|
+
this.attachManagedPolicies(userProperties),
|
|
26
|
+
this.createLoginProfile(userProperties),
|
|
27
|
+
]);
|
|
28
|
+
const user = this.iam.users.get(userProperties.userName);
|
|
29
|
+
assertDefined(user, `Sim IAM User ${userProperties.userName} after CloudFormation creation`);
|
|
30
|
+
return user;
|
|
31
|
+
}
|
|
32
|
+
async putInlinePolicies(userProperties) {
|
|
33
|
+
await Promise.all(userProperties.inlinePolicies.map(async (inlinePolicy) => this.iam.putUserPolicy({
|
|
34
|
+
input: {
|
|
35
|
+
UserName: userProperties.userName,
|
|
36
|
+
PolicyName: inlinePolicy.policyName,
|
|
37
|
+
PolicyDocument: inlinePolicy.policyDocument,
|
|
38
|
+
},
|
|
39
|
+
})));
|
|
40
|
+
}
|
|
41
|
+
async attachManagedPolicies(userProperties) {
|
|
42
|
+
await Promise.all(userProperties.managedPolicyArns.map(async (policyArn) => this.iam.attachUserPolicy({
|
|
43
|
+
input: {
|
|
44
|
+
UserName: userProperties.userName,
|
|
45
|
+
PolicyArn: policyArn,
|
|
46
|
+
},
|
|
47
|
+
})));
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Give the User a console password, the way real CloudFormation calls
|
|
51
|
+
* CreateLoginProfile for a `LoginProfile` property.
|
|
52
|
+
*/
|
|
53
|
+
async createLoginProfile(userProperties) {
|
|
54
|
+
const { loginProfile } = userProperties;
|
|
55
|
+
if (loginProfile === undefined) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
await this.iam.createLoginProfile({
|
|
59
|
+
input: {
|
|
60
|
+
UserName: userProperties.userName,
|
|
61
|
+
Password: loginProfile.password,
|
|
62
|
+
PasswordResetRequired: loginProfile.passwordResetRequired,
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=sim-cfn-iam-user-creator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cfn-iam-user-creator.js","sourceRoot":"","sources":["../../../../../src/service/iam/cfn/user/sim-cfn-iam-user-creator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EACL,6BAA6B,GAE9B,MAAM,yCAAyC,CAAC;AAMjD;;GAEG;AACH,MAAM,OAAO,oBAAoB;IACd,GAAG,CAAS;IACZ,WAAW,GAAG,IAAI,6BAA6B,EAAE,CAAC;IAEnE,YAAY,UAA0C;QACpD,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,QAAwB,EACxB,UAAqC;QAErC,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAEpE,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;YACxB,KAAK,EAAE;gBACL,QAAQ,EAAE,cAAc,CAAC,QAAQ;gBACjC,IAAI,EAAE,cAAc,CAAC,IAAI;aAC1B;SACF,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC;YACtC,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC;YAC1C,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC;SACxC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,QAA0B,CAAC,CAAC;QAC3E,aAAa,CACX,IAAI,EACJ,gBAAgB,cAAc,CAAC,QAAQ,gCAAgC,CACxE,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,cAAuC;QAEvC,MAAM,OAAO,CAAC,GAAG,CACf,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,CACvD,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;YACrB,KAAK,EAAE;gBACL,QAAQ,EAAE,cAAc,CAAC,QAAQ;gBACjC,UAAU,EAAE,YAAY,CAAC,UAAU;gBACnC,cAAc,EAAE,YAAY,CAAC,cAAc;aAC5C;SACF,CAAC,CACH,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,cAAuC;QAEvC,MAAM,OAAO,CAAC,GAAG,CACf,cAAc,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CACvD,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC;YACxB,KAAK,EAAE;gBACL,QAAQ,EAAE,cAAc,CAAC,QAAQ;gBACjC,SAAS,EAAE,SAAS;aACrB;SACF,CAAC,CACH,CACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,kBAAkB,CAC9B,cAAuC;QAEvC,MAAM,EAAE,YAAY,EAAE,GAAG,cAAc,CAAC;QAExC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC;YAChC,KAAK,EAAE;gBACL,QAAQ,EAAE,cAAc,CAAC,QAAQ;gBACjC,QAAQ,EAAE,YAAY,CAAC,QAAQ;gBAC/B,qBAAqB,EAAE,YAAY,CAAC,qBAAqB;aAC1D;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { SimCfnResource } from "../../../cloudformation/resource/sim-cfn-resource.js";
|
|
2
|
+
import type { SimIam } from "../../sim-iam.js";
|
|
3
|
+
interface SimCfnIamUserDeleterProperties {
|
|
4
|
+
readonly iam: SimIam;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Deletes simulated Users created from AWS::IAM::User Resources.
|
|
8
|
+
*
|
|
9
|
+
* DeleteUser refuses a User that still has policies on it, the way DeleteRole
|
|
10
|
+
* refuses a Role, so the User's policies come off first. Real CloudFormation
|
|
11
|
+
* does the same for the ones it put there itself: a `ManagedPolicyArns` entry
|
|
12
|
+
* is detached and a `Policies` entry removed as part of deleting the User.
|
|
13
|
+
*
|
|
14
|
+
* Sim IAM serves no DeleteUserPolicy or DetachUserPolicy, so both come off the
|
|
15
|
+
* User record here rather than through a command.
|
|
16
|
+
*/
|
|
17
|
+
export declare class SimCfnIamUserDeleter {
|
|
18
|
+
private readonly iam;
|
|
19
|
+
constructor(properties: SimCfnIamUserDeleterProperties);
|
|
20
|
+
/**
|
|
21
|
+
* Delete the User a CloudFormation Resource created.
|
|
22
|
+
*/
|
|
23
|
+
delete(resource: SimCfnResource): Promise<void>;
|
|
24
|
+
}
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=sim-cfn-iam-user-deleter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cfn-iam-user-deleter.d.ts","sourceRoot":"","sources":["../../../../../src/service/iam/cfn/user/sim-cfn-iam-user-deleter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI/C,UAAU,8BAA8B;IACtC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,YAAY,UAAU,EAAE,8BAA8B,EAErD;IAED;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAWpD;CACF"}
|