@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
@@ -5,6 +5,10 @@
5
5
  * matching the response page path decides which Origin it comes from. That is
6
6
  * what lets a Distribution keep its error pages somewhere other than the
7
7
  * content that failed, as CloudFront does.
8
+ *
9
+ * A rule carrying `ErrorCachingMinTTL` alone has no page. The Origin's error
10
+ * reaches the viewer, and the rule says how long the Distribution holds it
11
+ * for.
8
12
  */
9
13
  export class SimCfCustomErrorResponder {
10
14
  behaviourResolver;
@@ -18,14 +22,14 @@ export class SimCfCustomErrorResponder {
18
22
  * Distribution configures one for its status.
19
23
  */
20
24
  async apply(request, distribution, response) {
21
- const customErrorResponse = distribution.customErrorResponses.find((candidate) => candidate.errorCode === response.status);
22
- if (customErrorResponse === undefined) {
25
+ const page = distribution.customErrorResponses.find((candidate) => candidate.errorCode === response.status)?.page;
26
+ if (page === undefined) {
23
27
  return response;
24
28
  }
25
- return await this.responsePage(request, distribution, customErrorResponse);
29
+ return await this.responsePage(request, distribution, page);
26
30
  }
27
- async responsePage(request, distribution, customErrorResponse) {
28
- const pageRequest = this.pageRequest(request, customErrorResponse);
31
+ async responsePage(request, distribution, page) {
32
+ const pageRequest = this.pageRequest(request, page);
29
33
  const behaviour = this.behaviourResolver.resolve(pageRequest, distribution);
30
34
  const pageResponse = await this.originFetcher.fetch(pageRequest, distribution, behaviour);
31
35
  // A response page that is itself unavailable leaves the viewer with the
@@ -34,13 +38,13 @@ export class SimCfCustomErrorResponder {
34
38
  return pageResponse;
35
39
  }
36
40
  return new Response(pageResponse.body, {
37
- status: customErrorResponse.responseCode,
41
+ status: page.responseCode,
38
42
  headers: pageResponse.headers,
39
43
  });
40
44
  }
41
- pageRequest(request, customErrorResponse) {
45
+ pageRequest(request, page) {
42
46
  const url = new URL(request.url);
43
- url.pathname = customErrorResponse.responsePagePath;
47
+ url.pathname = page.responsePagePath;
44
48
  url.search = "";
45
49
  // The response page is fetched without a body, whatever the viewer sent,
46
50
  // so headers describing the viewer's body would describe nothing.
@@ -25,8 +25,8 @@ export interface SimCfOriginStageResult {
25
25
  * Fetches from the Behavior's Origin, running the Lambda@Edge functions on
26
26
  * either side of the fetch.
27
27
  *
28
- * Real CloudFront runs the origin events on a cache miss only. Nothing here
29
- * caches, so every request is a miss and both events run every time.
28
+ * Real CloudFront runs the origin events on a cache miss only, and so does
29
+ * this. A request the Distribution's cache answers never reaches this stage.
30
30
  */
31
31
  export declare class SimCfOriginStage {
32
32
  private readonly originFetcher;
@@ -2,8 +2,8 @@
2
2
  * Fetches from the Behavior's Origin, running the Lambda@Edge functions on
3
3
  * either side of the fetch.
4
4
  *
5
- * Real CloudFront runs the origin events on a cache miss only. Nothing here
6
- * caches, so every request is a miss and both events run every time.
5
+ * Real CloudFront runs the origin events on a cache miss only, and so does
6
+ * this. A request the Distribution's cache answers never reaches this stage.
7
7
  */
8
8
  export class SimCfOriginStage {
9
9
  originFetcher;
@@ -1,12 +1,12 @@
1
1
  import type { SimCloudFrontControllerDependencies } from "./dependency/sim-cf-controller-dependency.js";
2
2
  /**
3
3
  * Runs a single simulated CloudFront request through its lifecycle:
4
- * route to a Distribution, put the request through the Distribution's web ACL,
5
- * apply the default root object, resolve the matching Behavior, run
6
- * viewer-request hooks, fetch from the Origin with the origin hooks either
7
- * side of the fetch, replace an error response with the Distribution's custom
8
- * error page, apply the Behavior's response headers policy, then run
9
- * viewer-response hooks where the Origin did not answer with an error.
4
+ * read the edge it arrived at, route to a Distribution, put the request
5
+ * through the Distribution's web ACL, apply the default root object, resolve
6
+ * the matching Behavior, run viewer-request hooks, answer from that edge's
7
+ * cache or from the Origin, say which of the two answered in `X-Cache`, apply
8
+ * the Behavior's response headers policy, then run viewer-response hooks where
9
+ * the Origin did not answer with an error.
10
10
  *
11
11
  * A viewer hook is a CloudFront Function or a Lambda@Edge function. A Behavior
12
12
  * carries at most one of the two kinds at the viewer events, which
@@ -1,12 +1,14 @@
1
+ import { simCfCacheStatusResponse } from "../cache/sim-cf-cache-status.js";
2
+ import { simCfRequestEdge } from "../cache/sim-cf-edge.js";
1
3
  import { simCfDefaultRootObjectRequest } from "./root-object/sim-cf-default-root-object-request.js";
2
4
  /**
3
5
  * Runs a single simulated CloudFront request through its lifecycle:
4
- * route to a Distribution, put the request through the Distribution's web ACL,
5
- * apply the default root object, resolve the matching Behavior, run
6
- * viewer-request hooks, fetch from the Origin with the origin hooks either
7
- * side of the fetch, replace an error response with the Distribution's custom
8
- * error page, apply the Behavior's response headers policy, then run
9
- * viewer-response hooks where the Origin did not answer with an error.
6
+ * read the edge it arrived at, route to a Distribution, put the request
7
+ * through the Distribution's web ACL, apply the default root object, resolve
8
+ * the matching Behavior, run viewer-request hooks, answer from that edge's
9
+ * cache or from the Origin, say which of the two answered in `X-Cache`, apply
10
+ * the Behavior's response headers policy, then run viewer-response hooks where
11
+ * the Origin did not answer with an error.
10
12
  *
11
13
  * A viewer hook is a CloudFront Function or a Lambda@Edge function. A Behavior
12
14
  * carries at most one of the two kinds at the viewer events, which
@@ -27,7 +29,11 @@ export class SimCloudFrontRequestPipeline {
27
29
  * Process one incoming request and produce the response the caller sees.
28
30
  */
29
31
  async handle(request) {
30
- let requestReference = request;
32
+ // The edge is read first and its header taken off the request. A web ACL
33
+ // rule, an edge function and the Origin therefore never see an instruction
34
+ // that was addressed to the simulator.
35
+ const edge = simCfRequestEdge(request);
36
+ let requestReference = edge.request;
31
37
  const route = this.stages.distroRouter.routeForRequest(requestReference);
32
38
  if (route === undefined) {
33
39
  return new Response("Suitable sim CloudFront Distribution not found", {
@@ -62,25 +68,34 @@ export class SimCloudFrontRequestPipeline {
62
68
  return edgeResult;
63
69
  }
64
70
  requestReference = edgeResult;
65
- // Fetch from the Origin, running the origin-request and origin-response
66
- // Lambda@Edge functions on either side of the fetch. An origin-request
67
- // function that answered with a response of its own leaves the Origin
68
- // unread, and the response takes the Origin response's place from here on.
69
- const originResult = await this.stages.originStage.fetch(requestReference, distro, behaviour);
70
- // Replace an Origin error with the Distribution's custom error page, if it
71
- // configures one for that status.
72
- const errorResponse = await this.stages.customErrorResponder.apply(requestReference, distro, originResult.response);
71
+ // Answer from this edge's cache where it holds the key, and from the Origin
72
+ // where it does not. A miss runs the origin-request and origin-response
73
+ // Lambda@Edge functions either side of the fetch, has an Origin error
74
+ // replaced with the Distribution's custom error page, and is stored.
75
+ const content = await this.stages.contentStage.serve({
76
+ request: requestReference,
77
+ cloudFront,
78
+ distribution: distro,
79
+ behaviour,
80
+ edgeId: edge.edgeId,
81
+ });
82
+ // Say whether the cache or the Origin answered, as CloudFront says it. A
83
+ // hit already carries the `Age` the cache measured. Both go on ahead of the
84
+ // response headers policy and the viewer-response event. A policy can take
85
+ // either off, and a viewer-response function sees them.
86
+ const served = simCfCacheStatusResponse(content.response, content.cacheHit);
73
87
  // Apply the Behavior's response headers policy, if it names one. CloudFront
74
88
  // does this after the response leaves the cache and before the
75
89
  // viewer-response event, so the custom error page above carries the
76
90
  // policy's headers and a viewer-response function that runs sees them.
77
- const response = this.stages.responseHeadersApplicator.apply(cloudFront, requestReference, errorResponse, behaviour);
91
+ const response = this.stages.responseHeadersApplicator.apply(cloudFront, requestReference, served, behaviour);
78
92
  // CloudFront runs no viewer-response function when the Origin answered
79
93
  // 400 or higher, for either kind of function. The status that decides it
80
- // is the one the Origin returned, so neither a custom error response
81
- // carrying `ResponseCode: 200` above nor an origin-response function that
82
- // replaced the status brings the function back.
83
- if (originResult.originStatus >= 400) {
94
+ // is the one the Origin returned, or the one it returned when the cache
95
+ // entry being served was stored. Neither a custom error response carrying
96
+ // `ResponseCode: 200` nor an origin-response function that replaced the
97
+ // status brings the function back.
98
+ if (content.originStatus >= 400) {
84
99
  return response;
85
100
  }
86
101
  // Handle viewer-response CFF, if any.
@@ -9,15 +9,33 @@ export declare const simCloudFrontCustomErrorCodes: ReadonlySet<number>;
9
9
  * page for an error without telling the viewer anything went wrong.
10
10
  */
11
11
  export declare const simCloudFrontCustomErrorResponseCodes: ReadonlySet<number>;
12
+ /**
13
+ * How long CloudFront holds an error for where a rule names no
14
+ * `ErrorCachingMinTTL`, and where a Distribution configures no rule for the
15
+ * status at all.
16
+ *
17
+ * https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HTTPStatusCodes.html
18
+ */
19
+ export declare const simCloudFrontDefaultErrorCachingMinTtlSec = 10;
20
+ /**
21
+ * The page a custom error response serves in place of the Origin's error.
22
+ *
23
+ * CloudFront pairs `ResponsePagePath` and `ResponseCode`. A rule carries both
24
+ * or neither.
25
+ */
26
+ export interface SimCloudFrontCustomErrorPage {
27
+ readonly responsePagePath: string;
28
+ readonly responseCode: number;
29
+ }
12
30
  /**
13
31
  * A custom error response of a sim CloudFront Distribution.
14
32
  *
15
- * Only a rule with a response page reaches this model. A rule carrying nothing
16
- * but `ErrorCode` and `ErrorCachingMinTTL` configures error caching, which the
17
- * simulator has nothing to cache with.
33
+ * A rule carrying nothing but `ErrorCode` and `ErrorCachingMinTTL` configures
34
+ * how long the Origin's own error is held for. It has no page, and the viewer
35
+ * gets what the Origin answered.
18
36
  */
19
37
  export interface SimCloudFrontCustomErrorResponse {
20
38
  readonly errorCode: number;
21
- readonly responsePagePath: string;
22
- readonly responseCode: number;
39
+ readonly errorCachingMinTtlSec: number;
40
+ readonly page?: SimCloudFrontCustomErrorPage | undefined;
23
41
  }
@@ -11,3 +11,11 @@ export const simCloudFrontCustomErrorCodes = new Set([
11
11
  * page for an error without telling the viewer anything went wrong.
12
12
  */
13
13
  export const simCloudFrontCustomErrorResponseCodes = new Set([200, ...simCloudFrontCustomErrorCodes]);
14
+ /**
15
+ * How long CloudFront holds an error for where a rule names no
16
+ * `ErrorCachingMinTTL`, and where a Distribution configures no rule for the
17
+ * status at all.
18
+ *
19
+ * https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HTTPStatusCodes.html
20
+ */
21
+ export const simCloudFrontDefaultErrorCachingMinTtlSec = 10;
@@ -0,0 +1,18 @@
1
+ import type { SimCloudFrontCachePolicyRegistry } from "../../cache-policy/sim-cf-cache-policy-registry.js";
2
+ /**
3
+ * Refuses a Cache Behavior naming a cache policy this simulation does not
4
+ * hold.
5
+ *
6
+ * Real CloudFront checks this when the Distribution is created or updated, so
7
+ * a template naming a mistyped policy ID fails the deploy there too, rather
8
+ * than deploying successfully and only failing the first request that reaches
9
+ * the Behavior.
10
+ */
11
+ export declare class SimCfBehaviorCachePolicy {
12
+ private readonly policies;
13
+ constructor(policies: SimCloudFrontCachePolicyRegistry);
14
+ /**
15
+ * Refuse one Behavior naming a policy which is not there.
16
+ */
17
+ assertExists(targetOriginId: string | undefined, cachePolicyId: string | undefined): void;
18
+ }
@@ -0,0 +1,30 @@
1
+ import { SimCloudFrontNoSuchCachePolicy } from "../../error/sim-cloudfront.error.js";
2
+ /**
3
+ * Refuses a Cache Behavior naming a cache policy this simulation does not
4
+ * hold.
5
+ *
6
+ * Real CloudFront checks this when the Distribution is created or updated, so
7
+ * a template naming a mistyped policy ID fails the deploy there too, rather
8
+ * than deploying successfully and only failing the first request that reaches
9
+ * the Behavior.
10
+ */
11
+ export class SimCfBehaviorCachePolicy {
12
+ policies;
13
+ constructor(policies) {
14
+ this.policies = policies;
15
+ }
16
+ /**
17
+ * Refuse one Behavior naming a policy which is not there.
18
+ */
19
+ assertExists(targetOriginId, cachePolicyId) {
20
+ if (cachePolicyId === undefined ||
21
+ this.policies.byId(cachePolicyId) !== undefined) {
22
+ return;
23
+ }
24
+ throw new SimCloudFrontNoSuchCachePolicy(`Sim CloudFront Behavior for Origin ${targetOriginId} names cache ` +
25
+ `policy ${cachePolicyId}, which does not exist. A Behavior names one ` +
26
+ `of CloudFront's seven managed policies, or a policy an ` +
27
+ `AWS::CloudFront::CachePolicy Resource created in this simulation. A ` +
28
+ `policy ID from a real account is neither.`);
29
+ }
30
+ }
@@ -0,0 +1,18 @@
1
+ import type { SimCloudFrontOriginRequestPolicyRegistry } from "../../origin-request-policy/sim-cf-origin-request-policy-registry.js";
2
+ /**
3
+ * Refuses a Cache Behavior naming an origin request policy this simulation
4
+ * does not hold.
5
+ *
6
+ * Real CloudFront checks this when the Distribution is created or updated, so
7
+ * a template naming a mistyped policy ID fails the deploy there too, rather
8
+ * than deploying successfully and only failing the first request that reaches
9
+ * the Behavior.
10
+ */
11
+ export declare class SimCfBehaviorOriginRequestPolicy {
12
+ private readonly policies;
13
+ constructor(policies: SimCloudFrontOriginRequestPolicyRegistry);
14
+ /**
15
+ * Refuse one Behavior naming a policy which is not there.
16
+ */
17
+ assertExists(targetOriginId: string | undefined, originRequestPolicyId: string | undefined): void;
18
+ }
@@ -0,0 +1,30 @@
1
+ import { SimCloudFrontNoSuchOriginRequestPolicy } from "../../error/sim-cf-origin-request-policy.error.js";
2
+ /**
3
+ * Refuses a Cache Behavior naming an origin request policy this simulation
4
+ * does not hold.
5
+ *
6
+ * Real CloudFront checks this when the Distribution is created or updated, so
7
+ * a template naming a mistyped policy ID fails the deploy there too, rather
8
+ * than deploying successfully and only failing the first request that reaches
9
+ * the Behavior.
10
+ */
11
+ export class SimCfBehaviorOriginRequestPolicy {
12
+ policies;
13
+ constructor(policies) {
14
+ this.policies = policies;
15
+ }
16
+ /**
17
+ * Refuse one Behavior naming a policy which is not there.
18
+ */
19
+ assertExists(targetOriginId, originRequestPolicyId) {
20
+ if (originRequestPolicyId === undefined ||
21
+ this.policies.byId(originRequestPolicyId) !== undefined) {
22
+ return;
23
+ }
24
+ throw new SimCloudFrontNoSuchOriginRequestPolicy(`Sim CloudFront Behavior for Origin ${targetOriginId} names origin ` +
25
+ `request policy ${originRequestPolicyId}, which does not exist. A ` +
26
+ `Behavior names one of CloudFront's eight managed policies, or a ` +
27
+ `policy an AWS::CloudFront::OriginRequestPolicy Resource created in ` +
28
+ `this simulation. A policy ID from a real account is neither.`);
29
+ }
30
+ }
@@ -0,0 +1,30 @@
1
+ import type { SimCloudFrontCacheBehaviorConfig, SimCloudFrontDefaultCacheBehaviorConfig, SimCloudFrontDistributionConfig } from "../../command/create-distribution/create-distribution.command.js";
2
+ import type { SimCfBehaviorCachePolicy } from "./sim-cf-behavior-cache-policy.js";
3
+ import type { SimCfBehaviorOriginRequestPolicy } from "./sim-cf-behavior-origin-request-policy.js";
4
+ import type { SimCfBehaviorResponseHeadersPolicy } from "./sim-cf-behavior-response-headers-policy.js";
5
+ /**
6
+ * The policies a Cache Behavior names, and whether this simulation holds them.
7
+ *
8
+ * A Behavior points at a response headers policy, a cache policy and an origin
9
+ * request policy by ID, and all three live outside the Distribution. Each one
10
+ * is checked the same way and at the same moment, so they are asked together.
11
+ */
12
+ export declare class SimCfBehaviorPolicies {
13
+ private readonly responseHeadersPolicy;
14
+ private readonly cachePolicy;
15
+ private readonly originRequestPolicy;
16
+ constructor(responseHeadersPolicy: SimCfBehaviorResponseHeadersPolicy, cachePolicy: SimCfBehaviorCachePolicy, originRequestPolicy: SimCfBehaviorOriginRequestPolicy);
17
+ /**
18
+ * Refuse every Behavior of a DistributionConfig that names a policy which is
19
+ * not there, without touching the Distribution.
20
+ *
21
+ * An update replaces a Distribution's whole configuration, so this runs
22
+ * before any of it is torn down. A refusal here leaves the Distribution
23
+ * serving exactly what it served before, rather than half replaced.
24
+ */
25
+ assertAllExist(distributionConfig: SimCloudFrontDistributionConfig): void;
26
+ /**
27
+ * Refuse one Behavior naming a policy of any kind which is not there.
28
+ */
29
+ assertExists(behavior: SimCloudFrontDefaultCacheBehaviorConfig | SimCloudFrontCacheBehaviorConfig): void;
30
+ }
@@ -0,0 +1,44 @@
1
+ /**
2
+ * The policies a Cache Behavior names, and whether this simulation holds them.
3
+ *
4
+ * A Behavior points at a response headers policy, a cache policy and an origin
5
+ * request policy by ID, and all three live outside the Distribution. Each one
6
+ * is checked the same way and at the same moment, so they are asked together.
7
+ */
8
+ export class SimCfBehaviorPolicies {
9
+ responseHeadersPolicy;
10
+ cachePolicy;
11
+ originRequestPolicy;
12
+ constructor(responseHeadersPolicy, cachePolicy, originRequestPolicy) {
13
+ this.responseHeadersPolicy = responseHeadersPolicy;
14
+ this.cachePolicy = cachePolicy;
15
+ this.originRequestPolicy = originRequestPolicy;
16
+ }
17
+ /**
18
+ * Refuse every Behavior of a DistributionConfig that names a policy which is
19
+ * not there, without touching the Distribution.
20
+ *
21
+ * An update replaces a Distribution's whole configuration, so this runs
22
+ * before any of it is torn down. A refusal here leaves the Distribution
23
+ * serving exactly what it served before, rather than half replaced.
24
+ */
25
+ assertAllExist(distributionConfig) {
26
+ const behaviors = [
27
+ distributionConfig.DefaultCacheBehavior,
28
+ ...(distributionConfig.CacheBehaviors?.Items ?? []),
29
+ ];
30
+ for (const behavior of behaviors) {
31
+ if (behavior !== undefined) {
32
+ this.assertExists(behavior);
33
+ }
34
+ }
35
+ }
36
+ /**
37
+ * Refuse one Behavior naming a policy of any kind which is not there.
38
+ */
39
+ assertExists(behavior) {
40
+ this.responseHeadersPolicy.assertExists(behavior.TargetOriginId, behavior.ResponseHeadersPolicyId);
41
+ this.cachePolicy.assertExists(behavior.TargetOriginId, behavior.CachePolicyId);
42
+ this.originRequestPolicy.assertExists(behavior.TargetOriginId, behavior.OriginRequestPolicyId);
43
+ }
44
+ }
@@ -1,8 +1,8 @@
1
1
  import type { SimCloudFrontCacheBehaviorConfig, SimCloudFrontDefaultCacheBehaviorConfig } from "../../command/create-distribution/create-distribution.command.js";
2
2
  import type { SimCloudFrontBehavior } from "../../behaviour/sim-cloud-front-behavior.js";
3
- import type { SimCfBehaviorResponseHeadersPolicy } from "./sim-cf-behavior-response-headers-policy.js";
3
+ import type { SimCfBehaviorPolicies } from "./sim-cf-behavior-policies.js";
4
4
  /**
5
5
  * Build the Behavior properties common to both the default Cache Behavior and
6
6
  * a named one. Callers add their own fields, such as the path pattern, on top.
7
7
  */
8
- export declare function simCfBehaviorProperties(cacheBehavior: SimCloudFrontDefaultCacheBehaviorConfig | SimCloudFrontCacheBehaviorConfig, responseHeadersPolicy: SimCfBehaviorResponseHeadersPolicy): SimCloudFrontBehavior;
8
+ export declare function simCfBehaviorProperties(cacheBehavior: SimCloudFrontDefaultCacheBehaviorConfig | SimCloudFrontCacheBehaviorConfig, policies: SimCfBehaviorPolicies): SimCloudFrontBehavior;
@@ -6,10 +6,10 @@ import { assertConsistentQuantity } from "../../command/sim-cf-list-quantity.js"
6
6
  * Build the Behavior properties common to both the default Cache Behavior and
7
7
  * a named one. Callers add their own fields, such as the path pattern, on top.
8
8
  */
9
- export function simCfBehaviorProperties(cacheBehavior, responseHeadersPolicy) {
10
- const { TargetOriginId, ResponseHeadersPolicyId } = cacheBehavior;
9
+ export function simCfBehaviorProperties(cacheBehavior, policies) {
10
+ const { TargetOriginId, ResponseHeadersPolicyId, CachePolicyId, OriginRequestPolicyId, } = cacheBehavior;
11
11
  assertDefined(TargetOriginId, "CloudFront CacheBehavior TargetOriginId");
12
- responseHeadersPolicy.assertExists(TargetOriginId, ResponseHeadersPolicyId);
12
+ policies.assertExists(cacheBehavior);
13
13
  return {
14
14
  targetOriginName: TargetOriginId,
15
15
  allowedMethods: methodsSet("AllowedMethods", cacheBehavior.AllowedMethods, [
@@ -23,6 +23,12 @@ export function simCfBehaviorProperties(cacheBehavior, responseHeadersPolicy) {
23
23
  ...(ResponseHeadersPolicyId !== undefined && {
24
24
  responseHeadersPolicyId: ResponseHeadersPolicyId,
25
25
  }),
26
+ ...(CachePolicyId !== undefined && {
27
+ cachePolicyId: CachePolicyId,
28
+ }),
29
+ ...(OriginRequestPolicyId !== undefined && {
30
+ originRequestPolicyId: OriginRequestPolicyId,
31
+ }),
26
32
  functionAssociations: configureCffAssociations(cacheBehavior),
27
33
  lambdaFunctionAssociations: configureEdgeAssociations(cacheBehavior),
28
34
  };
@@ -1,4 +1,3 @@
1
- import type { SimCloudFrontDistributionConfig } from "../../command/create-distribution/create-distribution.command.js";
2
1
  import type { SimCloudFrontResponseHeadersPolicyRegistry } from "../../response-headers-policy/sim-cf-response-headers-policy-registry.js";
3
2
  /**
4
3
  * Refuses a Cache Behavior naming a response headers policy this simulation
@@ -12,15 +11,6 @@ import type { SimCloudFrontResponseHeadersPolicyRegistry } from "../../response-
12
11
  export declare class SimCfBehaviorResponseHeadersPolicy {
13
12
  private readonly policies;
14
13
  constructor(policies: SimCloudFrontResponseHeadersPolicyRegistry);
15
- /**
16
- * Refuse every Behavior of a DistributionConfig that names a policy which is
17
- * not there, without touching the Distribution.
18
- *
19
- * An update replaces a Distribution's whole configuration, so this runs
20
- * before any of it is torn down: a refusal here leaves the Distribution
21
- * serving exactly what it served before, rather than half replaced.
22
- */
23
- assertAllExist(distributionConfig: SimCloudFrontDistributionConfig): void;
24
14
  /**
25
15
  * Refuse one Behavior naming a policy which is not there.
26
16
  */
@@ -13,25 +13,6 @@ export class SimCfBehaviorResponseHeadersPolicy {
13
13
  constructor(policies) {
14
14
  this.policies = policies;
15
15
  }
16
- /**
17
- * Refuse every Behavior of a DistributionConfig that names a policy which is
18
- * not there, without touching the Distribution.
19
- *
20
- * An update replaces a Distribution's whole configuration, so this runs
21
- * before any of it is torn down: a refusal here leaves the Distribution
22
- * serving exactly what it served before, rather than half replaced.
23
- */
24
- assertAllExist(distributionConfig) {
25
- const behaviors = [
26
- distributionConfig.DefaultCacheBehavior,
27
- ...(distributionConfig.CacheBehaviors?.Items ?? []),
28
- ];
29
- for (const behavior of behaviors) {
30
- if (behavior !== undefined) {
31
- this.assertExists(behavior.TargetOriginId, behavior.ResponseHeadersPolicyId);
32
- }
33
- }
34
- }
35
16
  /**
36
17
  * Refuse one Behavior naming a policy which is not there.
37
18
  */
@@ -1,6 +1,8 @@
1
+ import type { SimCloudFrontCachePolicyRegistry } from "../../cache-policy/sim-cf-cache-policy-registry.js";
1
2
  import type { SimCfCustomOriginDispatcher } from "../../origin/custom/sim-cf-custom-origin-dispatcher.js";
2
3
  import type { SimCloudFrontS3OriginResolver } from "../../origin/s3/sim-cloudfront-s3-origin.js";
3
4
  import type { SimCloudFrontOriginAccessControlRegistry } from "../../origin-access-control/sim-cf-origin-access-control-registry.js";
5
+ import type { SimCloudFrontOriginRequestPolicyRegistry } from "../../origin-request-policy/sim-cf-origin-request-policy-registry.js";
4
6
  import type { SimCloudFrontResponseHeadersPolicyRegistry } from "../../response-headers-policy/sim-cf-response-headers-policy-registry.js";
5
7
  import type { SimCfWebAclResolver } from "../../web-acl/sim-cf-web-acl.js";
6
8
  import { SimCloudFrontDistributionConfigurator } from "./sim-cloud-front-distribution-configurator.js";
@@ -9,6 +11,8 @@ interface SimCloudFrontConfiguratorProperties {
9
11
  readonly customOriginDispatcher?: SimCfCustomOriginDispatcher | undefined;
10
12
  readonly originAccessControls: SimCloudFrontOriginAccessControlRegistry;
11
13
  readonly responseHeadersPolicies: SimCloudFrontResponseHeadersPolicyRegistry;
14
+ readonly cachePolicies: SimCloudFrontCachePolicyRegistry;
15
+ readonly originRequestPolicies: SimCloudFrontOriginRequestPolicyRegistry;
12
16
  readonly webAclResolver?: SimCfWebAclResolver | undefined;
13
17
  }
14
18
  /**
@@ -1,4 +1,7 @@
1
1
  import { SimCfDistributionWebAcl } from "../../web-acl/sim-cf-distribution-web-acl.js";
2
+ import { SimCfBehaviorCachePolicy } from "./sim-cf-behavior-cache-policy.js";
3
+ import { SimCfBehaviorOriginRequestPolicy } from "./sim-cf-behavior-origin-request-policy.js";
4
+ import { SimCfBehaviorPolicies } from "./sim-cf-behavior-policies.js";
2
5
  import { SimCfBehaviorResponseHeadersPolicy } from "./sim-cf-behavior-response-headers-policy.js";
3
6
  import { SimCloudFrontBehaviorConfigurator } from "./sim-cloud-front-behavior-configurator.js";
4
7
  import { SimCloudFrontDistributionConfigurator } from "./sim-cloud-front-distribution-configurator.js";
@@ -10,6 +13,9 @@ import { SimCloudFrontOriginConfigurator } from "./sim-cloud-front-origin-config
10
13
  * same set of configurators.
11
14
  */
12
15
  export function makeSimCloudFrontDistributionConfigurator(properties) {
13
- const responseHeadersPolicy = new SimCfBehaviorResponseHeadersPolicy(properties.responseHeadersPolicies);
14
- return new SimCloudFrontDistributionConfigurator(new SimCloudFrontOriginConfigurator(properties.s3OriginResolver, properties.originAccessControls, properties.customOriginDispatcher), new SimCloudFrontBehaviorConfigurator(responseHeadersPolicy), responseHeadersPolicy, new SimCfDistributionWebAcl(properties.webAclResolver));
16
+ const behaviorPolicies = new SimCfBehaviorPolicies(new SimCfBehaviorResponseHeadersPolicy(properties.responseHeadersPolicies), new SimCfBehaviorCachePolicy(properties.cachePolicies), new SimCfBehaviorOriginRequestPolicy(properties.originRequestPolicies));
17
+ return new SimCloudFrontDistributionConfigurator(new SimCloudFrontOriginConfigurator(properties.s3OriginResolver, properties.originAccessControls, {
18
+ cachePolicies: properties.cachePolicies,
19
+ originRequestPolicies: properties.originRequestPolicies,
20
+ }, properties.customOriginDispatcher), new SimCloudFrontBehaviorConfigurator(behaviorPolicies), behaviorPolicies, new SimCfDistributionWebAcl(properties.webAclResolver));
15
21
  }
@@ -1,12 +1,12 @@
1
1
  import type { SimCloudFrontCacheBehaviorConfig, SimCloudFrontDefaultCacheBehaviorConfig } from "../../command/create-distribution/create-distribution.command.js";
2
2
  import type { SimCloudFrontDistribution } from "../sim-cloudfront-distribution.js";
3
- import type { SimCfBehaviorResponseHeadersPolicy } from "./sim-cf-behavior-response-headers-policy.js";
3
+ import type { SimCfBehaviorPolicies } from "./sim-cf-behavior-policies.js";
4
4
  /**
5
5
  * Applies Cache Behavior configuration to a sim CloudFront Distribution.
6
6
  */
7
7
  export declare class SimCloudFrontBehaviorConfigurator {
8
- private readonly responseHeadersPolicy;
9
- constructor(responseHeadersPolicy: SimCfBehaviorResponseHeadersPolicy);
8
+ private readonly policies;
9
+ constructor(policies: SimCfBehaviorPolicies);
10
10
  /**
11
11
  * Configure the default Cache Behavior on a Distribution.
12
12
  */
@@ -4,16 +4,16 @@ import { simCfBehaviorProperties } from "./sim-cf-behavior-properties.js";
4
4
  * Applies Cache Behavior configuration to a sim CloudFront Distribution.
5
5
  */
6
6
  export class SimCloudFrontBehaviorConfigurator {
7
- responseHeadersPolicy;
8
- constructor(responseHeadersPolicy) {
9
- this.responseHeadersPolicy = responseHeadersPolicy;
7
+ policies;
8
+ constructor(policies) {
9
+ this.policies = policies;
10
10
  }
11
11
  /**
12
12
  * Configure the default Cache Behavior on a Distribution.
13
13
  */
14
14
  configureDefaultCacheBehavior(distribution, cacheBehavior) {
15
15
  assertDefined(cacheBehavior, "CloudFront DefaultCacheBehavior");
16
- distribution.addBehavior(simCfBehaviorProperties(cacheBehavior, this.responseHeadersPolicy));
16
+ distribution.addBehavior(simCfBehaviorProperties(cacheBehavior, this.policies));
17
17
  }
18
18
  /**
19
19
  * Configure a Cache Behavior on a Distribution.
@@ -22,7 +22,7 @@ export class SimCloudFrontBehaviorConfigurator {
22
22
  assertDefined(cacheBehavior.PathPattern, "CloudFront CacheBehavior PathPattern");
23
23
  distribution.addBehavior({
24
24
  pathPattern: cacheBehavior.PathPattern,
25
- ...simCfBehaviorProperties(cacheBehavior, this.responseHeadersPolicy),
25
+ ...simCfBehaviorProperties(cacheBehavior, this.policies),
26
26
  });
27
27
  }
28
28
  }
@@ -4,15 +4,25 @@ import type { SimCloudFrontDistribution } from "../sim-cloudfront-distribution.j
4
4
  * Applies custom error response configuration to a sim CloudFront
5
5
  * Distribution.
6
6
  *
7
- * CloudFront pairs `ResponsePagePath` and `ResponseCode`: a rule carrying one
7
+ * CloudFront pairs `ResponsePagePath` and `ResponseCode`. A rule carrying one
8
8
  * without the other is refused rather than half applied. A rule carrying
9
- * neither only configures error caching, which this simulator does not model,
10
- * so it is accepted and left out of the Distribution's request handling.
9
+ * neither configures error caching alone, and it reaches the Distribution with
10
+ * no page for the viewer to be sent.
11
11
  */
12
12
  export declare class SimCloudFrontCustomErrorConfigurator {
13
13
  /**
14
14
  * Configure one custom error response on a Distribution.
15
15
  */
16
16
  configure(distribution: SimCloudFrontDistribution, customErrorResponse: SimCloudFrontCustomErrorResponseConfig): void;
17
+ /**
18
+ * How long the rule holds its error for, which CloudFront defaults to ten
19
+ * seconds.
20
+ *
21
+ * A template can write a number as a string, and that one is read as the
22
+ * seconds it spells. Anything else falls back to the default. The
23
+ * alternative would be a stack that fails to deploy over the seconds an
24
+ * error is held for.
25
+ */
26
+ private errorCachingMinTtlSec;
17
27
  private responseCode;
18
28
  }