@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
@@ -4,6 +4,7 @@ import { SimIamAuthZAllowRequirement } from "./sim-iam-auth-z-allow-requirement.
4
4
  import { SimIamAuthZIdentityPolicyCoordinator } from "./identity-policy-source/sim-iam-auth-z-id-pol-coordinator.js";
5
5
  import { SimIamAuthZCallerContextBuilder, } from "./sim-iam-auth-z-caller-context-builder.js";
6
6
  import { SimIamAuthZScpSourceBuilder } from "./sim-iam-auth-z-scp-source-builder.js";
7
+ import { SimIamDerivedConditions } from "./sim-iam-derived-conditions.js";
7
8
  /**
8
9
  * Builds the authorization context consumed by SimIamAuthorizer.
9
10
  *
@@ -39,6 +40,7 @@ export class SimIamAuthZContextBuilder {
39
40
  identityPolicyCoordinator;
40
41
  callerAccountResolver;
41
42
  allowRequirement = new SimIamAuthZAllowRequirement();
43
+ derivedConditions = new SimIamDerivedConditions();
42
44
  scpSourceBuilder;
43
45
  constructor(properties) {
44
46
  this.callerContextBuilder = new SimIamAuthZCallerContextBuilder(makeSimAwsAccountRootPrincipal(properties.accountId), properties.credentialIdentityResolver);
@@ -97,8 +99,8 @@ export class SimIamAuthZContextBuilder {
97
99
  ];
98
100
  }
99
101
  /**
100
- * Combine service-provided condition values with global values that IAM can
101
- * derive from the resolved caller.
102
+ * Combine service-provided condition values with the global values IAM
103
+ * derives itself.
102
104
  *
103
105
  * A service supplies values it knows from the request, and values it can
104
106
  * only work out once the caller is resolved. IAM's own values are applied
@@ -108,24 +110,9 @@ export class SimIamAuthZContextBuilder {
108
110
  return {
109
111
  ...input.conditionContext,
110
112
  ...input.callerConditions?.conditionValuesFor(caller),
111
- ...this.callerDerivedConditions(caller),
113
+ ...this.derivedConditions.of({ caller, region: input.region }),
112
114
  };
113
115
  }
114
- /**
115
- * The condition values IAM derives from the caller itself.
116
- *
117
- * AWS:PrincipalArn identifies the IAM identity whose policies apply; for
118
- * temporary Role credentials this is the underlying Role ARN, rather than
119
- * the STS assumed-role session ARN retained as the effective caller for
120
- * diagnostics.
121
- */
122
- callerDerivedConditions(caller) {
123
- const principalArn = caller.identityPolicyArn ?? caller.arn;
124
- if (principalArn === undefined) {
125
- return {};
126
- }
127
- return { "aws:PrincipalArn": principalArn };
128
- }
129
116
  /**
130
117
  * Convert resource policies supplied by the resource-owning service into
131
118
  * authorization policy sources.
@@ -0,0 +1,42 @@
1
+ import type { SimAwsResolvedCaller } from "../../../aws/caller/sim-aws-caller-resolver.js";
2
+ import type { AwsRegionName } from "../../../aws/sim-aws-region.js";
3
+ import type { SimIamConditionValue } from "../../policy/sim-iam-policy.js";
4
+ /**
5
+ * What a request has to say about itself for IAM to derive its global
6
+ * condition values.
7
+ */
8
+ export interface SimIamDerivedConditionRequest {
9
+ readonly caller: SimAwsResolvedCaller;
10
+ readonly region?: AwsRegionName | undefined;
11
+ }
12
+ /**
13
+ * The global condition values IAM works out for itself.
14
+ *
15
+ * These are the keys a policy can be written against without the service
16
+ * handling the request supplying anything. They are applied over the values a
17
+ * service does supply. A service cannot overwrite one of them.
18
+ *
19
+ * A key the request leaves unsaid is left out. The condition matcher counts a
20
+ * missing key as no match, and a statement conditioned on one then matches
21
+ * nothing.
22
+ */
23
+ export declare class SimIamDerivedConditions {
24
+ /**
25
+ * Derive what IAM knows about this request.
26
+ */
27
+ of(request: SimIamDerivedConditionRequest): Readonly<Record<string, SimIamConditionValue>>;
28
+ /**
29
+ * AWS:PrincipalArn identifies the IAM identity whose policies apply. For
30
+ * temporary Role credentials this is the underlying Role ARN, rather than
31
+ * the STS assumed-role session ARN retained as the effective caller for
32
+ * diagnostics.
33
+ */
34
+ private principalArn;
35
+ /**
36
+ * AWS:RequestedRegion is the Region the request was made in, which on real
37
+ * AWS is the Region of the endpoint it was sent to. Here it is the Region of
38
+ * the simulated service handling the request. A service in one Region's
39
+ * scope answers only requests made to that Region.
40
+ */
41
+ private region;
42
+ }
@@ -0,0 +1,44 @@
1
+ /**
2
+ * The global condition values IAM works out for itself.
3
+ *
4
+ * These are the keys a policy can be written against without the service
5
+ * handling the request supplying anything. They are applied over the values a
6
+ * service does supply. A service cannot overwrite one of them.
7
+ *
8
+ * A key the request leaves unsaid is left out. The condition matcher counts a
9
+ * missing key as no match, and a statement conditioned on one then matches
10
+ * nothing.
11
+ */
12
+ export class SimIamDerivedConditions {
13
+ /**
14
+ * Derive what IAM knows about this request.
15
+ */
16
+ of(request) {
17
+ return { ...this.principalArn(request.caller), ...this.region(request) };
18
+ }
19
+ /**
20
+ * AWS:PrincipalArn identifies the IAM identity whose policies apply. For
21
+ * temporary Role credentials this is the underlying Role ARN, rather than
22
+ * the STS assumed-role session ARN retained as the effective caller for
23
+ * diagnostics.
24
+ */
25
+ principalArn(caller) {
26
+ const principalArn = caller.identityPolicyArn ?? caller.arn;
27
+ if (principalArn === undefined) {
28
+ return {};
29
+ }
30
+ return { "aws:PrincipalArn": principalArn };
31
+ }
32
+ /**
33
+ * AWS:RequestedRegion is the Region the request was made in, which on real
34
+ * AWS is the Region of the endpoint it was sent to. Here it is the Region of
35
+ * the simulated service handling the request. A service in one Region's
36
+ * scope answers only requests made to that Region.
37
+ */
38
+ region(request) {
39
+ if (request.region === undefined) {
40
+ return {};
41
+ }
42
+ return { "aws:RequestedRegion": request.region };
43
+ }
44
+ }
@@ -1,4 +1,4 @@
1
- import { simIamArnMatch } from "../../../../sim-iam-arn-match.js";
1
+ import { simIamArnComparison } from "../../sim-iam-string-comparison.js";
2
2
  import { SimIamScalarStringConditionOperator } from "../../string/sim-iam-scalar-string-condition-operator.js";
