@kensio/yulin 1.20.13 → 1.20.15

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 (589) hide show
  1. package/{dist/config/oxlint/cffjs2.oxlintrc.json → cffjs2.oxlintrc.json} +1 -1
  2. package/dist/config/oxlint/cffjs2.oxlint.config.js +4 -3
  3. package/dist/service/acm/cfn/certificate/sim-cfn-acm-cert-creator.js +6 -4
  4. package/dist/service/acm/cfn/sim-cfn-acm-resource-factory.d.ts +2 -2
  5. package/dist/service/acm/cfn/sim-cfn-acm-resource-factory.js +3 -4
  6. package/dist/service/acm/cfn/validation/sim-cfn-acm-cert-validation.d.ts +2 -1
  7. package/dist/service/acm/cfn/validation/sim-cfn-acm-cert-validation.js +2 -2
  8. package/dist/service/acm/cfn/validation/sim-cfn-acm-validation-records.d.ts +2 -1
  9. package/dist/service/acm/cfn/validation/sim-cfn-acm-validation-records.js +4 -4
  10. package/dist/service/acm/sim-acm.d.ts +1 -1
  11. package/dist/service/acm/sim-acm.js +3 -2
  12. package/dist/service/apigateway/cfn/api/sim-cfn-rest-api-creator.d.ts +2 -1
  13. package/dist/service/apigateway/cfn/api/sim-cfn-rest-api-creator.js +11 -13
  14. package/dist/service/apigateway/cfn/authorizer/sim-cfn-rest-api-authorizer-creator.d.ts +2 -1
  15. package/dist/service/apigateway/cfn/authorizer/sim-cfn-rest-api-authorizer-creator.js +2 -4
  16. package/dist/service/apigateway/cfn/deployment/sim-cfn-rest-api-deployment-creator.d.ts +2 -1
  17. package/dist/service/apigateway/cfn/deployment/sim-cfn-rest-api-deployment-creator.js +2 -4
  18. package/dist/service/apigateway/cfn/method/sim-cfn-rest-api-method-creator.d.ts +2 -1
  19. package/dist/service/apigateway/cfn/method/sim-cfn-rest-api-method-creator.js +3 -5
  20. package/dist/service/apigateway/cfn/method/sim-cfn-rest-api-method-integration.d.ts +2 -1
  21. package/dist/service/apigateway/cfn/method/sim-cfn-rest-api-method-integration.js +3 -3
  22. package/dist/service/apigateway/cfn/resource/sim-cfn-rest-api-resource-creator.d.ts +2 -1
  23. package/dist/service/apigateway/cfn/resource/sim-cfn-rest-api-resource-creator.js +2 -4
  24. package/dist/service/apigateway/cfn/sim-cfn-api-gateway-resource-deleter.d.ts +2 -1
  25. package/dist/service/apigateway/cfn/sim-cfn-api-gateway-resource-deleter.js +3 -5
  26. package/dist/service/apigateway/cfn/sim-cfn-api-gateway-resource-factory.js +9 -7
  27. package/dist/service/apigateway/cfn/sim-cfn-rest-api-part-deleter.d.ts +2 -7
  28. package/dist/service/apigateway/cfn/sim-cfn-rest-api-part-deleter.js +12 -42
  29. package/dist/service/apigateway/cfn/sim-cfn-rest-api-part-values.d.ts +10 -0
  30. package/dist/service/apigateway/cfn/sim-cfn-rest-api-part-values.js +21 -0
  31. package/dist/service/apigateway/cfn/stage/sim-cfn-rest-api-stage-creator.d.ts +2 -1
  32. package/dist/service/apigateway/cfn/stage/sim-cfn-rest-api-stage-creator.js +2 -4
  33. package/dist/service/apigateway/serve/sim-api-gateway-router.js +5 -2
  34. package/dist/service/apigateway/sim-api-gateway-commands.d.ts +1 -1
  35. package/dist/service/apigateway/sim-api-gateway-commands.js +3 -2
  36. package/dist/service/apigatewayv2/cfn/api/sim-cfn-http-api-creator.d.ts +2 -1
  37. package/dist/service/apigatewayv2/cfn/api/sim-cfn-http-api-creator.js +5 -9
  38. package/dist/service/apigatewayv2/cfn/authorizer/sim-cfn-http-api-authorizer-creator.d.ts +2 -1
  39. package/dist/service/apigatewayv2/cfn/authorizer/sim-cfn-http-api-authorizer-creator.js +2 -4
  40. package/dist/service/apigatewayv2/cfn/domain/sim-cfn-api-mapping-creator.d.ts +2 -1
  41. package/dist/service/apigatewayv2/cfn/domain/sim-cfn-api-mapping-creator.js +2 -4
  42. package/dist/service/apigatewayv2/cfn/domain/sim-cfn-http-api-domain-creator.d.ts +2 -1
  43. package/dist/service/apigatewayv2/cfn/domain/sim-cfn-http-api-domain-creator.js +2 -4
  44. package/dist/service/apigatewayv2/cfn/integration/sim-cfn-http-api-integration-creator.d.ts +2 -1
  45. package/dist/service/apigatewayv2/cfn/integration/sim-cfn-http-api-integration-creator.js +2 -4
  46. package/dist/service/apigatewayv2/cfn/route/sim-cfn-http-api-route-creator.d.ts +2 -1
  47. package/dist/service/apigatewayv2/cfn/route/sim-cfn-http-api-route-creator.js +2 -4
  48. package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-resource-deleter.d.ts +2 -9
  49. package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-resource-deleter.js +19 -25
  50. package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-resource-factory.d.ts +0 -5
  51. package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-resource-factory.js +13 -29
  52. package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-unsupported.d.ts +5 -0
  53. package/dist/service/apigatewayv2/cfn/sim-cfn-api-gateway-v2-unsupported.js +19 -0
  54. package/dist/service/apigatewayv2/cfn/sim-cfn-http-api-part-deleter.d.ts +2 -1
  55. package/dist/service/apigatewayv2/cfn/sim-cfn-http-api-part-deleter.js +5 -13
  56. package/dist/service/apigatewayv2/cfn/stage/sim-cfn-http-api-stage-creator.d.ts +2 -1
  57. package/dist/service/apigatewayv2/cfn/stage/sim-cfn-http-api-stage-creator.js +2 -4
  58. package/dist/service/apigatewayv2/serve/sim-api-gateway-v2-router.js +5 -2
  59. package/dist/service/apigatewayv2/sim-api-gateway-v2-commands.d.ts +1 -1
  60. package/dist/service/apigatewayv2/sim-api-gateway-v2-commands.js +3 -2
  61. package/dist/service/athena/cfn/named-query/sim-cfn-athena-named-query-creator.d.ts +3 -2
  62. package/dist/service/athena/cfn/named-query/sim-cfn-athena-named-query-creator.js +4 -6
  63. package/dist/service/athena/cfn/sim-athena-cfn-resource-factory.d.ts +2 -2
  64. package/dist/service/athena/cfn/sim-athena-cfn-resource-factory.js +7 -6
  65. package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-creator.d.ts +3 -2
  66. package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-creator.js +7 -11
  67. package/dist/service/athena/engine/sim-athena-aggregate-shims.d.ts +10 -5
  68. package/dist/service/athena/engine/sim-athena-aggregate-shims.js +19 -16
  69. package/dist/service/athena/engine/sim-athena-binary-shims.d.ts +16 -0
  70. package/dist/service/athena/engine/sim-athena-binary-shims.js +49 -0
  71. package/dist/service/athena/engine/sim-athena-binary-text.d.ts +21 -0
  72. package/dist/service/athena/engine/sim-athena-binary-text.js +87 -0
  73. package/dist/service/athena/engine/sim-athena-count-distinct.d.ts +15 -0
  74. package/dist/service/athena/engine/sim-athena-count-distinct.js +103 -0
  75. package/dist/service/athena/engine/sim-athena-distinct-values.d.ts +19 -0
  76. package/dist/service/athena/engine/sim-athena-distinct-values.js +37 -0
  77. package/dist/service/athena/engine/sim-athena-hash-words.d.ts +14 -0
  78. package/dist/service/athena/engine/sim-athena-hash-words.js +22 -0
  79. package/dist/service/athena/engine/sim-athena-murmur3-mixing.d.ts +15 -0
  80. package/dist/service/athena/engine/sim-athena-murmur3-mixing.js +37 -0
  81. package/dist/service/athena/engine/sim-athena-murmur3.d.ts +11 -0
  82. package/dist/service/athena/engine/sim-athena-murmur3.js +51 -0
  83. package/dist/service/athena/engine/sim-athena-shim-registry.d.ts +9 -0
  84. package/dist/service/athena/engine/sim-athena-shim-registry.js +30 -1
  85. package/dist/service/athena/engine/sim-athena-shims.js +2 -0
  86. package/dist/service/athena/engine/sim-athena-sql-rewrites.d.ts +4 -2
  87. package/dist/service/athena/engine/sim-athena-sql-rewrites.js +6 -3
  88. package/dist/service/athena/engine/sim-athena-xxhash64.d.ts +8 -0
  89. package/dist/service/athena/engine/sim-athena-xxhash64.js +82 -0
  90. package/dist/service/athena/sim-athena-executions.d.ts +1 -1
  91. package/dist/service/athena/sim-athena-executions.js +3 -2
  92. package/dist/service/bedrock/sim-bedrock.d.ts +1 -1
  93. package/dist/service/bedrock/sim-bedrock.js +3 -2
  94. package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.d.ts +8 -0
  95. package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.js +6 -4
  96. package/dist/service/cloudformation/command/create-stack/create-stack.handler.d.ts +4 -0
  97. package/dist/service/cloudformation/command/create-stack/create-stack.handler.js +4 -1
  98. package/dist/service/cloudformation/command/update-stack/update-stack.handler.d.ts +7 -0
  99. package/dist/service/cloudformation/command/update-stack/update-stack.handler.js +3 -1
  100. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js +2 -1
  101. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.d.ts +9 -2
  102. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.js +2 -1
  103. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts +10 -3
  104. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.js +4 -7
  105. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts +10 -0
  106. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js +4 -2
  107. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.d.ts +11 -0
  108. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.js +2 -1
  109. package/dist/service/cloudformation/deploy/sim-cfn-template-file-updater.js +1 -0
  110. package/dist/service/cloudformation/resource/caller/sim-cfn-resource-caller-options.d.ts +16 -0
  111. package/dist/service/cloudformation/resource/caller/sim-cfn-resource-caller-options.js +6 -0
  112. package/dist/service/cloudformation/resource/cfn/scheduler/sim-scheduler-cfn-value-adapter.js +50 -0
  113. package/dist/service/cloudformation/resource/resolve/property/sim-cfn-resource-property-resolver.d.ts +11 -4
  114. package/dist/service/cloudformation/resource/resolve/property/sim-cfn-resource-property-resolver.js +21 -8
  115. package/dist/service/cloudformation/resource/sim-cfn-resource.type.d.ts +21 -0
  116. package/dist/service/cloudformation/sim-cloudformation.d.ts +1 -1
  117. package/dist/service/cloudformation/sim-cloudformation.js +3 -2
  118. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.d.ts +3 -0
  119. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.js +4 -1
  120. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-creator.d.ts +2 -0
  121. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-creator.js +2 -1
  122. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +17 -2
  123. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +15 -4
  124. package/dist/service/cloudformation/stack/sim-cfn-stack.js +5 -5
  125. package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +12 -0
  126. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.d.ts +3 -0
  127. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.js +3 -0
  128. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.d.ts +2 -0
  129. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.js +2 -1
  130. package/dist/service/cloudformation/template/dynamic/make-sim-cfn-dynamic-references.d.ts +2 -0
  131. package/dist/service/cloudformation/template/dynamic/make-sim-cfn-dynamic-references.js +2 -2
  132. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-reference-resolvers.d.ts +10 -0
  133. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-reference-resolvers.js +4 -3
  134. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-reference-scan.d.ts +11 -0
  135. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-reference-scan.js +21 -0
  136. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-references.d.ts +24 -2
  137. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-references.js +50 -11
  138. package/dist/service/cloudformation/template/dynamic/sim-cfn-prefetched-dynamic-references.d.ts +42 -0
  139. package/dist/service/cloudformation/template/dynamic/sim-cfn-prefetched-dynamic-references.js +80 -0
  140. package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-creator.d.ts +5 -0
  141. package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-creator.js +10 -3
  142. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js +2 -1
  143. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-deleter.d.ts +2 -1
  144. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-deleter.js +5 -7
  145. package/dist/service/cloudfront/cfn/key-value-store/sim-cfn-cf-kvs-creator.d.ts +3 -2
  146. package/dist/service/cloudfront/cfn/key-value-store/sim-cfn-cf-kvs-creator.js +6 -6
  147. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.d.ts +2 -4
  148. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.js +7 -15
  149. package/dist/service/cloudfront/edge/sim-aws-cf-edge-functions.js +3 -2
  150. package/dist/service/cloudfront/sim-cloudfront-commands.d.ts +1 -1
  151. package/dist/service/cloudfront/sim-cloudfront-commands.js +5 -2
  152. package/dist/service/cloudwatch/cfn/alarm/sim-cfn-alarm-creator.d.ts +3 -2
  153. package/dist/service/cloudwatch/cfn/alarm/sim-cfn-alarm-creator.js +4 -6
  154. package/dist/service/cloudwatch/cfn/sim-cloudwatch-cfn-resource-factory.d.ts +2 -2
  155. package/dist/service/cloudwatch/cfn/sim-cloudwatch-cfn-resource-factory.js +4 -3
  156. package/dist/service/cloudwatch/sim-cloudwatch-commands.d.ts +1 -1
  157. package/dist/service/cloudwatch/sim-cloudwatch-commands.js +3 -2
  158. package/dist/service/cognito/cfn/client/sim-cfn-cognito-client-creator.d.ts +2 -1
  159. package/dist/service/cognito/cfn/client/sim-cfn-cognito-client-creator.js +2 -4
  160. package/dist/service/cognito/cfn/domain/sim-cfn-cognito-domain-creator.d.ts +2 -1
  161. package/dist/service/cognito/cfn/domain/sim-cfn-cognito-domain-creator.js +2 -4
  162. package/dist/service/cognito/cfn/group/sim-cfn-cognito-group-creator.d.ts +2 -1
  163. package/dist/service/cognito/cfn/group/sim-cfn-cognito-group-creator.js +2 -4
  164. package/dist/service/cognito/cfn/idp/sim-cfn-cognito-idp-creator.d.ts +2 -1
  165. package/dist/service/cognito/cfn/idp/sim-cfn-cognito-idp-creator.js +2 -4
  166. package/dist/service/cognito/cfn/sim-cfn-cognito-resource-deleter.d.ts +2 -1
  167. package/dist/service/cognito/cfn/sim-cfn-cognito-resource-deleter.js +18 -24
  168. package/dist/service/cognito/cfn/sim-cfn-cognito-resource-factory.d.ts +2 -2
  169. package/dist/service/cognito/cfn/sim-cfn-cognito-resource-factory.js +9 -7
  170. package/dist/service/cognito/cfn/user-pool/sim-cfn-cognito-user-pool-creator.d.ts +2 -1
  171. package/dist/service/cognito/cfn/user-pool/sim-cfn-cognito-user-pool-creator.js +5 -7
  172. package/dist/service/cognito/sim-cognito-identity-provider.d.ts +1 -1
  173. package/dist/service/cognito/sim-cognito-identity-provider.js +3 -2
  174. package/dist/service/cognito/user-pool/trigger/sim-aws-cognito-trigger-functions.js +2 -1
  175. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-creator.d.ts +2 -1
  176. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-creator.js +2 -2
  177. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-deleter.d.ts +2 -1
  178. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-deleter.js +2 -4
  179. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.d.ts +2 -2
  180. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.js +6 -4
  181. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-creator.d.ts +2 -1
  182. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-creator.js +5 -7
  183. package/dist/service/dynamodb/sim-dynamodb.js +3 -2
  184. package/dist/service/ecs/cfn/cluster/sim-cfn-ecs-cluster-creator.d.ts +3 -2
  185. package/dist/service/ecs/cfn/cluster/sim-cfn-ecs-cluster-creator.js +4 -6
  186. package/dist/service/ecs/cfn/service/sim-cfn-ecs-service-creator.d.ts +3 -2
  187. package/dist/service/ecs/cfn/service/sim-cfn-ecs-service-creator.js +4 -4
  188. package/dist/service/ecs/cfn/sim-cfn-ecs-created-resource.d.ts +5 -0
  189. package/dist/service/ecs/cfn/sim-cfn-ecs-created-resource.js +9 -0
  190. package/dist/service/ecs/cfn/sim-ecs-cfn-resource-factory.d.ts +2 -2
  191. package/dist/service/ecs/cfn/sim-ecs-cfn-resource-factory.js +11 -16
  192. package/dist/service/ecs/cfn/task-definition/sim-cfn-ecs-task-definition-creator.d.ts +3 -2
  193. package/dist/service/ecs/cfn/task-definition/sim-cfn-ecs-task-definition-creator.js +4 -6
  194. package/dist/service/ecs/sim-ecs-commands.js +3 -2
  195. package/dist/service/ecs/task/run/sim-ecs-container-environment.d.ts +12 -10
  196. package/dist/service/ecs/task/run/sim-ecs-container-environment.js +16 -18
  197. package/dist/service/elbv2/cfn/listener/sim-cfn-elbv2-listener-creator.d.ts +3 -2
  198. package/dist/service/elbv2/cfn/listener/sim-cfn-elbv2-listener-creator.js +4 -6
  199. package/dist/service/elbv2/cfn/load-balancer/sim-cfn-elbv2-load-balancer-creator.d.ts +3 -2
  200. package/dist/service/elbv2/cfn/load-balancer/sim-cfn-elbv2-load-balancer-creator.js +4 -6
  201. package/dist/service/elbv2/cfn/rule/sim-cfn-elbv2-listener-rule-creator.d.ts +3 -2
  202. package/dist/service/elbv2/cfn/rule/sim-cfn-elbv2-listener-rule-creator.js +4 -4
  203. package/dist/service/elbv2/cfn/sim-elbv2-cfn-resource-deleter.d.ts +2 -1
  204. package/dist/service/elbv2/cfn/sim-elbv2-cfn-resource-deleter.js +5 -5
  205. package/dist/service/elbv2/cfn/sim-elbv2-cfn-resource-factory.d.ts +2 -2
  206. package/dist/service/elbv2/cfn/sim-elbv2-cfn-resource-factory.js +8 -6
  207. package/dist/service/elbv2/cfn/target-group/sim-cfn-elbv2-target-group-creator.d.ts +3 -2
  208. package/dist/service/elbv2/cfn/target-group/sim-cfn-elbv2-target-group-creator.js +7 -11
  209. package/dist/service/elbv2/serve/sim-elbv2-router.js +2 -1
  210. package/dist/service/elbv2/sim-elbv2.js +3 -3
  211. package/dist/service/eventbridge/cfn/bus/sim-cfn-event-bus-creator.d.ts +2 -1
  212. package/dist/service/eventbridge/cfn/bus/sim-cfn-event-bus-creator.js +2 -4
  213. package/dist/service/eventbridge/cfn/rule/sim-cfn-event-rule-creator.d.ts +2 -1
  214. package/dist/service/eventbridge/cfn/rule/sim-cfn-event-rule-creator.js +5 -5
  215. package/dist/service/eventbridge/cfn/sim-cfn-event-bridge-resource-deleter.d.ts +2 -1
  216. package/dist/service/eventbridge/cfn/sim-cfn-event-bridge-resource-deleter.js +7 -7
  217. package/dist/service/eventbridge/cfn/sim-event-bridge-cfn-resource-factory.js +5 -3
  218. package/dist/service/eventbridge/delivery/sim-event-bridge-delivery-failures.d.ts +16 -0
  219. package/dist/service/eventbridge/delivery/sim-event-bridge-delivery-failures.js +19 -0
  220. package/dist/service/eventbridge/delivery/sim-event-bridge-delivery-function.js +2 -1
  221. package/dist/service/eventbridge/delivery/sim-event-bridge-delivery-queue.js +2 -1
  222. package/dist/service/eventbridge/delivery/sim-event-bridge-delivery-task.js +4 -1
  223. package/dist/service/eventbridge/delivery/sim-event-bridge-delivery-topic.js +2 -1
  224. package/dist/service/eventbridge/delivery/sim-event-bridge-target-role.d.ts +8 -3
  225. package/dist/service/eventbridge/delivery/sim-event-bridge-target-role.js +9 -3
  226. package/dist/service/eventbridge/sim-event-bridge.d.ts +1 -1
  227. package/dist/service/eventbridge/sim-event-bridge.js +3 -2
  228. package/dist/service/firehose/cfn/delivery-stream/sim-cfn-firehose-delivery-stream-creator.d.ts +2 -1
  229. package/dist/service/firehose/cfn/delivery-stream/sim-cfn-firehose-delivery-stream-creator.js +2 -2
  230. package/dist/service/firehose/cfn/sim-cfn-firehose-resource-deleter.d.ts +2 -1
  231. package/dist/service/firehose/cfn/sim-cfn-firehose-resource-deleter.js +2 -4
  232. package/dist/service/firehose/cfn/sim-firehose-cfn-resource-factory.d.ts +1 -1
  233. package/dist/service/firehose/cfn/sim-firehose-cfn-resource-factory.js +4 -3
  234. package/dist/service/firehose/sim-firehose.d.ts +1 -1
  235. package/dist/service/firehose/sim-firehose.js +3 -2
  236. package/dist/service/glue/sim-glue.d.ts +1 -1
  237. package/dist/service/glue/sim-glue.js +3 -2
  238. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts +15 -11
  239. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js +5 -18
  240. package/dist/service/iam/authorize/context/sim-iam-derived-conditions.d.ts +42 -0
  241. package/dist/service/iam/authorize/context/sim-iam-derived-conditions.js +44 -0
  242. package/dist/service/iam/authorize/match/condition/arn/equals/sim-iam-arn-equals.js +2 -2
  243. package/dist/service/iam/authorize/match/condition/arn/like/sim-iam-arn-like.js +2 -2
  244. package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-for-all-values-string-operator.d.ts +20 -0
  245. package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-for-all-values-string-operator.js +27 -0
  246. package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-for-any-value-string-operator.d.ts +21 -0
  247. package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-for-any-value-string-operator.js +28 -0
  248. package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-operator-factories.d.ts +5 -0
  249. package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-operator-factories.js +36 -0
  250. package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-scalar-string-operator.d.ts +20 -0
  251. package/dist/service/iam/authorize/match/condition/negated/sim-iam-negated-scalar-string-operator.js +29 -0
  252. package/dist/service/iam/authorize/match/condition/numeric/less-than-equals/sim-iam-number-lte.d.ts +1 -0
  253. package/dist/service/iam/authorize/match/condition/numeric/less-than-equals/sim-iam-number-lte.js +1 -0
  254. package/dist/service/iam/authorize/match/condition/sim-iam-condition-match.d.ts +26 -0
  255. package/dist/service/iam/authorize/match/condition/sim-iam-condition-match.js +1 -0
  256. package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator-parser.js +2 -0
  257. package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator.d.ts +15 -0
  258. package/dist/service/iam/authorize/match/condition/sim-iam-policy-condition-matcher.d.ts +11 -3
  259. package/dist/service/iam/authorize/match/condition/sim-iam-policy-condition-matcher.js +29 -11
  260. package/dist/service/iam/authorize/match/condition/sim-iam-string-comparison.d.ts +24 -0
  261. package/dist/service/iam/authorize/match/condition/sim-iam-string-comparison.js +17 -0
  262. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-condition-operator.d.ts +1 -0
  263. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-condition-operator.js +1 -0
  264. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-equals.js +2 -1
  265. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-like.js +2 -4
  266. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-condition-operator.d.ts +1 -0
  267. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-condition-operator.js +1 -0
  268. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-equals.js +2 -1
  269. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-like.js +2 -4
  270. package/dist/service/iam/authorize/match/condition/string/equals/sim-iam-string-equals.js +2 -1
  271. package/dist/service/iam/authorize/match/condition/string/like/sim-iam-string-like.js +2 -4
  272. package/dist/service/iam/authorize/match/condition/string/sim-iam-scalar-string-condition-operator.d.ts +1 -0
  273. package/dist/service/iam/authorize/match/condition/string/sim-iam-scalar-string-condition-operator.js +1 -0
  274. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.d.ts +18 -1
  275. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.js +32 -4
  276. package/dist/service/iam/authorize/sim-iam-decision.d.ts +12 -0
  277. package/dist/service/iam/authorize/sim-iam-decision.js +14 -0
  278. package/dist/service/iam/authorize/sim-iam-region-auth-z.d.ts +31 -0
  279. package/dist/service/iam/authorize/sim-iam-region-auth-z.js +65 -0
  280. package/dist/service/iam/authorize/unevaluated/sim-iam-unevaluated-statement.type.d.ts +31 -0
  281. package/dist/service/iam/authorize/unevaluated/sim-iam-unevaluated-statement.type.js +1 -0
  282. package/dist/service/iam/authorize/unevaluated/sim-iam-unevaluated-statements.d.ts +31 -0
  283. package/dist/service/iam/authorize/unevaluated/sim-iam-unevaluated-statements.js +43 -0
  284. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-attacher.d.ts +2 -1
  285. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-attacher.js +2 -4
  286. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.d.ts +2 -1
  287. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.js +3 -3
  288. package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-creator.d.ts +2 -1
  289. package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-creator.js +7 -7
  290. package/dist/service/iam/cfn/role/sim-cfn-iam-role-creator.d.ts +2 -1
  291. package/dist/service/iam/cfn/role/sim-cfn-iam-role-creator.js +8 -8
  292. package/dist/service/iam/cfn/role/sim-cfn-iam-role-deleter.d.ts +2 -1
  293. package/dist/service/iam/cfn/role/sim-cfn-iam-role-deleter.js +10 -12
  294. package/dist/service/iam/cfn/sim-cfn-iam-resource-deleter.d.ts +2 -1
  295. package/dist/service/iam/cfn/sim-cfn-iam-resource-deleter.js +12 -16
  296. package/dist/service/iam/cfn/sim-cfn-iam-resource-factory.js +8 -5
  297. package/dist/service/iam/cfn/user/sim-cfn-iam-user-creator.d.ts +2 -1
  298. package/dist/service/iam/cfn/user/sim-cfn-iam-user-creator.js +11 -11
  299. package/dist/service/iam/cfn/user/sim-cfn-iam-user-deleter.d.ts +4 -2
  300. package/dist/service/iam/cfn/user/sim-cfn-iam-user-deleter.js +17 -3
  301. package/dist/service/iam/command/policy/create-policy/create-policy-input-resolver.js +4 -1
  302. package/dist/service/iam/command/policy/put-role-policy/put-role-policy.handler.js +5 -1
  303. package/dist/service/iam/command/policy/put-user-policy/put-user-policy.handler.js +5 -1
  304. package/dist/service/iam/command/sim-iam-command-handlers.js +6 -1
  305. package/dist/service/iam/policy/parse/sim-iam-document-parser.d.ts +4 -1
  306. package/dist/service/iam/policy/parse/sim-iam-document-parser.js +13 -15
  307. package/dist/service/iam/policy/sim-iam-statement-label.d.ts +28 -0
  308. package/dist/service/iam/policy/sim-iam-statement-label.js +17 -0
  309. package/dist/service/iam/policy/sim-iam-statement-strings.d.ts +11 -0
  310. package/dist/service/iam/policy/sim-iam-statement-strings.js +27 -0
  311. package/dist/service/iam/validate/sim-iam-policy-document-validator.d.ts +9 -2
  312. package/dist/service/iam/validate/sim-iam-policy-document-validator.js +37 -19
  313. package/dist/service/kinesis/cfn/sim-cfn-kinesis-resource-deleter.d.ts +2 -1
  314. package/dist/service/kinesis/cfn/sim-cfn-kinesis-resource-deleter.js +2 -2
  315. package/dist/service/kinesis/cfn/sim-kinesis-cfn-resource-factory.d.ts +1 -1
  316. package/dist/service/kinesis/cfn/sim-kinesis-cfn-resource-factory.js +4 -3
  317. package/dist/service/kinesis/cfn/stream/sim-cfn-kinesis-stream-creator.d.ts +2 -1
  318. package/dist/service/kinesis/cfn/stream/sim-cfn-kinesis-stream-creator.js +5 -7
  319. package/dist/service/kinesis/sim-kinesis.d.ts +1 -1
  320. package/dist/service/kinesis/sim-kinesis.js +3 -2
  321. package/dist/service/kms/cfn/alias/sim-cfn-kms-alias-creator.d.ts +2 -1
  322. package/dist/service/kms/cfn/alias/sim-cfn-kms-alias-creator.js +2 -2
  323. package/dist/service/kms/cfn/key/sim-cfn-kms-key-creator.d.ts +6 -6
  324. package/dist/service/kms/cfn/key/sim-cfn-kms-key-creator.js +11 -11
  325. package/dist/service/kms/cfn/sim-cfn-kms-resource-deleter.d.ts +2 -1
  326. package/dist/service/kms/cfn/sim-cfn-kms-resource-deleter.js +3 -5
  327. package/dist/service/kms/cfn/sim-cfn-kms-resource-factory.d.ts +2 -1
  328. package/dist/service/kms/cfn/sim-cfn-kms-resource-factory.js +6 -4
  329. package/dist/service/kms/sim-kms-commands.d.ts +1 -1
  330. package/dist/service/kms/sim-kms-commands.js +3 -2
  331. package/dist/service/lambda/cfn/alias/sim-cfn-lambda-alias-creator.d.ts +2 -1
  332. package/dist/service/lambda/cfn/alias/sim-cfn-lambda-alias-creator.js +2 -2
  333. package/dist/service/lambda/cfn/event-invoke-config/sim-cfn-lambda-event-invoke-config-creator.d.ts +2 -1
  334. package/dist/service/lambda/cfn/event-invoke-config/sim-cfn-lambda-event-invoke-config-creator.js +2 -2
  335. package/dist/service/lambda/cfn/event-invoke-config/sim-cfn-lambda-event-invoke-config-remover.d.ts +2 -1
  336. package/dist/service/lambda/cfn/event-invoke-config/sim-cfn-lambda-event-invoke-config-remover.js +2 -4
  337. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-creator.d.ts +2 -1
  338. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-creator.js +2 -2
  339. package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-creator.d.ts +2 -1
  340. package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-creator.js +3 -4
  341. package/dist/service/lambda/cfn/permission/sim-cfn-lambda-permission-creator.d.ts +2 -1
  342. package/dist/service/lambda/cfn/permission/sim-cfn-lambda-permission-creator.js +2 -2
  343. package/dist/service/lambda/cfn/permission/sim-cfn-lambda-permission-revoker.d.ts +2 -1
  344. package/dist/service/lambda/cfn/permission/sim-cfn-lambda-permission-revoker.js +2 -2
  345. package/dist/service/lambda/cfn/sim-cfn-lambda-resource-deleter.d.ts +2 -8
  346. package/dist/service/lambda/cfn/sim-cfn-lambda-resource-deleter.js +18 -38
  347. package/dist/service/lambda/cfn/sim-cfn-lambda-resource-factory.d.ts +2 -2
  348. package/dist/service/lambda/cfn/sim-cfn-lambda-resource-factory.js +12 -9
  349. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.d.ts +2 -1
  350. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.js +2 -2
  351. package/dist/service/lambda/cfn/version/sim-cfn-lambda-version-creator.d.ts +2 -1
  352. package/dist/service/lambda/cfn/version/sim-cfn-lambda-version-creator.js +2 -2
  353. package/dist/service/lambda/function/code/sim-lambda-vm-zip-function.factory.d.ts +7 -0
  354. package/dist/service/lambda/function/code/sim-lambda-vm-zip-function.factory.js +1 -0
  355. package/dist/service/lambda/function/code/vm/sdk/sim-lambda-provided-sdk-module.d.ts +19 -0
  356. package/dist/service/lambda/function/code/vm/sdk/sim-lambda-provided-sdk-module.js +78 -0
  357. package/dist/service/lambda/function/code/vm/sdk/sim-lambda-sdk-packages-not-installed.error.d.ts +15 -0
  358. package/dist/service/lambda/function/code/vm/sdk/sim-lambda-sdk-packages-not-installed.error.js +27 -0
  359. package/dist/service/lambda/function/code/vm/sdk/sim-lambda-vm-sdk-module-provider.d.ts +9 -0
  360. package/dist/service/lambda/function/code/vm/sdk/sim-sdk-lambda-vm-module-provider.d.ts +10 -0
  361. package/dist/service/lambda/function/code/vm/sdk/sim-sdk-lambda-vm-module-provider.js +28 -34
  362. package/dist/service/lambda/function/code/vm/sim-lambda-host-modules.d.ts +15 -0
  363. package/dist/service/lambda/function/code/vm/sim-lambda-host-modules.js +31 -0
  364. package/dist/service/lambda/function/code/vm/sim-lambda-vm-module-resolver.d.ts +7 -0
  365. package/dist/service/lambda/function/code/vm/sim-lambda-vm-module-resolver.js +15 -0
  366. package/dist/service/lambda/function/code/vm/sim-lambda-vm-modules.js +5 -4
  367. package/dist/service/lambda/serve/sim-lambda-url-router.js +2 -1
  368. package/dist/service/lambda/sim-lambda-commands.d.ts +1 -1
  369. package/dist/service/lambda/sim-lambda-commands.js +3 -2
  370. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.d.ts +3 -2
  371. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.js +4 -6
  372. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.d.ts +3 -2
  373. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.js +4 -6
  374. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.d.ts +3 -2
  375. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.js +4 -4
  376. package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.d.ts +2 -1
  377. package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.js +4 -4
  378. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.d.ts +2 -2
  379. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.js +7 -5
  380. package/dist/service/logs/sim-logs-commands.d.ts +1 -1
  381. package/dist/service/logs/sim-logs-commands.js +3 -2
  382. package/dist/service/logs/subscription/lambda/sim-logs-destination-permission.js +2 -1
  383. package/dist/service/personalize/cfn/sim-cfn-personalize-dataset-creator.d.ts +3 -2
  384. package/dist/service/personalize/cfn/sim-cfn-personalize-dataset-creator.js +4 -6
  385. package/dist/service/personalize/cfn/sim-cfn-personalize-dataset-group-creator.d.ts +3 -2
  386. package/dist/service/personalize/cfn/sim-cfn-personalize-dataset-group-creator.js +4 -6
  387. package/dist/service/personalize/cfn/sim-cfn-personalize-event-tracker-creator.d.ts +3 -2
  388. package/dist/service/personalize/cfn/sim-cfn-personalize-event-tracker-creator.js +4 -6
  389. package/dist/service/personalize/cfn/sim-cfn-personalize-schema-creator.d.ts +3 -2
  390. package/dist/service/personalize/cfn/sim-cfn-personalize-schema-creator.js +4 -4
  391. package/dist/service/personalize/cfn/sim-cfn-personalize-solution-creator.d.ts +3 -2
  392. package/dist/service/personalize/cfn/sim-cfn-personalize-solution-creator.js +4 -6
  393. package/dist/service/personalize/cfn/sim-personalize-cfn-resource-factory.d.ts +2 -2
  394. package/dist/service/personalize/cfn/sim-personalize-cfn-resource-factory.js +7 -6
  395. package/dist/service/personalize/sim-personalize-data-operations.d.ts +1 -1
  396. package/dist/service/personalize/sim-personalize-data-operations.js +3 -2
  397. package/dist/service/rekognition/sim-rekognition.d.ts +1 -1
  398. package/dist/service/rekognition/sim-rekognition.js +3 -2
  399. package/dist/service/route53/cfn/dnssec/sim-cfn-r53-ksk-creator.d.ts +3 -2
  400. package/dist/service/route53/cfn/dnssec/sim-cfn-r53-ksk-creator.js +5 -5
  401. package/dist/service/route53/cfn/dnssec/sim-cfn-r53-zone-signing-creator.d.ts +3 -2
  402. package/dist/service/route53/cfn/dnssec/sim-cfn-r53-zone-signing-creator.js +4 -8
  403. package/dist/service/route53/cfn/hosted-zone/sim-cfn-r53-zone-creator.d.ts +2 -1
  404. package/dist/service/route53/cfn/hosted-zone/sim-cfn-r53-zone-creator.js +2 -2
  405. package/dist/service/route53/cfn/record-set/apply/sim-cfn-r53-record-set-applicator.d.ts +9 -1
  406. package/dist/service/route53/cfn/record-set/apply/sim-cfn-r53-record-set-applicator.js +23 -2
  407. package/dist/service/route53/cfn/sim-cfn-route53-resource-deleter.d.ts +5 -3
  408. package/dist/service/route53/cfn/sim-cfn-route53-resource-deleter.js +9 -28
  409. package/dist/service/route53/cfn/sim-cfn-route53-resource-factory.js +9 -5
  410. package/dist/service/route53/sim-route53.d.ts +1 -1
  411. package/dist/service/route53/sim-route53.js +5 -2
  412. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.d.ts +3 -0
  413. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js +6 -13
  414. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.d.ts +2 -1
  415. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.js +3 -2
  416. package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.d.ts +2 -1
  417. package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.js +2 -2
  418. package/dist/service/s3/cfn/sim-cfn-s3-resource-deleter.d.ts +2 -1
  419. package/dist/service/s3/cfn/sim-cfn-s3-resource-deleter.js +3 -7
  420. package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.d.ts +2 -2
  421. package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.js +6 -4
  422. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.js +4 -1
  423. package/dist/service/s3/notification/destination/lambda/sim-aws-s3-notification-functions.js +2 -1
  424. package/dist/service/s3/notification/destination/sns/sim-s3-notification-topic.js +2 -1
  425. package/dist/service/s3/notification/destination/sqs/sim-s3-notification-queue.js +2 -1
  426. package/dist/service/s3/sim-s3-commands.d.ts +1 -1
  427. package/dist/service/s3/sim-s3-commands.js +3 -2
  428. package/dist/service/scheduler/cfn/sim-cfn-schedule-creator.d.ts +26 -0
  429. package/dist/service/scheduler/cfn/sim-cfn-schedule-creator.js +49 -0
  430. package/dist/service/scheduler/cfn/sim-cfn-schedule-group-creator.d.ts +31 -0
  431. package/dist/service/scheduler/cfn/sim-cfn-schedule-group-creator.js +48 -0
  432. package/dist/service/scheduler/cfn/sim-cfn-schedule-group-properties.d.ts +26 -0
  433. package/dist/service/scheduler/cfn/sim-cfn-schedule-group-properties.js +68 -0
  434. package/dist/service/scheduler/cfn/sim-cfn-schedule-properties.js +4 -10
  435. package/dist/service/scheduler/cfn/sim-cfn-scheduler-resource-error.d.ts +14 -3
  436. package/dist/service/scheduler/cfn/sim-cfn-scheduler-resource-error.js +28 -6
  437. package/dist/service/scheduler/cfn/sim-cfn-scheduler-resource-lookup.d.ts +10 -4
  438. package/dist/service/scheduler/cfn/sim-cfn-scheduler-resource-lookup.js +9 -6
  439. package/dist/service/scheduler/cfn/sim-scheduler-cfn-resource-factory.d.ts +6 -8
  440. package/dist/service/scheduler/cfn/sim-scheduler-cfn-resource-factory.js +20 -33
  441. package/dist/service/scheduler/command/authorize/sim-scheduler-authorizer.d.ts +9 -8
  442. package/dist/service/scheduler/command/authorize/sim-scheduler-authorizer.js +14 -15
  443. package/dist/service/scheduler/command/group/group.command.d.ts +90 -0
  444. package/dist/service/scheduler/command/group/group.command.js +1 -0
  445. package/dist/service/scheduler/command/group/sim-scheduler-described-group.d.ts +15 -0
  446. package/dist/service/scheduler/command/group/sim-scheduler-described-group.js +29 -0
  447. package/dist/service/scheduler/command/group/sim-scheduler-group-access.d.ts +57 -0
  448. package/dist/service/scheduler/command/group/sim-scheduler-group-access.js +70 -0
  449. package/dist/service/scheduler/command/group/sim-scheduler-group-commands.d.ts +46 -0
  450. package/dist/service/scheduler/command/group/sim-scheduler-group-commands.js +72 -0
  451. package/dist/service/scheduler/command/group/sim-scheduler-listed-groups.d.ts +6 -0
  452. package/dist/service/scheduler/command/group/sim-scheduler-listed-groups.js +10 -0
  453. package/dist/service/scheduler/command/group/sim-scheduler-unsimulated-group-input.d.ts +14 -0
  454. package/dist/service/scheduler/command/group/sim-scheduler-unsimulated-group-input.js +19 -0
  455. package/dist/service/scheduler/command/schedule/sim-scheduler-create-schedule.js +1 -0
  456. package/dist/service/scheduler/command/schedule/sim-scheduler-schedule-access.d.ts +16 -0
  457. package/dist/service/scheduler/command/schedule/sim-scheduler-schedule-access.js +23 -3
  458. package/dist/service/scheduler/command/sim-scheduler-command.types.d.ts +1 -0
  459. package/dist/service/scheduler/command/sim-scheduler-commands.d.ts +4 -0
  460. package/dist/service/scheduler/command/sim-scheduler-commands.js +14 -1
  461. package/dist/service/scheduler/delivery/sim-aws-scheduler-delivery-targets.js +1 -1
  462. package/dist/service/scheduler/delivery/sim-scheduler-delivery-failures.d.ts +16 -0
  463. package/dist/service/scheduler/delivery/sim-scheduler-delivery-failures.js +19 -0
  464. package/dist/service/scheduler/delivery/sim-scheduler-delivery-function.js +2 -1
  465. package/dist/service/scheduler/delivery/sim-scheduler-delivery-queue.js +2 -1
  466. package/dist/service/scheduler/delivery/sim-scheduler-delivery-topic.js +2 -1
  467. package/dist/service/scheduler/delivery/sim-scheduler-execution-role.d.ts +9 -3
  468. package/dist/service/scheduler/delivery/sim-scheduler-execution-role.js +10 -3
  469. package/dist/service/scheduler/group/sim-scheduler-schedule-group-arn.d.ts +11 -0
  470. package/dist/service/scheduler/group/sim-scheduler-schedule-group-arn.js +13 -0
  471. package/dist/service/scheduler/group/sim-scheduler-schedule-group-store.d.ts +46 -0
  472. package/dist/service/scheduler/group/sim-scheduler-schedule-group-store.js +65 -0
  473. package/dist/service/scheduler/group/sim-scheduler-schedule-group.d.ts +25 -0
  474. package/dist/service/scheduler/group/sim-scheduler-schedule-group.js +32 -0
  475. package/dist/service/scheduler/index.d.ts +3 -1
  476. package/dist/service/scheduler/index.js +3 -1
  477. package/dist/service/scheduler/schedule/sim-scheduler-schedule-name.d.ts +11 -9
  478. package/dist/service/scheduler/schedule/sim-scheduler-schedule-name.js +15 -18
  479. package/dist/service/scheduler/schedule/sim-scheduler-schedule-store.d.ts +7 -0
  480. package/dist/service/scheduler/schedule/sim-scheduler-schedule-store.js +13 -0
  481. package/dist/service/scheduler/schedule/sim-scheduler-schedule.d.ts +13 -0
  482. package/dist/service/scheduler/schedule/sim-scheduler-schedule.js +16 -0
  483. package/dist/service/scheduler/sdk/sim-scheduler-sdk-command-router.js +16 -0
  484. package/dist/service/scheduler/sim-scheduler-inspection.d.ts +14 -0
  485. package/dist/service/scheduler/sim-scheduler-inspection.js +15 -0
  486. package/dist/service/scheduler/sim-scheduler.d.ts +19 -1
  487. package/dist/service/scheduler/sim-scheduler.js +38 -2
  488. package/dist/service/secretsmanager/cfn/dynamic/sim-cfn-secrets-manager-dynamic-reference-resolver.d.ts +13 -15
  489. package/dist/service/secretsmanager/cfn/dynamic/sim-cfn-secrets-manager-dynamic-reference-resolver.js +22 -43
  490. package/dist/service/secretsmanager/cfn/dynamic/sim-cfn-secrets-manager-reference-stand-in.d.ts +9 -0
  491. package/dist/service/secretsmanager/cfn/dynamic/sim-cfn-secrets-manager-reference-stand-in.js +14 -0
  492. package/dist/service/secretsmanager/cfn/dynamic/sim-cfn-secrets-manager-reference-value.d.ts +12 -0
  493. package/dist/service/secretsmanager/cfn/dynamic/sim-cfn-secrets-manager-reference-value.js +29 -0
  494. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-creator.d.ts +2 -1
  495. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-creator.js +2 -2
  496. package/dist/service/secretsmanager/cfn/sim-cfn-secrets-manager-resource-factory.d.ts +2 -2
  497. package/dist/service/secretsmanager/cfn/sim-cfn-secrets-manager-resource-factory.js +4 -5
  498. package/dist/service/secretsmanager/sim-secrets-manager.d.ts +1 -1
  499. package/dist/service/secretsmanager/sim-secrets-manager.js +3 -2
  500. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-creator.d.ts +3 -2
  501. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-creator.js +4 -4
  502. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-creator.d.ts +3 -2
  503. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-creator.js +4 -8
  504. package/dist/service/ses/cfn/sim-ses-cfn-resource-factory.d.ts +2 -2
  505. package/dist/service/ses/cfn/sim-ses-cfn-resource-factory.js +7 -6
  506. package/dist/service/ses/cfn/template/sim-cfn-ses-template-creator.d.ts +3 -2
  507. package/dist/service/ses/cfn/template/sim-cfn-ses-template-creator.js +4 -8
  508. package/dist/service/ses/sim-ses-commands.d.ts +1 -1
  509. package/dist/service/ses/sim-ses-commands.js +3 -2
  510. package/dist/service/sns/cfn/sim-cfn-sns-resource-deleter.d.ts +5 -8
  511. package/dist/service/sns/cfn/sim-cfn-sns-resource-deleter.js +10 -28
  512. package/dist/service/sns/cfn/sim-sns-cfn-resource-factory.js +10 -5
  513. package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-creator.d.ts +2 -1
  514. package/dist/service/sns/cfn/subscription/sim-cfn-sns-subscription-creator.js +2 -2
  515. package/dist/service/sns/cfn/topic/sim-cfn-sns-topic-creator.d.ts +2 -1
  516. package/dist/service/sns/cfn/topic/sim-cfn-sns-topic-creator.js +5 -7
  517. package/dist/service/sns/cfn/topic-policy/sim-cfn-sns-topic-policy-creator.d.ts +9 -1
  518. package/dist/service/sns/cfn/topic-policy/sim-cfn-sns-topic-policy-creator.js +20 -4
  519. package/dist/service/sns/delivery/lambda/sim-sns-delivery-function.js +2 -1
  520. package/dist/service/sns/delivery/sqs/sim-sns-delivery-queue.js +2 -1
  521. package/dist/service/sns/sim-sns.d.ts +1 -1
  522. package/dist/service/sns/sim-sns.js +3 -2
  523. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-creator.d.ts +2 -1
  524. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-creator.js +2 -4
  525. package/dist/service/sqs/cfn/queue-policy/sim-cfn-sqs-queue-policy-creator.d.ts +2 -1
  526. package/dist/service/sqs/cfn/queue-policy/sim-cfn-sqs-queue-policy-creator.js +4 -4
  527. package/dist/service/sqs/cfn/sim-cfn-sqs-resource-deleter.d.ts +2 -1
  528. package/dist/service/sqs/cfn/sim-cfn-sqs-resource-deleter.js +7 -7
  529. package/dist/service/sqs/cfn/sim-sqs-cfn-resource-factory.js +5 -3
  530. package/dist/service/sqs/sim-sqs.d.ts +1 -1
  531. package/dist/service/sqs/sim-sqs.js +3 -2
  532. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-dynamic-reference-resolver.d.ts +22 -6
  533. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-dynamic-reference-resolver.js +39 -24
  534. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-dynamic-reference-resolver.d.ts +10 -5
  535. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-dynamic-reference-resolver.js +10 -8
  536. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-creator.d.ts +2 -1
  537. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-creator.js +2 -2
  538. package/dist/service/ssm/cfn/sim-cfn-ssm-resource-factory.d.ts +2 -2
  539. package/dist/service/ssm/cfn/sim-cfn-ssm-resource-factory.js +4 -3
  540. package/dist/service/ssm/sim-ssm.d.ts +11 -3
  541. package/dist/service/ssm/sim-ssm.js +15 -6
  542. package/dist/service/stepfunctions/cfn/sim-cfn-step-functions-resource-deleter.d.ts +2 -1
  543. package/dist/service/stepfunctions/cfn/sim-cfn-step-functions-resource-deleter.js +2 -4
  544. package/dist/service/stepfunctions/cfn/sim-step-functions-cfn-resource-factory.d.ts +1 -1
  545. package/dist/service/stepfunctions/cfn/sim-step-functions-cfn-resource-factory.js +4 -3
  546. package/dist/service/stepfunctions/cfn/state-machine/sim-cfn-state-machine-creator.d.ts +2 -1
  547. package/dist/service/stepfunctions/cfn/state-machine/sim-cfn-state-machine-creator.js +2 -2
  548. package/dist/service/stepfunctions/task/sim-aws-states-task-targets.js +2 -4
  549. package/dist/service/stepfunctions/task/sim-states-execution-role.d.ts +3 -3
  550. package/dist/service/stepfunctions/task/sim-states-execution-role.js +4 -3
  551. package/dist/service/stepfunctions/task/sim-states-task-function.js +2 -1
  552. package/dist/service/sts/auth-z/assume-role-auth-z-coordinator.d.ts +3 -0
  553. package/dist/service/sts/auth-z/assume-role-auth-z-coordinator.js +2 -7
  554. package/dist/service/sts/auth-z/assume-role-source-account-auth-z.d.ts +6 -0
  555. package/dist/service/sts/auth-z/assume-role-source-account-auth-z.js +3 -0
  556. package/dist/service/sts/auth-z/assume-role-target-auth-z.d.ts +6 -0
  557. package/dist/service/sts/auth-z/assume-role-target-auth-z.js +3 -0
  558. package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.d.ts +6 -0
  559. package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.js +1 -0
  560. package/dist/service/sts/command/assume-role/assume-role.handler.d.ts +5 -0
  561. package/dist/service/sts/command/assume-role/assume-role.handler.js +2 -1
  562. package/dist/service/sts/service-role/sim-service-role-source.d.ts +33 -0
  563. package/dist/service/sts/service-role/sim-service-role-source.js +26 -0
  564. package/dist/service/sts/service-role/sim-service-role-target.d.ts +26 -0
  565. package/dist/service/sts/service-role/sim-service-role-target.js +27 -0
  566. package/dist/service/sts/service-role/sim-service-role.d.ts +16 -20
  567. package/dist/service/sts/service-role/sim-service-role.js +7 -21
  568. package/dist/service/sts/sim-sts.js +1 -0
  569. package/dist/service/wafv2/cfn/association/sim-cfn-waf-association-creator.d.ts +3 -2
  570. package/dist/service/wafv2/cfn/association/sim-cfn-waf-association-creator.js +4 -6
  571. package/dist/service/wafv2/cfn/ip-set/sim-cfn-waf-ip-set-creator.d.ts +3 -2
  572. package/dist/service/wafv2/cfn/ip-set/sim-cfn-waf-ip-set-creator.js +4 -4
  573. package/dist/service/wafv2/cfn/regex-pattern-set/sim-cfn-waf-regex-set-creator.d.ts +3 -2
  574. package/dist/service/wafv2/cfn/regex-pattern-set/sim-cfn-waf-regex-set-creator.js +4 -4
  575. package/dist/service/wafv2/cfn/sim-cfn-waf-resource-deleter.d.ts +2 -1
  576. package/dist/service/wafv2/cfn/sim-cfn-waf-resource-deleter.js +5 -5
  577. package/dist/service/wafv2/cfn/sim-waf-cfn-resource-factory.d.ts +2 -2
  578. package/dist/service/wafv2/cfn/sim-waf-cfn-resource-factory.js +8 -6
  579. package/dist/service/wafv2/cfn/web-acl/sim-cfn-waf-web-acl-creator.d.ts +3 -2
  580. package/dist/service/wafv2/cfn/web-acl/sim-cfn-waf-web-acl-creator.js +4 -6
  581. package/dist/service/wafv2/sim-wafv2-commands.d.ts +1 -1
  582. package/dist/service/wafv2/sim-wafv2-commands.js +3 -2
  583. package/dist/util/clock/sim-clock-control.d.ts +3 -1
  584. package/dist/util/clock/sim-clock-control.js +2 -0
  585. package/dist/util/clock/sim-controllable-clock.d.ts +3 -1
  586. package/dist/util/clock/sim-controllable-clock.js +2 -0
  587. package/dist/util/clock/sim-duration.d.ts +6 -2
  588. package/dist/util/clock/sim-duration.js +8 -1
  589. package/package.json +4 -3
