@kensio/yulin 1.20.12 → 1.20.14

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.
Files changed (662) hide show
  1. package/dist/service/acm/cfn/certificate/sim-cfn-acm-cert-creator.js +6 -4
  2. package/dist/service/acm/cfn/sim-cfn-acm-resource-factory.d.ts +2 -2
  3. package/dist/service/acm/cfn/sim-cfn-acm-resource-factory.js +3 -4
  4. package/dist/service/acm/cfn/validation/sim-cfn-acm-cert-validation.d.ts +2 -1
  5. package/dist/service/acm/cfn/validation/sim-cfn-acm-cert-validation.js +2 -2
  6. package/dist/service/acm/cfn/validation/sim-cfn-acm-validation-records.d.ts +2 -1
  7. package/dist/service/acm/cfn/validation/sim-cfn-acm-validation-records.js +4 -4
  8. package/dist/service/acm/command/delete-certificate/delete-certificate-authorizer.js +1 -0
  9. package/dist/service/acm/command/describe-certificate/describe-certificate-authorizer.js +1 -0
  10. package/dist/service/acm/command/list-certificates/list-certificates-authorizer.js +1 -0
  11. package/dist/service/acm/command/request-certificate/request-certificate-authorizer.js +1 -0
  12. package/dist/service/acm/sim-acm.d.ts +1 -1
  13. package/dist/service/acm/sim-acm.js +3 -2
  14. package/dist/service/apigateway/cfn/api/sim-cfn-rest-api-creator.d.ts +2 -1
  15. package/dist/service/apigateway/cfn/api/sim-cfn-rest-api-creator.js +11 -13
  16. package/dist/service/apigateway/cfn/authorizer/sim-cfn-rest-api-authorizer-creator.d.ts +2 -1
  17. package/dist/service/apigateway/cfn/authorizer/sim-cfn-rest-api-authorizer-creator.js +2 -4
  18. package/dist/service/apigateway/cfn/deployment/sim-cfn-rest-api-deployment-creator.d.ts +2 -1
  19. package/dist/service/apigateway/cfn/deployment/sim-cfn-rest-api-deployment-creator.js +2 -4
  20. package/dist/service/apigateway/cfn/method/sim-cfn-rest-api-method-creator.d.ts +2 -1
  21. package/dist/service/apigateway/cfn/method/sim-cfn-rest-api-method-creator.js +3 -5
  22. package/dist/service/apigateway/cfn/method/sim-cfn-rest-api-method-integration.d.ts +2 -1
  23. package/dist/service/apigateway/cfn/method/sim-cfn-rest-api-method-integration.js +3 -3
  24. package/dist/service/apigateway/cfn/resource/sim-cfn-rest-api-resource-creator.d.ts +2 -1
  25. package/dist/service/apigateway/cfn/resource/sim-cfn-rest-api-resource-creator.js +2 -4
  26. package/dist/service/apigateway/cfn/sim-cfn-api-gateway-resource-deleter.d.ts +2 -1
  27. package/dist/service/apigateway/cfn/sim-cfn-api-gateway-resource-deleter.js +3 -5
  28. package/dist/service/apigateway/cfn/sim-cfn-api-gateway-resource-factory.js +9 -7
  29. package/dist/service/apigateway/cfn/sim-cfn-rest-api-part-deleter.d.ts +2 -7
  30. package/dist/service/apigateway/cfn/sim-cfn-rest-api-part-deleter.js +12 -42
  31. package/dist/service/apigateway/cfn/sim-cfn-rest-api-part-values.d.ts +10 -0
  32. package/dist/service/apigateway/cfn/sim-cfn-rest-api-part-values.js +21 -0
  33. package/dist/service/apigateway/cfn/stage/sim-cfn-rest-api-stage-creator.d.ts +2 -1
  34. package/dist/service/apigateway/cfn/stage/sim-cfn-rest-api-stage-creator.js +2 -4
  35. package/dist/service/apigateway/serve/auth/sim-rest-api-authorizer-policy.js +3 -0
  36. package/dist/service/apigateway/serve/sim-api-gateway-router.js +5 -2
  37. package/dist/service/apigateway/sim-api-gateway-commands.d.ts +1 -1
  38. package/dist/service/apigateway/sim-api-gateway-commands.js +3 -2
  39. package/dist/service/apigatewayv2/cfn/api/sim-cfn-http-api-creator.d.ts +2 -1
  40. package/dist/service/apigatewayv2/cfn/api/sim-cfn-http-api-creator.js +5 -9
  41. package/dist/service/apigatewayv2/cfn/authorizer/sim-cfn-http-api-authorizer-creator.d.ts +2 -1
  42. package/dist/service/apigatewayv2/cfn/authorizer/sim-cfn-http-api-authorizer-creator.js +2 -4
  43. package/dist/service/apigatewayv2/cfn/domain/sim-cfn-api-mapping-creator.d.ts +2 -1
  44. package/dist/service/apigatewayv2/cfn/domain/sim-cfn-api-mapping-creator.js +2 -4
  45. package/dist/service/apigatewayv2/cfn/domain/sim-cfn-http-api-domain-creator.d.ts +2 -1
  46. package/dist/service/apigatewayv2/cfn/domain/sim-cfn-http-api-domain-creator.js +2 -4
  47. package/dist/service/apigatewayv2/cfn/integration/sim-cfn-http-api-integration-creator.d.ts +2 -1
  48. package/dist/service/apigatewayv2/cfn/integration/sim-cfn-http-api-integration-creator.js +2 -4
  49. package/dist/service/apigatewayv2/cfn/route/sim-cfn-http-api-route-creator.d.ts +2 -1
  50. package/dist/service/apigatewayv2/cfn/route/sim-cfn-http-api-route-creator.js +2 -4
  51. package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-resource-deleter.d.ts +2 -9
  52. package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-resource-deleter.js +19 -25
  53. package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-resource-factory.d.ts +0 -5
  54. package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-resource-factory.js +13 -29
  55. package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-unsupported.d.ts +5 -0
  56. package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-unsupported.js +19 -0
  57. package/dist/service/apigatewayv2/cfn/sim-cfn-http-api-part-deleter.d.ts +2 -1
  58. package/dist/service/apigatewayv2/cfn/sim-cfn-http-api-part-deleter.js +5 -13
  59. package/dist/service/apigatewayv2/cfn/stage/sim-cfn-http-api-stage-creator.d.ts +2 -1
  60. package/dist/service/apigatewayv2/cfn/stage/sim-cfn-http-api-stage-creator.js +2 -4
  61. package/dist/service/apigatewayv2/serve/auth/sim-http-api-authorizer-policy.js +3 -0
  62. package/dist/service/apigatewayv2/serve/sim-api-gateway-v2-router.js +5 -2
  63. package/dist/service/apigatewayv2/sim-api-gateway-v2-commands.d.ts +1 -1
  64. package/dist/service/apigatewayv2/sim-api-gateway-v2-commands.js +3 -2
  65. package/dist/service/athena/cfn/named-query/sim-cfn-athena-named-query-creator.d.ts +3 -2
  66. package/dist/service/athena/cfn/named-query/sim-cfn-athena-named-query-creator.js +4 -6
  67. package/dist/service/athena/cfn/sim-athena-cfn-resource-factory.d.ts +2 -2
  68. package/dist/service/athena/cfn/sim-athena-cfn-resource-factory.js +7 -6
  69. package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-creator.d.ts +3 -2
  70. package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-creator.js +7 -11
  71. package/dist/service/athena/engine/sim-athena-aggregate-shims.d.ts +10 -5
  72. package/dist/service/athena/engine/sim-athena-aggregate-shims.js +19 -16
  73. package/dist/service/athena/engine/sim-athena-binary-shims.d.ts +16 -0
  74. package/dist/service/athena/engine/sim-athena-binary-shims.js +49 -0
  75. package/dist/service/athena/engine/sim-athena-binary-text.d.ts +21 -0
  76. package/dist/service/athena/engine/sim-athena-binary-text.js +87 -0
  77. package/dist/service/athena/engine/sim-athena-count-distinct.d.ts +15 -0
  78. package/dist/service/athena/engine/sim-athena-count-distinct.js +103 -0
  79. package/dist/service/athena/engine/sim-athena-distinct-values.d.ts +19 -0
  80. package/dist/service/athena/engine/sim-athena-distinct-values.js +37 -0
  81. package/dist/service/athena/engine/sim-athena-hash-words.d.ts +14 -0
  82. package/dist/service/athena/engine/sim-athena-hash-words.js +22 -0
  83. package/dist/service/athena/engine/sim-athena-murmur3-mixing.d.ts +15 -0
  84. package/dist/service/athena/engine/sim-athena-murmur3-mixing.js +37 -0
  85. package/dist/service/athena/engine/sim-athena-murmur3.d.ts +11 -0
  86. package/dist/service/athena/engine/sim-athena-murmur3.js +51 -0
  87. package/dist/service/athena/engine/sim-athena-shim-registry.d.ts +9 -0
  88. package/dist/service/athena/engine/sim-athena-shim-registry.js +30 -1
  89. package/dist/service/athena/engine/sim-athena-shims.js +2 -0
  90. package/dist/service/athena/engine/sim-athena-sql-rewrites.d.ts +4 -2
  91. package/dist/service/athena/engine/sim-athena-sql-rewrites.js +6 -3
  92. package/dist/service/athena/engine/sim-athena-xxhash64.d.ts +8 -0
  93. package/dist/service/athena/engine/sim-athena-xxhash64.js +82 -0
  94. package/dist/service/athena/sim-athena-executions.d.ts +1 -1
  95. package/dist/service/athena/sim-athena-executions.js +3 -2
  96. package/dist/service/aws/factory/sim-aws-account-service-cache.d.ts +3 -0
  97. package/dist/service/aws/factory/sim-aws-account-service-cache.js +5 -0
  98. package/dist/service/aws/factory/sim-aws-service-factory.d.ts +9 -0
  99. package/dist/service/aws/factory/sim-aws-service-factory.js +10 -0
  100. package/dist/service/aws/sim-aws.d.ts +18 -0
  101. package/dist/service/aws/sim-aws.js +19 -0
  102. package/dist/service/bedrock/sim-bedrock.d.ts +1 -1
  103. package/dist/service/bedrock/sim-bedrock.js +3 -2
  104. package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.d.ts +8 -0
  105. package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.js +6 -4
  106. package/dist/service/cloudformation/command/create-stack/create-stack.handler.d.ts +4 -0
  107. package/dist/service/cloudformation/command/create-stack/create-stack.handler.js +4 -1
  108. package/dist/service/cloudformation/command/update-stack/update-stack.handler.d.ts +7 -0
  109. package/dist/service/cloudformation/command/update-stack/update-stack.handler.js +3 -1
  110. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js +2 -1
  111. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.d.ts +9 -2
  112. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.js +2 -1
  113. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts +10 -3
  114. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.js +4 -7
  115. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts +10 -0
  116. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js +4 -2
  117. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.d.ts +11 -0
  118. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.js +2 -1
  119. package/dist/service/cloudformation/deploy/sim-cfn-template-file-updater.js +1 -0
  120. package/dist/service/cloudformation/resource/caller/sim-cfn-resource-caller-options.d.ts +16 -0
  121. package/dist/service/cloudformation/resource/caller/sim-cfn-resource-caller-options.js +6 -0
  122. package/dist/service/cloudformation/resource/cfn/organizations/sim-organizations-cfn-value-adapter.d.ts +6 -0
  123. package/dist/service/cloudformation/resource/cfn/organizations/sim-organizations-cfn-value-adapter.js +23 -0
  124. package/dist/service/cloudformation/resource/cfn/organizations/sim-organizations-cfn.d.ts +66 -0
  125. package/dist/service/cloudformation/resource/cfn/organizations/sim-organizations-cfn.js +136 -0
  126. package/dist/service/cloudformation/resource/cfn/scheduler/sim-scheduler-cfn-value-adapter.js +50 -0
  127. package/dist/service/cloudformation/resource/cfn/sim-cfn-service-value-adapters.js +2 -0
  128. package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-factories.js +7 -0
  129. package/dist/service/cloudformation/resource/sim-cfn-resource.type.d.ts +12 -0
  130. package/dist/service/cloudformation/sim-cloudformation.d.ts +1 -1
  131. package/dist/service/cloudformation/sim-cloudformation.js +3 -2
  132. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.d.ts +3 -0
  133. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.js +4 -1
  134. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-creator.d.ts +2 -0
  135. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-creator.js +2 -1
  136. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +17 -2
  137. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +15 -4
  138. package/dist/service/cloudformation/stack/sim-cfn-stack.js +5 -5
  139. package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +12 -0
  140. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.d.ts +3 -0
  141. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.js +3 -0
  142. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.d.ts +2 -0
  143. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.js +2 -1
  144. package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-creator.d.ts +5 -0
  145. package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-creator.js +10 -3
  146. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js +2 -1
  147. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-deleter.d.ts +2 -1
  148. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-deleter.js +5 -7
  149. package/dist/service/cloudfront/cfn/key-value-store/sim-cfn-cf-kvs-creator.d.ts +3 -2
  150. package/dist/service/cloudfront/cfn/key-value-store/sim-cfn-cf-kvs-creator.js +6 -6
  151. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.d.ts +2 -4
  152. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.js +7 -15
  153. package/dist/service/cloudfront/command/create-distribution/create-distribution-authorizer.js +1 -0
  154. package/dist/service/cloudfront/command/create-function/create-function-authorizer.js +1 -0
  155. package/dist/service/cloudfront/command/delete-distribution/delete-distribution-authorizer.js +1 -0
  156. package/dist/service/cloudfront/command/delete-function/delete-function-authorizer.js +1 -0
  157. package/dist/service/cloudfront/command/get-distribution/get-distribution-authorizer.js +1 -0
  158. package/dist/service/cloudfront/command/update-distribution/update-distribution-authorizer.js +1 -0
  159. package/dist/service/cloudfront/edge/sim-aws-cf-edge-functions.js +3 -2
  160. package/dist/service/cloudfront/edge/sim-cf-edge-association-auth-z.js +1 -0
  161. package/dist/service/cloudfront/key-value-store/sim-cf-key-value-store-access.js +1 -0
  162. package/dist/service/cloudfront/sim-cloudfront-commands.d.ts +1 -1
  163. package/dist/service/cloudfront/sim-cloudfront-commands.js +5 -2
  164. package/dist/service/cloudwatch/cfn/alarm/sim-cfn-alarm-creator.d.ts +3 -2
  165. package/dist/service/cloudwatch/cfn/alarm/sim-cfn-alarm-creator.js +4 -6
  166. package/dist/service/cloudwatch/cfn/sim-cloudwatch-cfn-resource-factory.d.ts +2 -2
  167. package/dist/service/cloudwatch/cfn/sim-cloudwatch-cfn-resource-factory.js +4 -3
  168. package/dist/service/cloudwatch/command/authorize/sim-cloudwatch-decide.js +1 -0
  169. package/dist/service/cloudwatch/sim-cloudwatch-commands.d.ts +1 -1
  170. package/dist/service/cloudwatch/sim-cloudwatch-commands.js +3 -2
  171. package/dist/service/cognito/cfn/client/sim-cfn-cognito-client-creator.d.ts +2 -1
  172. package/dist/service/cognito/cfn/client/sim-cfn-cognito-client-creator.js +2 -4
  173. package/dist/service/cognito/cfn/domain/sim-cfn-cognito-domain-creator.d.ts +2 -1
  174. package/dist/service/cognito/cfn/domain/sim-cfn-cognito-domain-creator.js +2 -4
  175. package/dist/service/cognito/cfn/group/sim-cfn-cognito-group-creator.d.ts +2 -1
  176. package/dist/service/cognito/cfn/group/sim-cfn-cognito-group-creator.js +2 -4
  177. package/dist/service/cognito/cfn/idp/sim-cfn-cognito-idp-creator.d.ts +2 -1
  178. package/dist/service/cognito/cfn/idp/sim-cfn-cognito-idp-creator.js +2 -4
  179. package/dist/service/cognito/cfn/sim-cfn-cognito-resource-deleter.d.ts +2 -1
  180. package/dist/service/cognito/cfn/sim-cfn-cognito-resource-deleter.js +18 -24
  181. package/dist/service/cognito/cfn/sim-cfn-cognito-resource-factory.d.ts +2 -2
  182. package/dist/service/cognito/cfn/sim-cfn-cognito-resource-factory.js +9 -7
  183. package/dist/service/cognito/cfn/user-pool/sim-cfn-cognito-user-pool-creator.d.ts +2 -1
  184. package/dist/service/cognito/cfn/user-pool/sim-cfn-cognito-user-pool-creator.js +5 -7
  185. package/dist/service/cognito/command/authorize/sim-cognito-authorizer.js +1 -0
  186. package/dist/service/cognito/sim-cognito-identity-provider.d.ts +1 -1
  187. package/dist/service/cognito/sim-cognito-identity-provider.js +3 -2
  188. package/dist/service/cognito/user-pool/trigger/sim-aws-cognito-trigger-functions.js +2 -1
  189. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-creator.d.ts +2 -1
  190. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-creator.js +2 -2
  191. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-deleter.d.ts +2 -1
  192. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-deleter.js +2 -4
  193. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.d.ts +2 -2
  194. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.js +6 -4
  195. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-creator.d.ts +2 -1
  196. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-creator.js +5 -7
  197. package/dist/service/dynamodb/command/authorize/sim-dynamodb-authorizer.js +1 -0
  198. package/dist/service/dynamodb/sim-dynamodb.js +3 -2
  199. package/dist/service/ecs/cfn/cluster/sim-cfn-ecs-cluster-creator.d.ts +3 -2
  200. package/dist/service/ecs/cfn/cluster/sim-cfn-ecs-cluster-creator.js +4 -6
  201. package/dist/service/ecs/cfn/service/sim-cfn-ecs-service-creator.d.ts +3 -2
  202. package/dist/service/ecs/cfn/service/sim-cfn-ecs-service-creator.js +4 -4
  203. package/dist/service/ecs/cfn/sim-cfn-ecs-created-resource.d.ts +5 -0
  204. package/dist/service/ecs/cfn/sim-cfn-ecs-created-resource.js +9 -0
  205. package/dist/service/ecs/cfn/sim-ecs-cfn-resource-factory.d.ts +2 -2
  206. package/dist/service/ecs/cfn/sim-ecs-cfn-resource-factory.js +11 -16
  207. package/dist/service/ecs/cfn/task-definition/sim-cfn-ecs-task-definition-creator.d.ts +3 -2
  208. package/dist/service/ecs/cfn/task-definition/sim-cfn-ecs-task-definition-creator.js +4 -6
  209. package/dist/service/ecs/sim-ecs-commands.js +3 -2
  210. package/dist/service/ecs/task/run/sim-ecs-container-environment.d.ts +12 -10
  211. package/dist/service/ecs/task/run/sim-ecs-container-environment.js +16 -18
  212. package/dist/service/elbv2/cfn/listener/sim-cfn-elbv2-listener-creator.d.ts +3 -2
  213. package/dist/service/elbv2/cfn/listener/sim-cfn-elbv2-listener-creator.js +4 -6
  214. package/dist/service/elbv2/cfn/load-balancer/sim-cfn-elbv2-load-balancer-creator.d.ts +3 -2
  215. package/dist/service/elbv2/cfn/load-balancer/sim-cfn-elbv2-load-balancer-creator.js +4 -6
  216. package/dist/service/elbv2/cfn/rule/sim-cfn-elbv2-listener-rule-creator.d.ts +3 -2
  217. package/dist/service/elbv2/cfn/rule/sim-cfn-elbv2-listener-rule-creator.js +4 -4
  218. package/dist/service/elbv2/cfn/sim-elbv2-cfn-resource-deleter.d.ts +2 -1
  219. package/dist/service/elbv2/cfn/sim-elbv2-cfn-resource-deleter.js +5 -5
  220. package/dist/service/elbv2/cfn/sim-elbv2-cfn-resource-factory.d.ts +2 -2
  221. package/dist/service/elbv2/cfn/sim-elbv2-cfn-resource-factory.js +8 -6
  222. package/dist/service/elbv2/cfn/target-group/sim-cfn-elbv2-target-group-creator.d.ts +3 -2
  223. package/dist/service/elbv2/cfn/target-group/sim-cfn-elbv2-target-group-creator.js +7 -11
  224. package/dist/service/elbv2/serve/sim-elbv2-router.js +2 -1
  225. package/dist/service/elbv2/sim-elbv2.js +3 -3
  226. package/dist/service/eventbridge/cfn/bus/sim-cfn-event-bus-creator.d.ts +2 -1
  227. package/dist/service/eventbridge/cfn/bus/sim-cfn-event-bus-creator.js +2 -4
  228. package/dist/service/eventbridge/cfn/rule/sim-cfn-event-rule-creator.d.ts +2 -1
  229. package/dist/service/eventbridge/cfn/rule/sim-cfn-event-rule-creator.js +5 -5
  230. package/dist/service/eventbridge/cfn/sim-cfn-event-bridge-resource-deleter.d.ts +2 -1
  231. package/dist/service/eventbridge/cfn/sim-cfn-event-bridge-resource-deleter.js +7 -7
  232. package/dist/service/eventbridge/cfn/sim-event-bridge-cfn-resource-factory.js +5 -3
  233. package/dist/service/eventbridge/delivery/sim-event-bridge-delivery-function.js +2 -1
  234. package/dist/service/eventbridge/delivery/sim-event-bridge-delivery-queue.js +2 -1
  235. package/dist/service/eventbridge/delivery/sim-event-bridge-delivery-task.js +4 -1
  236. package/dist/service/eventbridge/delivery/sim-event-bridge-delivery-topic.js +2 -1
  237. package/dist/service/eventbridge/delivery/sim-event-bridge-target-role.d.ts +8 -3
  238. package/dist/service/eventbridge/delivery/sim-event-bridge-target-role.js +9 -3
  239. package/dist/service/eventbridge/sim-event-bridge.d.ts +1 -1
  240. package/dist/service/eventbridge/sim-event-bridge.js +3 -2
  241. package/dist/service/firehose/cfn/delivery-stream/sim-cfn-firehose-delivery-stream-creator.d.ts +2 -1
  242. package/dist/service/firehose/cfn/delivery-stream/sim-cfn-firehose-delivery-stream-creator.js +2 -2
  243. package/dist/service/firehose/cfn/sim-cfn-firehose-resource-deleter.d.ts +2 -1
  244. package/dist/service/firehose/cfn/sim-cfn-firehose-resource-deleter.js +2 -4
  245. package/dist/service/firehose/cfn/sim-firehose-cfn-resource-factory.d.ts +1 -1
  246. package/dist/service/firehose/cfn/sim-firehose-cfn-resource-factory.js +4 -3
  247. package/dist/service/firehose/command/authorize/sim-firehose-authorizer.js +1 -0
  248. package/dist/service/firehose/sim-firehose.d.ts +1 -1
  249. package/dist/service/firehose/sim-firehose.js +3 -2
  250. package/dist/service/glue/command/authorize/sim-glue-authorize-resources.js +1 -0
  251. package/dist/service/glue/sim-glue.d.ts +1 -1
  252. package/dist/service/glue/sim-glue.js +3 -2
  253. package/dist/service/iam/authorize/allow/sim-iam-policy-evaluation.d.ts +45 -0
  254. package/dist/service/iam/authorize/allow/sim-iam-policy-evaluation.js +59 -0
  255. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts +30 -15
  256. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js +20 -22
  257. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.d.ts +31 -1
  258. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.factory.js +1 -0
  259. package/dist/service/iam/authorize/context/sim-iam-auth-z-scp-source-builder.d.ts +46 -0
  260. package/dist/service/iam/authorize/context/sim-iam-auth-z-scp-source-builder.js +71 -0
  261. package/dist/service/iam/authorize/context/sim-iam-derived-conditions.d.ts +42 -0
  262. package/dist/service/iam/authorize/context/sim-iam-derived-conditions.js +44 -0
  263. package/dist/service/iam/authorize/match/condition/arn/equals/sim-iam-arn-equals.js +2 -2
  264. package/dist/service/iam/authorize/match/condition/arn/like/sim-iam-arn-like.js +2 -2
  265. package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-for-all-values-string-operator.d.ts +20 -0
  266. package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-for-all-values-string-operator.js +27 -0
  267. package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-for-any-value-string-operator.d.ts +21 -0
  268. package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-for-any-value-string-operator.js +28 -0
  269. package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-operator-factories.d.ts +5 -0
  270. package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-operator-factories.js +36 -0
  271. package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-scalar-string-operator.d.ts +20 -0
  272. package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-scalar-string-operator.js +29 -0
  273. package/dist/service/iam/authorize/match/condition/numeric/less-than-equals/sim-iam-number-lte.d.ts +1 -0
  274. package/dist/service/iam/authorize/match/condition/numeric/less-than-equals/sim-iam-number-lte.js +1 -0
  275. package/dist/service/iam/authorize/match/condition/sim-iam-condition-match.d.ts +26 -0
  276. package/dist/service/iam/authorize/match/condition/sim-iam-condition-match.js +1 -0
  277. package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator-parser.js +2 -0
  278. package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator.d.ts +15 -0
  279. package/dist/service/iam/authorize/match/condition/sim-iam-policy-condition-matcher.d.ts +11 -3
  280. package/dist/service/iam/authorize/match/condition/sim-iam-policy-condition-matcher.js +29 -11
  281. package/dist/service/iam/authorize/match/condition/sim-iam-string-comparison.d.ts +24 -0
  282. package/dist/service/iam/authorize/match/condition/sim-iam-string-comparison.js +17 -0
  283. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-condition-operator.d.ts +1 -0
  284. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-condition-operator.js +1 -0
  285. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-equals.js +2 -1
  286. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-like.js +2 -4
  287. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-condition-operator.d.ts +1 -0
  288. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-condition-operator.js +1 -0
  289. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-equals.js +2 -1
  290. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-like.js +2 -4
  291. package/dist/service/iam/authorize/match/condition/string/equals/sim-iam-string-equals.js +2 -1
  292. package/dist/service/iam/authorize/match/condition/string/like/sim-iam-string-like.js +2 -4
  293. package/dist/service/iam/authorize/match/condition/string/sim-iam-scalar-string-condition-operator.d.ts +1 -0
  294. package/dist/service/iam/authorize/match/condition/string/sim-iam-scalar-string-condition-operator.js +1 -0
  295. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.d.ts +18 -1
  296. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.js +32 -4
  297. package/dist/service/iam/authorize/scp/sim-iam-scp-gate.d.ts +96 -0
  298. package/dist/service/iam/authorize/scp/sim-iam-scp-gate.js +148 -0
  299. package/dist/service/iam/authorize/scp/sim-iam-scp-resolver.d.ts +53 -0
  300. package/dist/service/iam/authorize/scp/sim-iam-scp-resolver.js +1 -0
  301. package/dist/service/iam/authorize/sim-iam-account-auth-z.d.ts +8 -0
  302. package/dist/service/iam/authorize/sim-iam-account-auth-z.js +1 -0
  303. package/dist/service/iam/authorize/sim-iam-action-authorizer.js +1 -0
  304. package/dist/service/iam/authorize/sim-iam-authorizer.d.ts +2 -0
  305. package/dist/service/iam/authorize/sim-iam-authorizer.js +1 -0
  306. package/dist/service/iam/authorize/sim-iam-decision-value.d.ts +13 -0
  307. package/dist/service/iam/authorize/sim-iam-decision-value.js +12 -0
  308. package/dist/service/iam/authorize/sim-iam-decision.d.ts +44 -15
  309. package/dist/service/iam/authorize/sim-iam-decision.js +77 -48
  310. package/dist/service/iam/authorize/sim-iam-inter-service-auth-z.d.ts +8 -0
  311. package/dist/service/iam/authorize/sim-iam-inter-service-auth-z.js +1 -0
  312. package/dist/service/iam/authorize/sim-iam-region-auth-z.d.ts +31 -0
  313. package/dist/service/iam/authorize/sim-iam-region-auth-z.js +65 -0
  314. package/dist/service/iam/authorize/unevaluated/sim-iam-unevaluated-statement.type.d.ts +31 -0
  315. package/dist/service/iam/authorize/unevaluated/sim-iam-unevaluated-statement.type.js +1 -0
  316. package/dist/service/iam/authorize/unevaluated/sim-iam-unevaluated-statements.d.ts +31 -0
  317. package/dist/service/iam/authorize/unevaluated/sim-iam-unevaluated-statements.js +43 -0
  318. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-attacher.d.ts +2 -1
  319. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-attacher.js +2 -4
  320. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.d.ts +2 -1
  321. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.js +3 -3
  322. package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-creator.d.ts +2 -1
  323. package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-creator.js +7 -7
  324. package/dist/service/iam/cfn/role/sim-cfn-iam-role-creator.d.ts +2 -1
  325. package/dist/service/iam/cfn/role/sim-cfn-iam-role-creator.js +8 -8
  326. package/dist/service/iam/cfn/role/sim-cfn-iam-role-deleter.d.ts +2 -1
  327. package/dist/service/iam/cfn/role/sim-cfn-iam-role-deleter.js +10 -12
  328. package/dist/service/iam/cfn/sim-cfn-iam-resource-deleter.d.ts +2 -1
  329. package/dist/service/iam/cfn/sim-cfn-iam-resource-deleter.js +12 -16
  330. package/dist/service/iam/cfn/sim-cfn-iam-resource-factory.js +8 -5
  331. package/dist/service/iam/cfn/user/sim-cfn-iam-user-creator.d.ts +2 -1
  332. package/dist/service/iam/cfn/user/sim-cfn-iam-user-creator.js +11 -11
  333. package/dist/service/iam/cfn/user/sim-cfn-iam-user-deleter.d.ts +4 -2
  334. package/dist/service/iam/cfn/user/sim-cfn-iam-user-deleter.js +17 -3
  335. package/dist/service/iam/command/sim-iam-command-handlers.js +6 -1
  336. package/dist/service/iam/error/sim-iam.error.d.ts +8 -0
  337. package/dist/service/iam/error/sim-iam.error.js +2 -1
  338. package/dist/service/iam/sim-iam-account-parts.d.ts +9 -0
  339. package/dist/service/iam/sim-iam-account-parts.js +1 -0
  340. package/dist/service/kinesis/cfn/sim-cfn-kinesis-resource-deleter.d.ts +2 -1
  341. package/dist/service/kinesis/cfn/sim-cfn-kinesis-resource-deleter.js +2 -2
  342. package/dist/service/kinesis/cfn/sim-kinesis-cfn-resource-factory.d.ts +1 -1
  343. package/dist/service/kinesis/cfn/sim-kinesis-cfn-resource-factory.js +4 -3
  344. package/dist/service/kinesis/cfn/stream/sim-cfn-kinesis-stream-creator.d.ts +2 -1
  345. package/dist/service/kinesis/cfn/stream/sim-cfn-kinesis-stream-creator.js +5 -7
  346. package/dist/service/kinesis/command/authorize/sim-kinesis-authorizer.js +1 -0
  347. package/dist/service/kinesis/sim-kinesis.d.ts +1 -1
  348. package/dist/service/kinesis/sim-kinesis.js +3 -2
  349. package/dist/service/kms/cfn/alias/sim-cfn-kms-alias-creator.d.ts +2 -1
  350. package/dist/service/kms/cfn/alias/sim-cfn-kms-alias-creator.js +2 -2
  351. package/dist/service/kms/cfn/key/sim-cfn-kms-key-creator.d.ts +6 -6
  352. package/dist/service/kms/cfn/key/sim-cfn-kms-key-creator.js +11 -11
  353. package/dist/service/kms/cfn/sim-cfn-kms-resource-deleter.d.ts +2 -1
  354. package/dist/service/kms/cfn/sim-cfn-kms-resource-deleter.js +3 -5
  355. package/dist/service/kms/cfn/sim-cfn-kms-resource-factory.d.ts +2 -1
  356. package/dist/service/kms/cfn/sim-cfn-kms-resource-factory.js +6 -4
  357. package/dist/service/kms/command/authorize/sim-kms-authorizer.js +2 -0
  358. package/dist/service/kms/sim-kms-commands.d.ts +1 -1
  359. package/dist/service/kms/sim-kms-commands.js +3 -2
  360. package/dist/service/lambda/cfn/alias/sim-cfn-lambda-alias-creator.d.ts +2 -1
  361. package/dist/service/lambda/cfn/alias/sim-cfn-lambda-alias-creator.js +2 -2
  362. package/dist/service/lambda/cfn/event-invoke-config/sim-cfn-lambda-event-invoke-config-creator.d.ts +2 -1
  363. package/dist/service/lambda/cfn/event-invoke-config/sim-cfn-lambda-event-invoke-config-creator.js +2 -2
  364. package/dist/service/lambda/cfn/event-invoke-config/sim-cfn-lambda-event-invoke-config-remover.d.ts +2 -1
  365. package/dist/service/lambda/cfn/event-invoke-config/sim-cfn-lambda-event-invoke-config-remover.js +2 -4
  366. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-creator.d.ts +2 -1
  367. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-creator.js +2 -2
  368. package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-creator.d.ts +2 -1
  369. package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-creator.js +3 -4
  370. package/dist/service/lambda/cfn/permission/sim-cfn-lambda-permission-creator.d.ts +2 -1
  371. package/dist/service/lambda/cfn/permission/sim-cfn-lambda-permission-creator.js +2 -2
  372. package/dist/service/lambda/cfn/permission/sim-cfn-lambda-permission-revoker.d.ts +2 -1
  373. package/dist/service/lambda/cfn/permission/sim-cfn-lambda-permission-revoker.js +2 -2
  374. package/dist/service/lambda/cfn/sim-cfn-lambda-resource-deleter.d.ts +2 -8
  375. package/dist/service/lambda/cfn/sim-cfn-lambda-resource-deleter.js +18 -38
  376. package/dist/service/lambda/cfn/sim-cfn-lambda-resource-factory.d.ts +2 -2
  377. package/dist/service/lambda/cfn/sim-cfn-lambda-resource-factory.js +12 -9
  378. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.d.ts +2 -1
  379. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.js +2 -2
  380. package/dist/service/lambda/cfn/version/sim-cfn-lambda-version-creator.d.ts +2 -1
  381. package/dist/service/lambda/cfn/version/sim-cfn-lambda-version-creator.js +2 -2
  382. package/dist/service/lambda/command/create-function/create-function-authorizer.js +1 -0
  383. package/dist/service/lambda/command/delete-function/delete-function-authorizer.js +1 -0
  384. package/dist/service/lambda/command/event-invoke-config/event-invoke-config-authorizer.js +1 -0
  385. package/dist/service/lambda/command/function-url/function-url-authorizer.js +1 -0
  386. package/dist/service/lambda/command/get-function/get-function-authorizer.js +1 -0
  387. package/dist/service/lambda/command/invoke/invoke-authorizer.js +1 -0
  388. package/dist/service/lambda/command/list-functions/list-functions-authorizer.js +1 -0
  389. package/dist/service/lambda/command/update-function-code/update-function-code-authorizer.js +1 -0
  390. package/dist/service/lambda/command/update-function-configuration/update-function-configuration-authorizer.js +1 -0
  391. package/dist/service/lambda/command/version/version-authorizer.js +1 -0
  392. package/dist/service/lambda/serve/sim-lambda-url-router.js +2 -1
  393. package/dist/service/lambda/sim-lambda-commands.d.ts +1 -1
  394. package/dist/service/lambda/sim-lambda-commands.js +3 -2
  395. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.d.ts +3 -2
  396. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.js +4 -6
  397. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.d.ts +3 -2
  398. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.js +4 -6
  399. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.d.ts +3 -2
  400. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.js +4 -4
  401. package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.d.ts +2 -1
  402. package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.js +4 -4
  403. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.d.ts +2 -2
  404. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.js +7 -5
  405. package/dist/service/logs/command/authorize/sim-logs-authorizer.js +1 -0
  406. package/dist/service/logs/sim-logs-commands.d.ts +1 -1
  407. package/dist/service/logs/sim-logs-commands.js +3 -2
  408. package/dist/service/logs/subscription/lambda/sim-logs-destination-permission.js +2 -1
  409. package/dist/service/organizations/cfn/sim-cfn-organization-creator.d.ts +19 -0
  410. package/dist/service/organizations/cfn/sim-cfn-organization-creator.js +25 -0
  411. package/dist/service/organizations/cfn/sim-cfn-organizational-unit-creator.d.ts +16 -0
  412. package/dist/service/organizations/cfn/sim-cfn-organizational-unit-creator.js +21 -0
  413. package/dist/service/organizations/cfn/sim-cfn-organizations-account-creator.d.ts +20 -0
  414. package/dist/service/organizations/cfn/sim-cfn-organizations-account-creator.js +34 -0
  415. package/dist/service/organizations/cfn/sim-cfn-organizations-policy-creator.d.ts +21 -0
  416. package/dist/service/organizations/cfn/sim-cfn-organizations-policy-creator.js +40 -0
  417. package/dist/service/organizations/cfn/sim-cfn-organizations-policy-input.d.ts +20 -0
  418. package/dist/service/organizations/cfn/sim-cfn-organizations-policy-input.js +33 -0
  419. package/dist/service/organizations/cfn/sim-cfn-organizations-properties.d.ts +36 -0
  420. package/dist/service/organizations/cfn/sim-cfn-organizations-properties.js +78 -0
  421. package/dist/service/organizations/cfn/sim-cfn-organizations-record.d.ts +40 -0
  422. package/dist/service/organizations/cfn/sim-cfn-organizations-record.js +54 -0
  423. package/dist/service/organizations/cfn/sim-cfn-organizations-remover.d.ts +17 -0
  424. package/dist/service/organizations/cfn/sim-cfn-organizations-remover.js +40 -0
  425. package/dist/service/organizations/cfn/sim-organizations-cfn-resource-factory.d.ts +24 -0
  426. package/dist/service/organizations/cfn/sim-organizations-cfn-resource-factory.js +50 -0
  427. package/dist/service/organizations/index.d.ts +6 -0
  428. package/dist/service/organizations/index.js +6 -0
  429. package/dist/service/organizations/policy/sim-organizations-effective-policies.d.ts +43 -0
  430. package/dist/service/organizations/policy/sim-organizations-effective-policies.js +58 -0
  431. package/dist/service/organizations/policy/sim-organizations-scp-store.d.ts +61 -0
  432. package/dist/service/organizations/policy/sim-organizations-scp-store.js +103 -0
  433. package/dist/service/organizations/sim-organizations-structure.d.ts +94 -0
  434. package/dist/service/organizations/sim-organizations-structure.js +140 -0
  435. package/dist/service/organizations/sim-organizations.d.ts +95 -0
  436. package/dist/service/organizations/sim-organizations.js +99 -0
  437. package/dist/service/organizations/tree/sim-organizations-node.d.ts +57 -0
  438. package/dist/service/organizations/tree/sim-organizations-node.js +58 -0
  439. package/dist/service/organizations/tree/sim-organizations-tree.d.ts +91 -0
  440. package/dist/service/organizations/tree/sim-organizations-tree.js +154 -0
  441. package/dist/service/personalize/cfn/sim-cfn-personalize-dataset-creator.d.ts +3 -2
  442. package/dist/service/personalize/cfn/sim-cfn-personalize-dataset-creator.js +4 -6
  443. package/dist/service/personalize/cfn/sim-cfn-personalize-dataset-group-creator.d.ts +3 -2
  444. package/dist/service/personalize/cfn/sim-cfn-personalize-dataset-group-creator.js +4 -6
  445. package/dist/service/personalize/cfn/sim-cfn-personalize-event-tracker-creator.d.ts +3 -2
  446. package/dist/service/personalize/cfn/sim-cfn-personalize-event-tracker-creator.js +4 -6
  447. package/dist/service/personalize/cfn/sim-cfn-personalize-schema-creator.d.ts +3 -2
  448. package/dist/service/personalize/cfn/sim-cfn-personalize-schema-creator.js +4 -4
  449. package/dist/service/personalize/cfn/sim-cfn-personalize-solution-creator.d.ts +3 -2
  450. package/dist/service/personalize/cfn/sim-cfn-personalize-solution-creator.js +4 -6
  451. package/dist/service/personalize/cfn/sim-personalize-cfn-resource-factory.d.ts +2 -2
  452. package/dist/service/personalize/cfn/sim-personalize-cfn-resource-factory.js +7 -6
  453. package/dist/service/personalize/sim-personalize-data-operations.d.ts +1 -1
  454. package/dist/service/personalize/sim-personalize-data-operations.js +3 -2
  455. package/dist/service/rekognition/sim-rekognition.d.ts +1 -1
  456. package/dist/service/rekognition/sim-rekognition.js +3 -2
  457. package/dist/service/route53/cfn/dnssec/sim-cfn-r53-ksk-creator.d.ts +3 -2
  458. package/dist/service/route53/cfn/dnssec/sim-cfn-r53-ksk-creator.js +5 -5
  459. package/dist/service/route53/cfn/dnssec/sim-cfn-r53-zone-signing-creator.d.ts +3 -2
  460. package/dist/service/route53/cfn/dnssec/sim-cfn-r53-zone-signing-creator.js +4 -8
  461. package/dist/service/route53/cfn/hosted-zone/sim-cfn-r53-zone-creator.d.ts +2 -1
  462. package/dist/service/route53/cfn/hosted-zone/sim-cfn-r53-zone-creator.js +2 -2
  463. package/dist/service/route53/cfn/record-set/apply/sim-cfn-r53-record-set-applicator.d.ts +9 -1
  464. package/dist/service/route53/cfn/record-set/apply/sim-cfn-r53-record-set-applicator.js +23 -2
  465. package/dist/service/route53/cfn/sim-cfn-route53-resource-deleter.d.ts +5 -3
  466. package/dist/service/route53/cfn/sim-cfn-route53-resource-deleter.js +9 -28
  467. package/dist/service/route53/cfn/sim-cfn-route53-resource-factory.js +9 -5
  468. package/dist/service/route53/command/change-resource-record-sets/change-resource-record-sets-authorizer.js +1 -0
  469. package/dist/service/route53/command/create-hosted-zone/create-hosted-zone-authorizer.js +1 -0
  470. package/dist/service/route53/command/delete-hosted-zone/delete-hosted-zone-authorizer.js +1 -0
  471. package/dist/service/route53/command/dnssec/sim-route53-dnssec-authorizer.js +1 -0
  472. package/dist/service/route53/command/get-hosted-zone/get-hosted-zone-authorizer.js +1 -0
  473. package/dist/service/route53/command/list-hosted-zones-by-name/list-hosted-zones-by-name-authorizer.js +1 -0
  474. package/dist/service/route53/command/list-resource-record-sets/list-resource-record-sets-authorizer.js +1 -0
  475. package/dist/service/route53/sim-route53.d.ts +1 -1
  476. package/dist/service/route53/sim-route53.js +5 -2
  477. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.d.ts +3 -0
  478. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js +6 -13
  479. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.d.ts +2 -1
  480. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.js +3 -2
  481. package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.d.ts +2 -1
  482. package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.js +2 -2
  483. package/dist/service/s3/cfn/sim-cfn-s3-resource-deleter.d.ts +2 -1
  484. package/dist/service/s3/cfn/sim-cfn-s3-resource-deleter.js +3 -7
  485. package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.d.ts +2 -2
  486. package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.js +6 -4
  487. package/dist/service/s3/command/create-bucket/create-bucket.handler.js +1 -0
  488. package/dist/service/s3/command/delete-bucket/delete-bucket-authorizer.js +1 -0
  489. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy-authorizer.js +1 -0
  490. package/dist/service/s3/command/delete-object/delete-object-authorizer.js +1 -0
  491. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy-authorizer.js +1 -0
  492. package/dist/service/s3/command/get-object/get-object-authorizer.js +1 -0
  493. package/dist/service/s3/command/head-bucket/head-bucket-authorizer.js +1 -0
  494. package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-authorizer.js +1 -0
  495. package/dist/service/s3/command/list-buckets/list-buckets-authorizer.js +1 -0
  496. package/dist/service/s3/command/list-objects/list-objects-authorizer.js +1 -0
  497. package/dist/service/s3/command/multipart/sim-s3-multipart-authorizer.js +1 -0
  498. package/dist/service/s3/command/notification/sim-s3-notification-authorizer.js +1 -0
  499. package/dist/service/s3/command/public-access-block/sim-s3-public-access-block-authorizer.js +1 -0
  500. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy-authorizer.js +1 -0
  501. package/dist/service/s3/command/put-bucket-website/put-bucket-website-authorizer.js +1 -0
  502. package/dist/service/s3/command/put-object/put-object-authorizer.js +1 -0
  503. package/dist/service/s3/notification/destination/lambda/sim-aws-s3-notification-functions.js +2 -1
  504. package/dist/service/s3/notification/destination/sns/sim-s3-notification-topic.js +2 -1
  505. package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue.js +2 -1
  506. package/dist/service/s3/sim-s3-commands.d.ts +1 -1
  507. package/dist/service/s3/sim-s3-commands.js +3 -2
  508. package/dist/service/scheduler/cfn/sim-cfn-schedule-creator.d.ts +26 -0
  509. package/dist/service/scheduler/cfn/sim-cfn-schedule-creator.js +49 -0
  510. package/dist/service/scheduler/cfn/sim-cfn-schedule-group-creator.d.ts +31 -0
  511. package/dist/service/scheduler/cfn/sim-cfn-schedule-group-creator.js +48 -0
  512. package/dist/service/scheduler/cfn/sim-cfn-schedule-group-properties.d.ts +26 -0
  513. package/dist/service/scheduler/cfn/sim-cfn-schedule-group-properties.js +68 -0
  514. package/dist/service/scheduler/cfn/sim-cfn-schedule-properties.js +4 -10
  515. package/dist/service/scheduler/cfn/sim-cfn-scheduler-resource-error.d.ts +14 -3
  516. package/dist/service/scheduler/cfn/sim-cfn-scheduler-resource-error.js +28 -6
  517. package/dist/service/scheduler/cfn/sim-cfn-scheduler-resource-lookup.d.ts +10 -4
  518. package/dist/service/scheduler/cfn/sim-cfn-scheduler-resource-lookup.js +9 -6
  519. package/dist/service/scheduler/cfn/sim-scheduler-cfn-resource-factory.d.ts +6 -8
  520. package/dist/service/scheduler/cfn/sim-scheduler-cfn-resource-factory.js +20 -33
  521. package/dist/service/scheduler/command/authorize/sim-scheduler-authorizer.d.ts +9 -8
  522. package/dist/service/scheduler/command/authorize/sim-scheduler-authorizer.js +14 -15
  523. package/dist/service/scheduler/command/group/group.command.d.ts +90 -0
  524. package/dist/service/scheduler/command/group/group.command.js +1 -0
  525. package/dist/service/scheduler/command/group/sim-scheduler-described-group.d.ts +15 -0
  526. package/dist/service/scheduler/command/group/sim-scheduler-described-group.js +29 -0
  527. package/dist/service/scheduler/command/group/sim-scheduler-group-access.d.ts +57 -0
  528. package/dist/service/scheduler/command/group/sim-scheduler-group-access.js +70 -0
  529. package/dist/service/scheduler/command/group/sim-scheduler-group-commands.d.ts +46 -0
  530. package/dist/service/scheduler/command/group/sim-scheduler-group-commands.js +72 -0
  531. package/dist/service/scheduler/command/group/sim-scheduler-listed-groups.d.ts +6 -0
  532. package/dist/service/scheduler/command/group/sim-scheduler-listed-groups.js +10 -0
  533. package/dist/service/scheduler/command/group/sim-scheduler-unsimulated-group-input.d.ts +14 -0
  534. package/dist/service/scheduler/command/group/sim-scheduler-unsimulated-group-input.js +19 -0
  535. package/dist/service/scheduler/command/schedule/sim-scheduler-create-schedule.js +1 -0
  536. package/dist/service/scheduler/command/schedule/sim-scheduler-schedule-access.d.ts +16 -0
  537. package/dist/service/scheduler/command/schedule/sim-scheduler-schedule-access.js +23 -3
  538. package/dist/service/scheduler/command/sim-scheduler-command.types.d.ts +1 -0
  539. package/dist/service/scheduler/command/sim-scheduler-commands.d.ts +4 -0
  540. package/dist/service/scheduler/command/sim-scheduler-commands.js +14 -1
  541. package/dist/service/scheduler/delivery/sim-aws-scheduler-delivery-targets.js +1 -1
  542. package/dist/service/scheduler/delivery/sim-scheduler-delivery-function.js +2 -1
  543. package/dist/service/scheduler/delivery/sim-scheduler-delivery-queue.js +2 -1
  544. package/dist/service/scheduler/delivery/sim-scheduler-delivery-topic.js +2 -1
  545. package/dist/service/scheduler/delivery/sim-scheduler-execution-role.d.ts +9 -3
  546. package/dist/service/scheduler/delivery/sim-scheduler-execution-role.js +10 -3
  547. package/dist/service/scheduler/group/sim-scheduler-schedule-group-arn.d.ts +11 -0
  548. package/dist/service/scheduler/group/sim-scheduler-schedule-group-arn.js +13 -0
  549. package/dist/service/scheduler/group/sim-scheduler-schedule-group-store.d.ts +46 -0
  550. package/dist/service/scheduler/group/sim-scheduler-schedule-group-store.js +65 -0
  551. package/dist/service/scheduler/group/sim-scheduler-schedule-group.d.ts +25 -0
  552. package/dist/service/scheduler/group/sim-scheduler-schedule-group.js +32 -0
  553. package/dist/service/scheduler/index.d.ts +2 -0
  554. package/dist/service/scheduler/index.js +2 -0
  555. package/dist/service/scheduler/schedule/sim-scheduler-schedule-name.d.ts +11 -9
  556. package/dist/service/scheduler/schedule/sim-scheduler-schedule-name.js +15 -18
  557. package/dist/service/scheduler/schedule/sim-scheduler-schedule-store.d.ts +7 -0
  558. package/dist/service/scheduler/schedule/sim-scheduler-schedule-store.js +13 -0
  559. package/dist/service/scheduler/schedule/sim-scheduler-schedule.d.ts +13 -0
  560. package/dist/service/scheduler/schedule/sim-scheduler-schedule.js +16 -0
  561. package/dist/service/scheduler/sdk/sim-scheduler-sdk-command-router.js +16 -0
  562. package/dist/service/scheduler/sim-scheduler-inspection.d.ts +14 -0
  563. package/dist/service/scheduler/sim-scheduler-inspection.js +15 -0
  564. package/dist/service/scheduler/sim-scheduler.d.ts +19 -1
  565. package/dist/service/scheduler/sim-scheduler.js +38 -2
  566. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-creator.d.ts +2 -1
  567. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-creator.js +2 -2
  568. package/dist/service/secretsmanager/cfn/sim-cfn-secrets-manager-resource-factory.d.ts +2 -2
  569. package/dist/service/secretsmanager/cfn/sim-cfn-secrets-manager-resource-factory.js +4 -5
  570. package/dist/service/secretsmanager/command/authorize/sim-secrets-manager-authorizer.js +1 -0
  571. package/dist/service/secretsmanager/sim-secrets-manager.d.ts +1 -1
  572. package/dist/service/secretsmanager/sim-secrets-manager.js +3 -2
  573. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-creator.d.ts +3 -2
  574. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-creator.js +4 -4
  575. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-creator.d.ts +3 -2
  576. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-creator.js +4 -8
  577. package/dist/service/ses/cfn/sim-ses-cfn-resource-factory.d.ts +2 -2
  578. package/dist/service/ses/cfn/sim-ses-cfn-resource-factory.js +7 -6
  579. package/dist/service/ses/cfn/template/sim-cfn-ses-template-creator.d.ts +3 -2
  580. package/dist/service/ses/cfn/template/sim-cfn-ses-template-creator.js +4 -8
  581. package/dist/service/ses/command/authorize/sim-ses-authorizer.js +1 -0
  582. package/dist/service/ses/sim-ses-commands.d.ts +1 -1
  583. package/dist/service/ses/sim-ses-commands.js +3 -2
  584. package/dist/service/sns/cfn/sim-cfn-sns-resource-deleter.d.ts +5 -8
  585. package/dist/service/sns/cfn/sim-cfn-sns-resource-deleter.js +10 -28
  586. package/dist/service/sns/cfn/sim-sns-cfn-resource-factory.js +10 -5
  587. package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-creator.d.ts +2 -1
  588. package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-creator.js +2 -2
  589. package/dist/service/sns/cfn/topic/sim-cfn-sns-topic-creator.d.ts +2 -1
  590. package/dist/service/sns/cfn/topic/sim-cfn-sns-topic-creator.js +5 -7
  591. package/dist/service/sns/cfn/topic-policy/sim-cfn-sns-topic-policy-creator.d.ts +9 -1
  592. package/dist/service/sns/cfn/topic-policy/sim-cfn-sns-topic-policy-creator.js +20 -4
  593. package/dist/service/sns/delivery/lambda/sim-sns-delivery-function.js +2 -1
  594. package/dist/service/sns/delivery/sqs/sim-sns-delivery-queue.js +2 -1
  595. package/dist/service/sns/sim-sns.d.ts +1 -1
  596. package/dist/service/sns/sim-sns.js +3 -2
  597. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-creator.d.ts +2 -1
  598. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-creator.js +2 -4
  599. package/dist/service/sqs/cfn/queue-policy/sim-cfn-sqs-queue-policy-creator.d.ts +2 -1
  600. package/dist/service/sqs/cfn/queue-policy/sim-cfn-sqs-queue-policy-creator.js +4 -4
  601. package/dist/service/sqs/cfn/sim-cfn-sqs-resource-deleter.d.ts +2 -1
  602. package/dist/service/sqs/cfn/sim-cfn-sqs-resource-deleter.js +7 -7
  603. package/dist/service/sqs/cfn/sim-sqs-cfn-resource-factory.js +5 -3
  604. package/dist/service/sqs/command/authorize/sim-sqs-authorizer.js +1 -0
  605. package/dist/service/sqs/sim-sqs.d.ts +1 -1
  606. package/dist/service/sqs/sim-sqs.js +3 -2
  607. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-creator.d.ts +2 -1
  608. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-creator.js +2 -2
  609. package/dist/service/ssm/cfn/sim-cfn-ssm-resource-factory.d.ts +2 -2
  610. package/dist/service/ssm/cfn/sim-cfn-ssm-resource-factory.js +4 -3
  611. package/dist/service/ssm/command/authorize/sim-ssm-authorizer.js +1 -0
  612. package/dist/service/ssm/sim-ssm.d.ts +1 -1
  613. package/dist/service/ssm/sim-ssm.js +3 -2
  614. package/dist/service/stepfunctions/cfn/sim-cfn-step-functions-resource-deleter.d.ts +2 -1
  615. package/dist/service/stepfunctions/cfn/sim-cfn-step-functions-resource-deleter.js +2 -4
  616. package/dist/service/stepfunctions/cfn/sim-step-functions-cfn-resource-factory.d.ts +1 -1
  617. package/dist/service/stepfunctions/cfn/sim-step-functions-cfn-resource-factory.js +4 -3
  618. package/dist/service/stepfunctions/cfn/state-machine/sim-cfn-state-machine-creator.d.ts +2 -1
  619. package/dist/service/stepfunctions/cfn/state-machine/sim-cfn-state-machine-creator.js +2 -2
  620. package/dist/service/stepfunctions/task/sim-aws-states-task-targets.js +2 -4
  621. package/dist/service/stepfunctions/task/sim-states-execution-role.d.ts +3 -3
  622. package/dist/service/stepfunctions/task/sim-states-execution-role.js +4 -3
  623. package/dist/service/stepfunctions/task/sim-states-task-function.js +2 -1
  624. package/dist/service/sts/auth-z/assume-role-auth-z-coordinator.d.ts +3 -0
  625. package/dist/service/sts/auth-z/assume-role-auth-z-coordinator.js +2 -7
  626. package/dist/service/sts/auth-z/assume-role-source-account-auth-z.d.ts +6 -0
  627. package/dist/service/sts/auth-z/assume-role-source-account-auth-z.js +3 -0
  628. package/dist/service/sts/auth-z/assume-role-target-auth-z.d.ts +6 -0
  629. package/dist/service/sts/auth-z/assume-role-target-auth-z.js +3 -0
  630. package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.d.ts +6 -0
  631. package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.js +1 -0
  632. package/dist/service/sts/command/assume-role/assume-role.handler.d.ts +5 -0
  633. package/dist/service/sts/command/assume-role/assume-role.handler.js +2 -1
  634. package/dist/service/sts/service-role/sim-service-role-source.d.ts +33 -0
  635. package/dist/service/sts/service-role/sim-service-role-source.js +26 -0
  636. package/dist/service/sts/service-role/sim-service-role-target.d.ts +26 -0
  637. package/dist/service/sts/service-role/sim-service-role-target.js +27 -0
  638. package/dist/service/sts/service-role/sim-service-role.d.ts +16 -20
  639. package/dist/service/sts/service-role/sim-service-role.js +7 -21
  640. package/dist/service/sts/sim-sts.js +1 -0
  641. package/dist/service/wafv2/cfn/association/sim-cfn-waf-association-creator.d.ts +3 -2
  642. package/dist/service/wafv2/cfn/association/sim-cfn-waf-association-creator.js +4 -6
  643. package/dist/service/wafv2/cfn/ip-set/sim-cfn-waf-ip-set-creator.d.ts +3 -2
  644. package/dist/service/wafv2/cfn/ip-set/sim-cfn-waf-ip-set-creator.js +4 -4
  645. package/dist/service/wafv2/cfn/regex-pattern-set/sim-cfn-waf-regex-set-creator.d.ts +3 -2
  646. package/dist/service/wafv2/cfn/regex-pattern-set/sim-cfn-waf-regex-set-creator.js +4 -4
  647. package/dist/service/wafv2/cfn/sim-cfn-waf-resource-deleter.d.ts +2 -1
  648. package/dist/service/wafv2/cfn/sim-cfn-waf-resource-deleter.js +5 -5
  649. package/dist/service/wafv2/cfn/sim-waf-cfn-resource-factory.d.ts +2 -2
  650. package/dist/service/wafv2/cfn/sim-waf-cfn-resource-factory.js +8 -6
  651. package/dist/service/wafv2/cfn/web-acl/sim-cfn-waf-web-acl-creator.d.ts +3 -2
  652. package/dist/service/wafv2/cfn/web-acl/sim-cfn-waf-web-acl-creator.js +4 -6
  653. package/dist/service/wafv2/command/authorize/sim-wafv2-authorizer.js +1 -0
  654. package/dist/service/wafv2/sim-wafv2-commands.d.ts +1 -1
  655. package/dist/service/wafv2/sim-wafv2-commands.js +3 -2
  656. package/dist/util/clock/sim-clock-control.d.ts +3 -1
  657. package/dist/util/clock/sim-clock-control.js +2 -0
  658. package/dist/util/clock/sim-controllable-clock.d.ts +3 -1
  659. package/dist/util/clock/sim-controllable-clock.js +2 -0
  660. package/dist/util/clock/sim-duration.d.ts +6 -2
  661. package/dist/util/clock/sim-duration.js +8 -1
  662. package/package.json +5 -1
