@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
@@ -1,5 +1,6 @@
1
1
  import type { CommandHandler } from "../../../../command/command-handler.js";
2
2
  import type { SimAwsCaller, SimAwsDefaultCaller } from "../../../aws/caller/sim-aws-caller.js";
3
+ import type { SimAwsAmbientCaller } from "../../../aws/caller/sim-aws-ambient-caller.js";
3
4
  import type { SimAwsAccountId } from "../../../aws/sim-aws-account.js";
4
5
  import type { SimIamAccountResolver } from "../../../iam/registry/sim-iam-account-resolver.js";
5
6
  import type { SimGetCallerIdentityCommand, SimGetCallerIdentityCommandOutput } from "./get-caller-identity.command.js";
@@ -10,6 +11,10 @@ interface GetCallerIdentityCommandHandlerProperties {
10
11
  * The caller this simulation attributes a request naming none to.
11
12
  */
12
13
  readonly defaultCaller?: SimAwsDefaultCaller | undefined;
14
+ /**
15
+ * Where a request naming no caller looks before the default.
16
+ */
17
+ readonly ambientCaller?: SimAwsAmbientCaller | undefined;
13
18
  }
14
19
  /**
15
20
  * Simulated STS GetCallerIdentity handler.
@@ -21,6 +21,7 @@ export class GetCallerIdentityCommandHandler {
21
21
  this.iamResolver = properties.iamResolver;
22
22
  this.callerResolver = new SimAwsCallerResolver({
23
23
  defaultCaller: properties.defaultCaller,
24
+ ambientCaller: properties.ambientCaller,
24
25
  });
25
26
  }
26
27
  /**
@@ -4,6 +4,7 @@ import type { SimAssumeRoleCommand, SimAssumeRoleCommandOutput } from "./command
4
4
  import type { SimGetCallerIdentityCommand, SimGetCallerIdentityCommandOutput } from "./command/get-caller-identity/get-caller-identity.command.js";
5
5
  import type { SimAwsAccountRegionScope } from "../aws/sim-aws-account-region-scope.js";
6
6
  import type { SimAwsCaller, SimAwsDefaultCaller } from "../aws/caller/sim-aws-caller.js";
7
+ import type { SimAwsAmbientCaller } from "../aws/caller/sim-aws-ambient-caller.js";
7
8
  import type { SimSdkCommandRouter } from "../../sdk/index.js";
8
9
  interface SimStsProperties {
9
10
  readonly accountRegionScope?: SimAwsAccountRegionScope;
@@ -16,6 +17,13 @@ interface SimStsProperties {
16
17
  * the identity GetCallerIdentity then reports.
17
18
  */
18
19
  readonly defaultCaller?: SimAwsDefaultCaller | undefined;
20
+ /**
21
+ * Where a request naming no caller looks before the default.
22
+ *
23
+ * A run-as block decides who the requests inside it are, so an unattributed
24
+ * GetCallerIdentity in one reports the caller that block named.
25
+ */
26
+ readonly ambientCaller?: SimAwsAmbientCaller | undefined;
19
27
  }
