@kensio/yulin 1.20.16 → 1.21.0

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 (437) hide show
  1. package/dist/service/athena/engine/sim-athena-comparison-shims.d.ts +13 -0
  2. package/dist/service/athena/engine/sim-athena-comparison-shims.js +68 -0
  3. package/dist/service/athena/engine/sim-athena-shims.js +2 -0
  4. package/dist/service/aws/caller/sim-aws-ambient-caller.d.ts +23 -0
  5. package/dist/service/aws/caller/sim-aws-ambient-caller.js +12 -0
  6. package/dist/service/aws/caller/sim-aws-caller-resolver.d.ts +17 -6
  7. package/dist/service/aws/caller/sim-aws-caller-resolver.js +21 -26
  8. package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts +6 -0
  9. package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +3 -0
  10. package/dist/service/aws/factory/sim-aws-account-service-cache.d.ts +6 -0
  11. package/dist/service/aws/factory/sim-aws-account-service-cache.js +5 -1
  12. package/dist/service/aws/factory/sim-aws-registered-service-builder.js +3 -1
  13. package/dist/service/aws/factory/sim-aws-service-factory.js +9 -1
  14. package/dist/service/cloudformation/command/create-stack/create-stack.handler.d.ts +4 -0
  15. package/dist/service/cloudformation/command/create-stack/create-stack.handler.js +4 -1
  16. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js +2 -1
  17. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.d.ts +11 -2
  18. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.js +2 -1
  19. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts +6 -0
  20. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts +11 -0
  21. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js +17 -15
  22. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.d.ts +12 -0
  23. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.js +2 -1
  24. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cache-policy-cfn.d.ts +23 -0
  25. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cache-policy-cfn.js +30 -0
  26. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cfn-value-adapter.js +16 -0
  27. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-orp-cfn.d.ts +24 -0
  28. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-orp-cfn.js +31 -0
  29. package/dist/service/cloudformation/resource/name/sim-cfn-generated-resource-name.d.ts +29 -12
  30. package/dist/service/cloudformation/resource/name/sim-cfn-generated-resource-name.js +51 -20
  31. package/dist/service/cloudformation/stack/deploy/sim-cfn-resource-order.d.ts +19 -0
  32. package/dist/service/cloudformation/stack/deploy/sim-cfn-resource-order.js +6 -0
  33. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.d.ts +7 -0
  34. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.js +9 -2
  35. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-creator.d.ts +2 -0
  36. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-creator.js +2 -1
  37. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +6 -0
  38. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +4 -1
  39. package/dist/service/cloudformation/stack/sim-cfn-stack.js +2 -1
  40. package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +6 -0
  41. package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts +16 -0
  42. package/dist/service/cloudfront/cache/sim-cf-accept-encoding.d.ts +11 -0
  43. package/dist/service/cloudfront/cache/sim-cf-accept-encoding.js +27 -0
  44. package/dist/service/cloudfront/cache/sim-cf-cache-control.d.ts +28 -0
  45. package/dist/service/cloudfront/cache/sim-cf-cache-control.js +49 -0
  46. package/dist/service/cloudfront/cache/sim-cf-cache-entry-key-path.d.ts +11 -0
  47. package/dist/service/cloudfront/cache/sim-cf-cache-entry-key-path.js +22 -0
  48. package/dist/service/cloudfront/cache/sim-cf-cache-entry-key.d.ts +32 -0
  49. package/dist/service/cloudfront/cache/sim-cf-cache-entry-key.js +112 -0
  50. package/dist/service/cloudfront/cache/sim-cf-cache-status.d.ts +27 -0
  51. package/dist/service/cloudfront/cache/sim-cf-cache-status.js +53 -0
  52. package/dist/service/cloudfront/cache/sim-cf-cache-ttl.d.ts +28 -0
  53. package/dist/service/cloudfront/cache/sim-cf-cache-ttl.js +50 -0
  54. package/dist/service/cloudfront/cache/sim-cf-cacheable-request.d.ts +35 -0
  55. package/dist/service/cloudfront/cache/sim-cf-cacheable-request.js +32 -0
  56. package/dist/service/cloudfront/cache/sim-cf-distribution-cache.d.ts +57 -0
  57. package/dist/service/cloudfront/cache/sim-cf-distribution-cache.js +115 -0
  58. package/dist/service/cloudfront/cache/sim-cf-edge.d.ts +37 -0
  59. package/dist/service/cloudfront/cache/sim-cf-edge.js +34 -0
  60. package/dist/service/cloudfront/cache/sim-cf-error-cache-ttl.d.ts +36 -0
  61. package/dist/service/cloudfront/cache/sim-cf-error-cache-ttl.js +28 -0
  62. package/dist/service/cloudfront/cache/sim-cf-http-date.d.ts +15 -0
  63. package/dist/service/cloudfront/cache/sim-cf-http-date.js +40 -0
  64. package/dist/service/cloudfront/cache-policy/sim-cf-cache-key.d.ts +63 -0
  65. package/dist/service/cloudfront/cache-policy/sim-cf-cache-key.js +70 -0
  66. package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy-registry.d.ts +37 -0
  67. package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy-registry.js +50 -0
  68. package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy.d.ts +35 -0
  69. package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy.js +49 -0
  70. package/dist/service/cloudfront/cache-policy/sim-cf-managed-cache-policies.d.ts +33 -0
  71. package/dist/service/cloudfront/cache-policy/sim-cf-managed-cache-policies.js +132 -0
  72. package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.d.ts +8 -0
  73. package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.js +13 -0
  74. package/dist/service/cloudfront/cff/sim-cf-function-commands.d.ts +52 -0
  75. package/dist/service/cloudfront/cff/sim-cf-function-commands.js +51 -0
  76. package/dist/service/cloudfront/cff/sim-cff-configuration.d.ts +41 -0
  77. package/dist/service/cloudfront/cff/sim-cff-configuration.js +34 -0
  78. package/dist/service/cloudfront/cff/sim-cff-search-distribution.fixture.js +4 -0
  79. package/dist/service/cloudfront/cff/sim-cff-stage.d.ts +23 -0
  80. package/dist/service/cloudfront/cff/sim-cff-stage.js +30 -0
  81. package/dist/service/cloudfront/cff/sim-cloudfront-function.d.ts +6 -1
  82. package/dist/service/cloudfront/cff/sim-cloudfront-function.js +6 -0
  83. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-config.d.ts +28 -0
  84. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-config.js +71 -0
  85. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-creator.d.ts +24 -0
  86. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-creator.js +32 -0
  87. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-key.d.ts +10 -0
  88. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-key.js +50 -0
  89. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-section.d.ts +28 -0
  90. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-section.js +29 -0
  91. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-behavior-policy-kinds.d.ts +16 -0
  92. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-behavior-policy-kinds.js +23 -0
  93. package/dist/service/cloudfront/cfn/distro/{sim-cfn-cf-distro-response-headers-policy.d.ts → sim-cfn-cf-distro-behavior-policies.d.ts} +9 -7
  94. package/dist/service/cloudfront/cfn/distro/{sim-cfn-cf-distro-response-headers-policy.js → sim-cfn-cf-distro-behavior-policies.js} +12 -37
  95. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.d.ts +6 -5
  96. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js +8 -7
  97. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-policy-drops.d.ts +23 -0
  98. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-policy-drops.js +35 -0
  99. package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-config.d.ts +28 -0
  100. package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-config.js +46 -0
  101. package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-creator.d.ts +24 -0
  102. package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-creator.js +32 -0
  103. package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-forwarding.d.ts +10 -0
  104. package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-forwarding.js +51 -0
  105. package/dist/service/cloudfront/cfn/policy/sim-cfn-cf-policy-section.d.ts +22 -0
  106. package/dist/service/cloudfront/cfn/policy/sim-cfn-cf-policy-section.js +54 -0
  107. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.d.ts +2 -0
  108. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.js +22 -0
  109. package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts +2 -0
  110. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts +4 -0
  111. package/dist/service/cloudfront/command/create-function/create-function.handler.js +7 -1
  112. package/dist/service/cloudfront/command/function/sim-cf-describe-function.d.ts +22 -0
  113. package/dist/service/cloudfront/command/function/sim-cf-describe-function.js +32 -0
  114. package/dist/service/cloudfront/command/function/sim-cf-function-access.d.ts +48 -0
  115. package/dist/service/cloudfront/command/function/sim-cf-function-access.js +48 -0
  116. package/dist/service/cloudfront/command/function/sim-cf-function-command.types.d.ts +97 -0
  117. package/dist/service/cloudfront/command/function/sim-cf-function-command.types.js +10 -0
  118. package/dist/service/cloudfront/command/function/sim-cf-function-lookup.d.ts +12 -0
  119. package/dist/service/cloudfront/command/function/sim-cf-function-lookup.js +21 -0
  120. package/dist/service/cloudfront/command/function/sim-cf-function-summary.d.ts +11 -0
  121. package/dist/service/cloudfront/command/function/sim-cf-function-summary.js +30 -0
  122. package/dist/service/cloudfront/command/function/sim-cf-get-function.d.ts +23 -0
  123. package/dist/service/cloudfront/command/function/sim-cf-get-function.js +33 -0
  124. package/dist/service/cloudfront/command/function/sim-cf-list-functions.d.ts +22 -0
  125. package/dist/service/cloudfront/command/function/sim-cf-list-functions.js +38 -0
  126. package/dist/service/cloudfront/command/invalidation/sim-cf-create-invalidation.d.ts +28 -0
  127. package/dist/service/cloudfront/command/invalidation/sim-cf-create-invalidation.js +59 -0
  128. package/dist/service/cloudfront/command/invalidation/sim-cf-get-invalidation.d.ts +19 -0
  129. package/dist/service/cloudfront/command/invalidation/sim-cf-get-invalidation.js +32 -0
  130. package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-access.d.ts +36 -0
  131. package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-access.js +45 -0
  132. package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-command.types.d.ts +80 -0
  133. package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-command.types.js +1 -0
  134. package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-commands.d.ts +39 -0
  135. package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-commands.js +35 -0
  136. package/dist/service/cloudfront/command/invalidation/sim-cf-list-invalidations.d.ts +23 -0
  137. package/dist/service/cloudfront/command/invalidation/sim-cf-list-invalidations.js +39 -0
  138. package/dist/service/cloudfront/command/update-distribution/update-distribution.handler.d.ts +4 -0
  139. package/dist/service/cloudfront/controller/content/sim-cf-content-stage.d.ts +51 -0
  140. package/dist/service/cloudfront/controller/content/sim-cf-content-stage.js +65 -0
  141. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.d.ts +2 -3
  142. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.js +4 -4
  143. package/dist/service/cloudfront/controller/error/sim-cf-custom-error-responder.d.ts +4 -0
  144. package/dist/service/cloudfront/controller/error/sim-cf-custom-error-responder.js +12 -8
  145. package/dist/service/cloudfront/controller/origin/sim-cf-origin-stage.d.ts +2 -2
  146. package/dist/service/cloudfront/controller/origin/sim-cf-origin-stage.js +2 -2
  147. package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.d.ts +6 -6
  148. package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.js +35 -20
  149. package/dist/service/cloudfront/custom-error/sim-cloudfront-custom-error-response.d.ts +23 -5
  150. package/dist/service/cloudfront/custom-error/sim-cloudfront-custom-error-response.js +8 -0
  151. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-cache-policy.d.ts +18 -0
  152. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-cache-policy.js +30 -0
  153. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-origin-request-policy.d.ts +18 -0
  154. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-origin-request-policy.js +30 -0
  155. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-policies.d.ts +30 -0
  156. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-policies.js +44 -0
  157. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.d.ts +2 -2
  158. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.js +9 -3
  159. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.d.ts +0 -10
  160. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.js +0 -19
  161. package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.d.ts +4 -0
  162. package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.js +8 -2
  163. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.d.ts +3 -3
  164. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.js +5 -5
  165. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-custom-error-configurator.d.ts +13 -3
  166. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-custom-error-configurator.js +27 -6
  167. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.d.ts +3 -3
  168. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.js +4 -4
  169. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.d.ts +3 -1
  170. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.js +4 -1
  171. package/dist/service/cloudfront/distribution/sim-cf-distribution-configuration-state.d.ts +7 -3
  172. package/dist/service/cloudfront/distribution/sim-cf-distribution-reconfigurer.d.ts +4 -0
  173. package/dist/service/cloudfront/distribution/sim-cf-distribution-view.js +1 -1
  174. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.d.ts +25 -2
  175. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.js +24 -0
  176. package/dist/service/cloudfront/error/sim-cf-invalidation.error.d.ts +22 -0
  177. package/dist/service/cloudfront/error/sim-cf-invalidation.error.js +26 -0
  178. package/dist/service/cloudfront/error/sim-cf-origin-request-policy.error.d.ts +22 -0
  179. package/dist/service/cloudfront/error/sim-cf-origin-request-policy.error.js +26 -0
  180. package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts +21 -0
  181. package/dist/service/cloudfront/error/sim-cloudfront.error.js +25 -0
  182. package/dist/service/cloudfront/index.d.ts +2 -0
  183. package/dist/service/cloudfront/index.js +1 -0
  184. package/dist/service/cloudfront/invalidation/sim-cf-invalidation-path.d.ts +22 -0
  185. package/dist/service/cloudfront/invalidation/sim-cf-invalidation-path.js +32 -0
  186. package/dist/service/cloudfront/invalidation/sim-cf-invalidation-view.d.ts +43 -0
  187. package/dist/service/cloudfront/invalidation/sim-cf-invalidation-view.js +33 -0
  188. package/dist/service/cloudfront/invalidation/sim-cf-invalidation.d.ts +55 -0
  189. package/dist/service/cloudfront/invalidation/sim-cf-invalidation.js +56 -0
  190. package/dist/service/cloudfront/invalidation/sim-cf-invalidations.d.ts +41 -0
  191. package/dist/service/cloudfront/invalidation/sim-cf-invalidations.js +58 -0
  192. package/dist/service/cloudfront/invalidation/sim-cf-repeated-invalidation.d.ts +15 -0
  193. package/dist/service/cloudfront/invalidation/sim-cf-repeated-invalidation.js +23 -0
  194. package/dist/service/cloudfront/key-value-store/sim-cf-key-value-store-access.js +2 -10
  195. package/dist/service/cloudfront/key-value-store/sim-cf-key-value-store.js +2 -1
  196. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-forwarding.d.ts +19 -0
  197. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-forwarding.js +116 -0
  198. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts +15 -5
  199. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js +13 -8
  200. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-signer.js +8 -5
  201. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.d.ts +13 -0
  202. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js +8 -0
  203. package/dist/service/cloudfront/origin-request-policy/sim-cf-behavior-forwarded.d.ts +24 -0
  204. package/dist/service/cloudfront/origin-request-policy/sim-cf-behavior-forwarded.js +21 -0
  205. package/dist/service/cloudfront/origin-request-policy/sim-cf-forwarded-to-origin.d.ts +57 -0
  206. package/dist/service/cloudfront/origin-request-policy/sim-cf-forwarded-to-origin.js +129 -0
  207. package/dist/service/cloudfront/origin-request-policy/sim-cf-managed-origin-request-policies.d.ts +30 -0
  208. package/dist/service/cloudfront/origin-request-policy/sim-cf-managed-origin-request-policies.js +121 -0
  209. package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-forwarding.d.ts +56 -0
  210. package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-forwarding.js +67 -0
  211. package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy-registry.d.ts +38 -0
  212. package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy-registry.js +51 -0
  213. package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy.d.ts +32 -0
  214. package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy.js +30 -0
  215. package/dist/service/cloudfront/registry/sim-cloud-front-registry.d.ts +25 -0
  216. package/dist/service/cloudfront/registry/sim-cloud-front-registry.js +23 -0
  217. package/dist/service/cloudfront/sdk/sim-cloudfront-sdk-command-router.js +24 -0
  218. package/dist/service/cloudfront/sim-cf-authorize.d.ts +16 -0
  219. package/dist/service/cloudfront/sim-cf-authorize.js +19 -0
  220. package/dist/service/cloudfront/sim-cf-etag.d.ts +7 -0
  221. package/dist/service/cloudfront/sim-cf-etag.js +10 -0
  222. package/dist/service/cloudfront/sim-cloudfront-caching.d.ts +31 -0
  223. package/dist/service/cloudfront/sim-cloudfront-caching.js +38 -0
  224. package/dist/service/cloudfront/sim-cloudfront-commands.d.ts +20 -12
  225. package/dist/service/cloudfront/sim-cloudfront-commands.js +20 -17
  226. package/dist/service/cloudfront/sim-cloudfront-distributions.d.ts +21 -0
  227. package/dist/service/cloudfront/sim-cloudfront-distributions.js +23 -0
  228. package/dist/service/cloudfront/sim-cloudfront-origin-access-controls.d.ts +30 -0
  229. package/dist/service/cloudfront/sim-cloudfront-origin-access-controls.js +35 -0
  230. package/dist/service/cloudfront/sim-cloudfront-policies.d.ts +60 -0
  231. package/dist/service/cloudfront/sim-cloudfront-policies.js +75 -0
  232. package/dist/service/cloudfront/sim-cloudfront.d.ts +24 -44
  233. package/dist/service/cloudfront/sim-cloudfront.js +37 -58
  234. package/dist/service/ecr/authorize/sim-ecr-authorizer.d.ts +31 -0
  235. package/dist/service/ecr/authorize/sim-ecr-authorizer.js +38 -0
  236. package/dist/service/ecr/cfn/repository/sim-cfn-ecr-repository-creator.d.ts +11 -2
  237. package/dist/service/ecr/cfn/repository/sim-cfn-ecr-repository-creator.js +11 -2
  238. package/dist/service/ecr/cfn/sim-ecr-cfn-resource-factory.d.ts +4 -2
  239. package/dist/service/ecr/cfn/sim-ecr-cfn-resource-factory.js +8 -9
  240. package/dist/service/ecr/cfn/sim-ecr-cfn-unsupported-resource.d.ts +7 -0
  241. package/dist/service/ecr/cfn/sim-ecr-cfn-unsupported-resource.js +9 -0
  242. package/dist/service/ecr/sim-ecr.d.ts +7 -0
  243. package/dist/service/ecr/sim-ecr.js +16 -4
  244. package/dist/service/ecs/command/authorize/sim-ecs-authorizer.d.ts +12 -0
  245. package/dist/service/ecs/command/authorize/sim-ecs-authorizer.js +21 -0
  246. package/dist/service/ecs/command/register-task-definition/register-task-definition.handler.js +1 -0
  247. package/dist/service/ecs/sim-ecs-service-principal.d.ts +8 -0
  248. package/dist/service/ecs/sim-ecs-service-principal.js +8 -0
  249. package/dist/service/eventbridge/command/authorize/sim-event-bridge-authorizer.d.ts +12 -0
  250. package/dist/service/eventbridge/command/authorize/sim-event-bridge-authorizer.js +21 -0
  251. package/dist/service/eventbridge/command/rule/sim-event-bridge-rule-access.d.ts +13 -0
  252. package/dist/service/eventbridge/command/rule/sim-event-bridge-rule-access.js +9 -0
  253. package/dist/service/eventbridge/command/target/sim-event-bridge-put-targets.js +1 -0
  254. package/dist/service/firehose/command/authorize/sim-firehose-authorizer.d.ts +12 -0
  255. package/dist/service/firehose/command/authorize/sim-firehose-authorizer.js +20 -0
  256. package/dist/service/firehose/command/sim-firehose-delivery-stream-access.d.ts +4 -0
  257. package/dist/service/firehose/command/sim-firehose-delivery-stream-access.js +6 -0
  258. package/dist/service/firehose/command/stream/sim-firehose-create-delivery-stream.js +3 -1
  259. package/dist/service/firehose/sim-firehose-service-principal.d.ts +8 -0
  260. package/dist/service/firehose/sim-firehose-service-principal.js +8 -0
  261. package/dist/service/firehose/source/sim-firehose-source.d.ts +5 -0
  262. package/dist/service/firehose/source/sim-firehose-source.js +5 -0
  263. package/dist/service/glue/cfn/database/sim-cfn-glue-database-properties.js +2 -2
  264. package/dist/service/glue/cfn/sim-cfn-glue-generated-name.d.ts +10 -0
  265. package/dist/service/glue/cfn/sim-cfn-glue-generated-name.js +25 -0
  266. package/dist/service/glue/cfn/table/sim-cfn-glue-table-properties.js +2 -3
  267. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.d.ts +34 -2
  268. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.js +34 -2
  269. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.d.ts +4 -3
  270. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.js +9 -3
  271. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.d.ts +14 -5
  272. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.js +16 -12
  273. package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.d.ts +9 -3
  274. package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.js +5 -3
  275. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts +9 -71
  276. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js +2 -1
  277. package/dist/service/iam/authorize/context/sim-iam-auth-z-input.d.ts +89 -0
  278. package/dist/service/iam/authorize/context/sim-iam-auth-z-input.js +1 -0
  279. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.d.ts +11 -3
  280. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.js +20 -8
  281. package/dist/service/iam/authorize/match/sim-iam-principal-match.d.ts +29 -8
  282. package/dist/service/iam/authorize/match/sim-iam-principal-match.js +38 -13
  283. package/dist/service/iam/authorize/pass-role/sim-iam-pass-role-authorizer.d.ts +74 -0
  284. package/dist/service/iam/authorize/pass-role/sim-iam-pass-role-authorizer.js +92 -0
  285. package/dist/service/iam/authorize/sim-iam-account-auth-z.d.ts +14 -5
  286. package/dist/service/iam/authorize/sim-iam-account-auth-z.js +6 -4
  287. package/dist/service/iam/authorize/sim-iam-authorizer.d.ts +3 -1
  288. package/dist/service/iam/authorize/sim-iam-authorizer.js +2 -1
  289. package/dist/service/iam/authorize/sim-iam-inter-service-auth-z.d.ts +1 -1
  290. package/dist/service/iam/authorize/sim-iam-wildcard.js +39 -4
  291. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.js +2 -1
  292. package/dist/service/iam/cfn/name/sim-cfn-iam-generated-name.d.ts +16 -0
  293. package/dist/service/iam/cfn/name/sim-cfn-iam-generated-name.js +36 -0
  294. package/dist/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.js +9 -8
  295. package/dist/service/iam/cfn/sim-cfn-iam-optional-string.d.ts +17 -0
  296. package/dist/service/iam/cfn/sim-cfn-iam-optional-string.js +17 -0
  297. package/dist/service/iam/cfn/user/sim-cfn-iam-user-properties-parser.js +4 -8
  298. package/dist/service/iam/command/policy/create-policy/create-policy-input-resolver.js +2 -0
  299. package/dist/service/iam/command/policy/put-role-policy/put-role-policy.handler.js +5 -0
  300. package/dist/service/iam/command/policy/put-user-policy/put-user-policy.handler.js +5 -0
  301. package/dist/service/iam/command/role/create-role/create-role.handler.js +4 -1
  302. package/dist/service/iam/error/sim-iam.error.d.ts +11 -0
  303. package/dist/service/iam/error/sim-iam.error.js +13 -0
  304. package/dist/service/iam/index.d.ts +1 -0
  305. package/dist/service/iam/policy/sim-iam-policy-document-of-size.d.ts +18 -0
  306. package/dist/service/iam/policy/sim-iam-policy-document-of-size.js +41 -0
  307. package/dist/service/iam/role/sim-iam-deploy-role.d.ts +56 -0
  308. package/dist/service/iam/role/sim-iam-deploy-role.js +50 -0
  309. package/dist/service/iam/role/sim-iam-role-with-policy.factory.d.ts +3 -1
  310. package/dist/service/iam/sim-iam-account-parts.d.ts +8 -0
  311. package/dist/service/iam/sim-iam-account-parts.js +1 -0
  312. package/dist/service/iam/sim-iam.d.ts +12 -2
  313. package/dist/service/iam/sim-iam.js +12 -0
  314. package/dist/service/iam/validate/size/sim-iam-policy-document-size.d.ts +57 -0
  315. package/dist/service/iam/validate/size/sim-iam-policy-document-size.js +71 -0
  316. package/dist/service/kms/command/authorize/sim-kms-authorizer.d.ts +3 -1
  317. package/dist/service/kms/command/authorize/sim-kms-authorizer.js +4 -1
  318. package/dist/service/kms/command/sim-kms-request-options.d.ts +15 -0
  319. package/dist/service/kms/key/sim-kms-key-policy.d.ts +5 -4
  320. package/dist/service/kms/key/sim-kms-key-policy.js +4 -3
  321. package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-properties-parser.d.ts +2 -2
  322. package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-properties-parser.js +4 -3
  323. package/dist/service/lambda/cfn/function/sim-cfn-lambda-generated-function-name.d.ts +10 -0
  324. package/dist/service/lambda/cfn/function/sim-cfn-lambda-generated-function-name.js +25 -0
  325. package/dist/service/lambda/command/authorize/sim-lambda-resource-policies.d.ts +1 -1
  326. package/dist/service/lambda/command/create-function/create-function-authorizer.d.ts +9 -2
  327. package/dist/service/lambda/command/create-function/create-function-authorizer.js +16 -2
  328. package/dist/service/lambda/command/create-function/create-function.handler.js +1 -1
  329. package/dist/service/lambda/command/update-function-configuration/update-function-configuration-authorizer.d.ts +7 -2
  330. package/dist/service/lambda/command/update-function-configuration/update-function-configuration-authorizer.js +14 -2
  331. package/dist/service/lambda/command/update-function-configuration/update-function-configuration.handler.js +1 -1
  332. package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts +10 -1
  333. package/dist/service/lambda/function/logging/sim-lambda-function-logging.js +25 -1
  334. package/dist/service/lambda/function/logging/sim-lambda-invoke-error-log.d.ts +13 -0
  335. package/dist/service/lambda/function/logging/sim-lambda-invoke-error-log.js +18 -0
  336. package/dist/service/lambda/sim-lambda-service-principal.d.ts +7 -0
  337. package/dist/service/lambda/sim-lambda-service-principal.js +7 -0
  338. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-authorization.d.ts +46 -0
  339. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-authorization.js +49 -0
  340. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.d.ts +5 -0
  341. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.js +6 -0
  342. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.d.ts +5 -0
  343. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.js +6 -0
  344. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.d.ts +5 -0
  345. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.js +6 -0
  346. package/dist/service/logs/cfn/group/sim-cfn-log-group-creator.d.ts +9 -2
  347. package/dist/service/logs/cfn/group/sim-cfn-log-group-creator.js +34 -5
  348. package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.js +1 -1
  349. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.d.ts +4 -0
  350. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.js +9 -4
  351. package/dist/service/logs/command/delivery/sim-logs-delivery-source-commands.d.ts +6 -4
  352. package/dist/service/logs/command/delivery/sim-logs-delivery-source-commands.js +13 -4
  353. package/dist/service/logs/delivery/cloudfront/sim-logs-vended-log-delivery.d.ts +23 -0
  354. package/dist/service/logs/delivery/cloudfront/sim-logs-vended-log-delivery.js +28 -0
  355. package/dist/service/logs/sim-logs-commands.d.ts +3 -0
  356. package/dist/service/logs/sim-logs-commands.js +4 -0
  357. package/dist/service/logs/sim-logs.js +6 -1
  358. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.d.ts +2 -2
  359. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.js +4 -3
  360. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-generated-name.d.ts +12 -0
  361. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-generated-name.js +22 -0
  362. package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.d.ts +1 -1
  363. package/dist/service/scheduler/command/authorize/sim-scheduler-authorizer.d.ts +10 -1
  364. package/dist/service/scheduler/command/authorize/sim-scheduler-authorizer.js +19 -1
  365. package/dist/service/scheduler/command/schedule/sim-scheduler-create-schedule.js +1 -0
  366. package/dist/service/scheduler/command/schedule/sim-scheduler-schedule-access.d.ts +8 -0
  367. package/dist/service/scheduler/command/schedule/sim-scheduler-schedule-access.js +9 -0
  368. package/dist/service/scheduler/command/schedule/sim-scheduler-update-schedule.js +1 -0
  369. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-generated-name.d.ts +15 -0
  370. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-generated-name.js +22 -0
  371. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-properties.d.ts +4 -10
  372. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-properties.js +13 -31
  373. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-value.d.ts +17 -0
  374. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-value.js +30 -0
  375. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-name.d.ts +6 -0
  376. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-name.js +8 -3
  377. package/dist/service/sns/command/authorize/sim-sns-topic-resource-policies.d.ts +1 -1
  378. package/dist/service/sqs/command/authorize/sim-sqs-queue-resource-policies.d.ts +1 -1
  379. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-generated-parameter-name.d.ts +16 -0
  380. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-generated-parameter-name.js +23 -0
  381. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-properties.d.ts +2 -4
  382. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-properties.js +5 -5
  383. package/dist/service/ssm/parameter/sim-ssm-kms-crypto.d.ts +11 -12
  384. package/dist/service/ssm/parameter/sim-ssm-kms-crypto.js +4 -4
  385. package/dist/service/ssm/parameter/sim-ssm-parameter-arn.d.ts +17 -0
  386. package/dist/service/ssm/parameter/sim-ssm-parameter-arn.js +20 -0
  387. package/dist/service/ssm/parameter/sim-ssm-parameter-kms.d.ts +13 -8
  388. package/dist/service/ssm/parameter/sim-ssm-parameter-kms.js +13 -8
  389. package/dist/service/ssm/parameter/sim-ssm-parameter-name.js +3 -12
  390. package/dist/service/stepfunctions/command/authorize/sim-step-functions-authorizer.d.ts +41 -0
  391. package/dist/service/stepfunctions/command/authorize/sim-step-functions-authorizer.js +64 -0
  392. package/dist/service/stepfunctions/command/machine/sim-state-machine-create.d.ts +5 -2
  393. package/dist/service/stepfunctions/command/machine/sim-state-machine-create.js +6 -2
  394. package/dist/service/stepfunctions/command/machine/sim-state-machine-delete.d.ts +26 -0
  395. package/dist/service/stepfunctions/command/machine/sim-state-machine-delete.js +29 -0
  396. package/dist/service/stepfunctions/command/machine/sim-state-machine-lookup.d.ts +7 -0
  397. package/dist/service/stepfunctions/command/machine/sim-state-machine-lookup.js +12 -3
  398. package/dist/service/stepfunctions/command/machine/sim-state-machine-update.d.ts +19 -0
  399. package/dist/service/stepfunctions/command/machine/{sim-state-machine-writes.js → sim-state-machine-update.js} +3 -14
  400. package/dist/service/stepfunctions/sim-step-functions.d.ts +8 -2
  401. package/dist/service/stepfunctions/sim-step-functions.js +26 -9
  402. package/dist/service/sts/command/assume-role/assume-role.handler.d.ts +5 -0
  403. package/dist/service/sts/command/assume-role/assume-role.handler.js +1 -0
  404. package/dist/service/sts/command/get-caller-identity/get-caller-identity.handler.d.ts +5 -0
  405. package/dist/service/sts/command/get-caller-identity/get-caller-identity.handler.js +1 -0
  406. package/dist/service/sts/sim-sts.d.ts +9 -0
  407. package/dist/service/sts/sim-sts.js +4 -0
  408. package/dist/util/memo/bounded-memo.d.ts +36 -0
  409. package/dist/util/memo/bounded-memo.js +58 -0
  410. package/docs/sdk/README.md +3 -1
  411. package/docs/services/athena/README.md +7 -1
  412. package/docs/services/cloudformation/README.md +197 -11
  413. package/docs/services/cloudfront/README.md +1116 -14
  414. package/docs/services/cloudwatch/README.md +6 -4
  415. package/docs/services/cognito/README.md +8 -7
  416. package/docs/services/dynamodb/README.md +6 -5
  417. package/docs/services/ecs/README.md +23 -9
  418. package/docs/services/elbv2/README.md +6 -2
  419. package/docs/services/eventbridge/README.md +9 -1
  420. package/docs/services/firehose/README.md +9 -3
  421. package/docs/services/glue/README.md +6 -0
  422. package/docs/services/iam/README.md +322 -27
  423. package/docs/services/kinesis/README.md +3 -2
  424. package/docs/services/kms/README.md +11 -2
  425. package/docs/services/lambda/README.md +76 -2
  426. package/docs/services/logs/README.md +22 -2
  427. package/docs/services/s3/README.md +7 -2
  428. package/docs/services/scheduler/README.md +12 -4
  429. package/docs/services/secretsmanager/README.md +6 -3
  430. package/docs/services/ses/README.md +3 -1
  431. package/docs/services/sns/README.md +5 -5
  432. package/docs/services/sqs/README.md +5 -5
  433. package/docs/services/ssm/README.md +35 -18
  434. package/docs/services/stepfunctions/README.md +11 -2
  435. package/docs/services/wafv2/README.md +5 -3
  436. package/package.json +1 -1
  437. package/dist/service/stepfunctions/command/machine/sim-state-machine-writes.d.ts +0 -25