@@ -2,6 +2,7 @@ import type { SimCfnResource } from "../../../cloudformation/resource/sim-cfn-re
2
2
  import type { SimCfnTemplateValueRecord } from "../../../cloudformation/template/value/sim-cfn-template-value.js";
3
3
  import type { SimLogsDeliveryDestination } from "../../delivery/sim-logs-delivery-destination.js";
4
4
  import type { SimLogs } from "../../sim-logs.js";
5
+ import type { SimCfnResourceCallerOptions } from "../../../cloudformation/resource/caller/sim-cfn-resource-caller-options.js";
5
6
  interface SimCfnDeliveryDestinationCreatorProperties {
6
7
  readonly logs: SimLogs;
7
8
  }
@@ -20,10 +21,10 @@ export declare class SimCfnDeliveryDestinationCreator {
20
21
  /**
21
22
  * Create a delivery destination from a CloudFormation Resource.
22
23
  */
23
- create(resource: SimCfnResource, properties: SimCfnTemplateValueRecord): Promise<SimLogsDeliveryDestination>;
24
+ create(resource: SimCfnResource, properties: SimCfnTemplateValueRecord, options?: SimCfnResourceCallerOptions): Promise<SimLogsDeliveryDestination>;
24
25
  /**
25
26
  * Delete a delivery destination created from a CloudFormation Resource.
26
27
  */
27
- delete(destination: SimLogsDeliveryDestination): Promise<void>;
28
+ delete(destination: SimLogsDeliveryDestination, options?: SimCfnResourceCallerOptions): Promise<void>;
28
29
  }
