@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
@@ -0,0 +1,54 @@
1
+ import { isRecord } from "../../../../util/type-guard/record.js";
2
+ /**
3
+ * One `<name>Config` section of a cache policy or an origin request policy, as
4
+ * the behaviour it names and the names that behaviour applies to.
5
+ *
6
+ * The two policy kinds write these sections the same way, down to the field
7
+ * names, and differ only in the behaviours each section offers. An absent
8
+ * section is CloudFront's `none` with an empty list, and so is a section that
9
+ * named no behaviour of its own. A behaviour outside the set CloudFront offers
10
+ * for the section is refused.
11
+ */
12
+ export function simCfnCfPolicySection(parameters, spec, refuse) {
13
+ // oxlint-disable-next-line security/detect-object-injection
14
+ const section = parameters[spec.section];
15
+ if (section === undefined) {
16
+ return { behavior: spec.defaultBehavior, items: [] };
17
+ }
18
+ if (!isRecord(section)) {
19
+ return refuse(`${spec.section} must be an object`);
20
+ }
21
+ return {
22
+ // oxlint-disable-next-line security/detect-object-injection
23
+ behavior: behaviorNamed(section[spec.behaviorField], spec, refuse),
24
+ items: namesListed(section, spec, refuse),
25
+ };
26
+ }
27
+ /**
28
+ * The behaviour a section named, refused where CloudFront does not offer it
29
+ * for that section.
30
+ */
31
+ function behaviorNamed(named, spec, refuse) {
32
+ if (named === undefined) {
33
+ return spec.defaultBehavior;
34
+ }
35
+ const offered = spec.behaviors;
36
+ return typeof named === "string" && offered.includes(named)
37
+ ? named
38
+ : refuse(`${spec.section} ${spec.behaviorField} must be one of ${offered.join(", ")}`);
39
+ }
40
+ /**
41
+ * The names a section lists, which a `whitelist` applies to and an `allExcept`
42
+ * applies to everything but.
43
+ */
44
+ function namesListed(section, spec, refuse) {
45
+ // oxlint-disable-next-line security/detect-object-injection
46
+ const listed = section[spec.itemsField];
47
+ if (listed === undefined) {
48
+ return [];
49
+ }
50
+ return Array.isArray(listed) &&
51
+ listed.every((name) => typeof name === "string")
52
+ ? listed
53
+ : refuse(`${spec.section} ${spec.itemsField} must be a list of strings`);
54
+ }
@@ -9,6 +9,8 @@ export declare class SimCloudFrontCloudFormationResourceFactory implements SimCf
9
9
  private readonly functionCreator;
10
10
  private readonly distroDeleter;
11
11
  private readonly responseHeadersPolicyCreator;
12
+ private readonly cachePolicyCreator;
13
+ private readonly originRequestPolicyCreator;
12
14
  private readonly originAccessControlCreator;
13
15
  private readonly keyValueStoreCreator;
14
16
  constructor(cloudFront: SimCloudFront);
@@ -3,6 +3,8 @@ import { SimCfnCfDistroCreator } from "./distro/sim-cfn-cf-distro-creator.js";
3
3
  import { SimCfnCffCreator } from "./cff/sim-cfn-cff-creator.js";
4
4
  import { SimCfnCfDistroDeleter } from "./distro/sim-cfn-cf-distro-deleter.js";
5
5
  import { SimCfnCfResponseHeadersPolicyCreator } from "./response-headers-policy/sim-cfn-cf-rh-policy-creator.js";
6
+ import { SimCfnCfCachePolicyCreator } from "./cache-policy/sim-cfn-cf-cache-policy-creator.js";
7
+ import { SimCfnCfOriginRequestPolicyCreator } from "./origin-request-policy/sim-cfn-cf-orp-creator.js";
6
8
  import { SimCfnCfOriginAccessControlCreator } from "./origin-access-control/sim-cfn-cf-oac-creator.js";
