@kensio/yulin 1.20.17 → 1.21.1

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 (662) hide show
  1. package/README.md +1 -0
  2. package/dist/sdk/router/resolve-sim-sdk-command-router.js +4 -0
  3. package/dist/service/athena/engine/sim-athena-comparison-shims.d.ts +13 -0
  4. package/dist/service/athena/engine/sim-athena-comparison-shims.js +68 -0
  5. package/dist/service/athena/engine/sim-athena-shims.js +2 -0
  6. package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +3 -0
  7. package/dist/service/aws/factory/sim-aws-lambda-collaborators.d.ts +2 -0
  8. package/dist/service/aws/factory/sim-aws-lambda-collaborators.js +3 -0
  9. package/dist/service/aws/factory/sim-aws-logs-collaborators.d.ts +7 -0
  10. package/dist/service/aws/factory/sim-aws-logs-collaborators.js +10 -0
  11. package/dist/service/aws/factory/sim-aws-self-contained-service-builder.d.ts +3 -0
  12. package/dist/service/aws/factory/sim-aws-self-contained-service-builder.js +5 -0
  13. package/dist/service/aws/factory/sim-aws-service-factory.d.ts +3 -0
  14. package/dist/service/aws/factory/sim-aws-service-factory.js +4 -0
  15. package/dist/service/aws/sim-aws-account-region-scope.d.ts +3 -0
  16. package/dist/service/aws/sim-aws-account-region-scope.js +4 -0
  17. package/dist/service/aws/sim-aws-account.d.ts +3 -0
  18. package/dist/service/aws/sim-aws-account.js +4 -0
  19. package/dist/service/aws/sim-aws-region.d.ts +3 -0
  20. package/dist/service/aws/sim-aws-region.js +4 -0
  21. package/dist/service/aws/sim-aws-service-accessors.d.ts +3 -0
  22. package/dist/service/aws/sim-aws-service-accessors.js +4 -0
  23. package/dist/service/backup/cfn/sim-backup-cfn-plan-creator.d.ts +6 -0
  24. package/dist/service/backup/cfn/sim-backup-cfn-plan-creator.js +12 -0
  25. package/dist/service/backup/cfn/sim-backup-cfn-resource-deleter.d.ts +12 -0
  26. package/dist/service/backup/cfn/sim-backup-cfn-resource-deleter.js +31 -0
  27. package/dist/service/backup/cfn/sim-backup-cfn-resource-factory.d.ts +15 -0
  28. package/dist/service/backup/cfn/sim-backup-cfn-resource-factory.js +38 -0
  29. package/dist/service/backup/cfn/sim-backup-cfn-selection-creator.d.ts +6 -0
  30. package/dist/service/backup/cfn/sim-backup-cfn-selection-creator.js +17 -0
  31. package/dist/service/backup/cfn/sim-backup-cfn-vault-creator.d.ts +6 -0
  32. package/dist/service/backup/cfn/sim-backup-cfn-vault-creator.js +29 -0
  33. package/dist/service/backup/cfn/sim-cfn-backup-plan-properties.d.ts +11 -0
  34. package/dist/service/backup/cfn/sim-cfn-backup-plan-properties.js +37 -0
  35. package/dist/service/backup/cfn/sim-cfn-backup-properties.d.ts +12 -0
  36. package/dist/service/backup/cfn/sim-cfn-backup-properties.js +37 -0
  37. package/dist/service/backup/cfn/sim-cfn-backup-property-reader.d.ts +17 -0
  38. package/dist/service/backup/cfn/sim-cfn-backup-property-reader.js +62 -0
  39. package/dist/service/backup/cfn/sim-cfn-backup-resource-error.d.ts +7 -0
  40. package/dist/service/backup/cfn/sim-cfn-backup-resource-error.js +22 -0
  41. package/dist/service/backup/command/sim-backup-authorizer.d.ts +11 -0
  42. package/dist/service/backup/command/sim-backup-authorizer.js +24 -0
  43. package/dist/service/backup/command/sim-backup-command.types.d.ts +238 -0
  44. package/dist/service/backup/command/sim-backup-command.types.js +1 -0
  45. package/dist/service/backup/command/sim-backup-configuration-commands.d.ts +32 -0
  46. package/dist/service/backup/command/sim-backup-configuration-commands.js +138 -0
  47. package/dist/service/backup/command/sim-backup-job-commands.d.ts +23 -0
  48. package/dist/service/backup/command/sim-backup-job-commands.js +52 -0
  49. package/dist/service/backup/command/sim-backup-recovery-point-commands.d.ts +18 -0
  50. package/dist/service/backup/command/sim-backup-recovery-point-commands.js +38 -0
  51. package/dist/service/backup/command/sim-backup-request-options.d.ts +4 -0
  52. package/dist/service/backup/command/sim-backup-request-options.js +1 -0
  53. package/dist/service/backup/command/sim-backup-required-string.d.ts +2 -0
  54. package/dist/service/backup/command/sim-backup-required-string.js +8 -0
  55. package/dist/service/backup/error/sim-backup.error.d.ts +38 -0
  56. package/dist/service/backup/error/sim-backup.error.js +50 -0
  57. package/dist/service/backup/index.d.ts +9 -0
  58. package/dist/service/backup/index.js +7 -0
  59. package/dist/service/backup/job/sim-backup-job-input.d.ts +11 -0
  60. package/dist/service/backup/job/sim-backup-job-input.js +1 -0
  61. package/dist/service/backup/job/sim-backup-job-page.d.ts +22 -0
  62. package/dist/service/backup/job/sim-backup-job-page.js +54 -0
  63. package/dist/service/backup/job/sim-backup-job.d.ts +25 -0
  64. package/dist/service/backup/job/sim-backup-job.factory.d.ts +10 -0
  65. package/dist/service/backup/job/sim-backup-job.factory.js +24 -0
  66. package/dist/service/backup/job/sim-backup-job.js +54 -0
  67. package/dist/service/backup/job/sim-backup-jobs.d.ts +18 -0
  68. package/dist/service/backup/job/sim-backup-jobs.js +33 -0
  69. package/dist/service/backup/plan/sim-backup-plan-schedules.d.ts +21 -0
  70. package/dist/service/backup/plan/sim-backup-plan-schedules.js +66 -0
  71. package/dist/service/backup/plan/sim-backup-plan.d.ts +22 -0
  72. package/dist/service/backup/plan/sim-backup-plan.js +37 -0
  73. package/dist/service/backup/plan/sim-backup-rule.d.ts +9 -0
  74. package/dist/service/backup/plan/sim-backup-rule.js +71 -0
  75. package/dist/service/backup/recovery-point/sim-backup-recovery-point.d.ts +28 -0
  76. package/dist/service/backup/recovery-point/sim-backup-recovery-point.factory.d.ts +9 -0
  77. package/dist/service/backup/recovery-point/sim-backup-recovery-point.factory.js +23 -0
  78. package/dist/service/backup/recovery-point/sim-backup-recovery-point.js +62 -0
  79. package/dist/service/backup/sdk/sim-backup-sdk-command-router.d.ts +9 -0
  80. package/dist/service/backup/sdk/sim-backup-sdk-command-router.js +37 -0
  81. package/dist/service/backup/selection/sim-backup-selection.d.ts +22 -0
  82. package/dist/service/backup/selection/sim-backup-selection.js +43 -0
  83. package/dist/service/backup/sim-backup-arn.d.ts +7 -0
  84. package/dist/service/backup/sim-backup-arn.js +12 -0
  85. package/dist/service/backup/sim-backup-properties.d.ts +8 -0
  86. package/dist/service/backup/sim-backup-properties.js +1 -0
  87. package/dist/service/backup/sim-backup-resource-resolver.d.ts +24 -0
  88. package/dist/service/backup/sim-backup-resource-resolver.js +44 -0
  89. package/dist/service/backup/sim-backup-store.d.ts +29 -0
  90. package/dist/service/backup/sim-backup-store.js +80 -0
  91. package/dist/service/backup/sim-backup.d.ts +48 -0
  92. package/dist/service/backup/sim-backup.js +139 -0
  93. package/dist/service/backup/vault/sim-backup-vault-description.d.ts +12 -0
  94. package/dist/service/backup/vault/sim-backup-vault-description.js +15 -0
  95. package/dist/service/backup/vault/sim-backup-vault-lock-configuration.d.ts +5 -0
  96. package/dist/service/backup/vault/sim-backup-vault-lock-configuration.js +31 -0
  97. package/dist/service/backup/vault/sim-backup-vault-lock.d.ts +15 -0
  98. package/dist/service/backup/vault/sim-backup-vault-lock.js +23 -0
  99. package/dist/service/backup/vault/sim-backup-vault-recovery-points.d.ts +12 -0
  100. package/dist/service/backup/vault/sim-backup-vault-recovery-points.js +30 -0
  101. package/dist/service/backup/vault/sim-backup-vault-retention.d.ts +4 -0
  102. package/dist/service/backup/vault/sim-backup-vault-retention.js +20 -0
  103. package/dist/service/backup/vault/sim-backup-vault.d.ts +33 -0
  104. package/dist/service/backup/vault/sim-backup-vault.js +49 -0
  105. package/dist/service/cloudformation/resource/cfn/backup/sim-backup-cfn-value-adapter.d.ts +3 -0
  106. package/dist/service/cloudformation/resource/cfn/backup/sim-backup-cfn-value-adapter.js +66 -0
  107. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cfn-value-adapter.js +8 -0
  108. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-orp-cfn.d.ts +24 -0
  109. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-orp-cfn.js +31 -0
  110. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-cfn-value-adapter.js +6 -0
  111. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-metric-filter-cfn.d.ts +23 -0
  112. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-metric-filter-cfn.js +22 -0
  113. package/dist/service/cloudformation/resource/cfn/sim-cfn-service-value-adapters.js +2 -0
  114. package/dist/service/cloudformation/resource/ignore/sim-cfn-skipped-properties.d.ts +49 -0
  115. package/dist/service/cloudformation/resource/ignore/sim-cfn-skipped-properties.js +61 -0
  116. package/dist/service/cloudformation/resource/ignore/sim-cfn-skipped-property.type.d.ts +51 -0
  117. package/dist/service/cloudformation/resource/ignore/sim-cfn-skipped-property.type.js +1 -0
  118. package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-factories.js +4 -0
  119. package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts +12 -1
  120. package/dist/service/cloudfront/cache/sim-cf-accept-encoding.d.ts +11 -0
  121. package/dist/service/cloudfront/cache/sim-cf-accept-encoding.js +27 -0
  122. package/dist/service/cloudfront/cache/sim-cf-cache-control.d.ts +28 -0
  123. package/dist/service/cloudfront/cache/sim-cf-cache-control.js +49 -0
  124. package/dist/service/cloudfront/cache/sim-cf-cache-entry-key-path.d.ts +11 -0
  125. package/dist/service/cloudfront/cache/sim-cf-cache-entry-key-path.js +22 -0
  126. package/dist/service/cloudfront/cache/sim-cf-cache-entry-key.d.ts +32 -0
  127. package/dist/service/cloudfront/cache/sim-cf-cache-entry-key.js +112 -0
  128. package/dist/service/cloudfront/cache/sim-cf-cache-status.d.ts +27 -0
  129. package/dist/service/cloudfront/cache/sim-cf-cache-status.js +53 -0
  130. package/dist/service/cloudfront/cache/sim-cf-cache-ttl.d.ts +28 -0
  131. package/dist/service/cloudfront/cache/sim-cf-cache-ttl.js +50 -0
  132. package/dist/service/cloudfront/cache/sim-cf-cacheable-request.d.ts +35 -0
  133. package/dist/service/cloudfront/cache/sim-cf-cacheable-request.js +32 -0
  134. package/dist/service/cloudfront/cache/sim-cf-distribution-cache.d.ts +57 -0
  135. package/dist/service/cloudfront/cache/sim-cf-distribution-cache.js +115 -0
  136. package/dist/service/cloudfront/cache/sim-cf-edge.d.ts +37 -0
  137. package/dist/service/cloudfront/cache/sim-cf-edge.js +34 -0
  138. package/dist/service/cloudfront/cache/sim-cf-error-cache-ttl.d.ts +36 -0
  139. package/dist/service/cloudfront/cache/sim-cf-error-cache-ttl.js +28 -0
  140. package/dist/service/cloudfront/cache/sim-cf-http-date.d.ts +15 -0
  141. package/dist/service/cloudfront/cache/sim-cf-http-date.js +40 -0
  142. package/dist/service/cloudfront/cache-policy/sim-cf-cache-key.d.ts +63 -0
  143. package/dist/service/cloudfront/cache-policy/sim-cf-cache-key.js +70 -0
  144. package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy.d.ts +13 -3
  145. package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy.js +31 -3
  146. package/dist/service/cloudfront/cache-policy/sim-cf-managed-cache-policies.d.ts +8 -3
  147. package/dist/service/cloudfront/cache-policy/sim-cf-managed-cache-policies.js +96 -12
  148. package/dist/service/cloudfront/cff/sim-cff-search-distribution.fixture.js +4 -0
  149. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-config.d.ts +9 -8
  150. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-config.js +40 -11
  151. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-key.d.ts +10 -0
  152. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-key.js +50 -0
  153. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-section.d.ts +28 -0
  154. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-section.js +29 -0
  155. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-behavior-policy-kinds.d.ts +16 -0
  156. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-behavior-policy-kinds.js +23 -0
  157. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-behavior-policies.d.ts +3 -2
  158. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-behavior-policies.js +3 -2
  159. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.d.ts +6 -6
  160. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js +6 -6
  161. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-policy-drops.js +8 -23
  162. package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-config.d.ts +28 -0
  163. package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-config.js +46 -0
  164. package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-creator.d.ts +24 -0
  165. package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-creator.js +32 -0
  166. package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-forwarding.d.ts +10 -0
  167. package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-forwarding.js +51 -0
  168. package/dist/service/cloudfront/cfn/policy/sim-cfn-cf-policy-section.d.ts +22 -0
  169. package/dist/service/cloudfront/cfn/policy/sim-cfn-cf-policy-section.js +54 -0
  170. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.d.ts +1 -0
  171. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.js +12 -0
  172. package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts +1 -0
  173. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts +2 -0
  174. package/dist/service/cloudfront/command/invalidation/sim-cf-create-invalidation.d.ts +28 -0
  175. package/dist/service/cloudfront/command/invalidation/sim-cf-create-invalidation.js +59 -0
  176. package/dist/service/cloudfront/command/invalidation/sim-cf-get-invalidation.d.ts +19 -0
  177. package/dist/service/cloudfront/command/invalidation/sim-cf-get-invalidation.js +32 -0
  178. package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-access.d.ts +36 -0
  179. package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-access.js +45 -0
  180. package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-command.types.d.ts +80 -0
  181. package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-command.types.js +1 -0
  182. package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-commands.d.ts +39 -0
  183. package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-commands.js +35 -0
  184. package/dist/service/cloudfront/command/invalidation/sim-cf-list-invalidations.d.ts +23 -0
  185. package/dist/service/cloudfront/command/invalidation/sim-cf-list-invalidations.js +39 -0
  186. package/dist/service/cloudfront/command/update-distribution/update-distribution.handler.d.ts +2 -0
  187. package/dist/service/cloudfront/controller/content/sim-cf-content-stage.d.ts +51 -0
  188. package/dist/service/cloudfront/controller/content/sim-cf-content-stage.js +65 -0
  189. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.d.ts +2 -3
  190. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.js +4 -4
  191. package/dist/service/cloudfront/controller/error/sim-cf-custom-error-responder.d.ts +4 -0
  192. package/dist/service/cloudfront/controller/error/sim-cf-custom-error-responder.js +12 -8
  193. package/dist/service/cloudfront/controller/origin/sim-cf-origin-stage.d.ts +2 -2
  194. package/dist/service/cloudfront/controller/origin/sim-cf-origin-stage.js +2 -2
  195. package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.d.ts +6 -6
  196. package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.js +35 -20
  197. package/dist/service/cloudfront/custom-error/sim-cloudfront-custom-error-response.d.ts +23 -5
  198. package/dist/service/cloudfront/custom-error/sim-cloudfront-custom-error-response.js +8 -0
  199. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-origin-request-policy.d.ts +18 -0
  200. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-origin-request-policy.js +30 -0
  201. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-policies.d.ts +7 -5
  202. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-policies.js +8 -5
  203. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.js +4 -1
  204. package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.d.ts +2 -0
  205. package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.js +6 -2
  206. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-custom-error-configurator.d.ts +13 -3
  207. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-custom-error-configurator.js +27 -6
  208. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.d.ts +3 -1
  209. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.js +4 -1
  210. package/dist/service/cloudfront/distribution/sim-cf-distribution-configuration-state.d.ts +5 -3
  211. package/dist/service/cloudfront/distribution/sim-cf-distribution-reconfigurer.d.ts +2 -0
  212. package/dist/service/cloudfront/distribution/sim-cf-distribution-view.js +1 -1
  213. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.d.ts +25 -2
  214. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.js +24 -0
  215. package/dist/service/cloudfront/error/sim-cf-invalidation.error.d.ts +22 -0
  216. package/dist/service/cloudfront/error/sim-cf-invalidation.error.js +26 -0
  217. package/dist/service/cloudfront/error/sim-cf-origin-request-policy.error.d.ts +22 -0
  218. package/dist/service/cloudfront/error/sim-cf-origin-request-policy.error.js +26 -0
  219. package/dist/service/cloudfront/index.d.ts +2 -0
  220. package/dist/service/cloudfront/index.js +1 -0
  221. package/dist/service/cloudfront/invalidation/sim-cf-invalidation-path.d.ts +22 -0
  222. package/dist/service/cloudfront/invalidation/sim-cf-invalidation-path.js +32 -0
  223. package/dist/service/cloudfront/invalidation/sim-cf-invalidation-view.d.ts +43 -0
  224. package/dist/service/cloudfront/invalidation/sim-cf-invalidation-view.js +33 -0
  225. package/dist/service/cloudfront/invalidation/sim-cf-invalidation.d.ts +55 -0
  226. package/dist/service/cloudfront/invalidation/sim-cf-invalidation.js +56 -0
  227. package/dist/service/cloudfront/invalidation/sim-cf-invalidations.d.ts +41 -0
  228. package/dist/service/cloudfront/invalidation/sim-cf-invalidations.js +58 -0
  229. package/dist/service/cloudfront/invalidation/sim-cf-repeated-invalidation.d.ts +15 -0
  230. package/dist/service/cloudfront/invalidation/sim-cf-repeated-invalidation.js +23 -0
  231. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-forwarding.d.ts +19 -0
  232. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-forwarding.js +116 -0
  233. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts +15 -5
  234. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js +13 -8
  235. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-signer.js +8 -5
  236. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.d.ts +13 -0
  237. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js +8 -0
  238. package/dist/service/cloudfront/origin-request-policy/sim-cf-behavior-forwarded.d.ts +24 -0
  239. package/dist/service/cloudfront/origin-request-policy/sim-cf-behavior-forwarded.js +21 -0
  240. package/dist/service/cloudfront/origin-request-policy/sim-cf-forwarded-to-origin.d.ts +57 -0
  241. package/dist/service/cloudfront/origin-request-policy/sim-cf-forwarded-to-origin.js +129 -0
  242. package/dist/service/cloudfront/origin-request-policy/sim-cf-managed-origin-request-policies.d.ts +30 -0
  243. package/dist/service/cloudfront/origin-request-policy/sim-cf-managed-origin-request-policies.js +121 -0
  244. package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-forwarding.d.ts +56 -0
  245. package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-forwarding.js +67 -0
  246. package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy-registry.d.ts +38 -0
  247. package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy-registry.js +51 -0
  248. package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy.d.ts +32 -0
  249. package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy.js +30 -0
  250. package/dist/service/cloudfront/registry/sim-cloud-front-registry.d.ts +25 -0
  251. package/dist/service/cloudfront/registry/sim-cloud-front-registry.js +23 -0
  252. package/dist/service/cloudfront/sdk/sim-cloudfront-sdk-command-router.js +12 -0
  253. package/dist/service/cloudfront/sim-cloudfront-caching.d.ts +31 -0
  254. package/dist/service/cloudfront/sim-cloudfront-caching.js +38 -0
  255. package/dist/service/cloudfront/sim-cloudfront-commands.d.ts +12 -0
  256. package/dist/service/cloudfront/sim-cloudfront-commands.js +12 -0
  257. package/dist/service/cloudfront/sim-cloudfront-distributions.d.ts +21 -0
  258. package/dist/service/cloudfront/sim-cloudfront-distributions.js +23 -0
  259. package/dist/service/cloudfront/sim-cloudfront-origin-access-controls.d.ts +30 -0
  260. package/dist/service/cloudfront/sim-cloudfront-origin-access-controls.js +35 -0
  261. package/dist/service/cloudfront/sim-cloudfront-policies.d.ts +22 -5
  262. package/dist/service/cloudfront/sim-cloudfront-policies.js +27 -5
  263. package/dist/service/cloudfront/sim-cloudfront.d.ts +15 -31
  264. package/dist/service/cloudfront/sim-cloudfront.js +23 -41
  265. package/dist/service/cloudwatch/index.d.ts +1 -0
  266. package/dist/service/cloudwatch/index.js +1 -0
  267. package/dist/service/cloudwatch/sim-cloudwatch-commands.d.ts +2 -0
  268. package/dist/service/cloudwatch/sim-cloudwatch-commands.js +6 -0
  269. package/dist/service/cloudwatch/sim-cloudwatch.d.ts +9 -0
  270. package/dist/service/cloudwatch/sim-cloudwatch.js +10 -0
  271. package/dist/service/cloudwatch/write/sim-cloudwatch-service-writer.d.ts +58 -0
  272. package/dist/service/cloudwatch/write/sim-cloudwatch-service-writer.js +53 -0
  273. package/dist/service/cognito/command/auth/sim-cognito-admin-respond-to-challenge.d.ts +3 -0
  274. package/dist/service/cognito/command/auth/sim-cognito-admin-respond-to-challenge.js +8 -2
  275. package/dist/service/cognito/command/auth/sim-cognito-auth-commands.d.ts +3 -0
  276. package/dist/service/cognito/command/auth/sim-cognito-auth-commands.js +4 -0
  277. package/dist/service/cognito/command/auth/sim-cognito-auth-flow-runner.d.ts +11 -1
  278. package/dist/service/cognito/command/auth/sim-cognito-auth-flow-runner.js +13 -1
  279. package/dist/service/cognito/command/auth/sim-cognito-auth-resolver.d.ts +3 -0
  280. package/dist/service/cognito/command/auth/sim-cognito-auth-resolver.js +16 -4
  281. package/dist/service/cognito/command/auth/sim-cognito-get-tokens-from-refresh-token.d.ts +7 -0
  282. package/dist/service/cognito/command/auth/sim-cognito-get-tokens-from-refresh-token.js +11 -1
  283. package/dist/service/cognito/command/auth/sim-cognito-respond-to-challenge.d.ts +3 -0
  284. package/dist/service/cognito/command/auth/sim-cognito-respond-to-challenge.js +8 -2
  285. package/dist/service/cognito/command/hosted/hosted-auth.command.d.ts +19 -0
  286. package/dist/service/cognito/command/hosted/sim-cognito-authorize-endpoint.d.ts +1 -1
  287. package/dist/service/cognito/command/hosted/sim-cognito-authorize-endpoint.js +3 -2
  288. package/dist/service/cognito/command/hosted/sim-cognito-hosted-commands.d.ts +8 -0
  289. package/dist/service/cognito/command/hosted/sim-cognito-hosted-commands.js +11 -3
  290. package/dist/service/cognito/command/hosted/sim-cognito-hosted-passkey-sign-in.d.ts +11 -1
  291. package/dist/service/cognito/command/hosted/sim-cognito-hosted-passkey-sign-in.js +13 -2
  292. package/dist/service/cognito/command/hosted/sim-cognito-hosted-password-sign-in.d.ts +11 -1
  293. package/dist/service/cognito/command/hosted/sim-cognito-hosted-password-sign-in.js +11 -1
  294. package/dist/service/cognito/command/hosted/sim-cognito-hosted-sign-in.d.ts +7 -1
  295. package/dist/service/cognito/command/hosted/sim-cognito-hosted-sign-in.js +18 -7
  296. package/dist/service/cognito/command/hosted/sim-cognito-hosted-signed-in.d.ts +20 -3
  297. package/dist/service/cognito/command/hosted/sim-cognito-hosted-signed-in.js +19 -3
  298. package/dist/service/cognito/command/hosted/sim-cognito-token-endpoint.d.ts +2 -0
  299. package/dist/service/cognito/command/hosted/sim-cognito-token-grants.d.ts +8 -0
  300. package/dist/service/cognito/command/hosted/sim-cognito-token-grants.js +13 -4
  301. package/dist/service/cognito/command/sim-cognito-commands.d.ts +5 -0
  302. package/dist/service/cognito/command/sim-cognito-commands.js +22 -2
  303. package/dist/service/cognito/command/user/sim-cognito-confirm-sign-up-commands.d.ts +74 -0
  304. package/dist/service/cognito/command/user/sim-cognito-confirm-sign-up-commands.js +110 -0
  305. package/dist/service/cognito/command/user/sim-cognito-sign-up-commands.d.ts +5 -49
  306. package/dist/service/cognito/command/user/sim-cognito-sign-up-commands.js +7 -87
  307. package/dist/service/cognito/command/user/sim-cognito-user-commands.d.ts +4 -0
  308. package/dist/service/cognito/command/user/sim-cognito-user-commands.js +38 -29
  309. package/dist/service/cognito/error/sim-cognito-managed-login.error.d.ts +23 -0
  310. package/dist/service/cognito/error/sim-cognito-managed-login.error.js +36 -0
  311. package/dist/service/cognito/error/sim-cognito-throttle.error.d.ts +13 -0
  312. package/dist/service/cognito/error/sim-cognito-throttle.error.js +15 -0
  313. package/dist/service/cognito/index.d.ts +2 -0
  314. package/dist/service/cognito/index.js +2 -0
  315. package/dist/service/cognito/metric/sim-cognito-counted-request.d.ts +50 -0
  316. package/dist/service/cognito/metric/sim-cognito-counted-request.js +51 -0
  317. package/dist/service/cognito/metric/sim-cognito-metrics.d.ts +22 -0
  318. package/dist/service/cognito/metric/sim-cognito-metrics.js +26 -0
  319. package/dist/service/cognito/metric/sim-cognito-pool-metrics.d.ts +40 -0
  320. package/dist/service/cognito/metric/sim-cognito-pool-metrics.js +51 -0
  321. package/dist/service/cognito/metric/sim-cognito-throttled-request.d.ts +11 -0
  322. package/dist/service/cognito/metric/sim-cognito-throttled-request.js +15 -0
  323. package/dist/service/cognito/serve/page/sim-cognito-managed-login.d.ts +1 -0
  324. package/dist/service/cognito/serve/page/sim-cognito-managed-login.js +6 -1
  325. package/dist/service/cognito/serve/page/sim-cognito-page-markup.d.ts +4 -1
  326. package/dist/service/cognito/serve/page/sim-cognito-page-markup.js +6 -2
  327. package/dist/service/cognito/serve/page/sim-cognito-provider-page.d.ts +35 -0
  328. package/dist/service/cognito/serve/page/sim-cognito-provider-page.js +50 -0
  329. package/dist/service/cognito/sim-cognito-identity-provider.d.ts +6 -0
  330. package/dist/service/cognito/sim-cognito-identity-provider.js +1 -0
  331. package/dist/service/cognito/sim-cognito-user-directory.js +3 -3
  332. package/dist/service/cognito/user-pool/auth/sim-cognito-authorization-code.d.ts +9 -0
  333. package/dist/service/cognito/user-pool/auth/sim-cognito-authorization-code.js +2 -0
  334. package/dist/service/cognito/user-pool/auth/sim-cognito-pool-auth.d.ts +8 -0
  335. package/dist/service/cognito/user-pool/auth/sim-cognito-pool-auth.js +8 -0
  336. package/dist/service/cognito/user-pool/auth/sim-cognito-request-throttle.d.ts +36 -0
  337. package/dist/service/cognito/user-pool/auth/sim-cognito-request-throttle.js +45 -0
  338. package/dist/service/cognito/user-pool/idp/sim-cognito-federated-sign-in.d.ts +42 -9
  339. package/dist/service/cognito/user-pool/idp/sim-cognito-federated-sign-in.js +56 -27
  340. package/dist/service/cognito/user-pool/idp/sim-cognito-federated-triggers.d.ts +52 -0
  341. package/dist/service/cognito/user-pool/idp/sim-cognito-federated-triggers.js +49 -0
  342. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.d.ts +48 -0
  343. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.js +94 -0
  344. package/dist/service/cognito/user-pool/idp/sim-cognito-same-federated-identity.d.ts +13 -0
  345. package/dist/service/cognito/user-pool/idp/sim-cognito-same-federated-identity.js +19 -0
  346. package/dist/service/cognito/user-pool/idp/sim-cognito-user-pool-identity-provider.d.ts +7 -0
  347. package/dist/service/cognito/user-pool/idp/sim-cognito-user-pool-identity-provider.js +9 -0
  348. package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-name.d.ts +3 -2
  349. package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-name.js +3 -2
  350. package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-occasion.d.ts +18 -1
  351. package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-occasion.js +35 -18
  352. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.d.ts +6 -5
  353. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.js +6 -5
  354. package/dist/service/iam/authorize/context/sim-iam-auth-z-input.d.ts +6 -4
  355. package/dist/service/kms/command/sim-kms-request-options.d.ts +9 -5
  356. package/dist/service/lambda/command/create-function/create-function.handler.d.ts +3 -0
  357. package/dist/service/lambda/command/create-function/create-function.handler.js +4 -1
  358. package/dist/service/lambda/command/function/sim-lambda-function-commands.d.ts +2 -0
  359. package/dist/service/lambda/event-source/poll/kinesis/sim-lambda-kinesis-stream-delivery.js +7 -11
  360. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.js +7 -8
  361. package/dist/service/lambda/event-source/poll/sim-lambda-stream-iterator-age.d.ts +11 -0
  362. package/dist/service/lambda/event-source/poll/sim-lambda-stream-iterator-age.js +31 -0
  363. package/dist/service/lambda/event-source/poll/sim-lambda-stream-sequence-numbers.d.ts +10 -0
  364. package/dist/service/lambda/event-source/poll/sim-lambda-stream-sequence-numbers.js +12 -0
  365. package/dist/service/lambda/function/sim-lambda-function.d.ts +3 -0
  366. package/dist/service/lambda/function/sim-lambda-function.js +6 -2
  367. package/dist/service/lambda/function/sim-lambda-function.type.d.ts +7 -0
  368. package/dist/service/lambda/metric/sim-lambda-function-metrics.d.ts +47 -0
  369. package/dist/service/lambda/metric/sim-lambda-function-metrics.js +83 -0
  370. package/dist/service/lambda/metric/sim-lambda-iterator-age.d.ts +29 -0
  371. package/dist/service/lambda/metric/sim-lambda-iterator-age.js +41 -0
  372. package/dist/service/lambda/metric/sim-lambda-metrics.d.ts +12 -0
  373. package/dist/service/lambda/metric/sim-lambda-metrics.js +13 -0
  374. package/dist/service/lambda/sim-lambda-commands.d.ts +2 -0
  375. package/dist/service/lambda/sim-lambda-commands.js +2 -1
  376. package/dist/service/logs/cfn/metric/sim-cfn-metric-dimension-values.d.ts +9 -0
  377. package/dist/service/logs/cfn/metric/sim-cfn-metric-dimension-values.js +25 -0
  378. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-creator.d.ts +30 -0
  379. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-creator.js +52 -0
  380. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-properties.d.ts +40 -0
  381. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-properties.js +66 -0
  382. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-property-rules.d.ts +19 -0
  383. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-property-rules.js +40 -0
  384. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-unsimulated-properties.d.ts +5 -0
  385. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-unsimulated-properties.js +23 -0
  386. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-value.d.ts +25 -0
  387. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-value.js +58 -0
  388. package/dist/service/logs/cfn/metric/sim-cfn-metric-transformation-values.d.ts +6 -0
  389. package/dist/service/logs/cfn/metric/sim-cfn-metric-transformation-values.js +19 -0
  390. package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.d.ts +2 -0
  391. package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.js +4 -0
  392. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.d.ts +5 -3
  393. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.js +12 -3
  394. package/dist/service/logs/command/delivery/sim-logs-delivery-source-commands.d.ts +6 -4
  395. package/dist/service/logs/command/delivery/sim-logs-delivery-source-commands.js +13 -4
  396. package/dist/service/logs/command/event/sim-logs-put-log-events.d.ts +3 -0
  397. package/dist/service/logs/command/event/sim-logs-put-log-events.js +3 -0
  398. package/dist/service/logs/command/group/sim-logs-log-group-commands.js +3 -3
  399. package/dist/service/logs/command/metric/metric-filter.command.d.ts +79 -0
  400. package/dist/service/logs/command/metric/metric-filter.command.js +1 -0
  401. package/dist/service/logs/command/metric/sim-logs-metric-filter-commands.d.ts +48 -0
  402. package/dist/service/logs/command/metric/sim-logs-metric-filter-commands.js +95 -0
  403. package/dist/service/logs/command/metric/sim-logs-metric-filter-input.d.ts +11 -0
  404. package/dist/service/logs/command/metric/sim-logs-metric-filter-input.js +79 -0
  405. package/dist/service/logs/command/sim-logs-command.types.d.ts +1 -0
  406. package/dist/service/logs/delivery/cloudfront/sim-logs-vended-log-delivery.d.ts +23 -0
  407. package/dist/service/logs/delivery/cloudfront/sim-logs-vended-log-delivery.js +28 -0
  408. package/dist/service/logs/group/sim-logs-log-group.d.ts +6 -0
  409. package/dist/service/logs/group/sim-logs-log-group.js +6 -0
  410. package/dist/service/logs/index.d.ts +6 -0
  411. package/dist/service/logs/index.js +4 -0
  412. package/dist/service/logs/metric/cloudwatch/sim-aws-logs-metric-filter-metrics.d.ts +40 -0
  413. package/dist/service/logs/metric/cloudwatch/sim-aws-logs-metric-filter-metrics.js +78 -0
  414. package/dist/service/logs/metric/emf/sim-logs-embedded-metric-datapoints.d.ts +25 -0
  415. package/dist/service/logs/metric/emf/sim-logs-embedded-metric-datapoints.js +81 -0
  416. package/dist/service/logs/metric/emf/sim-logs-embedded-metric-document.d.ts +57 -0
  417. package/dist/service/logs/metric/emf/sim-logs-embedded-metric-document.js +85 -0
  418. package/dist/service/logs/metric/emf/sim-logs-embedded-metric-json.d.ts +24 -0
  419. package/dist/service/logs/metric/emf/sim-logs-embedded-metric-json.js +41 -0
  420. package/dist/service/logs/metric/emf/sim-logs-embedded-metric-values.d.ts +20 -0
  421. package/dist/service/logs/metric/emf/sim-logs-embedded-metric-values.js +39 -0
  422. package/dist/service/logs/metric/sim-logs-metric-datapoint.d.ts +25 -0
  423. package/dist/service/logs/metric/sim-logs-metric-datapoint.js +1 -0
  424. package/dist/service/logs/metric/sim-logs-metric-fan-out.d.ts +62 -0
  425. package/dist/service/logs/metric/sim-logs-metric-fan-out.js +116 -0
  426. package/dist/service/logs/metric/sim-logs-metric-filter-selection.d.ts +17 -0
  427. package/dist/service/logs/metric/sim-logs-metric-filter-selection.js +17 -0
  428. package/dist/service/logs/metric/sim-logs-metric-filter-store.d.ts +35 -0
  429. package/dist/service/logs/metric/sim-logs-metric-filter-store.js +47 -0
  430. package/dist/service/logs/metric/sim-logs-metric-filter.d.ts +49 -0
  431. package/dist/service/logs/metric/sim-logs-metric-filter.js +95 -0
  432. package/dist/service/logs/metric/sim-logs-metric-publication-failure.d.ts +31 -0
  433. package/dist/service/logs/metric/sim-logs-metric-publication-failure.js +12 -0
  434. package/dist/service/logs/metric/sim-logs-metric-publications.d.ts +11 -0
  435. package/dist/service/logs/metric/sim-logs-metric-publications.js +1 -0
  436. package/dist/service/logs/metric/sim-logs-metric-transformation.d.ts +45 -0
  437. package/dist/service/logs/metric/sim-logs-metric-transformation.js +127 -0
  438. package/dist/service/logs/sdk/sim-logs-sdk-command-router.js +12 -0
  439. package/dist/service/logs/sim-logs-commands.d.ts +12 -0
  440. package/dist/service/logs/sim-logs-commands.js +17 -0
  441. package/dist/service/logs/sim-logs-metric-operations.d.ts +31 -0
  442. package/dist/service/logs/sim-logs-metric-operations.js +37 -0
  443. package/dist/service/logs/sim-logs.d.ts +4 -3
  444. package/dist/service/logs/sim-logs.js +4 -3
  445. package/dist/service/logs/write/sim-logs-service-writer.d.ts +3 -0
  446. package/dist/service/logs/write/sim-logs-service-writer.js +5 -1
  447. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.d.ts +32 -0
  448. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.js +31 -1
  449. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.d.ts +13 -2
  450. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.js +18 -1
  451. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.d.ts +17 -1
  452. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.js +27 -3
  453. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.d.ts +45 -0
  454. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.js +90 -0
  455. package/dist/service/s3/bucket/lock/sim-s3-bucket-object-lock.d.ts +42 -0
  456. package/dist/service/s3/bucket/lock/sim-s3-bucket-object-lock.js +59 -0
  457. package/dist/service/s3/bucket/lock/sim-s3-default-retention.d.ts +8 -0
  458. package/dist/service/s3/bucket/lock/sim-s3-default-retention.js +15 -0
  459. package/dist/service/s3/bucket/lock/sim-s3-object-lock-configuration.d.ts +49 -0
  460. package/dist/service/s3/bucket/lock/sim-s3-object-lock-configuration.js +102 -0
  461. package/dist/service/s3/bucket/lock/sim-s3-object-lock-output.d.ts +14 -0
  462. package/dist/service/s3/bucket/lock/sim-s3-object-lock-output.js +1 -0
  463. package/dist/service/s3/bucket/lock/sim-s3-object-lock.d.ts +62 -0
  464. package/dist/service/s3/bucket/lock/sim-s3-object-lock.js +100 -0
  465. package/dist/service/s3/bucket/lock/sim-s3-object-retention.d.ts +55 -0
  466. package/dist/service/s3/bucket/lock/sim-s3-object-retention.js +82 -0
  467. package/dist/service/s3/bucket/notification/sim-s3-notification-event.d.ts +1 -1
  468. package/dist/service/s3/bucket/notification/sim-s3-notification-event.js +9 -1
  469. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-events.d.ts +1 -1
  470. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-events.js +1 -2
  471. package/dist/service/s3/bucket/sim-s3-bucket-objects.d.ts +114 -0
  472. package/dist/service/s3/bucket/sim-s3-bucket-objects.js +148 -0
  473. package/dist/service/s3/bucket/sim-s3-bucket.d.ts +30 -29
  474. package/dist/service/s3/bucket/sim-s3-bucket.js +42 -45
  475. package/dist/service/s3/bucket/sim-s3-object-deletion.d.ts +30 -0
  476. package/dist/service/s3/bucket/sim-s3-object-deletion.js +29 -0
  477. package/dist/service/s3/bucket/versioning/sim-s3-bucket-versioning.d.ts +61 -0
  478. package/dist/service/s3/bucket/versioning/sim-s3-bucket-versioning.js +65 -0
  479. package/dist/service/s3/bucket/versioning/sim-s3-bucket-versions.d.ts +97 -0
  480. package/dist/service/s3/bucket/versioning/sim-s3-bucket-versions.js +176 -0
  481. package/dist/service/s3/bucket/versioning/sim-s3-compare-keys.d.ts +10 -0
  482. package/dist/service/s3/bucket/versioning/sim-s3-compare-keys.js +16 -0
  483. package/dist/service/s3/bucket/versioning/sim-s3-object-version.d.ts +85 -0
  484. package/dist/service/s3/bucket/versioning/sim-s3-object-version.js +101 -0
  485. package/dist/service/s3/bucket/versioning/sim-s3-object-versions.d.ts +52 -0
  486. package/dist/service/s3/bucket/versioning/sim-s3-object-versions.js +91 -0
  487. package/dist/service/s3/bucket/versioning/sim-s3-version-page.d.ts +32 -0
  488. package/dist/service/s3/bucket/versioning/sim-s3-version-page.js +45 -0
  489. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.d.ts +0 -5
  490. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.js +3 -14
  491. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.d.ts +18 -1
  492. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.js +34 -1
  493. package/dist/service/s3/cfn/bucket/lock/sim-cfn-s3-bucket-object-lock-configuration.d.ts +37 -0
  494. package/dist/service/s3/cfn/bucket/lock/sim-cfn-s3-bucket-object-lock-configuration.js +78 -0
  495. package/dist/service/s3/cfn/bucket/replication/sim-cfn-s3-bucket-replication-rules.d.ts +20 -0
  496. package/dist/service/s3/cfn/bucket/replication/sim-cfn-s3-bucket-replication-rules.js +107 -0
  497. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.d.ts +14 -7
  498. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js +29 -37
  499. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.d.ts +62 -0
  500. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.js +89 -0
  501. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.d.ts +9 -5
  502. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.js +16 -16
  503. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-rules.d.ts +9 -5
  504. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-rules.js +17 -6
  505. package/dist/service/s3/cfn/bucket/versioning/sim-cfn-s3-bucket-versioning-configuration.d.ts +19 -0
  506. package/dist/service/s3/cfn/bucket/versioning/sim-cfn-s3-bucket-versioning-configuration.js +28 -0
  507. package/dist/service/s3/command/authorize/sim-s3-authorize-action.d.ts +24 -0
  508. package/dist/service/s3/command/authorize/sim-s3-authorize-action.js +30 -0
  509. package/dist/service/s3/command/complete-multipart-upload/complete-multipart-upload.command.d.ts +2 -0
  510. package/dist/service/s3/command/complete-multipart-upload/complete-multipart-upload.handler.js +3 -1
  511. package/dist/service/s3/command/copy-object/copy-object.command.d.ts +3 -1
  512. package/dist/service/s3/command/copy-object/copy-object.handler.js +3 -1
  513. package/dist/service/s3/command/delete-object/delete-object-version-removal.d.ts +50 -0
  514. package/dist/service/s3/command/delete-object/delete-object-version-removal.js +52 -0
  515. package/dist/service/s3/command/delete-object/delete-object.command.d.ts +19 -2
  516. package/dist/service/s3/command/delete-object/delete-object.handler.d.ts +7 -1
  517. package/dist/service/s3/command/delete-object/delete-object.handler.js +28 -16
  518. package/dist/service/s3/command/delete-object/sim-s3-notify-deleted.d.ts +24 -0
  519. package/dist/service/s3/command/delete-object/sim-s3-notify-deleted.js +32 -0
  520. package/dist/service/s3/command/delete-objects/delete-object-attempt.d.ts +6 -2
  521. package/dist/service/s3/command/delete-objects/delete-object-attempt.js +6 -2
  522. package/dist/service/s3/command/delete-objects/delete-objects-key-removal.js +10 -9
  523. package/dist/service/s3/command/delete-objects/delete-objects-outcome.js +9 -1
  524. package/dist/service/s3/command/delete-objects/delete-objects.command.d.ts +6 -0
  525. package/dist/service/s3/command/get-bucket-versioning/get-bucket-versioning.command.d.ts +23 -0
  526. package/dist/service/s3/command/get-bucket-versioning/get-bucket-versioning.command.js +1 -0
  527. package/dist/service/s3/command/get-bucket-versioning/get-bucket-versioning.handler.d.ts +31 -0
  528. package/dist/service/s3/command/get-bucket-versioning/get-bucket-versioning.handler.js +40 -0
  529. package/dist/service/s3/command/get-object/get-object-loader.d.ts +3 -2
  530. package/dist/service/s3/command/get-object/get-object-loader.js +9 -4
  531. package/dist/service/s3/command/get-object/get-object.command.d.ts +9 -1
  532. package/dist/service/s3/command/get-object/get-object.handler.js +1 -1
  533. package/dist/service/s3/command/get-object-lock-configuration/get-object-lock-configuration.command.d.ts +25 -0
  534. package/dist/service/s3/command/get-object-lock-configuration/get-object-lock-configuration.command.js +1 -0
  535. package/dist/service/s3/command/get-object-lock-configuration/get-object-lock-configuration.handler.d.ts +31 -0
  536. package/dist/service/s3/command/get-object-lock-configuration/get-object-lock-configuration.handler.js +41 -0
  537. package/dist/service/s3/command/head-object/head-object-loader.d.ts +1 -1
  538. package/dist/service/s3/command/head-object/head-object-loader.js +7 -3
  539. package/dist/service/s3/command/head-object/head-object.command.d.ts +9 -1
  540. package/dist/service/s3/command/head-object/head-object.handler.js +1 -1
  541. package/dist/service/s3/command/list-object-versions/list-object-versions-listing.d.ts +31 -0
  542. package/dist/service/s3/command/list-object-versions/list-object-versions-listing.js +55 -0
  543. package/dist/service/s3/command/list-object-versions/list-object-versions-summaries.d.ts +17 -0
  544. package/dist/service/s3/command/list-object-versions/list-object-versions-summaries.js +34 -0
  545. package/dist/service/s3/command/list-object-versions/list-object-versions.command.d.ts +59 -0
  546. package/dist/service/s3/command/list-object-versions/list-object-versions.command.js +1 -0
  547. package/dist/service/s3/command/list-object-versions/list-object-versions.handler.d.ts +34 -0
  548. package/dist/service/s3/command/list-object-versions/list-object-versions.handler.js +62 -0
  549. package/dist/service/s3/command/object/sim-s3-read-object-version.d.ts +34 -0
  550. package/dist/service/s3/command/object/sim-s3-read-object-version.js +52 -0
  551. package/dist/service/s3/command/object-lock/sim-s3-locked-version.d.ts +11 -0
  552. package/dist/service/s3/command/object-lock/sim-s3-locked-version.js +27 -0
  553. package/dist/service/s3/command/object-lock/sim-s3-object-lock-authorizer.d.ts +42 -0
  554. package/dist/service/s3/command/object-lock/sim-s3-object-lock-authorizer.js +66 -0
  555. package/dist/service/s3/command/object-lock/sim-s3-object-lock-commands.d.ts +30 -0
  556. package/dist/service/s3/command/object-lock/sim-s3-object-lock-commands.js +41 -0
  557. package/dist/service/s3/command/put-bucket-versioning/put-bucket-versioning.command.d.ts +21 -0
  558. package/dist/service/s3/command/put-bucket-versioning/put-bucket-versioning.command.js +1 -0
  559. package/dist/service/s3/command/put-bucket-versioning/put-bucket-versioning.handler.d.ts +31 -0
  560. package/dist/service/s3/command/put-bucket-versioning/put-bucket-versioning.handler.js +44 -0
  561. package/dist/service/s3/command/put-object/put-object.command.d.ts +3 -0
  562. package/dist/service/s3/command/put-object/put-object.handler.js +10 -10
  563. package/dist/service/s3/command/put-object-legal-hold/put-object-legal-hold.command.d.ts +24 -0
  564. package/dist/service/s3/command/put-object-legal-hold/put-object-legal-hold.command.js +1 -0
  565. package/dist/service/s3/command/put-object-legal-hold/put-object-legal-hold.handler.d.ts +32 -0
  566. package/dist/service/s3/command/put-object-legal-hold/put-object-legal-hold.handler.js +41 -0
  567. package/dist/service/s3/command/put-object-lock-configuration/put-object-lock-configuration.command.d.ts +21 -0
  568. package/dist/service/s3/command/put-object-lock-configuration/put-object-lock-configuration.command.js +1 -0
  569. package/dist/service/s3/command/put-object-lock-configuration/put-object-lock-configuration.handler.d.ts +32 -0
  570. package/dist/service/s3/command/put-object-lock-configuration/put-object-lock-configuration.handler.js +47 -0
  571. package/dist/service/s3/command/put-object-retention/put-object-retention.command.d.ts +29 -0
  572. package/dist/service/s3/command/put-object-retention/put-object-retention.command.js +1 -0
  573. package/dist/service/s3/command/put-object-retention/put-object-retention.handler.d.ts +31 -0
  574. package/dist/service/s3/command/put-object-retention/put-object-retention.handler.js +42 -0
  575. package/dist/service/s3/command/sim-s3-command.types.d.ts +7 -0
  576. package/dist/service/s3/command/versioning/sim-s3-versioning-authorizer.d.ts +35 -0
  577. package/dist/service/s3/command/versioning/sim-s3-versioning-authorizer.js +57 -0
  578. package/dist/service/s3/command/versioning/sim-s3-versioning-commands.d.ts +26 -0
  579. package/dist/service/s3/command/versioning/sim-s3-versioning-commands.js +34 -0
  580. package/dist/service/s3/command/versioning/sim-s3-versioning-configuration-validation.d.ts +13 -0
  581. package/dist/service/s3/command/versioning/sim-s3-versioning-configuration-validation.js +28 -0
  582. package/dist/service/s3/error/sim-s3-object-lock.error.d.ts +22 -0
  583. package/dist/service/s3/error/sim-s3-object-lock.error.js +26 -0
  584. package/dist/service/s3/error/sim-s3.error.d.ts +22 -0
  585. package/dist/service/s3/error/sim-s3.error.js +26 -0
  586. package/dist/service/s3/notification/event/sim-s3-event-records.js +3 -0
  587. package/dist/service/s3/notification/event/sim-s3-event.type.d.ts +5 -3
  588. package/dist/service/s3/notification/event/sim-s3-object-event-builder.d.ts +15 -0
  589. package/dist/service/s3/notification/event/sim-s3-object-event-builder.js +4 -1
  590. package/dist/service/s3/notification/event/sim-s3-object-event.d.ts +6 -0
  591. package/dist/service/s3/notification/event/sim-s3-object-event.js +2 -0
  592. package/dist/service/s3/notification/sim-s3-object-notifier.d.ts +1 -1
  593. package/dist/service/s3/notification/sim-s3-object-notifier.js +2 -2
  594. package/dist/service/s3/sdk/sim-s3-sdk-bucket-routes.d.ts +10 -0
  595. package/dist/service/s3/sdk/sim-s3-sdk-bucket-routes.js +84 -0
  596. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +6 -132
  597. package/dist/service/s3/sdk/sim-s3-sdk-object-lock-routes.d.ts +10 -0
  598. package/dist/service/s3/sdk/sim-s3-sdk-object-lock-routes.js +28 -0
  599. package/dist/service/s3/sdk/sim-s3-sdk-object-routes.d.ts +7 -0
  600. package/dist/service/s3/sdk/sim-s3-sdk-object-routes.js +80 -0
  601. package/dist/service/s3/sim-s3-commands.d.ts +4 -0
  602. package/dist/service/s3/sim-s3-commands.js +6 -0
  603. package/dist/service/s3/sim-s3-operations.d.ts +5 -5
  604. package/dist/service/s3/sim-s3-operations.js +5 -6
  605. package/dist/service/s3/sim-s3-version-operations.d.ts +32 -0
  606. package/dist/service/s3/sim-s3-version-operations.js +45 -0
  607. package/dist/service/scheduler/command/schedule/schedule.command.d.ts +9 -2
  608. package/dist/service/scheduler/command/schedule/sim-scheduler-described-schedule.js +2 -0
  609. package/dist/service/scheduler/command/schedule/sim-scheduler-unsimulated-target.js +0 -6
  610. package/dist/service/scheduler/command/sim-scheduler-command.types.d.ts +1 -1
  611. package/dist/service/scheduler/command/sim-scheduler-commands.js +1 -0
  612. package/dist/service/scheduler/delivery/sim-aws-scheduler-dead-letters.d.ts +17 -0
  613. package/dist/service/scheduler/delivery/sim-aws-scheduler-dead-letters.js +29 -0
  614. package/dist/service/scheduler/delivery/sim-aws-scheduler-delivery-targets.d.ts +6 -1
  615. package/dist/service/scheduler/delivery/sim-aws-scheduler-delivery-targets.js +9 -0
  616. package/dist/service/scheduler/delivery/sim-scheduler-dead-letter-queue.d.ts +18 -0
  617. package/dist/service/scheduler/delivery/sim-scheduler-dead-letter-queue.js +62 -0
  618. package/dist/service/scheduler/delivery/sim-scheduler-delivery-attempt.d.ts +29 -0
  619. package/dist/service/scheduler/delivery/sim-scheduler-delivery-attempt.js +81 -0
  620. package/dist/service/scheduler/delivery/sim-scheduler-delivery-function.js +9 -5
  621. package/dist/service/scheduler/delivery/sim-scheduler-delivery.d.ts +11 -0
  622. package/dist/service/scheduler/delivery/sim-scheduler-no-delivery-targets.d.ts +5 -1
  623. package/dist/service/scheduler/delivery/sim-scheduler-no-delivery-targets.js +8 -0
  624. package/dist/service/scheduler/delivery/sim-scheduler-target-delivery.d.ts +4 -1
  625. package/dist/service/scheduler/delivery/sim-scheduler-target-delivery.js +20 -15
  626. package/dist/service/scheduler/index.d.ts +1 -1
  627. package/dist/service/scheduler/target/sim-scheduler-dead-letter-config.d.ts +15 -0
  628. package/dist/service/scheduler/target/sim-scheduler-dead-letter-config.js +24 -0
  629. package/dist/service/scheduler/target/sim-scheduler-retry-policy.d.ts +20 -0
  630. package/dist/service/scheduler/target/sim-scheduler-retry-policy.js +37 -0
  631. package/dist/service/scheduler/target/sim-scheduler-target.d.ts +6 -0
  632. package/dist/service/scheduler/target/sim-scheduler-target.js +12 -0
  633. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-encryption-rules.d.ts +15 -0
  634. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-encryption-rules.js +33 -0
  635. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-properties.d.ts +16 -0
  636. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-properties.js +33 -1
  637. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-names.d.ts +12 -6
  638. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-names.js +18 -13
  639. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-rules.d.ts +1 -0
  640. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-rules.js +9 -1
  641. package/dist/service/ssm/parameter/sim-ssm-kms-crypto.d.ts +7 -10
  642. package/dist/service/ssm/parameter/sim-ssm-parameter-kms.d.ts +10 -11
  643. package/dist/service/ssm/parameter/sim-ssm-parameter-kms.js +11 -16
  644. package/dist/terraform/map/sim-tf-map-sqs-redrive.d.ts +4 -3
  645. package/dist/terraform/map/sim-tf-map-sqs-redrive.js +4 -3
  646. package/docs/README.md +1 -0
  647. package/docs/services/athena/README.md +7 -1
  648. package/docs/services/backup/README.md +553 -0
  649. package/docs/services/cloudformation/README.md +18 -7
  650. package/docs/services/cloudfront/README.md +903 -25
  651. package/docs/services/cloudwatch/README.md +159 -3
  652. package/docs/services/cognito/README.md +370 -7
  653. package/docs/services/ecs/README.md +5 -2
  654. package/docs/services/kms/README.md +9 -5
  655. package/docs/services/lambda/README.md +28 -0
  656. package/docs/services/logs/README.md +290 -3
  657. package/docs/services/s3/README.md +463 -20
  658. package/docs/services/scheduler/README.md +48 -9
  659. package/docs/services/sqs/README.md +47 -10
  660. package/docs/services/ssm/README.md +26 -33
  661. package/llms.txt +1 -0
  662. package/package.json +7 -2