29
30
  export {};
@@ -24,7 +24,7 @@ export class SimCfnDeliveryDestinationCreator {
24
24
  /**
25
25
  * Create a delivery destination from a CloudFormation Resource.
26
26
  */
27
- async create(resource, properties) {
27
+ async create(resource, properties, options) {
28
28
  const reader = new SimCfnDeliveryProperties({
29
29
  resource,
30
30
  properties,
@@ -42,7 +42,7 @@ export class SimCfnDeliveryDestinationCreator {
42
42
  destinationResourceArn: reader.requiredString("DestinationResourceArn"),
43
43
  },
44
44
  },
45
- });
45
+ }, options);
46
46
  const destination = this.#logs.findDeliveryDestination(name);
47
47
  assertDefined(destination, `sim CloudWatch Logs delivery destination for CloudFormation Resource ${resource.logicalId}`);
48
48
  return destination;
@@ -50,9 +50,7 @@ export class SimCfnDeliveryDestinationCreator {
50
50
  /**
51
51
  * Delete a delivery destination created from a CloudFormation Resource.
52
52
  */
53
- async delete(destination) {
54
- await this.#logs.deleteDeliveryDestination({
55
- input: { name: destination.name },
56
- });
53
+ async delete(destination, options) {
54
+ await this.#logs.deleteDeliveryDestination({ input: { name: destination.name } }, options);
57
55
  }