7
9
  import { SimCfnCfKeyValueStoreCreator } from "./key-value-store/sim-cfn-cf-kvs-creator.js";
8
10
  /**
@@ -13,6 +15,8 @@ export class SimCloudFrontCloudFormationResourceFactory {
13
15
  functionCreator;
14
16
  distroDeleter;
15
17
  responseHeadersPolicyCreator;
18
+ cachePolicyCreator;
19
+ originRequestPolicyCreator;
16
20
  originAccessControlCreator;
17
21
  keyValueStoreCreator;
18
22
  constructor(cloudFront) {
@@ -21,6 +25,10 @@ export class SimCloudFrontCloudFormationResourceFactory {
21
25
  this.distroDeleter = new SimCfnCfDistroDeleter({ cloudFront });
22
26
  this.responseHeadersPolicyCreator =
23
27
  new SimCfnCfResponseHeadersPolicyCreator({ cloudFront });
28
+ this.cachePolicyCreator = new SimCfnCfCachePolicyCreator({ cloudFront });
29
+ this.originRequestPolicyCreator = new SimCfnCfOriginRequestPolicyCreator({
30
+ cloudFront,
31
+ });
24
32
  this.originAccessControlCreator = new SimCfnCfOriginAccessControlCreator({
25
33
  cloudFront,
26
34
  });
@@ -43,6 +51,12 @@ export class SimCloudFrontCloudFormationResourceFactory {
43
51
  case "ResponseHeadersPolicy": {
44
52
  return this.responseHeadersPolicyCreator.create(resource, properties);
45
53
  }
54
+ case "CachePolicy": {
55
+ return this.cachePolicyCreator.create(resource, properties);
56
+ }
57
+ case "OriginRequestPolicy": {
58
+ return this.originRequestPolicyCreator.create(resource, properties);
59
+ }
46
60
  case "OriginAccessControl": {
47
61
  return this.originAccessControlCreator.create(resource, properties);
48
62
  }
@@ -73,6 +87,14 @@ export class SimCloudFrontCloudFormationResourceFactory {
73
87
  this.responseHeadersPolicyCreator.delete(resource);
74
88
  return;
75
89
  }
90
+ case "CachePolicy": {
91
+ this.cachePolicyCreator.delete(resource);
92
+ return;
93
+ }
94
+ case "OriginRequestPolicy": {
95
+ this.originRequestPolicyCreator.delete(resource);
96
+ return;
97
+ }
76
98
  case "OriginAccessControl": {
77
99
  this.originAccessControlCreator.delete(resource);
78
100
  return;
@@ -144,6 +144,8 @@ export interface SimCloudFrontDefaultCacheBehaviorConfig {
144
144
  readonly FunctionAssociations?: SimCloudFrontFunctionAssociations | undefined;
145
145
  readonly LambdaFunctionAssociations?: SimCloudFrontLambdaFunctionAssociations | undefined;
146
146
  readonly ResponseHeadersPolicyId?: string | undefined;
147
+ readonly CachePolicyId?: string | undefined;
148
+ readonly OriginRequestPolicyId?: string | undefined;
147
149
  }
148
150
  /**
149
151
  * Minimal structural sim CloudFront cache behavior config.
@@ -6,7 +6,9 @@ import type { SimAwsAccountId } from "../../../aws/sim-aws-account.js";
6
6
  import type { SimCloudFrontS3OriginResolver } from "../../origin/s3/sim-cloudfront-s3-origin.js";
7
7
  import type { SimCfCustomOriginDispatcher } from "../../origin/custom/sim-cf-custom-origin-dispatcher.js";
8
8
  import type { SimCloudFrontOriginAccessControlRegistry } from "../../origin-access-control/sim-cf-origin-access-control-registry.js";
9
+ import type { SimCloudFrontOriginRequestPolicyRegistry } from "../../origin-request-policy/sim-cf-origin-request-policy-registry.js";
9
10
  import type { SimCloudFrontResponseHeadersPolicyRegistry } from "../../response-headers-policy/sim-cf-response-headers-policy-registry.js";
11
+ import type { SimCloudFrontCachePolicyRegistry } from "../../cache-policy/sim-cf-cache-policy-registry.js";
10
12
  import type { SimCfWebAclResolver } from "../../web-acl/sim-cf-web-acl.js";
11
13
  import type { BackgroundScheduler } from "../../../../util/background/background.js";
12
14
  import { type SimIamInterServiceAuthZ } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
@@ -21,6 +23,8 @@ interface CreateDistributionCommandHandlerProperties {
21
23
  readonly customOriginDispatcher?: SimCfCustomOriginDispatcher | undefined;
22
24
  readonly originAccessControls: SimCloudFrontOriginAccessControlRegistry;
23
25
  readonly responseHeadersPolicies: SimCloudFrontResponseHeadersPolicyRegistry;
26
+ readonly cachePolicies: SimCloudFrontCachePolicyRegistry;
27
+ readonly originRequestPolicies: SimCloudFrontOriginRequestPolicyRegistry;
24
28
  readonly webAclResolver?: SimCfWebAclResolver | undefined;
25
29
  readonly iam?: SimIamInterServiceAuthZ;
26
30
  readonly acmRegistry?: SimAcmRegistry | undefined;
@@ -1,6 +1,6 @@
1
1
  import { assertDefined } from "../../../../util/type-guard/defined.js";
2
2
  import { SimCloudFrontFunction, } from "../../cff/sim-cloudfront-function.js";
3
- import { CffUint8ArrayFunctionCodeExtractor } from "../../cff/function-code-input/cff-function-code-input.js";
3
+ import { cffFunctionCodeSource, CffUint8ArrayFunctionCodeExtractor, } from "../../cff/function-code-input/cff-function-code-input.js";
4
4
  import { cffCloudFrontModule } from "../../cff/kvs/cff-cloudfront-module.js";
5
5
  import { BackgroundTasks, } from "../../../../util/background/background.js";
6
6
  import { SimIamAllowAllAuth, } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
@@ -50,6 +50,12 @@ export class CreateFunctionCommandHandler {
50
50
  accountId: this.accountId,
51
51
  handlerFunction,
52
52
  keyValueStore,
53
+ // The config a Function was created with is what every read of it
54
+ // reports, so it is kept rather than only acted on here.
55
+ comment: command.input.FunctionConfig?.Comment,
56
+ runtime: command.input.FunctionConfig?.Runtime,
57
+ functionCode: cffFunctionCodeSource(command.input.FunctionCode),
58
+ createdTime: this.background.now(),
53
59
  });
54
60
  this.cloudFrontFunctions.set(simCff.name, simCff);
55
61
  // New CFF becomes available async in background.
@@ -0,0 +1,22 @@
1
+ import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
2
+ import type { SimCfFunctionAccess } from "./sim-cf-function-access.js";
3
+ import type { SimDescribeFunctionCommand, SimDescribeFunctionCommandOutput } from "./sim-cf-function-command.types.js";
4
+ /**
5
+ * Simulated CloudFront DescribeFunction command.
6
+ *
7
+ * This is the Function's configuration without its code. GetFunction is the
8
+ * one that answers with the code.
9
+ *
10
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/DescribeFunctionCommand/
11
+ */
12
+ export declare class SimCfDescribeFunction {
13
+ private readonly access;
14
+ private static readonly action;
15
+ constructor(access: SimCfFunctionAccess);
16
+ /**
17
+ * Describe one sim CloudFront Function.
18
+ */
19
+ handle(command: SimDescribeFunctionCommand, options?: {
20
+ readonly caller?: SimAwsCaller;
21
+ }): Promise<SimDescribeFunctionCommandOutput>;
22
+ }
@@ -0,0 +1,32 @@
1
+ import { assertDefined } from "../../../../util/type-guard/defined.js";
2
+ import { simCffRequestedStage } from "../../cff/sim-cff-stage.js";
3
+ import { simCfFunctionSummary } from "./sim-cf-function-summary.js";
4
+ /**
5
+ * Simulated CloudFront DescribeFunction command.
6
+ *
7
+ * This is the Function's configuration without its code. GetFunction is the
8
+ * one that answers with the code.
9
+ *
10
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/DescribeFunctionCommand/
11
+ */
12
+ export class SimCfDescribeFunction {
13
+ access;
14
+ static action = "cloudfront:DescribeFunction";
15
+ constructor(access) {
16
+ this.access = access;
17
+ }
18
+ /**
19
+ * Describe one sim CloudFront Function.
20
+ */
21
+ async handle(command, options) {
22
+ assertDefined(command.input.Name, "DescribeFunctionCommand.input.Name");
23
+ const stage = simCffRequestedStage(command.input.Stage);
24
+ await this.access.background.sequence();
25
+ const cloudFrontFunction = this.access.authorizedByName(SimCfDescribeFunction.action, command.input.Name, stage, options?.caller);
26
+ return {
27
+ $metadata: {},
28
+ FunctionSummary: simCfFunctionSummary(cloudFrontFunction, stage),
29
+ ETag: cloudFrontFunction.config.etag,
30
+ };
31
+ }
32
+ }
@@ -0,0 +1,48 @@
1
+ import type { BackgroundScheduler } from "../../../../util/background/background.js";
2
+ import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
3
+ import type { SimAwsAccountId } from "../../../aws/sim-aws-account.js";
4
+ import type { SimIamInterServiceAuthZ } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
5
+ import type { SimCloudFrontFunctionStage } from "../../cff/sim-cff-stage.js";
6
+ import type { SimCloudFrontFunction } from "../../cff/sim-cloudfront-function.js";
7
+ import type { SimCloudFrontFunctionMap } from "../create-function/create-function.handler.js";
8
+ interface SimCfFunctionAccessProperties {
9
+ readonly accountId: SimAwsAccountId;
10
+ readonly cloudFrontFunctions: SimCloudFrontFunctionMap;
11
+ readonly iam: SimIamInterServiceAuthZ;
12
+ readonly background: BackgroundScheduler;
13
+ }
14
+ /**
15
+ * What every command reading a Function back needs: the Functions, IAM, and
16
+ * the clock.
17
+ *
18
+ * ListFunctions, DescribeFunction and GetFunction authorize the same way and
19
+ * resolve a Function the same way, so the wiring is here once rather than in
20
+ * each of them. Each command class is then only its own AWS behaviour.
21
+ */
22
+ export declare class SimCfFunctionAccess {
23
+ readonly cloudFrontFunctions: SimCloudFrontFunctionMap;
24
+ readonly background: BackgroundScheduler;
25
+ private readonly accountId;
26
+ private readonly iam;
27
+ constructor(properties: SimCfFunctionAccessProperties);
28
+ /**
29
+ * Ensure the caller may take an action on a Function ARN.
30
+ */
31
+ authorize(action: string, resource: string, caller?: SimAwsCaller): void;
32
+ /**
33
+ * Ensure the caller may take an action on any Function in the Account.
34
+ *
35
+ * ListFunctions names no Function, so a policy granting it has to use the
36
+ * wildcard, and this is what it is authorized against.
37
+ */
38
+ authorizeAnyFunction(action: string, caller?: SimAwsCaller): void;
39
+ /**
40
+ * Resolve a Function in a stage, having authorized the action against it.
41
+ *
42
+ * The ARN is built from the name the caller gave, so authorization happens
43
+ * before the Function map is read and an unauthorized caller is refused
44
+ * whether or not the name resolves.
45
+ */
46
+ authorizedByName(action: string, functionName: string, stage: SimCloudFrontFunctionStage, caller?: SimAwsCaller): SimCloudFrontFunction;
47
+ }
48
+ export {};
@@ -0,0 +1,48 @@
1
+ import { simCfAuthorize } from "../../sim-cf-authorize.js";
2
+ import { simCfFunctionInStage } from "./sim-cf-function-lookup.js";
3
+ /**
4
+ * What every command reading a Function back needs: the Functions, IAM, and
5
+ * the clock.
6
+ *
7
+ * ListFunctions, DescribeFunction and GetFunction authorize the same way and
8
+ * resolve a Function the same way, so the wiring is here once rather than in
9
+ * each of them. Each command class is then only its own AWS behaviour.
10
+ */
11
+ export class SimCfFunctionAccess {
12
+ cloudFrontFunctions;
13
+ background;
14
+ accountId;
15
+ iam;
16
+ constructor(properties) {
17
+ this.accountId = properties.accountId;
18
+ this.cloudFrontFunctions = properties.cloudFrontFunctions;
19
+ this.iam = properties.iam;
20
+ this.background = properties.background;
21
+ }
22
+ /**
23
+ * Ensure the caller may take an action on a Function ARN.
24
+ */
25
+ authorize(action, resource, caller) {
26
+ simCfAuthorize({ iam: this.iam, action, resource, caller });
27
+ }
28
+ /**
29
+ * Ensure the caller may take an action on any Function in the Account.
30
+ *
31
+ * ListFunctions names no Function, so a policy granting it has to use the
32
+ * wildcard, and this is what it is authorized against.
33
+ */
34
+ authorizeAnyFunction(action, caller) {
35
+ this.authorize(action, `arn:aws:cloudfront::${this.accountId}:function/*`, caller);
36
+ }
37
+ /**
38
+ * Resolve a Function in a stage, having authorized the action against it.
39
+ *
40
+ * The ARN is built from the name the caller gave, so authorization happens
41
+ * before the Function map is read and an unauthorized caller is refused
42
+ * whether or not the name resolves.
43
+ */
44
+ authorizedByName(action, functionName, stage, caller) {
45
+ this.authorize(action, `arn:aws:cloudfront::${this.accountId}:function/${functionName}`, caller);
46
+ return simCfFunctionInStage(this.cloudFrontFunctions, functionName, stage);
47
+ }
48
+ }
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Structural types for the commands that read a CloudFront Function back.
3
+ *
4
+ * ListFunctions, DescribeFunction and GetFunction all address a Function by
5
+ * name and a stage, and answer with the same summary shape, so their types are
6
+ * together here rather than one file each.
7
+ *
8
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/
9
+ */
10
+ import type { SimArn } from "../../../aws/arn.js";
11
+ import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
12
+ import type { SimCloudFrontFunctionRuntime } from "../../cff/sim-cff-configuration.js";
13
+ import type { SimCloudFrontFunctionStage } from "../../cff/sim-cff-stage.js";
14
+ /**
15
+ * Minimal structural sim CloudFront Function config.
16
+ */
17
+ export interface SimCfFunctionConfig {
18
+ Comment: string;
19
+ Runtime: SimCloudFrontFunctionRuntime;
20
+ KeyValueStoreAssociations?: {
21
+ Quantity: number;
22
+ Items: {
23
+ KeyValueStoreARN: SimArn;
24
+ }[];
25
+ };
26
+ }
27
+ /**
28
+ * Minimal structural sim CloudFront Function metadata.
29
+ */
30
+ export interface SimCfFunctionMetadata {
31
+ FunctionARN: SimArn;
32
+ Stage: SimCloudFrontFunctionStage;
33
+ CreatedTime: Date;
34
+ LastModifiedTime: Date;
35
+ }
36
+ /**
37
+ * Minimal structural sim CloudFront Function summary.
38
+ */
39
+ export interface SimCfFunctionSummary {
40
+ Name: string;
41
+ Status: string;
42
+ FunctionConfig: SimCfFunctionConfig;
43
+ FunctionMetadata: SimCfFunctionMetadata;
44
+ }
45
+ /**
46
+ * Minimal structural sim CloudFront ListFunctions command.
47
+ */
48
+ export interface SimListFunctionsCommand {
49
+ readonly input: {
50
+ readonly Stage?: string | undefined;
51
+ };
52
+ }
53
+ /**
54
+ * Minimal structural sim CloudFront ListFunctions output.
55
+ */
56
+ export interface SimListFunctionsCommandOutput {
57
+ readonly $metadata: SimResponseMetadata;
58
+ FunctionList: {
59
+ Quantity: number;
60
+ Items: SimCfFunctionSummary[];
61
+ };
62
+ }
63
+ /**
64
+ * Minimal structural sim CloudFront DescribeFunction command.
65
+ */
66
+ export interface SimDescribeFunctionCommand {
67
+ readonly input: {
68
+ readonly Name?: string | undefined;
69
+ readonly Stage?: string | undefined;
70
+ };
71
+ }
72
+ /**
73
+ * Minimal structural sim CloudFront DescribeFunction output.
74
+ */
75
+ export interface SimDescribeFunctionCommandOutput {
76
+ readonly $metadata: SimResponseMetadata;
77
+ FunctionSummary: SimCfFunctionSummary;
78
+ ETag: string;
79
+ }
80
+ /**
81
+ * Minimal structural sim CloudFront GetFunction command.
82
+ */
83
+ export interface SimGetFunctionCommand {
84
+ readonly input: {
85
+ readonly Name?: string | undefined;
86
+ readonly Stage?: string | undefined;
87
+ };
88
+ }
89
+ /**
90
+ * Minimal structural sim CloudFront GetFunction output.
91
+ */
92
+ export interface SimGetFunctionCommandOutput {
93
+ readonly $metadata: SimResponseMetadata;
94
+ FunctionCode: Uint8Array;
95
+ ETag: string;
96
+ ContentType: string;
97
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Structural types for the commands that read a CloudFront Function back.
3
+ *
4
+ * ListFunctions, DescribeFunction and GetFunction all address a Function by
5
+ * name and a stage, and answer with the same summary shape, so their types are
6
+ * together here rather than one file each.
7
+ *
8
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/
9
+ */
10
+ export {};
@@ -0,0 +1,12 @@
1
+ import { type SimCloudFrontFunctionStage } from "../../cff/sim-cff-stage.js";
2
+ import type { SimCloudFrontFunction } from "../../cff/sim-cloudfront-function.js";
3
+ import type { SimCloudFrontFunctionMap } from "../create-function/create-function.handler.js";
4
+ /**
5
+ * Resolve a Function a stage can be read from.
6
+ *
7
+ * A name the Account holds no Function under is refused, and so is one whose
8
+ * Function has not reached the stage asked for. Both answer with
9
+ * NoSuchFunctionExists. That is what CloudFront answers when a stage holds
10
+ * nothing under the name asked for.
11
+ */
12
+ export declare function simCfFunctionInStage(cloudFrontFunctions: SimCloudFrontFunctionMap, functionName: string, stage: SimCloudFrontFunctionStage): SimCloudFrontFunction;
@@ -0,0 +1,21 @@
1
+ import { simCffInStage, } from "../../cff/sim-cff-stage.js";
2
+ import { SimCloudFrontNoSuchFunctionExists } from "../../error/sim-cloudfront.error.js";
3
+ /**
4
+ * Resolve a Function a stage can be read from.
5
+ *
6
+ * A name the Account holds no Function under is refused, and so is one whose
7
+ * Function has not reached the stage asked for. Both answer with
8
+ * NoSuchFunctionExists. That is what CloudFront answers when a stage holds
9
+ * nothing under the name asked for.
10
+ */
11
+ export function simCfFunctionInStage(cloudFrontFunctions, functionName, stage) {
12
+ const cloudFrontFunction = cloudFrontFunctions.get(functionName);
13
+ if (cloudFrontFunction === undefined) {
14
+ throw new SimCloudFrontNoSuchFunctionExists(`No sim CloudFront Function named ${functionName}`);
15
+ }
16
+ if (!simCffInStage(cloudFrontFunction, stage)) {
17
+ throw new SimCloudFrontNoSuchFunctionExists(`Sim CloudFront Function ${functionName} has not been published, so it ` +
18
+ `is in DEVELOPMENT and not in ${stage}`);
19
+ }
20
+ return cloudFrontFunction;
21
+ }
@@ -0,0 +1,11 @@
1
+ import type { SimCloudFrontFunctionStage } from "../../cff/sim-cff-stage.js";
2
+ import type { SimCloudFrontFunction } from "../../cff/sim-cloudfront-function.js";
3
+ import type { SimCfFunctionSummary } from "./sim-cf-function-command.types.js";
4
+ /**
5
+ * Describe a Function the way ListFunctions and DescribeFunction both do.
6
+ *
7
+ * The stage comes from the request rather than the Function, because a
8
+ * published Function is in both stages and answers under whichever one was
9
+ * asked for.
10
+ */
11
+ export declare function simCfFunctionSummary(cloudFrontFunction: SimCloudFrontFunction, stage: SimCloudFrontFunctionStage): SimCfFunctionSummary;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Describe a Function the way ListFunctions and DescribeFunction both do.
3
+ *
4
+ * The stage comes from the request rather than the Function, because a
5
+ * published Function is in both stages and answers under whichever one was
6
+ * asked for.
7
+ */
8
+ export function simCfFunctionSummary(cloudFrontFunction, stage) {
9
+ const keyValueStore = cloudFrontFunction.keyValueStore;
10
+ return {
11
+ Name: cloudFrontFunction.name,
12
+ Status: cloudFrontFunction.status,
13
+ FunctionConfig: {
14
+ Comment: cloudFrontFunction.config.comment,
15
+ Runtime: cloudFrontFunction.config.runtime,
16
+ ...(keyValueStore !== undefined && {
17
+ KeyValueStoreAssociations: {
18
+ Quantity: 1,
19
+ Items: [{ KeyValueStoreARN: keyValueStore.arn }],
20
+ },
21
+ }),
22
+ },
23
+ FunctionMetadata: {
24
+ FunctionARN: cloudFrontFunction.arn,
25
+ Stage: stage,
26
+ CreatedTime: cloudFrontFunction.config.createdTime,
27
+ LastModifiedTime: cloudFrontFunction.config.lastModifiedTime,
28
+ },
29
+ };
30
+ }
@@ -0,0 +1,23 @@
1
+ import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
2
+ import type { SimCfFunctionAccess } from "./sim-cf-function-access.js";
3
+ import type { SimGetFunctionCommand, SimGetFunctionCommandOutput } from "./sim-cf-function-command.types.js";
4
+ /**
5
+ * Simulated CloudFront GetFunction command.
6
+ *
7
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/GetFunctionCommand/
8
+ */
9
+ export declare class SimCfGetFunction {
10
+ private readonly access;
11
+ private static readonly action;
12
+ constructor(access: SimCfFunctionAccess);
13
+ /**
14
+ * Get one sim CloudFront Function's code.
15
+ *
16
+ * A Function created from source answers with the source it was given. One
17
+ * created from a handler function reference has no uploaded source, and
18
+ * answers with that handler's own source text. That is the code it runs.
19
+ */
20
+ handle(command: SimGetFunctionCommand, options?: {
21
+ readonly caller?: SimAwsCaller;
22
+ }): Promise<SimGetFunctionCommandOutput>;
23
+ }
@@ -0,0 +1,33 @@
1
+ import { assertDefined } from "../../../../util/type-guard/defined.js";
2
+ import { simCffRequestedStage } from "../../cff/sim-cff-stage.js";
3
+ /**
4
+ * Simulated CloudFront GetFunction command.
5
+ *
6
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/GetFunctionCommand/
7
+ */
8
+ export class SimCfGetFunction {
9
+ access;
10
+ static action = "cloudfront:GetFunction";
11
+ constructor(access) {
12
+ this.access = access;
13
+ }
14
+ /**
15
+ * Get one sim CloudFront Function's code.
16
+ *
17
+ * A Function created from source answers with the source it was given. One
18
+ * created from a handler function reference has no uploaded source, and
19
+ * answers with that handler's own source text. That is the code it runs.
20
+ */
21
+ async handle(command, options) {
22
+ assertDefined(command.input.Name, "GetFunctionCommand.input.Name");
23
+ const stage = simCffRequestedStage(command.input.Stage);
24
+ await this.access.background.sequence();
25
+ const cloudFrontFunction = this.access.authorizedByName(SimCfGetFunction.action, command.input.Name, stage, options?.caller);
26
+ return {
27
+ $metadata: {},
28
+ FunctionCode: cloudFrontFunction.config.functionCode,
29
+ ETag: cloudFrontFunction.config.etag,
30
+ ContentType: "application/octet-stream",
31
+ };
32
+ }
33
+ }
@@ -0,0 +1,22 @@
1
+ import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
2
+ import type { SimCfFunctionAccess } from "./sim-cf-function-access.js";
3
+ import type { SimListFunctionsCommand, SimListFunctionsCommandOutput } from "./sim-cf-function-command.types.js";
4
+ /**
5
+ * Simulated CloudFront ListFunctions command.
6
+ *
7
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/ListFunctionsCommand/
8
+ */
9
+ export declare class SimCfListFunctions {
10
+ private readonly access;
11
+ private static readonly action;
12
+ constructor(access: SimCfFunctionAccess);
13
+ /**
14
+ * List this Account's sim CloudFront Functions in one stage.
15
+ *
16
+ * The whole list comes back. `Marker` and `MaxItems` are the paging every
17
+ * other simulated listing leaves out, so there is no `NextMarker` either.
18
+ */
19
+ handle(command: SimListFunctionsCommand, options?: {
20
+ readonly caller?: SimAwsCaller;
21
+ }): Promise<SimListFunctionsCommandOutput>;
22
+ }
@@ -0,0 +1,38 @@
1
+ import { simCffInStage, simCffRequestedStage, } from "../../cff/sim-cff-stage.js";
2
+ import { simCfFunctionSummary } from "./sim-cf-function-summary.js";
3
+ /**
4
+ * Simulated CloudFront ListFunctions command.
5
+ *
6
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/ListFunctionsCommand/
7
+ */
8
+ export class SimCfListFunctions {
9
+ access;
10
+ static action = "cloudfront:ListFunctions";
11
+ constructor(access) {
12
+ this.access = access;
13
+ }
14
+ /**
15
+ * List this Account's sim CloudFront Functions in one stage.
16
+ *
17
+ * The whole list comes back. `Marker` and `MaxItems` are the paging every
18
+ * other simulated listing leaves out, so there is no `NextMarker` either.
19
+ */
20
+ async handle(command, options) {
21
+ const stage = simCffRequestedStage(command.input.Stage);
22
+ await this.access.background.sequence();
23
+ // Listing is authorized across the Account rather than per Function, which
24
+ // is what a policy for this action grants.
25
+ this.access.authorizeAnyFunction(SimCfListFunctions.action, options?.caller);
26
+ const cloudFrontFunctions = this.access.cloudFrontFunctions
27
+ .values()
28
+ .filter((cloudFrontFunction) => simCffInStage(cloudFrontFunction, stage))
29
+ .toArray();
30
+ return {
31
+ $metadata: {},
32
+ FunctionList: {
33
+ Quantity: cloudFrontFunctions.length,
34
+ Items: cloudFrontFunctions.map((cloudFrontFunction) => simCfFunctionSummary(cloudFrontFunction, stage)),
35
+ },
36
+ };
37
+ }
38
+ }