20
28
  /**
21
29
  * Simulated AWS Security Token Service.
@@ -29,6 +37,7 @@ export declare class SimSts {
29
37
  private readonly background;
30
38
  private readonly iamResolver;
31
39
  private readonly defaultCaller?;
40
+ private readonly ambientCaller?;
32
41
  private readonly sdkRouter;
33
42
  constructor(properties?: SimStsProperties);
34
43
  /**
@@ -16,6 +16,7 @@ export class SimSts {
16
16
  background;
17
17
  iamResolver;
18
18
  defaultCaller;
19
+ ambientCaller;
19
20
  sdkRouter = new SimStsSdkCommandRouter(this);
20
21
  constructor(properties = {}) {
21
22
  this.accountRegionScope =
@@ -23,6 +24,7 @@ export class SimSts {
23
24
  this.iamResolver = properties.iamResolver ?? new SimIamRegistry();
24
25
  this.background = properties.background ?? new BackgroundTasks();
25
26
  this.defaultCaller = properties.defaultCaller;
27
+ this.ambientCaller = properties.ambientCaller;
26
28
  }
27
29
  /**
28
30
  * Handle an AssumeRoleCommand from the SDK.
@@ -34,6 +36,7 @@ export class SimSts {
34
36
  iamResolver: this.iamResolver,
35
37
  background: this.background,
36
38
  defaultCaller: this.defaultCaller,
39
+ ambientCaller: this.ambientCaller,
37
40
  });
38
41
  return await handler.handle(command, options);
39
42
  }
@@ -45,6 +48,7 @@ export class SimSts {
45
48
  sourceAccountId: this.accountRegionScope.accountId,
46
49
  iamResolver: this.iamResolver,
47
50
  defaultCaller: this.defaultCaller,
51
+ ambientCaller: this.ambientCaller,
48
52
  });
49
53
  return await handler.handle(command, options);
50
54
  }
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Memoization cache holding a bounded number of values.
3
+ *
4
+ * The bound stops a long-running process accumulating entries without limit.
5
+ * Which values survive it matters little. A caller gets the same value back
6
+ * either way, and an evicted one costs another call to the factory that made
7
+ * it.
8
+ *
9
+ * Eviction is by insertion order, and a value read again stays where it is. A
10
+ * memo worth bounding is one whose reads are hot, and reordering the cache on
11
+ * every read costs more than the occasional recomputation it saves.
12
+ *
13
+ * A cached value has to be something (undefined stands for a key the cache is
14
+ * missing). A hit then costs one map lookup.
15
+ */
16
+ export declare class BoundedMemo<T extends NonNullable<unknown>> {
17
+ private readonly limit;
18
+ private readonly cache;
19
+ /**
20
+ * Hold up to `limit` values, dropping the oldest to make room past that.
21
+ */
22
+ constructor(limit: number);
23
+ /**
24
+ * Returns the cached value for the given key, or creates and caches it using
25
+ * `factory`.
26
+ */
27
+ getOrCreate<V extends T>(key: PropertyKey, factory: () => V): V;
28
+ /**
29
+ * Returns whether the cache is currently holding `key`.
30
+ */
31
+ has(key: PropertyKey): boolean;
32
+ /**
33
+ * Drop what was cached first, until the cache is back within its limit.
34
+ */
35
+ private evictOverflow;
36
+ }
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Memoization cache holding a bounded number of values.
3
+ *
4
+ * The bound stops a long-running process accumulating entries without limit.
5
+ * Which values survive it matters little. A caller gets the same value back
6
+ * either way, and an evicted one costs another call to the factory that made
7
+ * it.
8
+ *
9
+ * Eviction is by insertion order, and a value read again stays where it is. A
10
+ * memo worth bounding is one whose reads are hot, and reordering the cache on
11
+ * every read costs more than the occasional recomputation it saves.
12
+ *
13
+ * A cached value has to be something (undefined stands for a key the cache is
14
+ * missing). A hit then costs one map lookup.
15
+ */
16
+ export class BoundedMemo {
17
+ limit;
18
+ cache = new Map();
19
+ /**
20
+ * Hold up to `limit` values, dropping the oldest to make room past that.
21
+ */
22
+ constructor(limit) {
23
+ this.limit = limit;
24
+ }
25
+ /**
26
+ * Returns the cached value for the given key, or creates and caches it using
27
+ * `factory`.
28
+ */
29
+ getOrCreate(key, factory) {
30
+ const cached = this.cache.get(key);
31
+ if (cached !== undefined) {
32
+ return cached;
33
+ }
34
+ const value = factory();
35
+ this.cache.set(key, value);
36
+ this.evictOverflow();
37
+ return value;
38
+ }
39
+ /**
40
+ * Returns whether the cache is currently holding `key`.
41
+ */
42
+ has(key) {
43
+ return this.cache.has(key);
44
+ }
45
+ /**
46
+ * Drop what was cached first, until the cache is back within its limit.
47
+ */
48
+ evictOverflow() {
49
+ while (this.cache.size > this.limit) {
50
+ const oldest = this.cache.keys().next();
51
+ /* v8 ignore next 3 -- a cache over its limit has a first key */
52
+ if (oldest.done === true) {
53
+ return;
54
+ }
55
+ this.cache.delete(oldest.value);
56
+ }
57
+ }
58
+ }
@@ -85,7 +85,9 @@ none. See
85
85
  [Name the caller a simulation uses by default](https://yulinsim.dev/services/iam/#name-the-caller-a-simulation-uses-by-default).
86
86
 
87
87
  `runAs` runs a function with an ambient simulated caller, such as an IAM Role. Commands sent during
88
- the run are attributed to that caller, with no changes to the client or the code under test:
88
+ the run are attributed to that caller, with no changes to the client or the code under test. A
89
+ direct sim service call inside the run is attributed to it too, covered in
90
+ [Run a block of calls as one caller](https://yulinsim.dev/services/iam/#run-a-block-of-calls-as-one-caller):
89
91
 
90
92
  ```typescript sim-sdk-run-as
91
93
  /**
@@ -383,10 +383,15 @@ its declared result.
383
383
  | Binary | `md5`, `sha1`, `sha256`, `sha512`, `xxhash64`, `murmur3`, `crc32`, `to_hex`, `from_hex`, `to_base64`, `from_base64`, `to_utf8`, `from_utf8` |
384
384
  | URL | `url_extract_host`, `url_extract_path`, `url_extract_protocol`, `url_extract_port`, `url_extract_query`, `url_extract_fragment`, `url_extract_parameter`, `url_decode`, `url_encode` |
385
385
  | Approximate | `approx_distinct`, `approx_percentile` |
386
+ | Comparison | `least`, `greatest` |
386
387
 
387
388
  `substr` and `format` are SQLite's own. Both count from one and take the same `%s` and `%d` a
388
389
  statement writes, so shadowing either would replace something that works.
389
390
 
391
+ `least` and `greatest` take two arguments or more. Numbers order numerically and text orders by its
392
+ code units, matching SQLite's own `min` and `max` in their wider forms. Trino refuses a call mixing
393
+ the two types and this answers one, ordering everything as text. A `varbinary` argument raises.
394
+
390
395
  The hashing functions answer with bytes and `to_hex` writes those bytes in the upper case Trino
391
396
  writes them in. Node carries every digest here apart from xxHash64 and MurmurHash3, and both of
392
397
  those are written out by hand against their published vectors. Trino refuses text where a
@@ -404,7 +409,8 @@ instant the query started, which is what the execution records.
404
409
 
405
410
  A function that cannot answer faithfully raises rather than guessing, and the query falls back.
406
411
  `date_add` with a unit Trino does not name, `slice` starting at zero, `array_join` over an array of
407
- objects, and `regexp_extract` naming a capture group the pattern has not got all land there. A null
412
+ objects, `least` over a `varbinary`, and `regexp_extract` naming a capture group the pattern has not
413
+ got all land there. A null
408
414
  answer would be a wrong answer wearing the shape of a right one.
409
415
 
410
416
  A function answers null where any argument is null, the way Trino's do. An argument left out takes
@@ -1086,6 +1086,99 @@ await stack.waitForDeployComplete();
1086
1086
  Resources that reference another resource with `Ref` are also created after the referenced resource
1087
1087
  is ready.
1088
1088
 
1089
+ ### Deploying independent Resources in either order
1090
+
1091
+ Resources with no dependency between them are created together, and the template's own order
1092
+ decides which one starts first. CloudFormation is free to pick either. A Stack that deploys only
1093
+ because of the order its template happens to be written in passes here and then fails in the
1094
+ account.
1095
+
1096
+ The pair that costs a real deployment is an `AWS::IAM::Policy` widening the deploy Role and a
1097
+ Resource in the service that widening allows. Declare the policy first and the deployment succeeds.
1098
+ Declare the Topic first and it fails on `sns:CreateTopic`. Both templates are the same template.
1099
+
1100
+ `resourceOrder: "reversed"` starts each dependency batch from its last Resource.
1101
+
1102
+ ```typescript sim-cloudformation-resource-order
1103
+ /**
1104
+ * Deploying a template in the order CloudFormation could have picked instead.
1105
+ */
1106
+
1107
+ import { SimAws } from "@kensio/yulin";
1108
+
1109
+ const simAws = new SimAws({ defaultAccountId: "123456789012" });
1110
+
1111
+ // The Role a real deployment already runs as, allowed to attach policies and
1112
+ // nothing else.
1113
+ await simAws.iam().createRole({
1114
+ input: {
1115
+ RoleName: "cdk-deploy-role",
1116
+ AssumeRolePolicyDocument: JSON.stringify({
1117
+ Version: "2012-10-17",
1118
+ Statement: {
1119
+ Effect: "Allow",
1120
+ Action: "sts:AssumeRole",
1121
+ Principal: { Service: "cloudformation.amazonaws.com" },
1122
+ },
1123
+ }),
1124
+ },
1125
+ });
1126
+
1127
+ await simAws.iam().putRolePolicy({
1128
+ input: {
1129
+ RoleName: "cdk-deploy-role",
1130
+ PolicyName: "deploy",
1131
+ PolicyDocument: JSON.stringify({
1132
+ Version: "2012-10-17",
1133
+ Statement: { Effect: "Allow", Action: "iam:*", Resource: "*" },
1134
+ }),
1135
+ },
1136
+ });
1137
+
1138
+ const stack = await simAws.cloudFormation().deployTemplate({
1139
+ stackName: "alerts-stack",
1140
+ template: {
1141
+ Resources: {
1142
+ DeployerSns: {
1143
+ Type: "AWS::IAM::Policy",
1144
+ Properties: {
1145
+ PolicyName: "DeployerSns",
1146
+ Roles: ["cdk-deploy-role"],
1147
+ PolicyDocument: {
1148
+ Version: "2012-10-17",
1149
+ Statement: { Effect: "Allow", Action: "sns:*", Resource: "*" },
1150
+ },
1151
+ },
1152
+ },
1153
+ Alerts: {
1154
+ Type: "AWS::SNS::Topic",
1155
+ DependsOn: "DeployerSns",
1156
+ Properties: { TopicName: "alerts" },
1157
+ },
1158
+ },
1159
+ },
1160
+ caller: {
1161
+ kind: "arn",
1162
+ arn: "arn:aws:iam::123456789012:role/cdk-deploy-role",
1163
+ },
1164
+ resourceOrder: "reversed",
1165
+ });
1166
+
1167
+ console.log(stack.getResource("Alerts")?.status); // "CREATE_COMPLETE"
1168
+ ```
1169
+
1170
+ Declared dependencies hold under either order. A Resource waits for everything its `Ref` and
1171
+ `Fn::GetAtt` expressions reach, and for everything its `DependsOn` names. Reversing a batch moves
1172
+ only the Resources CloudFormation was free to create either way round (the `DependsOn` above is what
1173
+ keeps the Topic behind the policy).
1174
+
1175
+ Reversing one order gives the other one. Run a deployment both ways to cover the pair, since the
1176
+ template's own order is one of the two and `"reversed"` is the other. The default is `"template"`,
1177
+ which every deployment that asks for nothing gets.
1178
+
1179
+ `deployTemplateFile(...)` takes the option too. `deployCdkOut(...)` takes one order for every Stack
1180
+ in the assembly, and a Stack named in `stackOptions` carries its own.
1181
+
1089
1182
  ## Deploying synthesized CDK templates
1090
1183
 
1091
1184
  Use `deployTemplateFile(...)` to deploy a template file, including the JSON templates CDK synthesis
@@ -1427,6 +1520,40 @@ The named principal has to be allowed what the template asks for. IAM allows the
1427
1520
  default and allows a role only what its policies say. A role with no S3 permission leaves the bucket
1428
1521
  above `CREATE_FAILED`, with the role's ARN in the message.
1429
1522
 
1523
+ A project that scopes its own deploy permissions has the policy document already.
1524
+ `makeDeployRole(...)` turns one into a caller in a single call, creating the role with the trust
1525
+ CloudFormation needs and returning its ARN:
1526
+
1527
+ ```typescript sim-cloudformation-make-deploy-role
1528
+ /**
1529
+ * Deploying a cloud assembly as a Role made from a policy document.
1530
+ */
1531
+
1532
+ import { SimAws } from "@kensio/yulin";
1533
+
1534
+ const simAws = new SimAws({
1535
+ defaultAccountId: "123456789012",
1536
+ defaultRegionName: "eu-west-2",
1537
+ });
1538
+
1539
+ const deployer = await simAws.iam().makeDeployRole({
1540
+ roleName: "cdk-exec",
1541
+ policyDocument: {
1542
+ Version: "2012-10-17",
1543
+ Statement: { Effect: "Allow", Action: "s3:*", Resource: "*" },
1544
+ },
1545
+ });
1546
+
1547
+ const stacks = await simAws
1548
+ .cloudFormation()
1549
+ .deployCdkOut({ directoryPath: "cdk.out", caller: deployer });
1550
+
1551
+ console.log(stacks.size);
1552
+ ```
1553
+
1554
+ See [simulated IAM](https://yulinsim.dev/services/iam/ "Simulated IAM usage docs") for the documents
1555
+ it takes.
1556
+
1430
1557
  ### One caller for an assembly, and one per Stack
1431
1558
 
1432
1559
  `deployCdkOut(...)` takes a caller for every Stack in the assembly. A Stack deployed by a different
@@ -1864,9 +1991,14 @@ CloudFront hostname adapted to the local server.
1864
1991
 
1865
1992
  ## CloudFront Function bindings
1866
1993
 
1867
- When a CDK template contains a CloudFront Function, you can bind the template resource to a real
1868
- local handler function. This lets local integration tests execute the same handler function that
1869
- will run at the CloudFront edge.
1994
+ A `bindings` entry backs an executable Resource of the template with a real in-process handler.
1995
+ `AWS::CloudFront::Function` and `AWS::Lambda::Function` both take one, and a binding is what to
1996
+ reach for first. The bound handler stops on a breakpoint and can close over the test's own state.
1997
+ Deploy without one where the test is about the code the template carries. That is the artefact a
1998
+ deployment runs.
1999
+
2000
+ Binding a CloudFront Function a CDK template declares lets a local integration test run the same
2001
+ handler function that will run at the CloudFront edge.
1870
2002
 
1871
2003
  ```typescript sim-cloudformation-cloudfront-function-binding
1872
2004
  /**
@@ -1942,9 +2074,8 @@ to provide an executable local function directly.
1942
2074
  ## Lambda function bindings
1943
2075
 
1944
2076
  `AWS::Lambda::Function` resources support the same bindings. The deployed function is backed by your
1945
- real in-process handler. Tests can close over test state and step through the handler in a debugger,
1946
- while the stack still wires roles, grants and references as the template declares. A bound function
1947
- may omit template `Code` and `Handler` entirely.
2077
+ real in-process handler, while the stack still wires roles, grants and references as the template
2078
+ declares. A bound function may omit template `Code` and `Handler` entirely.
1948
2079
 
1949
2080
  ```typescript sim-cloudformation-lambda-binding
1950
2081
  /**
@@ -1989,9 +2120,10 @@ console.log(new TextDecoder().decode(output.Payload));
1989
2120
 
1990
2121
  Bindings can target the CloudFormation logical ID (or the CDK construct ID recovered from
1991
2122
  synthesized metadata), the function name, or the function ARN. Bound handlers still run with the
1992
- function's execution Role as the ambient simulated caller, so downstream calls made through
1993
- `SimSdk`-intercepted clients are authorized by simulated IAM as on real Lambda. Functions without
1994
- a matching binding keep their template code, running in the simulated vm runtime.
2123
+ function's execution Role as the ambient simulated caller. Simulated IAM authorizes their downstream
2124
+ calls as on real Lambda, whether those go through a `SimSdk`-intercepted client or straight to a
2125
+ simulated service. Functions without a matching binding keep their template code, running in the
2126
+ simulated vm runtime.
1995
2127
 
1996
2128
  ### Naming the binding type
1997
2129
 
@@ -2838,6 +2970,59 @@ one that reaches an Output in these docs.
2838
2970
  const nameServers = stack.outputs.get("HostedZoneNameServers")?.value;
2839
2971
  ```
2840
2972
 
2973
+ ## Names CloudFormation generates
2974
+
2975
+ A Resource whose template leaves its name out is named `<stack name>-<logical ID>-<tail>`, as real
2976
+ CloudFormation names one. The tail is twelve characters derived from the other two parts, standing
2977
+ in for the twelve random characters an account produces. The same template deployed under the same
2978
+ stack name generates the same name again, and a test reads that name back from a `Ref` or an
2979
+ attribute.
2980
+
2981
+ ```typescript sim-cloudformation-generated-resource-name
2982
+ /**
2983
+ * Reading the name CloudFormation generated for a Resource the template does
2984
+ * not name.
2985
+ */
2986
+
2987
+ import { SimAws } from "@kensio/yulin";
2988
+
2989
+ const simAws = new SimAws();
2990
+
2991
+ const stack = await simAws.cloudFormation().deployTemplate({
2992
+ stackName: "orders-stack",
2993
+ template: {
2994
+ Resources: {
2995
+ OrdersQueue: { Type: "AWS::SQS::Queue" },
2996
+ },
2997
+ Outputs: {
2998
+ QueueName: {
2999
+ Value: { "Fn::GetAtt": ["OrdersQueue", "QueueName"] },
3000
+ },
3001
+ },
3002
+ },
3003
+ });
3004
+
3005
+ await stack.waitForDeployComplete();
3006
+
3007
+ const queueName = stack.output("QueueName");
3008
+
3009
+ console.log(queueName); // "orders-stack-OrdersQueue-1dca4dbe253b"
3010
+ ```
3011
+
3012
+ Each service caps how long a name may be. Where the stack name and the logical ID are too long
3013
+ together, thirteen characters of the limit are kept for the tail and its hyphen, and what is left is
3014
+ shared between the two parts either side of one more hyphen. The stack name rounds up, and each part
3015
+ takes the characters the other leaves. Where a service allows 64 characters, a long stack name keeps
3016
+ 25 of them and a long logical ID keeps 25.
3017
+
3018
+ The trimmed stack name is what an IAM policy scoped by name prefix matches. A stack called
3019
+ `ChineseboostAnalyticsStack` deploying an unnamed `AWS::Events::Rule` puts the rule under
3020
+ `ChineseboostAnalyticsStac-`. A deploy Role allowed `events:PutRule` on
3021
+ `ChineseboostAnalyticsStack-*` is refused here, as it is in an account.
3022
+
3023
+ AWS documents none of the trimming, and the rule here is inferred from names real CloudFormation
3024
+ produced.
3025
+
2841
3026
  ## Inspecting stacks and resources
2842
3027
 
2843
3028
  After deployment, you can inspect the returned stack and its resources.
@@ -3332,8 +3517,9 @@ The resource types it creates are:
3332
3517
  `AWS::ApiGatewayV2::Stage`
3333
3518
  - `AWS::CertificateManager::Certificate`
3334
3519
  - `AWS::CloudFormation::WaitConditionHandle`
3335
- - `AWS::CloudFront::Distribution`, `AWS::CloudFront::Function` and
3336
- `AWS::CloudFront::ResponseHeadersPolicy`
3520
+ - `AWS::CloudFront::Distribution`, `AWS::CloudFront::Function`,
3521
+ `AWS::CloudFront::ResponseHeadersPolicy`, `AWS::CloudFront::CachePolicy` and
3522
+ `AWS::CloudFront::OriginRequestPolicy`
3337
3523
  - `AWS::CloudWatch::Alarm`
3338
3524
  - `AWS::Cognito::UserPool`, `AWS::Cognito::UserPoolClient` and
3339
3525
  `AWS::Cognito::UserPoolGroup`