58
56
  }
@@ -2,6 +2,7 @@ import type { SimCfnResource } from "../../../cloudformation/resource/sim-cfn-re
2
2
  import type { SimCfnTemplateValueRecord } from "../../../cloudformation/template/value/sim-cfn-template-value.js";
3
3
  import type { SimLogsDeliverySource } from "../../delivery/sim-logs-delivery-source.js";
4
4
  import type { SimLogs } from "../../sim-logs.js";
5
+ import type { SimCfnResourceCallerOptions } from "../../../cloudformation/resource/caller/sim-cfn-resource-caller-options.js";
5
6
  interface SimCfnDeliverySourceCreatorProperties {
6
7
  readonly logs: SimLogs;
7
8
  }
@@ -19,10 +20,10 @@ export declare class SimCfnDeliverySourceCreator {
19
20
  /**
20
21
  * Create a delivery source from an AWS::Logs::DeliverySource Resource.
21
22
  */
22
- create(resource: SimCfnResource, properties: SimCfnTemplateValueRecord): Promise<SimLogsDeliverySource>;
23
+ create(resource: SimCfnResource, properties: SimCfnTemplateValueRecord, options?: SimCfnResourceCallerOptions): Promise<SimLogsDeliverySource>;
23
24
  /**
24
25
  * Delete a delivery source created from a CloudFormation Resource.
25
26
  */
26
- delete(source: SimLogsDeliverySource): Promise<void>;
27
+ delete(source: SimLogsDeliverySource, options?: SimCfnResourceCallerOptions): Promise<void>;
27
28
  }