3
3
  /**
4
4
  * IAM `ArnEquals` condition operator.
@@ -11,6 +11,6 @@ import { SimIamScalarStringConditionOperator } from "../../string/sim-iam-scalar
11
11
  */
12
12
  export class SimIamArnEquals extends SimIamScalarStringConditionOperator {
13
13
  valueMatches(actual, expected) {
14
- return simIamArnMatch(expected, actual);
14
+ return simIamArnComparison(actual, expected);
15
15
  }
16
16
  }
@@ -1,4 +1,4 @@
1
- import { simIamArnMatch } from "../../../../sim-iam-arn-match.js";
1
+ import { simIamArnComparison } from "../../sim-iam-string-comparison.js";
2
2
  import { SimIamScalarStringConditionOperator } from "../../string/sim-iam-scalar-string-condition-operator.js";
3
3
  /**
4
4
  * IAM `ArnLike` condition operator.
@@ -10,6 +10,6 @@ import { SimIamScalarStringConditionOperator } from "../../string/sim-iam-scalar
10
10
  */
11
11
  export class SimIamArnLike extends SimIamScalarStringConditionOperator {
12
12
  valueMatches(actual, expected) {
13
- return simIamArnMatch(expected, actual);
13
+ return simIamArnComparison(actual, expected);
14
14
  }
15
15
  }