@@ -0,0 +1,49 @@
1
+ import type { SimCfnTemplateValueRecord } from "../../template/value/sim-cfn-template-value.js";
2
+ import type { SimCfnSkippedPropertyRules } from "./sim-cfn-skipped-property.type.js";
3
+ interface SimCfnSkippedPropertiesProperties {
4
+ readonly rules: SimCfnSkippedPropertyRules;
5
+ readonly properties: SimCfnTemplateValueRecord;
6
+ readonly error: (reason: string) => Error;
7
+ }
8
+ /**
9
+ * What one Resource's skipped properties say, and what they still have to
10
+ * satisfy.
11
+ *
12
+ * Simulated CloudFormation deploys what it can, so a property a service cannot
13
+ * act on is recorded against the Resource rather than taking it down. That
14
+ * leaves a gap. A skipped property can carry a value real AWS answers with a
15
+ * 400 as readily as a simulated one can, and deploying it here reports a
16
+ * template AWS refuses as working, which is the one failure a local deploy of
17
+ * a real template exists to catch.
18
+ *
19
+ * This is where a service closes that gap. The constraint sits beside the
20
+ * reason in the same map, and every service reaches it the same way, so the
21
+ * next one to need it has nothing to build.
22
+ */
23
+ export declare class SimCfnSkippedProperties {
24
+ private readonly rules;
25
+ private readonly properties;
26
+ private readonly error;
27
+ constructor(properties: SimCfnSkippedPropertiesProperties);
28
+ /**
29
+ * Refuse the Resource where a skipped value is one real AWS would answer
30
+ * with a 400.
31
+ *
32
+ * Every constraint runs before anything is recorded, so a Resource that
33
+ * fails one leaves no half-written list of what it was created without.
34
+ */
35
+ assertConstraints(): void;
36
+ /**
37
+ * Why a property is skipped, or nothing where this service has no entry for
38
+ * it.
39
+ */
40
+ reasonFor(name: string): string | undefined;
41
+ /**
42
+ * What a property's value has to satisfy, where the service stated it.
43
+ *
44
+ * A rule that is a bare reason states nothing, which is the common case and
45
+ * the reason both shapes share one map.
46
+ */
47
+ private constraintOn;
48
+ }
49
+ export {};
@@ -0,0 +1,61 @@
1
+ /**
2
+ * What one Resource's skipped properties say, and what they still have to
3
+ * satisfy.
4
+ *
5
+ * Simulated CloudFormation deploys what it can, so a property a service cannot
6
+ * act on is recorded against the Resource rather than taking it down. That
7
+ * leaves a gap. A skipped property can carry a value real AWS answers with a
8
+ * 400 as readily as a simulated one can, and deploying it here reports a
9
+ * template AWS refuses as working, which is the one failure a local deploy of
10
+ * a real template exists to catch.
11
+ *
12
+ * This is where a service closes that gap. The constraint sits beside the
13
+ * reason in the same map, and every service reaches it the same way, so the
14
+ * next one to need it has nothing to build.
15
+ */
16
+ export class SimCfnSkippedProperties {
17
+ rules;
18
+ properties;
19
+ error;
20
+ constructor(properties) {
21
+ this.rules = properties.rules;
22
+ this.properties = properties.properties;
23
+ this.error = properties.error;
24
+ }
25
+ /**
26
+ * Refuse the Resource where a skipped value is one real AWS would answer
27
+ * with a 400.
28
+ *
29
+ * Every constraint runs before anything is recorded, so a Resource that
30
+ * fails one leaves no half-written list of what it was created without.
31
+ */
32
+ assertConstraints() {
33
+ for (const [name, value] of Object.entries(this.properties)) {
34
+ this.constraintOn(name)?.({
35
+ value,
36
+ properties: this.properties,
37
+ refuse: (reason) => {
38
+ throw this.error(reason);
39
+ },
40
+ });
41
+ }
42
+ }
43
+ /**
44
+ * Why a property is skipped, or nothing where this service has no entry for
45
+ * it.
46
+ */
47
+ reasonFor(name) {
48
+ const rule = this.rules.get(name);
49
+ return typeof rule === "string" ? rule : rule?.reason;
50
+ }
51
+ /**
52
+ * What a property's value has to satisfy, where the service stated it.
53
+ *
54
+ * A rule that is a bare reason states nothing, which is the common case and
55
+ * the reason both shapes share one map.
56
+ */
57
+ constraintOn(name) {
58
+ const rule = this.rules.get(name);
59
+ return typeof rule === "string" ? undefined : rule?.constraint;
60
+ }
61
+ }
@@ -0,0 +1,51 @@
1
+ import type { SimCfnTemplateValue, SimCfnTemplateValueRecord } from "../../template/value/sim-cfn-template-value.js";
2
+ /**
3
+ * One skipped property, as a constraint on it reads the Resource.
4
+ *
5
+ * The whole Resource comes with it, because the constraints AWS enforces on a
6
+ * property it is not acting on are usually about a second one. Replication on
7
+ * an S3 Bucket needs versioning turned on beside it, and neither property is
8
+ * simulated.
9
+ */
10
+ export interface SimCfnSkippedPropertyValue {
11
+ /** What the template declared for the skipped property. */
12
+ readonly value: SimCfnTemplateValue;
13
+ /** Everything else the Resource declared. */
14
+ readonly properties: SimCfnTemplateValueRecord;
15
+ /**
16
+ * Refuse the Resource, in the service's own words.
17
+ *
18
+ * The wording matters. Sim CloudFormation downgrades a failure that reads as
19
+ * an unsupported Resource type into a skip, and a skipped Resource here
20
+ * would deploy the very template this exists to refuse, so each service
21
+ * passes the error builder it already refuses its own Resources with.
22
+ */
23
+ refuse(reason: string): never;
24
+ }
25
+ /**
26
+ * What a skipped value has to satisfy even though nothing acts on it.
27
+ *
28
+ * A value that passes is recorded against the Resource as any skipped value
29
+ * is. One that fails takes the Resource with it, before anything is recorded.
30
+ */
31
+ export type SimCfnSkippedPropertyConstraint = (declared: SimCfnSkippedPropertyValue) => void;
32
+ /**
33
+ * What a service says about a property its Resource is created without acting
34
+ * on.
35
+ *
36
+ * A reason on its own is the common case and stays a bare string. A property
37
+ * carrying a value real AWS answers with a 400 states the constraint here too,
38
+ * beside the reason, rather than in a check of its own somewhere up the call
39
+ * path.
40
+ */
41
+ export interface SimCfnSkippedPropertyRule {
42
+ readonly reason: string;
43
+ readonly constraint: SimCfnSkippedPropertyConstraint;
44
+ }
45
+ /**
46
+ * The properties one Resource type is created without acting on, by name.
47
+ *
48
+ * Most name a reason and nothing more. The rest state what the value has to
49
+ * satisfy alongside it.
50
+ */
51
+ export type SimCfnSkippedPropertyRules = ReadonlyMap<string, SimCfnSkippedPropertyRule | string>;
@@ -23,6 +23,10 @@ export const simCfnServiceResourceFactories = new Map([
23
23
  "Athena",
24
24
  (scopedAws) => scopedAws.athena().cfnResourceFactory(),
25
25
  ],
26
+ [
27
+ "Backup",
28
+ (scopedAws) => scopedAws.backup().cfnResourceFactory(),
29
+ ],
26
30
  [
27
31
  "ApiGateway",
28
32
  (scopedAws) => scopedAws.apiGateway().cfnResourceFactory(),
@@ -5,6 +5,10 @@ export interface SimCloudFrontBehavior {
5
5
  pathPattern?: string;
6
6
  targetOriginName: string;
7
7
  allowedMethods: Set<string>;
8
+ /**
9
+ * The methods this Behavior caches a response for. A request made with any
10
+ * other method reaches the Origin every time.
11
+ */
8
12
  cachedMethods: Set<string>;
9
13
  viewerProtocolPolicy?: "allow-all" | "redirect-to-https" | "https-only";
10
14
  originPath?: string;
@@ -14,9 +18,16 @@ export interface SimCloudFrontBehavior {
14
18
  responseHeadersPolicyId?: string | undefined;
15
19
  /**
16
20
  * The cache policy this Behavior was given, whether a template created it or
17
- * AWS manages it. The simulated cache does not read it yet.
21
+ * AWS manages it. It decides what the Distribution's cache keys on, and a
22
+ * Behavior naming no policy this simulation holds caches nothing.
18
23
  */
19
24
  cachePolicyId?: string | undefined;
25
+ /**
26
+ * The origin request policy this Behavior was given, whether a template
27
+ * created it or AWS manages it. What reaches the Origin does not read it
28
+ * yet.
29
+ */
30
+ originRequestPolicyId?: string | undefined;
20
31
  functionAssociations?: undefined | {
21
32
  viewerRequest?: SimArn;
22
33
  viewerResponse?: SimArn;
@@ -0,0 +1,11 @@
1
+ import type { SimCloudFrontCacheKey } from "../cache-policy/sim-cf-cache-key.js";
2
+ /**
3
+ * The compression the policy keys on, as CloudFront's normalized
4
+ * `Accept-Encoding`.
5
+ *
6
+ * This is what caches one object twice, once compressed and once not, without
7
+ * the header being in the policy's whitelist. An encoding the viewer accepts
8
+ * but the policy does not enable is left out, since CloudFront would not have
9
+ * asked the Origin for it.
10
+ */
11
+ export declare function simCfNormalizedAcceptEncoding(headers: Headers, cacheKey: SimCloudFrontCacheKey): string[];
@@ -0,0 +1,27 @@
1
+ /**
2
+ * The compression the policy keys on, as CloudFront's normalized
3
+ * `Accept-Encoding`.
4
+ *
5
+ * This is what caches one object twice, once compressed and once not, without
6
+ * the header being in the policy's whitelist. An encoding the viewer accepts
7
+ * but the policy does not enable is left out, since CloudFront would not have
8
+ * asked the Origin for it.
9
+ */
10
+ export function simCfNormalizedAcceptEncoding(headers, cacheKey) {
11
+ const enabled = [
12
+ ...(cacheKey.enableAcceptEncodingBrotli ? ["br"] : []),
13
+ ...(cacheKey.enableAcceptEncodingGzip ? ["gzip"] : []),
14
+ ];
15
+ const accepted = acceptedEncodings(headers.get("accept-encoding"));
16
+ return enabled.filter((encoding) => accepted.has(encoding));
17
+ }
18
+ /**
19
+ * The encodings a viewer said it accepts, by name alone. A quality value is
20
+ * ignored, so a viewer that sent `gzip;q=0` is taken to accept gzip.
21
+ */
22
+ function acceptedEncodings(headerValue) {
23
+ return new Set((headerValue ?? "").split(",").map((encoding) => {
24
+ const [name = ""] = encoding.split(";", 1);
25
+ return name.trim().toLowerCase();
26
+ }));
27
+ }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * What an Origin's `Cache-Control` header says about holding the object at an
3
+ * edge.
4
+ *
5
+ * Only the directives that move CloudFront's own cache duration are read.
6
+ * `stale-while-revalidate` and `stale-if-error` are left out, because serving
7
+ * a stale object is a behaviour of its own that this simulation does not have.
8
+ *
9
+ * https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html
10
+ */
11
+ export interface SimCfCacheControl {
12
+ /**
13
+ * Whether the Origin asked for the object to stay out of a shared cache,
14
+ * through `no-store`, `no-cache` or `private`.
15
+ */
16
+ readonly uncacheable: boolean;
17
+ /** The seconds `s-maxage` names, where it names a usable number of them. */
18
+ readonly sharedMaxAgeSec: number | undefined;
19
+ /** The seconds `max-age` names, where it names a usable number of them. */
20
+ readonly maxAgeSec: number | undefined;
21
+ }
22
+ /**
23
+ * Read the `Cache-Control` directives a response carries.
24
+ *
25
+ * A directive naming something other than a whole number of seconds is read as
26
+ * absent. `max-age=soon` falls through to whatever the response says next.
27
+ */
28
+ export declare function simCfCacheControl(header: string | null): SimCfCacheControl;
@@ -0,0 +1,49 @@
1
+ /**
2
+ * The three directives CloudFront and a browser both respect as a refusal.
3
+ */
4
+ const uncacheableDirectives = ["no-store", "no-cache", "private"];
5
+ /**
6
+ * Read the `Cache-Control` directives a response carries.
7
+ *
8
+ * A directive naming something other than a whole number of seconds is read as
9
+ * absent. `max-age=soon` falls through to whatever the response says next.
10
+ */
11
+ export function simCfCacheControl(header) {
12
+ const directives = cacheControlDirectives(header);
13
+ return {
14
+ uncacheable: uncacheableDirectives.some((directive) => directives.has(directive)),
15
+ sharedMaxAgeSec: directiveSeconds(directives.get("s-maxage")),
16
+ maxAgeSec: directiveSeconds(directives.get("max-age")),
17
+ };
18
+ }
19
+ /**
20
+ * Split a header into its directives, by lower-cased name.
21
+ *
22
+ * A directive carrying no value is held under an empty string, which is what
23
+ * makes `no-store` findable the same way as `max-age=60`.
24
+ */
25
+ function cacheControlDirectives(header) {
26
+ const directives = new Map();
27
+ const parts = (header ?? "").split(",");
28
+ for (const part of parts) {
29
+ const trimmed = part.trim();
30
+ if (trimmed.length === 0) {
31
+ continue;
32
+ }
33
+ const separator = trimmed.indexOf("=");
34
+ const name = separator === -1 ? trimmed : trimmed.slice(0, Math.max(0, separator));
35
+ directives.set(name.trim().toLowerCase(), separator === -1 ? "" : trimmed.slice(separator + 1).trim());
36
+ }
37
+ return directives;
38
+ }
39
+ /**
40
+ * The seconds a directive's value names, or none where it names no whole
41
+ * number of them.
42
+ */
43
+ function directiveSeconds(value) {
44
+ if (value === undefined) {
45
+ return undefined;
46
+ }
47
+ const seconds = value.replace(/^"(.*)"$/, "$1");
48
+ return /^\d+$/.test(seconds) ? Number(seconds) : undefined;
49
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * The request path one cache entry was keyed under.
3
+ *
4
+ * `simCfCacheEntryKey` builds the key as a JSON array with the path third in
5
+ * it, and this reads that element back out. An invalidation matches entries by
6
+ * path this way, and the cache keeps its one map keyed on the whole key.
7
+ *
8
+ * A key of another shape answers with nothing. An invalidation then leaves the
9
+ * entry where it is.
10
+ */
11
+ export declare function simCfCacheEntryKeyPath(key: string): string | undefined;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Where the request path sits in a cache entry key.
3
+ */
4
+ const cacheEntryKeyPathIndex = 2;
5
+ /**
6
+ * The request path one cache entry was keyed under.
7
+ *
8
+ * `simCfCacheEntryKey` builds the key as a JSON array with the path third in
9
+ * it, and this reads that element back out. An invalidation matches entries by
10
+ * path this way, and the cache keeps its one map keyed on the whole key.
11
+ *
12
+ * A key of another shape answers with nothing. An invalidation then leaves the
13
+ * entry where it is.
14
+ */
15
+ export function simCfCacheEntryKeyPath(key) {
16
+ const parts = JSON.parse(key);
17
+ if (!Array.isArray(parts)) {
18
+ return undefined;
19
+ }
20
+ const path = parts.at(cacheEntryKeyPathIndex);
21
+ return typeof path === "string" ? path : undefined;
22
+ }
@@ -0,0 +1,32 @@
1
+ import type { SimCloudFrontCacheKey } from "../cache-policy/sim-cf-cache-key.js";
2
+ interface SimCfCacheEntryKeyProperties {
3
+ readonly request: Request;
4
+ /**
5
+ * What the Behavior's cache policy keys on.
6
+ */
7
+ readonly cacheKey: SimCloudFrontCacheKey;
8
+ /**
9
+ * The edge the request arrived at, which caches apart from every other edge.
10
+ */
11
+ readonly edgeId: string;
12
+ }
13
+ /**
14
+ * The key one request is cached under.
15
+ *
16
+ * CloudFront keys on the request path plus whatever the cache policy names:
17
+ * the query strings, the headers and the cookies it lists, and the normalized
18
+ * `Accept-Encoding` where it enables gzip or brotli. Two requests differing
19
+ * only in something the policy leaves out share one entry, which is the whole
20
+ * point of a cache key.
21
+ *
22
+ * The path sits third in the key, which `simCfCacheEntryKeyPath` reads it back
23
+ * out of when an invalidation matches an entry.
24
+ *
25
+ * The method is part of the key here because a HEAD response carries no body
26
+ * and a GET response does, so serving one from the other would answer with the
27
+ * wrong thing.
28
+ *
29
+ * https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/understanding-the-cache-key.html
30
+ */
31
+ export declare function simCfCacheEntryKey(properties: SimCfCacheEntryKeyProperties): string;
32
+ export {};
@@ -0,0 +1,112 @@
1
+ import { jsonStringify } from "../../../util/type-guard/json.js";
2
+ import { simCfNormalizedAcceptEncoding } from "./sim-cf-accept-encoding.js";
3
+ /**
4
+ * The key one request is cached under.
5
+ *
6
+ * CloudFront keys on the request path plus whatever the cache policy names:
7
+ * the query strings, the headers and the cookies it lists, and the normalized
8
+ * `Accept-Encoding` where it enables gzip or brotli. Two requests differing
9
+ * only in something the policy leaves out share one entry, which is the whole
10
+ * point of a cache key.
11
+ *
12
+ * The path sits third in the key, which `simCfCacheEntryKeyPath` reads it back
13
+ * out of when an invalidation matches an entry.
14
+ *
15
+ * The method is part of the key here because a HEAD response carries no body
16
+ * and a GET response does, so serving one from the other would answer with the
17
+ * wrong thing.
18
+ *
19
+ * https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/understanding-the-cache-key.html
20
+ */
21
+ export function simCfCacheEntryKey(properties) {
22
+ const { request, cacheKey, edgeId } = properties;
23
+ const url = new URL(request.url);
24
+ return jsonStringify([
25
+ edgeId,
26
+ request.method.toUpperCase(),
27
+ url.pathname,
28
+ keyedQueryStrings(url.searchParams, cacheKey),
29
+ keyedHeaders(request.headers, cacheKey),
30
+ keyedCookies(request.headers, cacheKey),
31
+ simCfNormalizedAcceptEncoding(request.headers, cacheKey),
32
+ ]);
33
+ }
34
+ /**
35
+ * The query strings the policy keys on, in an order two requests sending them
36
+ * differently still agree on.
37
+ */
38
+ function keyedQueryStrings(searchParameters, cacheKey) {
39
+ return [...searchParameters]
40
+ .filter(([name]) => isKeyedOn(cacheKey.queryStringBehavior, cacheKey.queryStrings, name))
41
+ .map(([name, value]) => `${name}=${value}`)
42
+ .toSorted(byCodePoint);
43
+ }
44
+ /**
45
+ * The headers the policy keys on, by lower-case name since a header name is
46
+ * case insensitive.
47
+ *
48
+ * A header the policy names and the viewer did not send keys as an empty
49
+ * value, so a request sending it and one leaving it out are kept apart.
50
+ */
51
+ function keyedHeaders(headers, cacheKey) {
52
+ if (cacheKey.headerBehavior === "none") {
53
+ return [];
54
+ }
55
+ return cacheKey.headers
56
+ .map((name) => `${name.toLowerCase()}=${headers.get(name) ?? ""}`)
57
+ .toSorted(byCodePoint);
58
+ }
59
+ /**
60
+ * The cookies the policy keys on, read out of the one `Cookie` header a
61
+ * request sends them all in.
62
+ */
63
+ function keyedCookies(headers, cacheKey) {
64
+ return (headers.get("cookie") ?? "")
65
+ .split(";")
66
+ .map((cookie) => cookie.trim())
67
+ .filter((cookie) => cookie.length > 0)
68
+ .filter((cookie) => isKeyedOn(cacheKey.cookieBehavior, cacheKey.cookies, cookieName(cookie)))
69
+ .toSorted(byCodePoint);
70
+ }
71
+ /**
72
+ * Order two parts of a key the same way whatever the host's locale is, which a
73
+ * key two requests have to agree on cannot be left to `localeCompare`.
74
+ */
75
+ function byCodePoint(one, other) {
76
+ if (one === other) {
77
+ return 0;
78
+ }
79
+ return one < other ? -1 : 1;
80
+ }
81
+ /**
82
+ * The name half of one `name=value` cookie.
83
+ */
84
+ function cookieName(cookie) {
85
+ const [name = ""] = cookie.split("=", 1);
86
+ return name;
87
+ }
88
+ /**
89
+ * Whether one name is in the cache key, under the behaviour its section names.
90
+ *
91
+ * A `whitelist` keys on the names listed and an `allExcept` keys on everything
92
+ * but them, which is the same list read two ways.
93
+ *
94
+ * The cookie behaviours and the query string behaviours are the same four
95
+ * values, so one function reads both.
96
+ */
97
+ function isKeyedOn(behavior, names, name) {
98
+ switch (behavior) {
99
+ case "all": {
100
+ return true;
101
+ }
102
+ case "whitelist": {
103
+ return names.includes(name);
104
+ }
105
+ case "allExcept": {
106
+ return !names.includes(name);
107
+ }
108
+ case "none": {
109
+ return false;
110
+ }
111
+ }
112
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * The header a hit carries its age in, in seconds.
3
+ */
4
+ export declare const simCfAgeHeaderName = "age";
5
+ /**
6
+ * What `X-Cache` reads when the Distribution's cache answered.
7
+ */
8
+ export declare const simCfCacheHit = "Hit from cloudfront";
9
+ /**
10
+ * What `X-Cache` reads when the Origin answered.
11
+ */
12
+ export declare const simCfCacheMiss = "Miss from cloudfront";
13
+ /**
14
+ * The response with `X-Cache` saying which of the two answered it.
15
+ *
16
+ * An `X-Cache` an Origin sent is replaced, the way CloudFront replaces one.
17
+ */
18
+ export declare function simCfCacheStatusResponse(response: Response, hit: boolean): Response;
19
+ /**
20
+ * How long an entry stored at one instant has been held at another, in whole
21
+ * seconds.
22
+ *
23
+ * Both instants come off the simulation's clock. A test reaches any age it
24
+ * wants by advancing simulated time. A clock wound backwards would give a
25
+ * negative age, and HTTP has no such thing, so zero is the floor.
26
+ */
27
+ export declare function simCfCacheAgeSec(storedAt: Date, now: Date): number;
@@ -0,0 +1,53 @@
1
+ /**
2
+ * What CloudFront tells the viewer about the cache that answered.
3
+ *
4
+ * `X-Cache` says whether the Distribution held the object, and `Age` says how
5
+ * long it has held it. Both go on ahead of the Behavior's response headers
6
+ * policy and the viewer-response event. A policy can take either off, and a
7
+ * viewer-response function sees them.
8
+ *
9
+ * Real CloudFront writes several other values into `X-Cache` (`RefreshHit` and
10
+ * `LambdaGeneratedResponse` among them). A hit and a miss are the two this
11
+ * simulation reaches, and a response answered before the cache was consulted
12
+ * carries no `X-Cache` at all.
13
+ *
14
+ * https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html
15
+ */
16
+ const xCacheHeaderName = "x-cache";
17
+ /**
18
+ * The header a hit carries its age in, in seconds.
19
+ */
20
+ export const simCfAgeHeaderName = "age";
21
+ /**
22
+ * What `X-Cache` reads when the Distribution's cache answered.
23
+ */
24
+ export const simCfCacheHit = "Hit from cloudfront";
25
+ /**
26
+ * What `X-Cache` reads when the Origin answered.
27
+ */
28
+ export const simCfCacheMiss = "Miss from cloudfront";
29
+ /**
30
+ * The response with `X-Cache` saying which of the two answered it.
31
+ *
32
+ * An `X-Cache` an Origin sent is replaced, the way CloudFront replaces one.
33
+ */
34
+ export function simCfCacheStatusResponse(response, hit) {
35
+ const headers = new Headers(response.headers);
36
+ headers.set(xCacheHeaderName, hit ? simCfCacheHit : simCfCacheMiss);
37
+ return new Response(response.body, {
38
+ status: response.status,
39
+ statusText: response.statusText,
40
+ headers,
41
+ });
42
+ }
43
+ /**
44
+ * How long an entry stored at one instant has been held at another, in whole
45
+ * seconds.
46
+ *
47
+ * Both instants come off the simulation's clock. A test reaches any age it
48
+ * wants by advancing simulated time. A clock wound backwards would give a
49
+ * negative age, and HTTP has no such thing, so zero is the floor.
50
+ */
51
+ export function simCfCacheAgeSec(storedAt, now) {
52
+ return Math.max(0, Math.floor((now.getTime() - storedAt.getTime()) / 1000));
53
+ }
@@ -0,0 +1,28 @@
1
+ import type { SimCloudFrontCachePolicy } from "../cache-policy/sim-cf-cache-policy.js";
2
+ interface SimCfCacheTtlProperties {
3
+ /** The response the Origin answered with, whose headers carry the ask. */
4
+ readonly response: Response;
5
+ /** The Behavior's cache policy, whose three TTLs decide the answer. */
6
+ readonly policy: SimCloudFrontCachePolicy;
7
+ /** Now, off the simulation's clock, which `Expires` is measured from. */
8
+ readonly now: Date;
9
+ }
10
+ /**
11
+ * How many seconds a Distribution holds this response for. Zero says it holds
12
+ * it not at all.
13
+ *
14
+ * The Origin asks and the policy decides how much of the ask to grant. An
15
+ * Origin naming a duration gets it held between the policy's `MinTTL` and
16
+ * `MaxTTL`, and one naming none gets the greater of `MinTTL` and `DefaultTTL`.
17
+ * `s-maxage` is preferred to `max-age`, and `max-age` to `Expires`, which is
18
+ * the order CloudFront reads them in.
19
+ *
20
+ * `no-store`, `no-cache` and `private` are respected where `MinTTL` is 0, and
21
+ * held for `MinTTL` where it is higher. That last one is CloudFront's own
22
+ * surprise. A policy with a floor overrides an Origin that asked for nothing to
23
+ * be stored.
24
+ *
25
+ * https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html
26
+ */
27
+ export declare function simCfCacheTtlSec(properties: SimCfCacheTtlProperties): number;
28
+ export {};
@@ -0,0 +1,50 @@
1
+ import { simCfCacheControl } from "./sim-cf-cache-control.js";
2
+ import { simCfHttpDateInstant } from "./sim-cf-http-date.js";
3
+ /**
4
+ * How many seconds a Distribution holds this response for. Zero says it holds
5
+ * it not at all.
6
+ *
7
+ * The Origin asks and the policy decides how much of the ask to grant. An
8
+ * Origin naming a duration gets it held between the policy's `MinTTL` and
9
+ * `MaxTTL`, and one naming none gets the greater of `MinTTL` and `DefaultTTL`.
10
+ * `s-maxage` is preferred to `max-age`, and `max-age` to `Expires`, which is
11
+ * the order CloudFront reads them in.
12
+ *
13
+ * `no-store`, `no-cache` and `private` are respected where `MinTTL` is 0, and
14
+ * held for `MinTTL` where it is higher. That last one is CloudFront's own
15
+ * surprise. A policy with a floor overrides an Origin that asked for nothing to
16
+ * be stored.
17
+ *
18
+ * https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html
19
+ */
20
+ export function simCfCacheTtlSec(properties) {
21
+ const { response, policy, now } = properties;
22
+ const control = simCfCacheControl(response.headers.get("cache-control"));
23
+ if (control.uncacheable) {
24
+ return policy.minTtlSec;
25
+ }
26
+ const asked = control.sharedMaxAgeSec ??
27
+ control.maxAgeSec ??
28
+ expiresTtlSec(response, now);
29
+ if (asked === undefined) {
30
+ return Math.max(policy.minTtlSec, policy.defaultTtlSec);
31
+ }
32
+ return Math.min(Math.max(asked, policy.minTtlSec), policy.maxTtlSec);
33
+ }
34
+ /**
35
+ * The seconds left until the `Expires` header's instant, or none where the
36
+ * response carries no such header.
37
+ *
38
+ * A date already gone by counts as no seconds, which the policy's `MinTTL`
39
+ * then raises where it has one. A value that is not an HTTP date counts the
40
+ * same way, following RFC 9111, which reads an unparsable `Expires` as an
41
+ * object that has already expired.
42
+ */
43
+ function expiresTtlSec(response, now) {
44
+ const expires = response.headers.get("expires");
45
+ if (expires === null) {
46
+ return undefined;
47
+ }
48
+ const instant = simCfHttpDateInstant(expires.trim());
49
+ return instant === undefined ? 0 : (instant - now.getTime()) / 1000;
50
+ }