@@ -510,7 +510,12 @@ no group with nowhere to go.
510
510
 
511
511
  ## Permissions
512
512
 
513
- Every operation is authorized against the schedule ARN, which carries the group:
513
+ Every operation is authorized against the schedule ARN, which carries the group. A Create or an
514
+ Update also hands Scheduler the `Target.RoleArn` the schedule fires as, and authorizes `iam:PassRole`
515
+ against that Role. See [passing a Role to a service](https://yulinsim.dev/services/iam/#passing-a-role-to-a-service)
516
+ in the IAM docs.
517
+
518
+ The schedule ARN is what an operation authorizes against:
514
519
 
515
520
  ```typescript sim-scheduler-iam-policy
516
521
  /**
@@ -678,7 +683,9 @@ console.log(simAws.scheduler().deliveryFailures.length); // 0
678
683
 
679
684
  `Ref` returns the schedule's **name** and `Fn::GetAtt ... Arn` its ARN, which carries the schedule
680
685
  group as it always does. A schedule the template leaves unnamed gets one generated from the stack
681
- name and the logical ID.
686
+ name, the logical ID and a tail derived from both, as
687
+ [the CloudFormation docs](https://yulinsim.dev/services/cloudformation/#names-cloudformation-generates "Names CloudFormation generates")
688
+ describe.
682
689
 
683
690
  A property this simulation leaves out is refused at deploy time, naming the Resource. Deploying a
684
691
  schedule that behaves differently from the one declared would be worse. Tearing the stack down
@@ -735,8 +742,8 @@ console.log(stack.output("GroupArn"));
735
742
  ```
736
743
 
737
744
  `Ref` returns the group's **name** and `Fn::GetAtt` answers `Arn`, `State`, `CreationDate` and
738
- `LastModificationDate`. A group the template leaves unnamed gets one generated from the stack name
739
- and the logical ID.
745
+ `LastModificationDate`. A group the template leaves unnamed gets one generated from the stack name,
746
+ the logical ID and a tail derived from both, as a schedule does.
740
747
 
741
748
  `Tags` on a group are recorded as an ignored property and the group deploys without them. The CDK
742
749
  puts a stack's tags on every taggable Resource in it, so a template gains them without asking.
@@ -763,6 +770,7 @@ Resources of the same stack.
763
770
  - Creation and modification timestamps from the simulation's clock, and prefix-narrowed,
764
771
  state-narrowed, paged listings.
765
772
  - IAM authorization against the schedule ARN.
773
+ - `iam:PassRole` authorization of the `Target.RoleArn` a Create or an Update hands over.
766
774
  - SDK interception of `SchedulerClient`.
767
775
 
768
776
  ## Limitations
@@ -577,9 +577,12 @@ The other generation options behave as they do on real AWS, being `PasswordLengt
577
577
  `IncludeSpace`, and `RequireEachIncludedType`. The last is on unless turned off, and a generated
578
578
  password carries one of every character type it was not told to exclude.
579
579
 
580
- A secret with no `Name` is named after its logical ID. Real CloudFormation names it after the stack
581
- and appends its own random characters. A template cannot rely on the exact generated name either
582
- way.
580
+ A secret with no `Name` is named from the stack name, the logical ID and a tail derived from both.
581
+ An `ApiSecret` in `db-stack` becomes `db-stack-ApiSecret-` and twelve more characters, where real
582
+ CloudFormation ends the name in twelve random ones. Simulated Secrets Manager then appends its own
583
+ six characters to the ARN, as it does for a secret named by hand. The name is trimmed to the 512
584
+ characters a secret name allows, and [the CloudFormation docs](https://yulinsim.dev/services/cloudformation/#names-cloudformation-generates "Names CloudFormation generates")
585
+ cover how the stack name and the logical ID share what is left.
583
586
 
584
587
  ## Inside a simulated Lambda handler
585
588
 
@@ -515,7 +515,9 @@ CloudFormation is creating an identity that is already there.
515
515
  `FromEmailAddress`. `Ref` on a template, and its `Id` attribute, both return the template name.
516
516
  `Ref` on a configuration set returns its name. That Resource type has no `Fn::GetAtt` attributes at
517
517
  all, so reading one fails the deploy rather than answering something AWS would not. A set with no
518
- `Name` is named after the stack and the logical ID, as real CloudFormation names one.
518
+ `Name` is named after the stack, the logical ID and a tail derived from both, as
519
+ [the CloudFormation docs](https://yulinsim.dev/services/cloudformation/#names-cloudformation-generates "Names CloudFormation generates")
520
+ describe.
519
521
 
520
522
  Deleting the stack removes all three.
521
523
 
@@ -1688,11 +1688,11 @@ const { Messages } = await simAws
1688
1688
  console.log(Messages?.[0]?.Body); // "order-1"
1689
1689
  ```
1690
1690
 
1691
- A topic with no `TopicName` is named from the stack name and the logical ID. The topic above with its
1692
- name left out would be `orders-stack-OrdersTopic`. Real CloudFormation adds random characters to
1693
- that, which a template cannot predict either way. The generated name is trimmed to the 256 characters
1694
- a topic name allows, ending in a hash of the untrimmed name so two long names that start the same
1695
- stay apart.
1691
+ A topic with no `TopicName` is named from the stack name, the logical ID and a tail derived from
1692
+ both. The topic above with its name left out would be `orders-stack-OrdersTopic-` and twelve more
1693
+ characters, where real CloudFormation ends the name in twelve random ones. The name is trimmed to
1694
+ the 256 characters a topic name allows, and [the CloudFormation docs](https://yulinsim.dev/services/cloudformation/#names-cloudformation-generates "Names CloudFormation generates")
1695
+ cover how the stack name and the logical ID share what is left.
1696
1696
 
1697
1697
  A topic can also declare its subscriptions inside itself, with the `Subscription` property. That is
1698
1698
  how a hand-written template usually writes them. Each entry is a `Protocol` and an `Endpoint`, and
@@ -1052,11 +1052,11 @@ The properties applied to the queue are `VisibilityTimeout`, `DelaySeconds`,
1052
1052
  `MessageRetentionPeriod`, `MaximumMessageSize` and `ReceiveMessageWaitTimeSeconds`. Each is passed to
1053
1053
  `CreateQueue`, and a value outside the range real SQS accepts fails the resource.
1054
1054
 
1055
- A queue with no `QueueName` is named from the stack name and the logical ID. The queue above with its
1056
- name left out would be `orders-stack-OrdersQueue`. Real CloudFormation adds random characters to
1057
- that, which a template cannot predict either way. The generated name is trimmed to the 80 characters
1058
- a queue name allows, ending in a hash of the untrimmed name so two long names that start the same
1059
- stay apart.
1055
+ A queue with no `QueueName` is named from the stack name, the logical ID and a tail derived from
1056
+ both. The queue above with its name left out would be `orders-stack-OrdersQueue-` and twelve more
1057
+ characters, where real CloudFormation ends the name in twelve random ones. The name is trimmed to
1058
+ the 80 characters a queue name allows, and [the CloudFormation docs](https://yulinsim.dev/services/cloudformation/#names-cloudformation-generates "Names CloudFormation generates")
1059
+ cover how the stack name and the logical ID share what is left.
1060
1060
 
1061
1061
  `FifoQueue: true` fails the resource. Only standard queues are simulated, and a FIFO queue is named
1062
1062
  `<name>.fifo`, a name simulated SQS refuses to an SDK caller as well. There is no queue to create
@@ -361,9 +361,13 @@ console.log(read.Parameter?.Value); // "db.internal"
361
361
  console.log(read.Parameter?.Version); // 1
362
362
  ```
363
363
 
364
- A parameter with no `Name` is named after its logical ID. Real CloudFormation generates a name from
365
- the stack name and its own random characters. A template cannot rely on the exact generated name
366
- either way.
364
+ A parameter with no `Name` is named from the stack name, the logical ID and a tail derived from
365
+ both. A `FeatureFlags` in `config-stack` becomes `config-stack-FeatureFlags-` and twelve more
366
+ characters, where real CloudFormation ends the name in twelve random ones. The name carries no
367
+ leading slash, putting the parameter at the top of the hierarchy where real CloudFormation puts one
368
+ it names itself. Parameter Store counts the ARN prefix towards the 1011 characters a name may use,
369
+ and [the CloudFormation docs](https://yulinsim.dev/services/cloudformation/#names-cloudformation-generates "Names CloudFormation generates")
370
+ cover how the stack name and the logical ID share what is left.
367
371
 
368
372
  An IAM policy granting access to a template-created parameter needs the ARN rather than the `Ref`.
369
373
  Build it with `Fn::Sub`, remembering that the ARN drops the name's leading slash:
@@ -468,9 +472,10 @@ recorded the same way.
468
472
  references use, so a reference can sit inside a longer value and inside `Fn::Sub`.
469
473
 
470
474
  Decryption goes to simulated KMS under the key the parameter was written with, as the caller
471
- deploying the stack. A caller lacking `kms:Decrypt` on that key fails the resource with the
472
- `AccessDenied` a decrypting `GetParameter` raises (see
475
+ deploying the stack. A caller lacking `kms:Decrypt` on a customer managed key fails the resource with
476
+ the `AccessDenied` a decrypting `GetParameter` raises (see
473
477
  [A customer managed key needs its own permission](#a-customer-managed-key-needs-its-own-permission)).
478
+ A parameter under the `aws/ssm` managed key needs no KMS permission of the caller.
474
479
 
475
480
  CDK writes one of these from `SecretValue.ssmSecure`, from
476
481
  `ssm.StringParameter.fromSecureStringParameterAttributes` and from the deprecated
@@ -911,15 +916,27 @@ try {
911
916
  }
912
917
  ```
913
918
 
914
- ### The aws/ssm managed key needs no permission
919
+ ### The aws/ssm managed key allows the read itself
915
920
 
916
- A parameter naming no key is encrypted under the `aws/ssm` AWS managed key, and that key asks the
917
- caller for nothing. Parameter Store supplies `kms:ViaService`, and the managed key's policy allows
918
- the account's principals to use it through Systems Manager. A role holding only `ssm:GetParameter`
919
- therefore reads the decrypted value, as it does on real AWS.
921
+ A parameter naming no key is encrypted under the `aws/ssm` AWS managed key. That key's policy allows
922
+ the cryptographic actions to a wildcard principal under `kms:ViaService` and `kms:CallerAccount`
923
+ conditions, and Parameter Store satisfies both. A grant of that shape delegates nothing to IAM. A
924
+ role holding `ssm:GetParameter` and nothing on KMS reads the decrypted value, as it does in an
925
+ account, and withholding that access takes an explicit `Deny`.
920
926
 
921
- The same role cannot take the ciphertext to KMS itself, because that policy allows nothing to a
922
- request arriving directly.
927
+ `GetParameters` and `GetParametersByPath` decrypt through the same path and on the same permission.
928
+ A `SecureString` write under the managed key asks for no KMS permission either.
929
+
930
+ A `kms:Decrypt` grant scoped with a `kms:ViaService` condition (the shape a stack writes when the
931
+ key is chosen after synthesis) still works, and it is what a customer managed key wants.
932
+
933
+ The key stays out of reach of anything calling KMS directly. The same role handed the stored
934
+ ciphertext cannot decrypt it through `Decrypt`, because the policy's `kms:ViaService` condition
935
+ matches only a request that arrived through Systems Manager. A caller in another account is refused
936
+ by the `kms:CallerAccount` condition.
937
+
938
+ An ECS task resolves a `secrets` entry through this path. An execution role holding
939
+ `ssm:GetParameter` alone reads a managed key `SecureString` into a container's environment.
923
940
 
924
941
  ```typescript sim-ssm-secure-string-managed-key
925
942
  /**
@@ -956,18 +973,14 @@ const role = await simAws.iam().createRole(
956
973
  }),
957
974
  );
958
975
 
959
- // The parameter, and no KMS permission at all.
976
+ // The parameter, and nothing on KMS.
960
977
  await simAws.iam().putRolePolicy(
961
978
  new PutRolePolicyCommand({
962
979
  RoleName: "ConfigReader",
963
980
  PolicyName: "ReadDbPassword",
964
981
  PolicyDocument: JSON.stringify({
965
982
  Version: "2012-10-17",
966
- Statement: {
967
- Effect: "Allow",
968
- Action: "ssm:GetParameter",
969
- Resource: "*",
970
- },
983
+ Statement: { Effect: "Allow", Action: "ssm:GetParameter", Resource: "*" },
971
984
  }),
972
985
  }),
973
986
  );
@@ -1031,6 +1044,10 @@ Current documented limitations:
1031
1044
  without complaint.
1032
1045
  - `KeyId` on a `String` or `StringList` parameter is refused, since nothing would encrypt a value
1033
1046
  stored in the clear.
1047
+ - Reading and writing a `SecureString` under the `aws/ssm` managed key ask the caller for no KMS
1048
+ permission, which follows that key's policy and the Parameter Store setup page. AWS's SecureString
1049
+ encryption page documents `kms:Encrypt` and `kms:Decrypt` for either kind of key, and the two
1050
+ disagree. A parameter under a customer managed key does need them.
1034
1051
  - `DataType` other than `text` is refused. Real Parameter Store validates an `aws:ec2:image` value
1035
1052
  against EC2, which this simulation cannot do.
1036
1053
  - Filters are refused outright. `GetParametersByPath` refuses `ParameterFilters`, and
@@ -1181,8 +1181,10 @@ created. A location this simulation holds no object for drops that one state mac
1181
1181
  where it looked.
1182
1182
 
1183
1183
  `StateMachineName`, `RoleArn`, `StateMachineType` and `Tags` are carried across. A state machine the
1184
- template does not name is named after the stack and the logical ID (`enrolment-Workflow`), the way
1185
- CloudFormation names one. `Ref` answers with the ARN and `Fn::GetAtt` answers `Arn` and `Name`. Real
1184
+ template does not name is named after the stack, the logical ID and a tail derived from both
1185
+ (`enrolment-Workflow-8d267c9d4ae1`), the way CloudFormation names one, and
1186
+ [the CloudFormation docs](https://yulinsim.dev/services/cloudformation/#names-cloudformation-generates "Names CloudFormation generates")
1187
+ cover the tail. `Ref` answers with the ARN and `Fn::GetAtt` answers `Arn` and `Name`. Real
1186
1188
  CloudFormation publishes this one that way round too. Deleting the stack deletes the state machine.
1187
1189
 
1188
1190
  A definition holding a state type this simulator does not run drops that one state machine. The
@@ -1250,6 +1252,13 @@ rooted at `$`, since the context object is read rather than written.
1250
1252
  `States.UUID` and `States.MathRandom` are left out on purpose. Both answer differently on every call.
1251
1253
  A test asserting on the output of a state machine that used one could only assert on its shape.
1252
1254
 
1255
+ ## Passing the execution role
1256
+
1257
+ A state machine keeps the `roleArn` it is created with and runs every execution as it, so
1258
+ `CreateStateMachine` authorizes `iam:PassRole` against that Role as well as `states:CreateStateMachine`
1259
+ against the state machine. A caller allowed to create state machines and refused `iam:PassRole` fails
1260
+ the creation. See [passing a Role to a service](https://yulinsim.dev/services/iam/#passing-a-role-to-a-service) in the IAM docs.
1261
+
1253
1262
  ## Where this differs from real Step Functions
1254
1263
 
1255
1264
  - **`StartExecution` runs the execution as far as it goes before it answers.** Real Step Functions
@@ -1060,9 +1060,11 @@ A web ACL nothing coherent could be deployed from still fails the stack. A `Scop
1060
1060
  `REGIONAL` and `CLOUDFRONT`, a `Rules` written as an object, a `Name` written as a number. The
1061
1061
  failure names the logical ID.
1062
1062
 
1063
- `Name` is optional on all three named types. An unnamed resource is named after the stack and the
1064
- logical ID, as real CloudFormation names one, so `orders-acl` above would have deployed as
1065
- `orders-OrdersAcl`.
1063
+ `Name` is optional on all three named types. An unnamed resource is named after the stack, the
1064
+ logical ID and a tail derived from both, as real CloudFormation names one. The web ACL above sets a
1065
+ `Name` and keeps `orders-acl`. With that property left out it would have deployed as
1066
+ `orders-OrdersAcl-5615bd3c857f`, and [the CloudFormation docs](https://yulinsim.dev/services/cloudformation/#names-cloudformation-generates "Names CloudFormation generates")
1067
+ cover where the tail comes from.
1066
1068
 
1067
1069
  ### Putting a deployed web ACL in front of something
1068
1070
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kensio/yulin",
3
- "version": "1.20.16",
3
+ "version": "1.21.0",
4
4
  "description": "AWS system behaviour simulation for isolated unit testing",
5
5
  "repository": "https://github.com/KensioSoftware/yulin",
6
6
  "homepage": "https://yulinsim.dev/",
@@ -1,25 +0,0 @@
1
- import type { BackgroundScheduler } from "../../../../util/background/background.js";
2
- import type { SimStatesExecutionStore } from "../../execution/sim-states-execution-store.js";
3
- import type { SimStateMachineStore } from "../../machine/sim-state-machine-store.js";
4
- import type { SimDeleteStateMachineCommand, SimDeleteStateMachineCommandOutput, SimUpdateStateMachineCommand, SimUpdateStateMachineCommandOutput } from "./machine.command.js";
5
- interface SimStateMachineWritesProperties {
6
- readonly stateMachines: SimStateMachineStore;
7
- readonly executions: SimStatesExecutionStore;
8
- readonly background: BackgroundScheduler;
9
- }
10
- /**
11
- * The commands that change and delete state machines.
12
- */
13
- export declare class SimStateMachineWrites {
14
- #private;
15
- constructor(properties: SimStateMachineWritesProperties);
16
- /**
17
- * Change a state machine's definition or role.
18
- */
19
- update(command: SimUpdateStateMachineCommand): SimUpdateStateMachineCommandOutput;
20
- /**
21
- * Delete a state machine and forget its executions.
22
- */
23
- delete(command: SimDeleteStateMachineCommand): SimDeleteStateMachineCommandOutput;
24
- }
25
- export {};