@@ -0,0 +1,20 @@
1
+ import type { SimIamConditionValue } from "../../../../policy/sim-iam-policy.js";
2
+ import type { SimIamConditionOperator } from "../sim-iam-condition-operator.js";
3
+ import type { SimIamStringComparison } from "../sim-iam-string-comparison.js";
4
+ /**
5
+ * A `ForAllValues` negated IAM string operator, such as
6
+ * `ForAllValues:StringNotEquals`.
7
+ *
8
+ * Every request value has to differ from every policy value. A request
9
+ * supplying no values leaves nothing to contradict that, so an empty set
10
+ * matches, as an absent key does.
11
+ */
12
+ export declare class SimIamNegatedForAllValuesStringOperator implements SimIamConditionOperator {
13
+ private readonly comparison;
14
+ readonly matchesAbsentKey = true;
15
+ constructor(comparison: SimIamStringComparison);
16
+ /**
17
+ * Check whether every request value differs from every policy value.
18
+ */
19
+ matches(actual: SimIamConditionValue, expected: SimIamConditionValue): boolean;
20
+ }
@@ -0,0 +1,27 @@
1
+ import { simIamStringValues } from "../string/sim-iam-string-values.js";
2
+ /**
3
+ * A `ForAllValues` negated IAM string operator, such as
4
+ * `ForAllValues:StringNotEquals`.
5
+ *
6
+ * Every request value has to differ from every policy value. A request
7
+ * supplying no values leaves nothing to contradict that, so an empty set
8
+ * matches, as an absent key does.
9
+ */
10
+ export class SimIamNegatedForAllValuesStringOperator {
11
+ comparison;
12
+ matchesAbsentKey = true;
13
+ constructor(comparison) {
14
+ this.comparison = comparison;
15
+ }
16
+ /**
17
+ * Check whether every request value differs from every policy value.
18
+ */
19
+ matches(actual, expected) {
20
+ const actualValues = simIamStringValues(actual);
21
+ const expectedValues = simIamStringValues(expected);
22
+ if (actualValues === undefined || expectedValues === undefined) {
23
+ return false;
24
+ }
25
+ return actualValues.every((actualValue) => expectedValues.every((expectedValue) => !this.comparison(actualValue, expectedValue)));
26
+ }
27
+ }
@@ -0,0 +1,21 @@
1
+ import type { SimIamConditionValue } from "../../../../policy/sim-iam-policy.js";
2
+ import type { SimIamConditionOperator } from "../sim-iam-condition-operator.js";
3
+ import type { SimIamStringComparison } from "../sim-iam-string-comparison.js";
4
+ /**
5
+ * A `ForAnyValue` negated IAM string operator, such as
6
+ * `ForAnyValue:StringNotEquals`.
7
+ *
8
+ * One request value differing from every policy value is enough. A request
9
+ * supplying no such value satisfies nothing, which covers both an empty value
10
+ * set and a key the request omits. The `ForAnyValue` qualifier settles the
11
+ * absent key here, ahead of the rule that a negated operator matches one.
12
+ */
13
+ export declare class SimIamNegatedForAnyValueStringOperator implements SimIamConditionOperator {
14
+ private readonly comparison;
15
+ readonly matchesAbsentKey = false;
16
+ constructor(comparison: SimIamStringComparison);
17
+ /**
18
+ * Check whether any request value differs from every policy value.
19
+ */
20
+ matches(actual: SimIamConditionValue, expected: SimIamConditionValue): boolean;
21
+ }
@@ -0,0 +1,28 @@
1
+ import { simIamStringValues } from "../string/sim-iam-string-values.js";
2
+ /**
3
+ * A `ForAnyValue` negated IAM string operator, such as
4
+ * `ForAnyValue:StringNotEquals`.
5
+ *
6
+ * One request value differing from every policy value is enough. A request
7
+ * supplying no such value satisfies nothing, which covers both an empty value
8
+ * set and a key the request omits. The `ForAnyValue` qualifier settles the
9
+ * absent key here, ahead of the rule that a negated operator matches one.
10
+ */
11
+ export class SimIamNegatedForAnyValueStringOperator {
12
+ comparison;
13
+ matchesAbsentKey = false;
14
+ constructor(comparison) {
15
+ this.comparison = comparison;
16
+ }
17
+ /**
18
+ * Check whether any request value differs from every policy value.
19
+ */
20
+ matches(actual, expected) {
21
+ const actualValues = simIamStringValues(actual);
22
+ const expectedValues = simIamStringValues(expected);
23
+ if (actualValues === undefined || expectedValues === undefined) {
24
+ return false;
25
+ }
26
+ return actualValues.some((actualValue) => expectedValues.every((expectedValue) => !this.comparison(actualValue, expectedValue)));
27
+ }
28
+ }
@@ -0,0 +1,5 @@
1
+ import type { SimIamConditionOperatorFactory } from "../sim-iam-condition-operator.js";
2
+ /**
3
+ * Every negated condition operator sim IAM evaluates, keyed by its keyword.
4
+ */
5
+ export declare const simIamNegatedOperatorFactories: ReadonlyMap<string, SimIamConditionOperatorFactory>;
@@ -0,0 +1,36 @@
1
+ import { simIamArnComparison, simIamStringEqualsComparison, simIamStringLikeComparison, } from "../sim-iam-string-comparison.js";
2
+ import { SimIamNegatedForAllValuesStringOperator } from "./sim-iam-negated-for-all-values-string-operator.js";
3
+ import { SimIamNegatedForAnyValueStringOperator } from "./sim-iam-negated-for-any-value-string-operator.js";
4
+ import { SimIamNegatedScalarStringOperator } from "./sim-iam-negated-scalar-string-operator.js";
5
+ /**
6
+ * The comparison behind each negated operator keyword.
7
+ */
8
+ const negatedComparisons = new Map([
9
+ ["ArnNotEquals", simIamArnComparison],
10
+ ["ArnNotLike", simIamArnComparison],
11
+ ["StringNotEquals", simIamStringEqualsComparison],
12
+ ["StringNotLike", simIamStringLikeComparison],
13
+ ]);
14
+ /**
15
+ * Build the unqualified and set forms of one negated keyword.
16
+ */
17
+ function keywordForms(keyword, comparison) {
18
+ return [
19
+ [
20
+ keyword,
21
+ () => new SimIamNegatedScalarStringOperator(comparison),
22
+ ],
23
+ [
24
+ `ForAnyValue:${keyword}`,
25
+ () => new SimIamNegatedForAnyValueStringOperator(comparison),
26
+ ],
27
+ [
28
+ `ForAllValues:${keyword}`,
29
+ () => new SimIamNegatedForAllValuesStringOperator(comparison),
30
+ ],
31
+ ];
32
+ }
33
+ /**
34
+ * Every negated condition operator sim IAM evaluates, keyed by its keyword.
35
+ */
36
+ export const simIamNegatedOperatorFactories = new Map([...negatedComparisons].flatMap(([keyword, comparison]) => keywordForms(keyword, comparison)));
@@ -0,0 +1,20 @@
1
+ import type { SimIamConditionValue } from "../../../../policy/sim-iam-policy.js";
2
+ import type { SimIamConditionOperator } from "../sim-iam-condition-operator.js";
3
+ import type { SimIamStringComparison } from "../sim-iam-string-comparison.js";
4
+ /**
5
+ * An unqualified negated IAM string operator, such as `StringNotEquals`.
6
+ *
7
+ * The request value must be scalar, as it must for the positive operators.
8
+ * Several policy values are an AND rather than an OR: the request value has to
9
+ * differ from every one of them, so a carve-out naming three roles exempts all
10
+ * three.
11
+ */
12
+ export declare class SimIamNegatedScalarStringOperator implements SimIamConditionOperator {
13
+ private readonly comparison;
14
+ readonly matchesAbsentKey = true;
15
+ constructor(comparison: SimIamStringComparison);
16
+ /**
17
+ * Check whether a request value differs from every policy value.
18
+ */
19
+ matches(actual: SimIamConditionValue, expected: SimIamConditionValue): boolean;
20
+ }
@@ -0,0 +1,29 @@
1
+ import { simIamStringValues } from "../string/sim-iam-string-values.js";
2
+ /**
3
+ * An unqualified negated IAM string operator, such as `StringNotEquals`.
4
+ *
5
+ * The request value must be scalar, as it must for the positive operators.
6
+ * Several policy values are an AND rather than an OR: the request value has to
7
+ * differ from every one of them, so a carve-out naming three roles exempts all
8
+ * three.
9
+ */
10
+ export class SimIamNegatedScalarStringOperator {
11
+ comparison;
12
+ matchesAbsentKey = true;
13
+ constructor(comparison) {
14
+ this.comparison = comparison;
15
+ }
16
+ /**
17
+ * Check whether a request value differs from every policy value.
18
+ */
19
+ matches(actual, expected) {
20
+ if (typeof actual !== "string") {
21
+ return false;
22
+ }
23
+ const expectedValues = simIamStringValues(expected);
24
+ if (expectedValues === undefined) {
25
+ return false;
26
+ }
27
+ return expectedValues.every((expectedValue) => !this.comparison(actual, expectedValue));
28
+ }
29
+ }
@@ -15,6 +15,7 @@ import type { SimIamConditionOperator } from "../../sim-iam-condition-operator.j
15
15
  * are rejected rather than being converted through JavaScript coercion rules.