@@ -0,0 +1,72 @@
1
+ import { SimSchedulerConflictException } from "../../error/sim-scheduler.error.js";
2
+ import { SimSchedulerPage } from "../sim-scheduler-page.js";
3
+ import { narrowedScheduleGroups } from "./sim-scheduler-listed-groups.js";
4
+ import { refuseUnsimulatedGroupInput } from "./sim-scheduler-unsimulated-group-input.js";
5
+ import { describedScheduleGroup, listedScheduleGroup, } from "./sim-scheduler-described-group.js";
6
+ /**
7
+ * The commands that manage schedule groups.
8
+ *
9
+ * All four in one handler, unlike schedules, where creating and updating are
10
+ * their own. A group is a name. There is no request to read into a resource,
11
+ * and no update at all, since `Name` is the only thing a group has and AWS
12
+ * replaces the group to change it.
13
+ */
14
+ export class SimSchedulerGroupCommands {
15
+ groups;
16
+ schedules;
17
+ access;
18
+ constructor(properties) {
19
+ this.groups = properties.groups;
20
+ this.schedules = properties.schedules;
21
+ this.access = properties.access;
22
+ }
23
+ /**
24
+ * Create a schedule group.
25
+ */
26
+ createScheduleGroup(command, options) {
27
+ const input = command.input;
28
+ refuseUnsimulatedGroupInput(input);
29
+ const groupName = this.access.authorized("scheduler:CreateScheduleGroup", input.Name, options);
30
+ if (this.groups.find(groupName) !== undefined) {
31
+ throw new SimSchedulerConflictException(`Schedule group ${groupName} already exists.`);
32
+ }
33
+ return {
34
+ $metadata: {},
35
+ ScheduleGroupArn: this.groups.create(groupName).arn,
36
+ };
37
+ }
38
+ /**
39
+ * Describe a schedule group.
40
+ */
41
+ getScheduleGroup(command, options) {
42
+ const group = this.access.require("scheduler:GetScheduleGroup", command.input.Name, options);
43
+ return { $metadata: {}, ...describedScheduleGroup(group) };
44
+ }
45
+ /**
46
+ * Delete a schedule group, and the schedules in it.
47
+ *
48
+ * AWS deletes the schedules with the group rather than refusing a group that
49
+ * still holds some, and leaves the group in a `DELETING` state until they
50
+ * have gone. Here they go in the same call, so nothing is ever seen in that
51
+ * state.
52
+ */
53
+ deleteScheduleGroup(command, options) {
54
+ const group = this.access.requireDeletable("scheduler:DeleteScheduleGroup", command.input.Name, options);
55
+ this.schedules.removeGroup(group.name);
56
+ this.groups.remove(group);
57
+ return { $metadata: {} };
58
+ }
59
+ /**
60
+ * List the schedule groups of this scope, in creation order.
61
+ */
62
+ listScheduleGroups(command, options) {
63
+ const input = command.input;
64
+ this.access.authorizeListing("scheduler:ListScheduleGroups", options);
65
+ const page = new SimSchedulerPage(narrowedScheduleGroups(this.groups.all, input).map(listedScheduleGroup), input.MaxResults, input.NextToken);
66
+ return {
67
+ $metadata: {},
68
+ ScheduleGroups: page.items,
69
+ NextToken: page.nextToken,
70
+ };
71
+ }
72
+ }
@@ -0,0 +1,6 @@
1
+ import type { SimSchedulerScheduleGroup } from "../../group/sim-scheduler-schedule-group.js";
2
+ import type { SimListScheduleGroupsCommandInput } from "./group.command.js";
3
+ /**
4
+ * The groups a listing reports, narrowed by what it asked for.
5
+ */
6
+ export declare function narrowedScheduleGroups(groups: readonly SimSchedulerScheduleGroup[], input: SimListScheduleGroupsCommandInput): readonly SimSchedulerScheduleGroup[];
@@ -0,0 +1,10 @@
1
+ /**
2
+ * The groups a listing reports, narrowed by what it asked for.
3
+ */
4
+ export function narrowedScheduleGroups(groups, input) {
5
+ const prefix = input.NamePrefix;
6
+ if (prefix === undefined) {
7
+ return groups;
8
+ }
9
+ return groups.filter((group) => group.name.startsWith(prefix));
10
+ }
@@ -0,0 +1,14 @@
1
+ import type { SimCreateScheduleGroupCommandInput } from "./group.command.js";
2
+ /**
3
+ * Refuse the group request inputs this simulation does not model.
4
+ *
5
+ * Tagging is most of what AWS says a group is for, and nothing here reads a
6
+ * tag back, so a group created without them would look tagged to whoever
7
+ * asked and untagged to everything else. An empty list asks for no tags, so
8
+ * there is nothing to drop and nothing to refuse.
9
+ *
10
+ * A template is treated differently. The CDK puts a Stack's tags on a group
11
+ * without being asked, and failing a Stack over them would be a refusal nobody
12
+ * wrote.
13
+ */
14
+ export declare function refuseUnsimulatedGroupInput(input: SimCreateScheduleGroupCommandInput): void;
@@ -0,0 +1,19 @@
1
+ import { SimSchedulerUnsimulatedInputException } from "../../error/sim-scheduler.error.js";
2
+ /**
3
+ * Refuse the group request inputs this simulation does not model.
4
+ *
5
+ * Tagging is most of what AWS says a group is for, and nothing here reads a
6
+ * tag back, so a group created without them would look tagged to whoever
7
+ * asked and untagged to everything else. An empty list asks for no tags, so
8
+ * there is nothing to drop and nothing to refuse.
9
+ *
10
+ * A template is treated differently. The CDK puts a Stack's tags on a group
11
+ * without being asked, and failing a Stack over them would be a refusal nobody
12
+ * wrote.
13
+ */
14
+ export function refuseUnsimulatedGroupInput(input) {
15
+ if (input.Tags !== undefined && input.Tags.length > 0) {
16
+ throw new SimSchedulerUnsimulatedInputException("Schedule group tags are not simulated, so CreateScheduleGroup " +
17
+ "refuses them rather than dropping them");
18
+ }
19
+ }
@@ -26,6 +26,7 @@ export class SimSchedulerCreateSchedule {
26
26
  const input = command.input;
27
27
  const requested = this.access.requested(input);
28
28
  this.access.authorize("scheduler:CreateSchedule", requested, options);
29
+ this.access.requireGroup(requested.groupName);
29
30
  if (this.schedules.find(requested.groupName, requested.name.value) !==
30
31
  undefined) {
31
32
  throw new SimSchedulerConflictException(`Schedule ${requested.name.value} already exists in group ` +
@@ -1,4 +1,5 @@
1
1
  import type { SimAwsAccountRegionScope } from "../../../aws/sim-aws-account-region-scope.js";
2
+ import type { SimSchedulerScheduleGroupStore } from "../../group/sim-scheduler-schedule-group-store.js";
2
3
  import { SimSchedulerScheduleName } from "../../schedule/sim-scheduler-schedule-name.js";
3
4
  import type { SimSchedulerSchedule } from "../../schedule/sim-scheduler-schedule.js";
4
5
  import type { SimSchedulerScheduleStore } from "../../schedule/sim-scheduler-schedule-store.js";
@@ -13,6 +14,7 @@ export interface SimSchedulerRequestedSchedule {
13
14
  }
14
15
  interface SimSchedulerScheduleAccessProperties {
15
16
  readonly schedules: SimSchedulerScheduleStore;
17
+ readonly groups: SimSchedulerScheduleGroupStore;
16
18
  readonly authorizer: SimSchedulerAuthorizer;
17
19
  readonly accountRegionScope: SimAwsAccountRegionScope;
18
20
  }
@@ -29,6 +31,7 @@ interface SimSchedulerScheduleRequest {
29
31
  */
30
32
  export declare class SimSchedulerScheduleAccess {
31
33
  private readonly schedules;
34
+ private readonly groups;
32
35
  private readonly authorizer;
33
36
  private readonly accountRegionScope;
34
37
  constructor(properties: SimSchedulerScheduleAccessProperties);
@@ -41,6 +44,19 @@ export declare class SimSchedulerScheduleAccess {
41
44
  * exist.
42
45
  */
43
46
  authorize(action: string, requested: SimSchedulerRequestedSchedule, options?: SimSchedulerRequestOptions): void;
47
+ /**
48
+ * Ensure the group a request names is there, which AWS requires of every
49
+ * request naming one.
50
+ *
51
+ * Real Scheduler refuses a schedule whose `GroupName` names no group rather
52
+ * than creating it in `default`, and so does this. The group is in a
53
+ * schedule's ARN, and a schedule quietly moved would carry an ARN naming a
54
+ * group it had never been put in.
55
+ *
56
+ * Asked after the caller is authorized, so a caller with no permission
57
+ * learns nothing about which groups exist.
58
+ */
59
+ requireGroup(groupName: string): void;
44
60
  /**
45
61
  * Resolve the schedule a request names, authorizing the action first.
46
62
  */
@@ -9,10 +9,12 @@ import { requestedScheduleGroupName, SimSchedulerScheduleName, } from "../../sch
9
9
  */
10
10
  export class SimSchedulerScheduleAccess {
11
11
  schedules;
12
+ groups;
12
13
  authorizer;
13
14
  accountRegionScope;
14
15
  constructor(properties) {
15
16
  this.schedules = properties.schedules;
17
+ this.groups = properties.groups;
16
18
  this.authorizer = properties.authorizer;
17
19
  this.accountRegionScope = properties.accountRegionScope;
18
20
  }
@@ -30,7 +32,22 @@ export class SimSchedulerScheduleAccess {
30
32
  * exist.
31
33
  */
32
34
  authorize(action, requested, options) {
33
- this.authorizer.authorizeSchedule(action, this.arnFor(requested), options);
35
+ this.authorizer.authorizeResource(action, this.arnFor(requested), options);
36
+ }
37
+ /**
38
+ * Ensure the group a request names is there, which AWS requires of every
39
+ * request naming one.
40
+ *
41
+ * Real Scheduler refuses a schedule whose `GroupName` names no group rather
42
+ * than creating it in `default`, and so does this. The group is in a
43
+ * schedule's ARN, and a schedule quietly moved would carry an ARN naming a
44
+ * group it had never been put in.
45
+ *
46
+ * Asked after the caller is authorized, so a caller with no permission
47
+ * learns nothing about which groups exist.
48
+ */
49
+ requireGroup(groupName) {
50
+ this.groups.require(groupName);
34
51
  }
35
52
  /**
36
53
  * Resolve the schedule a request names, authorizing the action first.
@@ -38,6 +55,7 @@ export class SimSchedulerScheduleAccess {
38
55
  require(action, request, options) {
39
56
  const requested = this.requested(request);
40
57
  this.authorize(action, requested, options);
58
+ this.requireGroup(requested.groupName);
41
59
  return this.schedules.require(requested.groupName, requested.name.value);
42
60
  }
43
61
  /**
@@ -48,8 +66,10 @@ export class SimSchedulerScheduleAccess {
48
66
  * listing by what the caller can reach.
49
67
  */
50
68
  listedGroupName(action, requested, options) {
51
- this.authorizer.authorizeAnySchedule(action, options);
52
- return requestedScheduleGroupName(requested);
69
+ this.authorizer.authorizeAnyResource(action, options);
70
+ const groupName = requestedScheduleGroupName(requested);
71
+ this.requireGroup(groupName);
72
+ return groupName;
53
73
  }
54
74
  /**
55
75
  * The ARN a schedule of this name in this group has, or would have.
@@ -1 +1,2 @@
1
1
  export type { SimCreateScheduleCommand, SimCreateScheduleCommandOutput, SimDeleteScheduleCommand, SimDeleteScheduleCommandInput, SimDeleteScheduleCommandOutput, SimGetScheduleCommand, SimGetScheduleCommandInput, SimGetScheduleCommandOutput, SimListSchedulesCommand, SimListSchedulesCommandInput, SimListSchedulesCommandOutput, SimSchedulerFlexibleTimeWindow, SimSchedulerListedSchedule, SimSchedulerRequestTarget, SimSchedulerScheduleInput, SimUpdateScheduleCommand, SimUpdateScheduleCommandOutput, } from "./schedule/schedule.command.js";
2
+ export type { SimCreateScheduleGroupCommand, SimCreateScheduleGroupCommandInput, SimCreateScheduleGroupCommandOutput, SimDeleteScheduleGroupCommand, SimDeleteScheduleGroupCommandInput, SimDeleteScheduleGroupCommandOutput, SimGetScheduleGroupCommand, SimGetScheduleGroupCommandInput, SimGetScheduleGroupCommandOutput, SimListScheduleGroupsCommand, SimListScheduleGroupsCommandInput, SimListScheduleGroupsCommandOutput, SimSchedulerListedScheduleGroup, SimSchedulerTag, } from "./group/group.command.js";
@@ -3,13 +3,16 @@ import type { SimAwsAccountRegionScope } from "../../aws/sim-aws-account-region-
3
3
  import type { SimIamInterServiceAuthZ } from "../../iam/authorize/sim-iam-inter-service-auth-z.js";
4
4
  import type { SimSchedulerDeliveryTargets } from "../delivery/sim-scheduler-delivery.js";
5
5
  import { SimSchedulerTargetDelivery } from "../delivery/sim-scheduler-target-delivery.js";
6
+ import type { SimSchedulerScheduleGroupStore } from "../group/sim-scheduler-schedule-group-store.js";
6
7
  import { SimSchedulerSchedules } from "../schedule/sim-scheduler-schedules.js";
7
8
  import type { SimSchedulerScheduleStore } from "../schedule/sim-scheduler-schedule-store.js";
9
+ import { SimSchedulerGroupCommands } from "./group/sim-scheduler-group-commands.js";
8
10
  import { SimSchedulerCreateSchedule } from "./schedule/sim-scheduler-create-schedule.js";
9
11
  import { SimSchedulerScheduleCommands } from "./schedule/sim-scheduler-schedule-commands.js";
10
12
  import { SimSchedulerUpdateSchedule } from "./schedule/sim-scheduler-update-schedule.js";
11
13
  interface SimSchedulerCommandsProperties {
12
14
  readonly schedules: SimSchedulerScheduleStore;
15
+ readonly groups: SimSchedulerScheduleGroupStore;
13
16
  readonly iam: SimIamInterServiceAuthZ;
14
17
  readonly background: BackgroundScheduler;
15
18
  readonly deliveryTargets?: SimSchedulerDeliveryTargets | undefined;
@@ -25,6 +28,7 @@ export declare class SimSchedulerCommands {
25
28
  readonly scheduleCreation: SimSchedulerCreateSchedule;
26
29
  readonly scheduleUpdate: SimSchedulerUpdateSchedule;
27
30
  readonly schedules: SimSchedulerScheduleCommands;
31
+ readonly groups: SimSchedulerGroupCommands;
28
32
  readonly delivery: SimSchedulerTargetDelivery;
29
33
  readonly firing: SimSchedulerSchedules;
30
34
  constructor(properties: SimSchedulerCommandsProperties);
@@ -2,6 +2,8 @@ import { SimSchedulerNoDeliveryTargets } from "../delivery/sim-scheduler-no-deli
2
2
  import { SimSchedulerTargetDelivery } from "../delivery/sim-scheduler-target-delivery.js";
3
3
  import { SimSchedulerSchedules } from "../schedule/sim-scheduler-schedules.js";
4
4
  import { SimSchedulerAuthorizer } from "./authorize/sim-scheduler-authorizer.js";
5
+ import { SimSchedulerGroupAccess } from "./group/sim-scheduler-group-access.js";
6
+ import { SimSchedulerGroupCommands } from "./group/sim-scheduler-group-commands.js";
5
7
  import { SimSchedulerCreateSchedule } from "./schedule/sim-scheduler-create-schedule.js";
6
8
  import { SimSchedulerScheduleAccess } from "./schedule/sim-scheduler-schedule-access.js";
7
9
  import { SimSchedulerScheduleCommands } from "./schedule/sim-scheduler-schedule-commands.js";
@@ -17,13 +19,15 @@ export class SimSchedulerCommands {
17
19
  scheduleCreation;
18
20
  scheduleUpdate;
19
21
  schedules;
22
+ groups;
20
23
  delivery;
21
24
  firing;
22
25
  constructor(properties) {
23
- const { schedules, accountRegionScope, background } = properties;
26
+ const { schedules, groups, accountRegionScope, background } = properties;
24
27
  const authorizer = new SimSchedulerAuthorizer({ iam: properties.iam });
25
28
  const access = new SimSchedulerScheduleAccess({
26
29
  schedules,
30
+ groups,
27
31
  authorizer,
28
32
  accountRegionScope,
29
33
  });
@@ -52,5 +56,14 @@ export class SimSchedulerCommands {
52
56
  firing: this.firing,
53
57
  });
54
58
  this.schedules = new SimSchedulerScheduleCommands({ schedules, access });
59
+ this.groups = new SimSchedulerGroupCommands({
60
+ groups,
61
+ schedules,
62
+ access: new SimSchedulerGroupAccess({
63
+ groups,
64
+ authorizer,
65
+ accountRegionScope,
66
+ }),
67
+ });
55
68
  }
56
69
  }
@@ -29,7 +29,7 @@ export class SimAwsSchedulerDeliveryTargets {
29
29
  const arn = request.schedule.target.arn;
30
30
  const role = schedulerExecutionRoleTarget(request.schedule.target.roleArn);
31
31
  const roleScope = this.simAws.accountRegionScope(role.accountId, arn.regionName);
32
- const caller = await assumeSchedulerExecutionRole(role, roleScope.iam());
32
+ const caller = await assumeSchedulerExecutionRole(role, roleScope, request.schedule);
33
33
  await this.invoke(arn.service, { request, caller });
34
34
  }
35
35
  /**
@@ -6,6 +6,13 @@ interface SimSchedulerDeliveryFailureProperties {
6
6
  readonly at: Date;
7
7
  readonly error: unknown;
8
8
  }
9
+ /**
10
+ * A failed invocation as it serialises. Every property the failure holds, plus
11
+ * the message the getter reads off the error.
12
+ */
13
+ export interface SimSchedulerDeliveryFailureJson extends SimSchedulerDeliveryFailureProperties {
14
+ readonly message: string;
15
+ }
9
16
  /**
10
17
  * One invocation a schedule could not make.
11
18
  */
@@ -28,6 +35,15 @@ export declare class SimSchedulerDeliveryFailure {
28
35
  * What went wrong, as a message.
29
36
  */
30
37
  get message(): string;
38
+ /**
39
+ * The failure as JSON.stringify renders it, message included.
40
+ *
41
+ * Serialising a failure is the first thing to reach for when a schedule did
42
+ * not do what a test expected. The message is a getter on the prototype and
43
+ * would be left out. An Error keeps its own message on a non-enumerable
44
+ * property and prints as `{}`.
45
+ */
46
+ toJSON(): SimSchedulerDeliveryFailureJson;
31
47
  }
32
48
  /**
33
49
  * Every invocation one simulated Scheduler scope could not make.
@@ -32,6 +32,25 @@ export class SimSchedulerDeliveryFailure {
32
32
  }
33
33
  return String(this.error);
34
34
  }
35
+ /**
36
+ * The failure as JSON.stringify renders it, message included.
37
+ *
38
+ * Serialising a failure is the first thing to reach for when a schedule did
39
+ * not do what a test expected. The message is a getter on the prototype and
40
+ * would be left out. An Error keeps its own message on a non-enumerable
41
+ * property and prints as `{}`.
42
+ */
43
+ toJSON() {
44
+ return {
45
+ scheduleName: this.scheduleName,
46
+ scheduleArn: this.scheduleArn,
47
+ targetArn: this.targetArn,
48
+ roleArn: this.roleArn,
49
+ at: this.at,
50
+ message: this.message,
51
+ error: this.error,
52
+ };
53
+ }
35
54
  }
36
55
  /**
37
56
  * Every invocation one simulated Scheduler scope could not make.
@@ -1,5 +1,6 @@
1
1
  import { SimSchedulerDeliveryNotPermitted, SimSchedulerTargetNotFound, } from "../error/sim-scheduler-delivery.error.js";
2
2
  import { simSchedulerDeliveryDocument, } from "./sim-scheduler-delivery.js";
3
+ import { simScopeIamAuthZ } from "../../iam/authorize/sim-iam-region-auth-z.js";
3
4
  const invokeAction = "lambda:InvokeFunction";
4
5
  /**
5
6
  * A Lambda function a simulated schedule invokes.
@@ -25,7 +26,7 @@ export class SimSchedulerDeliveryFunction {
25
26
  if (simFunction === undefined) {
26
27
  throw new SimSchedulerTargetNotFound(`${targetArn.value} is not a simulated Lambda function.`);
27
28
  }
28
- const decision = this.scope.iam().authorize({
29
+ const decision = simScopeIamAuthZ(this.scope).authorize({
29
30
  action: invokeAction,
30
31
  resource: targetArn.value,
31
32
  caller: delivery.caller,
@@ -1,5 +1,6 @@
1
1
  import { SimSchedulerDeliveryNotPermitted, SimSchedulerTargetNotFound, } from "../error/sim-scheduler-delivery.error.js";
2
2
  import { simSchedulerDeliveryJson, } from "./sim-scheduler-delivery.js";
3
+ import { simScopeIamAuthZ } from "../../iam/authorize/sim-iam-region-auth-z.js";
3
4
  const sendAction = "sqs:SendMessage";
4
5
  /**
5
6
  * An SQS queue a simulated schedule sends to.
@@ -18,7 +19,7 @@ export class SimSchedulerDeliveryQueue {
18
19
  if (queue === undefined) {
19
20
  throw new SimSchedulerTargetNotFound(`${targetArn.value} is not a simulated SQS queue.`);
20
21
  }
21
- const decision = this.scope.iam().authorize({
22
+ const decision = simScopeIamAuthZ(this.scope).authorize({
22
23
  action: sendAction,
23
24
  resource: targetArn.value,
24
25
  caller: delivery.caller,
@@ -1,5 +1,6 @@
1
1
  import { SimSchedulerDeliveryNotPermitted, SimSchedulerTargetNotFound, } from "../error/sim-scheduler-delivery.error.js";
2
2
  import { simSchedulerDeliveryJson, } from "./sim-scheduler-delivery.js";
3
+ import { simScopeIamAuthZ } from "../../iam/authorize/sim-iam-region-auth-z.js";
3
4
  const publishAction = "sns:Publish";
4
5
  /**
5
6
  * An SNS topic a simulated schedule publishes to.
@@ -18,7 +19,7 @@ export class SimSchedulerDeliveryTopic {
18
19
  if (topic === undefined) {
19
20
  throw new SimSchedulerTargetNotFound(`${targetArn.value} is not a simulated SNS topic.`);
20
21
  }
21
- const decision = this.scope.iam().authorize({
22
+ const decision = simScopeIamAuthZ(this.scope).authorize({
22
23
  action: publishAction,
23
24
  resource: targetArn.value,
24
25
  caller: delivery.caller,
@@ -1,6 +1,7 @@
1
1
  import type { SimAwsCaller } from "../../aws/caller/sim-aws-caller.js";
2
- import type { SimIam } from "../../iam/sim-iam.js";
3
- import { type SimServiceRoleTarget } from "../../sts/service-role/sim-service-role.js";
2
+ import type { SimAwsAccountRegionContainer } from "../../aws/sim-aws-account-region-scope.js";
3
+ import { type SimServiceRoleTarget } from "../../sts/service-role/sim-service-role-target.js";
4
+ import type { SimSchedulerSchedule } from "../schedule/sim-scheduler-schedule.js";
4
5
  export type SimSchedulerExecutionRoleTarget = SimServiceRoleTarget;
5
6
  /**
6
7
  * Read the Account and name out of a schedule's execution role ARN.
@@ -17,5 +18,10 @@ export declare function schedulerExecutionRoleTarget(roleArn: string): SimSchedu
17
18
  * function as the `events.amazonaws.com` service principal and the target's own
18
19
  * resource policy decides; a schedule assumes a role, and the role's policies
19
20
  * decide.
21
+ *
22
+ * The schedule comes along because its group ARN is the `aws:SourceArn` AWS
23
+ * documents for the trust policy condition it recommends against the confused
24
+ * deputy problem. A schedule ARN is not accepted there, and CDK writes the
25
+ * group ARN into the execution roles it generates.
20
26
  */
21
- export declare function assumeSchedulerExecutionRole(target: SimSchedulerExecutionRoleTarget, iam: SimIam): Promise<SimAwsCaller>;
27
+ export declare function assumeSchedulerExecutionRole(target: SimSchedulerExecutionRoleTarget, scope: SimAwsAccountRegionContainer, schedule: SimSchedulerSchedule): Promise<SimAwsCaller>;
@@ -1,4 +1,5 @@
1
- import { assumeSimServiceRole, simServiceRoleTarget, } from "../../sts/service-role/sim-service-role.js";
1
+ import { assumeSimServiceRole, } from "../../sts/service-role/sim-service-role.js";
2
+ import { simServiceRoleTarget, } from "../../sts/service-role/sim-service-role-target.js";
2
3
  import { SimSchedulerDeliveryNotPermitted } from "../error/sim-scheduler-delivery.error.js";
3
4
  import { simSchedulerServicePrincipal } from "./sim-scheduler-delivery.js";
4
5
  /**
@@ -32,13 +33,19 @@ const refusals = {
32
33
  * function as the `events.amazonaws.com` service principal and the target's own
33
34
  * resource policy decides; a schedule assumes a role, and the role's policies
34
35
  * decide.
36
+ *
37
+ * The schedule comes along because its group ARN is the `aws:SourceArn` AWS
38
+ * documents for the trust policy condition it recommends against the confused
39
+ * deputy problem. A schedule ARN is not accepted there, and CDK writes the
40
+ * group ARN into the execution roles it generates.
35
41
  */
36
- export async function assumeSchedulerExecutionRole(target, iam) {
42
+ export async function assumeSchedulerExecutionRole(target, scope, schedule) {
37
43
  return await assumeSimServiceRole({
38
44
  target,
39
45
  servicePrincipal: simSchedulerServicePrincipal,
40
46
  sessionName,
41
- iam,
47
+ scope,
48
+ source: { arn: schedule.groupArn, accountId: schedule.accountId },
42
49
  refusals,
43
50
  });
44
51
  }
@@ -0,0 +1,11 @@
1
+ import type { SimAwsAccountRegionScope } from "../../aws/sim-aws-account-region-scope.js";
2
+ /**
3
+ * The ARN of one simulated schedule group.
4
+ *
5
+ * `arn:aws:scheduler:<region>:<account>:schedule-group/<name>`. That is a
6
+ * different resource path from a schedule's `schedule/<group>/<name>`. An
7
+ * identity policy granting `scheduler:` actions on the group names this one,
8
+ * and so does the `aws:SourceArn` condition AWS recommends in a schedule
9
+ * execution role's trust policy.
10
+ */
11
+ export declare function schedulerScheduleGroupArn(groupName: string, scope: SimAwsAccountRegionScope): string;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * The ARN of one simulated schedule group.
3
+ *
4
+ * `arn:aws:scheduler:<region>:<account>:schedule-group/<name>`. That is a
5
+ * different resource path from a schedule's `schedule/<group>/<name>`. An
6
+ * identity policy granting `scheduler:` actions on the group names this one,
7
+ * and so does the `aws:SourceArn` condition AWS recommends in a schedule
8
+ * execution role's trust policy.
9
+ */
10
+ export function schedulerScheduleGroupArn(groupName, scope) {
11
+ return (`arn:aws:scheduler:${scope.regionName}:${scope.accountId}:` +
12
+ `schedule-group/${groupName}`);
13
+ }
@@ -0,0 +1,46 @@
1
+ import type { SimClock } from "../../../util/clock/sim-clock.js";
2
+ import type { SimAwsAccountRegionScope } from "../../aws/sim-aws-account-region-scope.js";
3
+ import { SimSchedulerScheduleGroup } from "./sim-scheduler-schedule-group.js";
4
+ interface SimSchedulerScheduleGroupStoreProperties {
5
+ readonly accountRegionScope: SimAwsAccountRegionScope;
6
+ readonly clock: SimClock;
7
+ }
8
+ /**
9
+ * The schedule groups of one simulated Scheduler scope.
10
+ *
11
+ * This store builds its own groups rather than taking them from a writer, which
12
+ * is the opposite of how schedules are handled. A schedule is read out of a
13
+ * request carrying a dozen properties, and reading it in one place is what
14
+ * keeps Create and Update agreeing. A group is a name and two timestamps. A
15
+ * writer beside this would be a class that exists to call a constructor.
16
+ */
17
+ export declare class SimSchedulerScheduleGroupStore {
18
+ private readonly groups;
19
+ private readonly accountRegionScope;
20
+ private readonly clock;
21
+ constructor(properties: SimSchedulerScheduleGroupStoreProperties);
22
+ /**
23
+ * Every group in this scope, in creation order.
24
+ *
25
+ * `default` is always the first of them. Every Account has it without anyone
26
+ * creating one, so this scope starts with it too.
27
+ */
28
+ get all(): readonly SimSchedulerScheduleGroup[];
29
+ /**
30
+ * Create a group, stamped from the simulation's clock.
31
+ */
32
+ create(groupName: string): SimSchedulerScheduleGroup;
33
+ /**
34
+ * Find a group by name.
35
+ */
36
+ find(groupName: string): SimSchedulerScheduleGroup | undefined;
37
+ /**
38
+ * Resolve a group by name, or refuse.
39
+ */
40
+ require(groupName: string): SimSchedulerScheduleGroup;
41
+ /**
42
+ * Forget a deleted group.
43
+ */
44
+ remove(group: SimSchedulerScheduleGroup): void;
45
+ }
46
+ export {};
@@ -0,0 +1,65 @@
1
+ import { SimSchedulerResourceNotFoundException } from "../error/sim-scheduler.error.js";
2
+ import { defaultScheduleGroupName } from "../schedule/sim-scheduler-schedule-name.js";
3
+ import { SimSchedulerScheduleGroup } from "./sim-scheduler-schedule-group.js";
4
+ /**
5
+ * The schedule groups of one simulated Scheduler scope.
6
+ *
7
+ * This store builds its own groups rather than taking them from a writer, which
8
+ * is the opposite of how schedules are handled. A schedule is read out of a
9
+ * request carrying a dozen properties, and reading it in one place is what
10
+ * keeps Create and Update agreeing. A group is a name and two timestamps. A
11
+ * writer beside this would be a class that exists to call a constructor.
12
+ */
13
+ export class SimSchedulerScheduleGroupStore {
14
+ groups = new Map();
15
+ accountRegionScope;
16
+ clock;
17
+ constructor(properties) {
18
+ this.accountRegionScope = properties.accountRegionScope;
19
+ this.clock = properties.clock;
20
+ this.create(defaultScheduleGroupName);
21
+ }
22
+ /**
23
+ * Every group in this scope, in creation order.
24
+ *
25
+ * `default` is always the first of them. Every Account has it without anyone
26
+ * creating one, so this scope starts with it too.
27
+ */
28
+ get all() {
29
+ return this.groups.values().toArray();
30
+ }
31
+ /**
32
+ * Create a group, stamped from the simulation's clock.
33
+ */
34
+ create(groupName) {
35
+ const group = new SimSchedulerScheduleGroup({
36
+ name: groupName,
37
+ accountRegionScope: this.accountRegionScope,
38
+ createdAt: this.clock.now(),
39
+ });
40
+ this.groups.set(groupName, group);
41
+ return group;
42
+ }
43
+ /**
44
+ * Find a group by name.
45
+ */
46
+ find(groupName) {
47
+ return this.groups.get(groupName);
48
+ }
49
+ /**
50
+ * Resolve a group by name, or refuse.
51
+ */
52
+ require(groupName) {
53
+ const found = this.find(groupName);
54
+ if (found === undefined) {
55
+ throw new SimSchedulerResourceNotFoundException(`Schedule group ${groupName} does not exist.`);
56
+ }
57
+ return found;
58
+ }
59
+ /**
60
+ * Forget a deleted group.
61
+ */
62
+ remove(group) {
63
+ this.groups.delete(group.name);
64
+ }
65
+ }
@@ -0,0 +1,25 @@
1
+ import type { SimAwsAccountRegionScope } from "../../aws/sim-aws-account-region-scope.js";
2
+ interface SimSchedulerScheduleGroupProperties {
3
+ readonly name: string;
4
+ readonly accountRegionScope: SimAwsAccountRegionScope;
5
+ readonly createdAt: Date;
6
+ }
7
+ /**
8
+ * One simulated EventBridge Scheduler schedule group.
9
+ *
10
+ * A group is a namespace and a tagging handle. It carries no settings, and a
11
+ * schedule in it behaves exactly as one in `default` would. What it changes is
12
+ * identity. A schedule's name is unique within its group rather than within the
13
+ * Account, and the group is in the schedule's ARN. Two deployments of the same
14
+ * construct into one Account and Region collide on schedule names unless each
15
+ * one has its own group.
16
+ */
17
+ export declare class SimSchedulerScheduleGroup {
18
+ readonly name: string;
19
+ readonly arn: string;
20
+ readonly creationDate: Date;
21
+ readonly lastModificationDate: Date;
22
+ readonly state = "ACTIVE";
23
+ constructor(properties: SimSchedulerScheduleGroupProperties);
24
+ }
25
+ export {};