28
29
  export {};
@@ -19,7 +19,7 @@ export class SimCfnDeliverySourceCreator {
19
19
  /**
20
20
  * Create a delivery source from an AWS::Logs::DeliverySource Resource.
21
21
  */
22
- async create(resource, properties) {
22
+ async create(resource, properties, options) {
23
23
  const reader = new SimCfnDeliveryProperties({
24
24
  resource,
25
25
  properties,
@@ -35,7 +35,7 @@ export class SimCfnDeliverySourceCreator {
35
35
  resourceArn: reader.requiredString("ResourceArn"),
36
36
  logType: reader.requiredString("LogType"),
37
37
  },
38
- });
38
+ }, options);
39
39
  const source = this.#logs.findDeliverySource(name);
40
40
  assertDefined(source, `sim CloudWatch Logs delivery source for CloudFormation Resource ${resource.logicalId}`);
41
41
  return source;
@@ -43,7 +43,7 @@ export class SimCfnDeliverySourceCreator {
43
43
  /**
44
44
  * Delete a delivery source created from a CloudFormation Resource.
45
45
  */
46
- async delete(source) {
47
- await this.#logs.deleteDeliverySource({ input: { name: source.name } });
46
+ async delete(source, options) {
47
+ await this.#logs.deleteDeliverySource({ input: { name: source.name } }, options);
48
48
  }
49
49
  }
@@ -3,6 +3,7 @@ import type { SimCfnDeliveryCreator } from "./delivery/sim-cfn-delivery-creator.
3
3
  import type { SimCfnDeliveryDestinationCreator } from "./delivery/sim-cfn-delivery-destination-creator.js";
4
4
  import type { SimCfnDeliverySourceCreator } from "./delivery/sim-cfn-delivery-source-creator.js";
5
5
  import type { SimCfnLogGroupCreator } from "./group/sim-cfn-log-group-creator.js";
6
+ import type { SimCfnResourceCallerOptions } from "../../cloudformation/resource/caller/sim-cfn-resource-caller-options.js";
6
7
  interface SimLogsCfnResourceDeleterProperties {
7
8
  readonly logGroups: SimCfnLogGroupCreator;
8
9
  readonly deliverySources: SimCfnDeliverySourceCreator;
@@ -21,6 +22,6 @@ export declare class SimLogsCfnResourceDeleter {
21
22
  /**
22
23
  * Delete the resource a CloudFormation Resource created.
23
24
  */
24
- delete(resourceTypeName: string, resource: SimCfnResource): Promise<void>;
25
+ delete(resourceTypeName: string, resource: SimCfnResource, options?: SimCfnResourceCallerOptions): Promise<void>;
25
26
  }
26
27
  export {};
@@ -14,22 +14,22 @@ export class SimLogsCfnResourceDeleter {
14
14
  /**
15
15
  * Delete the resource a CloudFormation Resource created.
16
16
  */
17
- async delete(resourceTypeName, resource) {
17
+ async delete(resourceTypeName, resource, options) {
18
18
  switch (resourceTypeName) {
19
19
  case "LogGroup": {
20
20
  this.#creators.logGroups.delete(created(resource));
21
21
  return;
22
22
  }
23
23
  case "DeliverySource": {
24
- await this.#creators.deliverySources.delete(created(resource));
24
+ await this.#creators.deliverySources.delete(created(resource), options);
25
25
  return;
26
26
  }
27
27
  case "DeliveryDestination": {
28
- await this.#creators.deliveryDestinations.delete(created(resource));
28
+ await this.#creators.deliveryDestinations.delete(created(resource), options);
29
29
  return;
30
30
  }
31
31
  case "Delivery": {
32
- await this.#creators.deliveries.delete(created(resource));
32
+ await this.#creators.deliveries.delete(created(resource), options);
33
33
  return;
34
34
  }
35
35
  default: {
@@ -1,5 +1,5 @@
1
1
  import type { SimCfnServiceResourceFactory } from "../../cloudformation/resource/factory/sim-cfn-resource-factory.type.js";
2
- import type { SimCfnResource, SimCloudFormationResourceCreateContext } from "../../cloudformation/resource/sim-cfn-resource.js";
2
+ import type { SimCfnResource, SimCloudFormationResourceCreateContext, SimCloudFormationResourceDeleteContext } from "../../cloudformation/resource/sim-cfn-resource.js";
3
3
  import type { SimLogs } from "../sim-logs.js";
4
4
  interface SimLogsCfnResourceFactoryProperties {
5
5
  readonly logs: SimLogs;
@@ -28,6 +28,6 @@ export declare class SimLogsCfnResourceFactory implements SimCfnServiceResourceF
28
28
  * Delete a simulated CloudWatch Logs resource created from a CloudFormation
29
29
  * Resource.
30
30
  */
31
- delete(resourceTypeName: string, resource: SimCfnResource): Promise<void>;
31
+ delete(resourceTypeName: string, resource: SimCfnResource, context: SimCloudFormationResourceDeleteContext): Promise<void>;
32
32
  }
33
33
  export {};
@@ -1,3 +1,4 @@
1
+ import { simCfnResourceCallerOptions } from "../../cloudformation/resource/caller/sim-cfn-resource-caller-options.js";
1
2
  import { SimCfnDeliveryCreator } from "./delivery/sim-cfn-delivery-creator.js";
2
3
  import { SimCfnDeliveryDestinationCreator } from "./delivery/sim-cfn-delivery-destination-creator.js";
3
4
  import { SimCfnDeliverySourceCreator } from "./delivery/sim-cfn-delivery-source-creator.js";
@@ -40,18 +41,19 @@ export class SimLogsCfnResourceFactory {
40
41
  */
41
42
  async create(resourceTypeName, resource, context) {
42
43
  const values = context.resolvedProperties ?? resource.properties;
44
+ const options = simCfnResourceCallerOptions(context.caller);
43
45
  switch (resourceTypeName) {
44
46
  case "LogGroup": {
45
47
  return this.#logGroups.create(resource, values);
46
48
  }
47
49
  case "DeliverySource": {
48
- return await this.#deliverySources.create(resource, values);
50
+ return await this.#deliverySources.create(resource, values, options);
49
51
  }
50
52
  case "DeliveryDestination": {
51
- return await this.#deliveryDestinations.create(resource, values);
53
+ return await this.#deliveryDestinations.create(resource, values, options);
52
54
  }
53
55
  case "Delivery": {
54
- return await this.#deliveries.create(resource, values);
56
+ return await this.#deliveries.create(resource, values, options);
55
57
  }
56
58
  default: {
57
59
  throw unsupportedSimLogsResourceType(resourceTypeName, "");
@@ -62,7 +64,7 @@ export class SimLogsCfnResourceFactory {
62
64
  * Delete a simulated CloudWatch Logs resource created from a CloudFormation
63
65
  * Resource.
64
66
  */
65
- async delete(resourceTypeName, resource) {
66
- await this.#deleter.delete(resourceTypeName, resource);
67
+ async delete(resourceTypeName, resource, context) {
68
+ await this.#deleter.delete(resourceTypeName, resource, simCfnResourceCallerOptions(context.caller));
67
69
  }
68
70
  }
@@ -52,6 +52,7 @@ export class SimLogsAuthorizer {
52
52
  if (decision.isDenied) {
53
53
  throw new SimIamAccessDenied({
54
54
  principal: decision.caller.principal,
55
+ reason: decision.denialReason,
55
56
  action,
56
57
  resource,
57
58
  });
@@ -1,6 +1,6 @@
1
1
  import { type BackgroundScheduler } from "../../util/background/background.js";
2
2
  import type { SimAwsAccountRegionScope } from "../aws/sim-aws-account-region-scope.js";
3
- import { type SimIamInterServiceAuthZ } from "../iam/authorize/sim-iam-inter-service-auth-z.js";
3
+ import type { SimIamInterServiceAuthZ } from "../iam/authorize/sim-iam-inter-service-auth-z.js";
4
4
  import { SimLogsDeliveryCommands } from "./command/delivery/sim-logs-delivery-commands.js";
5
5
  import { SimLogsDeliveryDestinationCommands } from "./command/delivery/sim-logs-delivery-destination-commands.js";
6
6
  import { SimLogsDeliverySourceCommands } from "./command/delivery/sim-logs-delivery-source-commands.js";
@@ -1,6 +1,6 @@
1
1
  import { BackgroundTasks, } from "../../util/background/background.js";
2
2
  import { simAwsAccountRegionScopeFactory } from "../aws/sim-aws-account-region-scope.factory.js";
3
- import { SimIamAllowAllAuth, } from "../iam/authorize/sim-iam-inter-service-auth-z.js";
3
+ import { simIamInRegion } from "../iam/authorize/sim-iam-region-auth-z.js";
4
4
  import { SimLogsAuthorizer } from "./command/authorize/sim-logs-authorizer.js";
5
5
  import { SimLogsDeliveryCommands } from "./command/delivery/sim-logs-delivery-commands.js";
6
6
  import { SimLogsDeliveryDestinationCommands } from "./command/delivery/sim-logs-delivery-destination-commands.js";
@@ -48,7 +48,8 @@ export class SimLogsCommands {
48
48
  deliveries;
49
49
  background;
50
50
  constructor(properties = {}) {
51
- const { accountRegionScope = simAwsAccountRegionScopeFactory.make(), iam = new SimIamAllowAllAuth(), background = new BackgroundTasks(), subscriptionDestinations = new SimLogsNoSubscriptionDestinations(), deliverySourceResources = new SimLogsUncheckedDeliverySourceResources(), } = properties;
51
+ const { accountRegionScope = simAwsAccountRegionScopeFactory.make(), background = new BackgroundTasks(), subscriptionDestinations = new SimLogsNoSubscriptionDestinations(), deliverySourceResources = new SimLogsUncheckedDeliverySourceResources(), } = properties;
52
+ const iam = simIamInRegion(properties.iam, accountRegionScope.regionName);
52
53
  const authorizer = new SimLogsAuthorizer({ iam, accountRegionScope });
53
54
  const groups = new SimLogsLogGroupStore({ accountRegionScope });
54
55
  const eventIds = new SimLogsEventIds();
@@ -1,6 +1,7 @@
1
1
  import { SimLambdaServiceInvokeAuthorizer } from "../../../lambda/command/authorize/sim-lambda-service-invoke-authorizer.js";
2
2
  import { SimLogsDeliveryNotPermitted } from "../../error/sim-logs-delivery.error.js";
3
3
  import { SimLogsResourceNotFoundException } from "../../error/sim-logs.error.js";
4
+ import { simScopeIamAuthZ } from "../../../iam/authorize/sim-iam-region-auth-z.js";
4
5
  /**
5
6
  * The service principal CloudWatch Logs invokes a destination function as.
6
7
  *
@@ -32,7 +33,7 @@ export function permittedSimLogsDestinationFunction(arn, scope) {
32
33
  }
33
34
  const servicePrincipal = simLogsServicePrincipal(scope.region.regionName);
34
35
  const decision = new SimLambdaServiceInvokeAuthorizer({
35
- iam: scope.iam(),
36
+ iam: simScopeIamAuthZ(scope),
36
37
  }).authorize({ resource: target.resource, servicePrincipal });
37
38
  if (decision.isDenied) {
38
39
  throw new SimLogsDeliveryNotPermitted(`Could not execute the lambda function. Make sure you have given ` +
@@ -0,0 +1,19 @@
1
+ import type { SimAws } from "../../aws/sim-aws.js";
2
+ import type { SimCfnResource } from "../../cloudformation/resource/sim-cfn-resource.js";
3
+ import type { SimCfnTemplateValueRecord } from "../../cloudformation/template/value/sim-cfn-template-value.js";
4
+ import { SimCfnOrganization } from "./sim-cfn-organizations-record.js";
5
+ /**
6
+ * Records the organization an `AWS::Organizations::Organization` declares.
7
+ *
8
+ * A SimAws already has one organization, so this brings nothing into being.
9
+ * The Resource earns its place by answering `RootId`, which is what the rest
10
+ * of a template hangs off.
11
+ */
12
+ export declare class SimCfnOrganizationCreator {
13
+ #private;
14
+ constructor(simAws: SimAws);
15
+ /**
16
+ * Record the organization a template declares.
17
+ */
18
+ create(resource: SimCfnResource, properties: SimCfnTemplateValueRecord): SimCfnOrganization;
19
+ }
@@ -0,0 +1,25 @@
1
+ import { SimCfnOrganization } from "./sim-cfn-organizations-record.js";
2
+ import { SimCfnOrganizationsProperties } from "./sim-cfn-organizations-properties.js";
3
+ /**
4
+ * Records the organization an `AWS::Organizations::Organization` declares.
5
+ *
6
+ * A SimAws already has one organization, so this brings nothing into being.
7
+ * The Resource earns its place by answering `RootId`, which is what the rest
8
+ * of a template hangs off.
9
+ */
10
+ export class SimCfnOrganizationCreator {
11
+ #simAws;
12
+ constructor(simAws) {
13
+ this.#simAws = simAws;
14
+ }
15
+ /**
16
+ * Record the organization a template declares.
17
+ */
18
+ create(resource, properties) {
19
+ const values = new SimCfnOrganizationsProperties(resource, "AWS::Organizations::Organization");
20
+ const featureSet = properties["FeatureSet"];
21
+ values.ignore(featureSet, "FeatureSet", "Simulated Organizations evaluates service control policies whatever " +
22
+ "the feature set says");
23
+ return new SimCfnOrganization(this.#simAws.organizations().root().id, values.optionalString(featureSet) ?? "ALL", this.#simAws.defaultAccountId);
24
+ }
25
+ }
@@ -0,0 +1,16 @@
1
+ import type { SimAws } from "../../aws/sim-aws.js";
2
+ import type { SimCfnResource } from "../../cloudformation/resource/sim-cfn-resource.js";
3
+ import type { SimCfnTemplateValueRecord } from "../../cloudformation/template/value/sim-cfn-template-value.js";
4
+ import type { SimOrganizationsOrganizationalUnit } from "../tree/sim-organizations-node.js";
5
+ /**
6
+ * Creates organizational units from
7
+ * `AWS::Organizations::OrganizationalUnit` Resources.
8
+ */
9
+ export declare class SimCfnOrganizationalUnitCreator {
10
+ #private;
11
+ constructor(simAws: SimAws);
12
+ /**
13
+ * Create a unit under the node its `ParentId` names.
14
+ */
15
+ create(resource: SimCfnResource, properties: SimCfnTemplateValueRecord): SimOrganizationsOrganizationalUnit;
16
+ }
@@ -0,0 +1,21 @@
1
+ import { SimCfnOrganizationsProperties } from "./sim-cfn-organizations-properties.js";
2
+ /**
3
+ * Creates organizational units from
4
+ * `AWS::Organizations::OrganizationalUnit` Resources.
5
+ */
6
+ export class SimCfnOrganizationalUnitCreator {
7
+ #simAws;
8
+ constructor(simAws) {
9
+ this.#simAws = simAws;
10
+ }
11
+ /**
12
+ * Create a unit under the node its `ParentId` names.
13
+ */
14
+ create(resource, properties) {
15
+ const values = new SimCfnOrganizationsProperties(resource, "AWS::Organizations::OrganizationalUnit");
16
+ values.ignore(properties["Tags"], "Tags", "Simulated Organizations reads no unit tags");
17
+ return this.#simAws
18
+ .organizations()
19
+ .createOrganizationalUnit(values.requiredString(properties["Name"], "Name"), values.requiredString(properties["ParentId"], "ParentId"));
20
+ }
21
+ }
@@ -0,0 +1,20 @@
1
+ import type { SimAws } from "../../aws/sim-aws.js";
2
+ import type { SimCfnResource } from "../../cloudformation/resource/sim-cfn-resource.js";
3
+ import type { SimCfnTemplateValueRecord } from "../../cloudformation/template/value/sim-cfn-template-value.js";
4
+ import { SimCfnOrganizationsAccount } from "./sim-cfn-organizations-record.js";
5
+ /**
6
+ * Puts Accounts in the organization from `AWS::Organizations::Account`
7
+ * Resources.
8
+ *
9
+ * AWS creates a new account here and gives it an id nobody chose, so this does
10
+ * the same. A template reads that id back with `Ref` or with
11
+ * `Fn::GetAtt AccountId`.
12
+ */
13
+ export declare class SimCfnOrganizationsAccountCreator {
14
+ #private;
15
+ constructor(simAws: SimAws);
16
+ /**
17
+ * Create an Account under the first node its `ParentIds` names.
18
+ */
19
+ create(resource: SimCfnResource, properties: SimCfnTemplateValueRecord): SimCfnOrganizationsAccount;
20
+ }
@@ -0,0 +1,34 @@
1
+ import { makeSimAwsAccountId } from "../../aws/sim-aws-account.js";
2
+ import { SimCfnOrganizationsAccount } from "./sim-cfn-organizations-record.js";
3
+ import { SimCfnOrganizationsProperties } from "./sim-cfn-organizations-properties.js";
4
+ /**
5
+ * Puts Accounts in the organization from `AWS::Organizations::Account`
6
+ * Resources.
7
+ *
8
+ * AWS creates a new account here and gives it an id nobody chose, so this does
9
+ * the same. A template reads that id back with `Ref` or with
10
+ * `Fn::GetAtt AccountId`.
11
+ */
12
+ export class SimCfnOrganizationsAccountCreator {
13
+ #simAws;
14
+ constructor(simAws) {
15
+ this.#simAws = simAws;
16
+ }
17
+ /**
18
+ * Create an Account under the first node its `ParentIds` names.
19
+ */
20
+ create(resource, properties) {
21
+ const values = new SimCfnOrganizationsProperties(resource, "AWS::Organizations::Account");
22
+ values.ignore(properties["Tags"], "Tags", "Simulated Organizations reads no Account tags");
23
+ values.ignore(properties["RoleName"], "RoleName", "Simulated Organizations creates no cross-account access Role");
24
+ // Everything the Resource needs is read before the organization changes.
25
+ // A property that fails after the Account was placed would leave it in the
26
+ // organization with no record for a teardown to take it out again.
27
+ const accountName = values.requiredString(properties["AccountName"], "AccountName");
28
+ const email = values.requiredString(properties["Email"], "Email");
29
+ const parentId = values.stringList(properties["ParentIds"])[0];
30
+ const accountId = makeSimAwsAccountId();
31
+ this.#simAws.organizations().moveAccount(accountId, parentId);
32
+ return new SimCfnOrganizationsAccount(accountId, accountName, email, this.#simAws.now());
33
+ }
34
+ }
@@ -0,0 +1,21 @@
1
+ import type { SimAws } from "../../aws/sim-aws.js";
2
+ import type { SimCfnResource } from "../../cloudformation/resource/sim-cfn-resource.js";
3
+ import type { SimCfnTemplateValueRecord } from "../../cloudformation/template/value/sim-cfn-template-value.js";
4
+ import { SimCfnOrganizationsPolicy } from "./sim-cfn-organizations-record.js";
5
+ /**
6
+ * Attaches service control policies from `AWS::Organizations::Policy`
7
+ * Resources to the nodes they target.
8
+ *
9
+ * A policy of any other type is refused as an unsupported Resource, so the
10
+ * Stack records it and deploys on. Simulated Organizations evaluates service
11
+ * control policies and nothing else, and a tag policy stored here would look
12
+ * like one that does something.
13
+ */
14
+ export declare class SimCfnOrganizationsPolicyCreator {
15
+ #private;
16
+ constructor(simAws: SimAws);
17
+ /**
18
+ * Attach a policy to every node its `TargetIds` names.
19
+ */
20
+ create(resource: SimCfnResource, properties: SimCfnTemplateValueRecord): SimCfnOrganizationsPolicy;
21
+ }
@@ -0,0 +1,40 @@
1
+ import { makeSimOrganizationsPolicyId, } from "../tree/sim-organizations-node.js";
2
+ import { SimCfnOrganizationsPolicy } from "./sim-cfn-organizations-record.js";
3
+ import { SimCfnOrganizationsPolicyInput } from "./sim-cfn-organizations-policy-input.js";
4
+ /**
5
+ * Attaches service control policies from `AWS::Organizations::Policy`
6
+ * Resources to the nodes they target.
7
+ *
8
+ * A policy of any other type is refused as an unsupported Resource, so the
9
+ * Stack records it and deploys on. Simulated Organizations evaluates service
10
+ * control policies and nothing else, and a tag policy stored here would look
11
+ * like one that does something.
12
+ */
13
+ export class SimCfnOrganizationsPolicyCreator {
14
+ #simAws;
15
+ constructor(simAws) {
16
+ this.#simAws = simAws;
17
+ }
18
+ /**
19
+ * Attach a policy to every node its `TargetIds` names.
20
+ */
21
+ create(resource, properties) {
22
+ const input = new SimCfnOrganizationsPolicyInput(resource, properties);
23
+ const organizations = this.#simAws.organizations();
24
+ // Every target is resolved before any of them is attached to. Refusing one
25
+ // partway through would leave the earlier targets holding a policy no
26
+ // teardown knows about.
27
+ organizations.requireTargets(input.targetIds);
28
+ // An id of its own, rather than one derived from the logical id. Two
29
+ // Stacks can each declare a Policy called the same thing, and a shared id
30
+ // would let one Stack's teardown take the other's policy off.
31
+ const policyId = makeSimOrganizationsPolicyId();
32
+ for (const targetId of input.targetIds) {
33
+ organizations.attachServiceControlPolicy(targetId, input.document, {
34
+ policyName: input.name,
35
+ policyId,
36
+ });
37
+ }
38
+ return new SimCfnOrganizationsPolicy(policyId, input.name, input.policyType, input.targetIds);
39
+ }
40
+ }
@@ -0,0 +1,20 @@
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 { SimIamPolicyDocument } from "../../iam/policy/sim-iam-policy.js";
4
+ /**
5
+ * What an `AWS::Organizations::Policy` Resource asks for.
6
+ *
7
+ * Every property is read here before the creator changes anything, so a
8
+ * Resource that cannot be satisfied fails with the organization untouched.
9
+ */
10
+ export declare class SimCfnOrganizationsPolicyInput {
11
+ readonly name: string;
12
+ readonly document: SimIamPolicyDocument;
13
+ readonly targetIds: readonly string[];
14
+ constructor(resource: SimCfnResource, properties: SimCfnTemplateValueRecord);
15
+ /**
16
+ * The policy type this Resource carries, which is the only one simulated
17
+ * Organizations evaluates.
18
+ */
19
+ get policyType(): string;
20
+ }
@@ -0,0 +1,33 @@
1
+ import { SimCfnOrganizationsProperties } from "./sim-cfn-organizations-properties.js";
2
+ const SERVICE_CONTROL_POLICY = "SERVICE_CONTROL_POLICY";
3
+ /**
4
+ * What an `AWS::Organizations::Policy` Resource asks for.
5
+ *
6
+ * Every property is read here before the creator changes anything, so a
7
+ * Resource that cannot be satisfied fails with the organization untouched.
8
+ */
9
+ export class SimCfnOrganizationsPolicyInput {
10
+ name;
11
+ document;
12
+ targetIds;
13
+ constructor(resource, properties) {
14
+ const values = new SimCfnOrganizationsProperties(resource, "AWS::Organizations::Policy");
15
+ const policyType = values.requiredString(properties["Type"], "Type");
16
+ if (policyType !== SERVICE_CONTROL_POLICY) {
17
+ throw new Error(`Unsupported sim Organizations CloudFormation Resource Policy of ` +
18
+ `type ${policyType}`);
19
+ }
20
+ values.ignore(properties["Tags"], "Tags", "Simulated Organizations reads no policy tags");
21
+ values.ignore(properties["Description"], "Description", "A policy description decides nothing");
22
+ this.name = values.requiredString(properties["Name"], "Name");
23
+ this.document = values.documentValue(properties["Content"], "Content");
24
+ this.targetIds = values.stringList(properties["TargetIds"]);
25
+ }
26
+ /**
27
+ * The policy type this Resource carries, which is the only one simulated
28
+ * Organizations evaluates.
29
+ */
30
+ get policyType() {
31
+ return SERVICE_CONTROL_POLICY;
32
+ }
33
+ }
@@ -0,0 +1,36 @@
1
+ import type { SimCfnResource } from "../../cloudformation/resource/sim-cfn-resource.js";
2
+ import type { SimCfnTemplateValue } from "../../cloudformation/template/value/sim-cfn-template-value.js";
3
+ /**
4
+ * Reading the properties of an `AWS::Organizations::*` Resource.
5
+ *
6
+ * Each property is passed in by the caller under its own literal name, the way
7
+ * the other services read a template. A required one that is absent or of the
8
+ * wrong shape fails the Resource rather than quietly creating something else.
9
+ */
10
+ export declare class SimCfnOrganizationsProperties {
11
+ #private;
12
+ constructor(resource: SimCfnResource, resourceType: string);
13
+ /**
14
+ * A property that has to be a string for the Resource to mean anything.
15
+ */
16
+ requiredString(value: SimCfnTemplateValue | undefined, name: string): string;
17
+ /**
18
+ * A property that is a string where a template gives one.
19
+ */
20
+ optionalString(value: SimCfnTemplateValue | undefined): string | undefined;
21
+ /**
22
+ * A list-valued property, read as the strings in it.
23
+ *
24
+ * A template may give one value where a list is allowed, which
25
+ * CloudFormation accepts, so a bare string reads as a list of one.
26
+ */
27
+ stringList(value: SimCfnTemplateValue | undefined): readonly string[];
28
+ /**
29
+ * A property holding an IAM policy document, given inline or as JSON text.
30
+ */
31
+ documentValue(value: SimCfnTemplateValue | undefined, name: string): Readonly<Record<string, unknown>>;
32
+ /**
33
+ * Record a property the simulation creates the Resource without acting on.
34
+ */
35
+ ignore(value: SimCfnTemplateValue | undefined, name: string, reason: string): void;
36
+ }
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Reading the properties of an `AWS::Organizations::*` Resource.
3
+ *
4
+ * Each property is passed in by the caller under its own literal name, the way
5
+ * the other services read a template. A required one that is absent or of the
6
+ * wrong shape fails the Resource rather than quietly creating something else.
7
+ */
8
+ export class SimCfnOrganizationsProperties {
9
+ #resource;
10
+ #resourceType;
11
+ constructor(resource, resourceType) {
12
+ this.#resource = resource;
13
+ this.#resourceType = resourceType;
14
+ }
15
+ /**
16
+ * A property that has to be a string for the Resource to mean anything.
17
+ */
18
+ requiredString(value, name) {
19
+ if (typeof value !== "string" || value.length === 0) {
20
+ throw new Error(`${this.#resourceType} ${this.#resource.logicalId} requires ${name}`);
21
+ }
22
+ return value;
23
+ }
24
+ /**
25
+ * A property that is a string where a template gives one.
26
+ */
27
+ optionalString(value) {
28
+ return typeof value === "string" ? value : undefined;
29
+ }
30
+ /**
31
+ * A list-valued property, read as the strings in it.
32
+ *
33
+ * A template may give one value where a list is allowed, which
34
+ * CloudFormation accepts, so a bare string reads as a list of one.
35
+ */
36
+ stringList(value) {
37
+ if (typeof value === "string") {
38
+ return [value];
39
+ }
40
+ if (!Array.isArray(value)) {
41
+ return [];
42
+ }
43
+ return value.filter((item) => typeof item === "string");
44
+ }
45
+ /**
46
+ * A property holding an IAM policy document, given inline or as JSON text.
47
+ */
48
+ documentValue(value, name) {
49
+ const document = typeof value === "string" ? this.#parse(value, name) : value;
50
+ if (typeof document !== "object" ||
51
+ document === null ||
52
+ Array.isArray(document)) {
53
+ throw new Error(`${this.#resourceType} ${this.#resource.logicalId} requires ${name} ` +
54
+ `to be a policy document`);
55
+ }
56
+ return document;
57
+ }
58
+ /**
59
+ * Record a property the simulation creates the Resource without acting on.
60
+ */
61
+ ignore(value, name, reason) {
62
+ if (value !== undefined) {
63
+ this.#resource.ignoreProperty(name, reason);
64
+ }
65
+ }
66
+ /**
67
+ * Read a document a template gave as JSON text.
68
+ */
69
+ #parse(value, name) {
70
+ try {
71
+ return JSON.parse(value);
72
+ }
73
+ catch {
74
+ throw new Error(`${this.#resourceType} ${this.#resource.logicalId} ${name} is not ` +
75
+ `valid JSON`);
76
+ }
77
+ }
78
+ }