16
16
  */
17
17
  export declare class SimIamNumericLessThanEquals implements SimIamConditionOperator {
18
+ readonly matchesAbsentKey = false;
18
19
  /**
19
20
  * Compare one request value with one or more policy limits.
20
21
  */
@@ -13,6 +13,7 @@
13
13
  * are rejected rather than being converted through JavaScript coercion rules.
14
14
  */
15
15
  export class SimIamNumericLessThanEquals {
16
+ matchesAbsentKey = false;
16
17
  /**
17
18
  * Compare one request value with one or more policy limits.
18
19
  */
@@ -0,0 +1,26 @@
1
+ /**
2
+ * What reading one statement's condition block told the simulator.
3
+ *
4
+ * A condition block either matched the request or it did not, and separately
5
+ * from that it may have held an operator sim IAM has no implementation for.
6
+ * The two facts travel together because a statement carrying an unread
7
+ * operator does not match, and a caller that only reads `matched` cannot tell
8
+ * that apart from a condition the simulator read and rejected.
9
+ */
10
+ export interface SimIamConditionMatch {
11
+ /**
12
+ * Whether the whole condition block matched the request.
13
+ *
14
+ * An operator the simulator cannot evaluate fails closed. A block holding
15
+ * one never matches.
16
+ */
17
+ readonly matched: boolean;
18
+ /**
19
+ * The operator keywords sim IAM has no implementation for.
20
+ *
21
+ * These are reported only where every other operator in the block matched.
22
+ * A block ruled out by an operator the simulator did read needs nothing
23
+ * said about it: the statement would not have matched either way.
24
+ */
25
+ readonly unsupportedOperators: readonly string[];
26
+ }
@@ -1,3 +1,4 @@
1
+ import { simIamNegatedOperatorFactories } from "./negated/sim-iam-negated-operator-factories.js";
1
2
  import { SimIamForAllValuesStringEquals } from "./string/all-values/sim-iam-for-all-values-string-equals.js";
2
3
  import { SimIamForAllValuesStringLike } from "./string/all-values/sim-iam-for-all-values-string-like.js";
3
4
  import { SimIamForAnyValueStringEquals } from "./string/any-value/sim-iam-for-any-value-string-equals.js";
@@ -32,6 +33,7 @@ const operatorFactories = new Map([
32
33
  "ForAllValues:StringLike",
33
34
  () => new SimIamForAllValuesStringLike(),
34
35
  ],
36
+ ...simIamNegatedOperatorFactories,
35
37
  ]);
36
38
  /**
37
39
  * Parses IAM condition operator keywords into their behavior objects.
@@ -7,8 +7,23 @@ import type { SimIamConditionValue } from "../../../policy/sim-iam-policy.js";
7
7
  * matcher.
8
8
  */
9
9
  export interface SimIamConditionOperator {
10
+ /**
11
+ * Whether the operator matches a request carrying no value for the key.
12
+ *
13
+ * An unqualified positive operator has nothing to compare and matches
14
+ * nothing, while its negated form matches. With no value in the request
15
+ * there is none for the policy value to equal.
16
+ *
17
+ * A `ForAnyValue` operator answers false whatever it wraps, because no
18
+ * request value is there to satisfy it. AWS documents both rules.
19
+ */
20
+ readonly matchesAbsentKey: boolean;
10
21
  /**
11
22
  * Determine whether an actual request value satisfies the expected policy value.
12
23
  */
13
24
  matches(actual: SimIamConditionValue, expected: SimIamConditionValue): boolean;
14
25
  }
26
+ /**
27
+ * Builds a fresh condition operator for one keyword.
28
+ */
29
+ export type SimIamConditionOperatorFactory = () => SimIamConditionOperator;
@@ -1,4 +1,5 @@
1
1
  import type { SimIamConditionValue, SimIamPolicyDocumentCondition } from "../../../policy/sim-iam-policy.js";
2
+ import type { SimIamConditionMatch } from "./sim-iam-condition-match.js";
2
3
  import { SimIamConditionOperatorParser } from "./sim-iam-condition-operator-parser.js";
3
4
  /**
4
5
  * Matches IAM policy conditions against request condition-context values.
@@ -7,19 +8,26 @@ import { SimIamConditionOperatorParser } from "./sim-iam-condition-operator-pars
7
8
  * key lookup. Individual condition operators encapsulate value validation,
8
9
  * comparison, and set semantics.
9
10
  *
10
- * Unsupported operators and missing context keys fail closed by making the
11
- * condition non-matching.
11
+ * An unsupported operator fails closed by making the condition non-matching,
12
+ * and is named in the result so the decision can report the statement as one
13
+ * it never read. A context key the request carries no value for is left to the
14
+ * operator, which answers for itself whether an absent key matches it.
12
15
  */
13
16
  export declare class SimIamPolicyConditionMatcher {
14
17
  private readonly operatorParser;
18
+ private static readonly noCondition;
15
19
  private readonly conditionContext;
16
20
  constructor(conditionContext: Readonly<Record<string, SimIamConditionValue>>, operatorParser?: SimIamConditionOperatorParser);
17
21
  /**
18
22
  * Match every operator and every key in a condition block.
19
23
  *
20
24
  * Separate operators and separate keys use logical AND semantics.
25
+ *
26
+ * Every operator in the block is read. Stopping at the first that fails
27
+ * would leave the operators the simulator could not evaluate depending on
28
+ * the order the policy happens to list them in.
21
29
  */
22
- matches(condition: SimIamPolicyDocumentCondition | undefined): boolean;
30
+ matches(condition: SimIamPolicyDocumentCondition | undefined): SimIamConditionMatch;
23
31
  private operatorMatches;
24
32
  private entryMatches;
25
33
  private normalizeContextKey;
@@ -6,11 +6,17 @@ import { SimIamConditionOperatorParser } from "./sim-iam-condition-operator-pars
6
6
  * key lookup. Individual condition operators encapsulate value validation,
7
7
  * comparison, and set semantics.
8
8
  *
9
- * Unsupported operators and missing context keys fail closed by making the
10
- * condition non-matching.
9
+ * An unsupported operator fails closed by making the condition non-matching,
10
+ * and is named in the result so the decision can report the statement as one
11
+ * it never read. A context key the request carries no value for is left to the
12
+ * operator, which answers for itself whether an absent key matches it.
11
13
  */
12
14
  export class SimIamPolicyConditionMatcher {
13
15
  operatorParser;
16
+ static noCondition = {
17
+ matched: true,
18
+ unsupportedOperators: [],
19
+ };
14
20
  conditionContext;
15
21
  constructor(conditionContext, operatorParser = new SimIamConditionOperatorParser()) {
16
22
  this.operatorParser = operatorParser;
@@ -23,25 +29,37 @@ export class SimIamPolicyConditionMatcher {
23
29
  * Match every operator and every key in a condition block.
24
30
  *
25
31
  * Separate operators and separate keys use logical AND semantics.
32
+ *
33
+ * Every operator in the block is read. Stopping at the first that fails
34
+ * would leave the operators the simulator could not evaluate depending on
35
+ * the order the policy happens to list them in.
26
36
  */
27
37
  matches(condition) {
28
38
  if (condition === undefined) {
29
- return true;
39
+ return SimIamPolicyConditionMatcher.noCondition;
30
40
  }
31
- return Object.entries(condition).every(([keyword, keyValues]) => this.operatorMatches(keyword, keyValues));
32
- }
33
- operatorMatches(keyword, keyValues) {
34
- const operator = this.operatorParser.parse(keyword);
35
- /* v8 ignore if -- defensive */
36
- if (operator === undefined) {
37
- return false;
41
+ const unsupportedOperators = [];
42
+ let matched = true;
43
+ for (const [keyword, keyValues] of Object.entries(condition)) {
44
+ const operator = this.operatorParser.parse(keyword);
45
+ if (operator === undefined) {
46
+ unsupportedOperators.push(keyword);
47
+ continue;
48
+ }
49
+ matched = this.operatorMatches(operator, keyValues) && matched;
38
50
  }
51
+ return {
52
+ matched: matched && unsupportedOperators.length === 0,
53
+ unsupportedOperators: matched ? unsupportedOperators : [],
54
+ };
55
+ }
56
+ operatorMatches(operator, keyValues) {
39
57
  return Object.entries(keyValues).every(([key, expected]) => this.entryMatches(operator, key, expected));
40
58
  }
41
59
  entryMatches(operator, key, expected) {
42
60
  const actual = this.conditionContext.get(this.normalizeContextKey(key));
43
61
  if (actual === undefined) {
44
- return false;
62
+ return operator.matchesAbsentKey;
45
63
  }
46
64
  return operator.matches(actual, expected);
47
65
  }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Compares one request value with one policy value.
3
+ *
4
+ * Condition operators differ in how they quantify over the values on each
5
+ * side, and in whether they negate the result. The comparison of a single
6
+ * pair is the part they share, so `StringNotLike` is the same comparison as
7
+ * `StringLike` with the answer turned around.
8
+ */
9
+ export type SimIamStringComparison = (actual: string, expected: string) => boolean;
10
+ /**
11
+ * The comparison `StringEquals` and `StringNotEquals` are built from.
12
+ */
13
+ export declare const simIamStringEqualsComparison: SimIamStringComparison;
14
+ /**
15
+ * The comparison `StringLike` and `StringNotLike` are built from.
16
+ */
17
+ export declare const simIamStringLikeComparison: SimIamStringComparison;
18
+ /**
19
+ * The comparison the four ARN operators are built from.
20
+ *
21
+ * AWS documents `ArnEquals` and `ArnLike` as behaving identically, so one
22
+ * comparison serves both of them and both of their negated forms.
23
+ */
24
+ export declare const simIamArnComparison: SimIamStringComparison;
@@ -0,0 +1,17 @@
1
+ import { simIamArnMatch } from "../../sim-iam-arn-match.js";
2
+ import { simIamWildcardMatch } from "../../sim-iam-wildcard.js";
3
+ /**
4
+ * The comparison `StringEquals` and `StringNotEquals` are built from.
5
+ */
6
+ export const simIamStringEqualsComparison = (actual, expected) => actual === expected;
7
+ /**
8
+ * The comparison `StringLike` and `StringNotLike` are built from.
9
+ */
10
+ export const simIamStringLikeComparison = (actual, expected) => simIamWildcardMatch(expected, actual, { caseSensitive: true });
11
+ /**
12
+ * The comparison the four ARN operators are built from.
13
+ *
14
+ * AWS documents `ArnEquals` and `ArnLike` as behaving identically, so one
15
+ * comparison serves both of them and both of their negated forms.
16
+ */
17
+ export const simIamArnComparison = (actual, expected) => simIamArnMatch(expected, actual);
@@ -4,6 +4,7 @@ import type { SimIamConditionOperator } from "../../sim-iam-condition-operator.j
4
4
  * Base for `ForAllValues` IAM string operators.
5
5
  */
6
6
  export declare abstract class SimIamForAllValuesStringConditionOperator implements SimIamConditionOperator {
7
+ readonly matchesAbsentKey = false;
7
8
  /**
8
9
  * Check whether a given value matches the expected value.
9
10
  */
@@ -3,6 +3,7 @@ import { simIamStringValues } from "../sim-iam-string-values.js";
3
3
  * Base for `ForAllValues` IAM string operators.
4
4
  */
5
5
  export class SimIamForAllValuesStringConditionOperator {
6
+ matchesAbsentKey = false;
6
7
  /**
7
8
  * Check whether a given value matches the expected value.
8
9
  */
@@ -1,9 +1,10 @@
1
+ import { simIamStringEqualsComparison } from "../../sim-iam-string-comparison.js";
1
2
  import { SimIamForAllValuesStringConditionOperator } from "./sim-iam-for-all-values-string-condition-operator.js";
2
3
  /**
3
4
  * IAM `ForAllValues:StringEquals` condition operator.
4
5
  */
5
6
  export class SimIamForAllValuesStringEquals extends SimIamForAllValuesStringConditionOperator {
6
7
  valueMatches(actual, expected) {
7
- return actual === expected;
8
+ return simIamStringEqualsComparison(actual, expected);
8
9
  }
9
10
  }
@@ -1,12 +1,10 @@
1
- import { simIamWildcardMatch } from "../../../../sim-iam-wildcard.js";
1
+ import { simIamStringLikeComparison } from "../../sim-iam-string-comparison.js";
2
2
  import { SimIamForAllValuesStringConditionOperator } from "./sim-iam-for-all-values-string-condition-operator.js";
3
3
  /**
4
4
  * IAM `ForAllValues:StringLike` condition operator.
5
5
  */
6
6
  export class SimIamForAllValuesStringLike extends SimIamForAllValuesStringConditionOperator {
7
7
  valueMatches(actual, expected) {
8
- return simIamWildcardMatch(expected, actual, {
9
- caseSensitive: true,
10
- });
8
+ return simIamStringLikeComparison(actual, expected);
11
9
  }
12
10
  }