@kensio/yulin 1.20.15 → 1.20.17

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 (355) hide show
  1. package/README.md +13 -0
  2. package/dist/sdk/module/sim-sdk-module-client-interceptor.d.ts +5 -0
  3. package/dist/sdk/module/sim-sdk-module-client-interceptor.js +14 -0
  4. package/dist/sdk/module/sim-sdk-static-client-factory.d.ts +26 -0
  5. package/dist/sdk/module/sim-sdk-static-client-factory.js +59 -0
  6. package/dist/sdk/send-patch.d.ts +8 -0
  7. package/dist/sdk/send-patch.js +11 -0
  8. package/dist/service/aws/caller/sim-aws-ambient-caller.d.ts +23 -0
  9. package/dist/service/aws/caller/sim-aws-ambient-caller.js +12 -0
  10. package/dist/service/aws/caller/sim-aws-caller-resolver.d.ts +39 -6
  11. package/dist/service/aws/caller/sim-aws-caller-resolver.js +32 -30
  12. package/dist/service/aws/caller/sim-aws-caller.d.ts +9 -0
  13. package/dist/service/aws/caller/sim-aws-resolved-caller.d.ts +19 -0
  14. package/dist/service/aws/caller/sim-aws-resolved-caller.js +26 -0
  15. package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts +12 -0
  16. package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +6 -0
  17. package/dist/service/aws/factory/sim-aws-account-service-cache.d.ts +12 -0
  18. package/dist/service/aws/factory/sim-aws-account-service-cache.js +9 -0
  19. package/dist/service/aws/factory/sim-aws-registered-service-builder.js +3 -1
  20. package/dist/service/aws/factory/sim-aws-service-factory.d.ts +5 -0
  21. package/dist/service/aws/factory/sim-aws-service-factory.js +14 -0
  22. package/dist/service/aws/sim-aws-properties.d.ts +15 -0
  23. package/dist/service/aws/sim-aws.js +2 -1
  24. package/dist/service/cloudformation/command/create-stack/create-stack.handler.d.ts +4 -0
  25. package/dist/service/cloudformation/command/create-stack/create-stack.handler.js +4 -1
  26. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js +2 -1
  27. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.d.ts +11 -2
  28. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.js +2 -1
  29. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts +6 -0
  30. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts +11 -0
  31. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js +17 -15
  32. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.d.ts +12 -0
  33. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.js +2 -1
  34. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cache-policy-cfn.d.ts +23 -0
  35. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cache-policy-cfn.js +30 -0
  36. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cfn-value-adapter.js +8 -0
  37. package/dist/service/cloudformation/resource/name/sim-cfn-generated-resource-name.d.ts +29 -12
  38. package/dist/service/cloudformation/resource/name/sim-cfn-generated-resource-name.js +51 -20
  39. package/dist/service/cloudformation/stack/deploy/sim-cfn-resource-order.d.ts +19 -0
  40. package/dist/service/cloudformation/stack/deploy/sim-cfn-resource-order.js +6 -0
  41. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.d.ts +7 -0
  42. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.js +9 -2
  43. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-creator.d.ts +2 -0
  44. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-creator.js +2 -1
  45. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +6 -0
  46. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +4 -1
  47. package/dist/service/cloudformation/stack/sim-cfn-stack.js +2 -1
  48. package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +6 -0
  49. package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts +5 -0
  50. package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy-registry.d.ts +37 -0
  51. package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy-registry.js +50 -0
  52. package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy.d.ts +25 -0
  53. package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy.js +21 -0
  54. package/dist/service/cloudfront/cache-policy/sim-cf-managed-cache-policies.d.ts +28 -0
  55. package/dist/service/cloudfront/cache-policy/sim-cf-managed-cache-policies.js +48 -0
  56. package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.d.ts +8 -0
  57. package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.js +13 -0
  58. package/dist/service/cloudfront/cff/sim-cf-function-commands.d.ts +52 -0
  59. package/dist/service/cloudfront/cff/sim-cf-function-commands.js +51 -0
  60. package/dist/service/cloudfront/cff/sim-cff-configuration.d.ts +41 -0
  61. package/dist/service/cloudfront/cff/sim-cff-configuration.js +34 -0
  62. package/dist/service/cloudfront/cff/sim-cff-stage.d.ts +23 -0
  63. package/dist/service/cloudfront/cff/sim-cff-stage.js +30 -0
  64. package/dist/service/cloudfront/cff/sim-cloudfront-function.d.ts +6 -1
  65. package/dist/service/cloudfront/cff/sim-cloudfront-function.js +6 -0
  66. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-config.d.ts +27 -0
  67. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-config.js +42 -0
  68. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-creator.d.ts +24 -0
  69. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-creator.js +32 -0
  70. package/dist/service/cloudfront/cfn/distro/{sim-cfn-cf-distro-response-headers-policy.d.ts → sim-cfn-cf-distro-behavior-policies.d.ts} +8 -7
  71. package/dist/service/cloudfront/cfn/distro/{sim-cfn-cf-distro-response-headers-policy.js → sim-cfn-cf-distro-behavior-policies.js} +11 -37
  72. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.d.ts +6 -5
  73. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js +8 -7
  74. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-policy-drops.d.ts +23 -0
  75. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-policy-drops.js +50 -0
  76. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.d.ts +1 -0
  77. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.js +10 -0
  78. package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts +1 -0
  79. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts +2 -0
  80. package/dist/service/cloudfront/command/create-function/create-function.handler.js +7 -1
  81. package/dist/service/cloudfront/command/function/sim-cf-describe-function.d.ts +22 -0
  82. package/dist/service/cloudfront/command/function/sim-cf-describe-function.js +32 -0
  83. package/dist/service/cloudfront/command/function/sim-cf-function-access.d.ts +48 -0
  84. package/dist/service/cloudfront/command/function/sim-cf-function-access.js +48 -0
  85. package/dist/service/cloudfront/command/function/sim-cf-function-command.types.d.ts +97 -0
  86. package/dist/service/cloudfront/command/function/sim-cf-function-command.types.js +10 -0
  87. package/dist/service/cloudfront/command/function/sim-cf-function-lookup.d.ts +12 -0
  88. package/dist/service/cloudfront/command/function/sim-cf-function-lookup.js +21 -0
  89. package/dist/service/cloudfront/command/function/sim-cf-function-summary.d.ts +11 -0
  90. package/dist/service/cloudfront/command/function/sim-cf-function-summary.js +30 -0
  91. package/dist/service/cloudfront/command/function/sim-cf-get-function.d.ts +23 -0
  92. package/dist/service/cloudfront/command/function/sim-cf-get-function.js +33 -0
  93. package/dist/service/cloudfront/command/function/sim-cf-list-functions.d.ts +22 -0
  94. package/dist/service/cloudfront/command/function/sim-cf-list-functions.js +38 -0
  95. package/dist/service/cloudfront/command/update-distribution/update-distribution.handler.d.ts +2 -0
  96. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-cache-policy.d.ts +18 -0
  97. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-cache-policy.js +30 -0
  98. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-policies.d.ts +28 -0
  99. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-policies.js +41 -0
  100. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.d.ts +2 -2
  101. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.js +6 -3
  102. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.d.ts +0 -10
  103. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.js +0 -19
  104. package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.d.ts +2 -0
  105. package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.js +4 -2
  106. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.d.ts +3 -3
  107. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.js +5 -5
  108. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.d.ts +3 -3
  109. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.js +4 -4
  110. package/dist/service/cloudfront/distribution/sim-cf-distribution-configuration-state.d.ts +3 -1
  111. package/dist/service/cloudfront/distribution/sim-cf-distribution-reconfigurer.d.ts +2 -0
  112. package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts +21 -0
  113. package/dist/service/cloudfront/error/sim-cloudfront.error.js +25 -0
  114. package/dist/service/cloudfront/key-value-store/sim-cf-key-value-store-access.js +2 -10
  115. package/dist/service/cloudfront/key-value-store/sim-cf-key-value-store.js +2 -1
  116. package/dist/service/cloudfront/sdk/sim-cloudfront-sdk-command-router.js +12 -0
  117. package/dist/service/cloudfront/sim-cf-authorize.d.ts +16 -0
  118. package/dist/service/cloudfront/sim-cf-authorize.js +19 -0
  119. package/dist/service/cloudfront/sim-cf-etag.d.ts +7 -0
  120. package/dist/service/cloudfront/sim-cf-etag.js +10 -0
  121. package/dist/service/cloudfront/sim-cloudfront-commands.d.ts +8 -12
  122. package/dist/service/cloudfront/sim-cloudfront-commands.js +8 -17
  123. package/dist/service/cloudfront/sim-cloudfront-policies.d.ts +43 -0
  124. package/dist/service/cloudfront/sim-cloudfront-policies.js +53 -0
  125. package/dist/service/cloudfront/sim-cloudfront.d.ts +13 -17
  126. package/dist/service/cloudfront/sim-cloudfront.js +22 -25
  127. package/dist/service/ecr/authorize/sim-ecr-authorizer.d.ts +31 -0
  128. package/dist/service/ecr/authorize/sim-ecr-authorizer.js +38 -0
  129. package/dist/service/ecr/cfn/repository/sim-cfn-ecr-repository-creator.d.ts +11 -2
  130. package/dist/service/ecr/cfn/repository/sim-cfn-ecr-repository-creator.js +11 -2
  131. package/dist/service/ecr/cfn/sim-ecr-cfn-resource-factory.d.ts +4 -2
  132. package/dist/service/ecr/cfn/sim-ecr-cfn-resource-factory.js +8 -9
  133. package/dist/service/ecr/cfn/sim-ecr-cfn-unsupported-resource.d.ts +7 -0
  134. package/dist/service/ecr/cfn/sim-ecr-cfn-unsupported-resource.js +9 -0
  135. package/dist/service/ecr/sim-ecr.d.ts +7 -0
  136. package/dist/service/ecr/sim-ecr.js +16 -4
  137. package/dist/service/ecs/command/authorize/sim-ecs-authorizer.d.ts +12 -0
  138. package/dist/service/ecs/command/authorize/sim-ecs-authorizer.js +21 -0
  139. package/dist/service/ecs/command/register-task-definition/register-task-definition.handler.js +1 -0
  140. package/dist/service/ecs/sim-ecs-service-principal.d.ts +8 -0
  141. package/dist/service/ecs/sim-ecs-service-principal.js +8 -0
  142. package/dist/service/eventbridge/command/authorize/sim-event-bridge-authorizer.d.ts +12 -0
  143. package/dist/service/eventbridge/command/authorize/sim-event-bridge-authorizer.js +21 -0
  144. package/dist/service/eventbridge/command/rule/sim-event-bridge-rule-access.d.ts +13 -0
  145. package/dist/service/eventbridge/command/rule/sim-event-bridge-rule-access.js +9 -0
  146. package/dist/service/eventbridge/command/target/sim-event-bridge-put-targets.js +1 -0
  147. package/dist/service/firehose/command/authorize/sim-firehose-authorizer.d.ts +12 -0
  148. package/dist/service/firehose/command/authorize/sim-firehose-authorizer.js +20 -0
  149. package/dist/service/firehose/command/sim-firehose-delivery-stream-access.d.ts +4 -0
  150. package/dist/service/firehose/command/sim-firehose-delivery-stream-access.js +6 -0
  151. package/dist/service/firehose/command/stream/sim-firehose-create-delivery-stream.js +3 -1
  152. package/dist/service/firehose/sim-firehose-service-principal.d.ts +8 -0
  153. package/dist/service/firehose/sim-firehose-service-principal.js +8 -0
  154. package/dist/service/firehose/source/sim-firehose-source.d.ts +5 -0
  155. package/dist/service/firehose/source/sim-firehose-source.js +5 -0
  156. package/dist/service/glue/cfn/database/sim-cfn-glue-database-properties.js +2 -2
  157. package/dist/service/glue/cfn/sim-cfn-glue-generated-name.d.ts +10 -0
  158. package/dist/service/glue/cfn/sim-cfn-glue-generated-name.js +25 -0
  159. package/dist/service/glue/cfn/table/sim-cfn-glue-table-properties.js +2 -3
  160. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.d.ts +33 -2
  161. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.js +33 -2
  162. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.d.ts +4 -3
  163. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.js +9 -3
  164. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.d.ts +14 -5
  165. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.js +16 -12
  166. package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.d.ts +36 -7
  167. package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.js +22 -11
  168. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts +10 -71
  169. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js +7 -2
  170. package/dist/service/iam/authorize/context/sim-iam-auth-z-input.d.ts +87 -0
  171. package/dist/service/iam/authorize/context/sim-iam-auth-z-input.js +1 -0
  172. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.d.ts +21 -3
  173. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.js +34 -10
  174. package/dist/service/iam/authorize/match/sim-iam-principal-match.d.ts +29 -8
  175. package/dist/service/iam/authorize/match/sim-iam-principal-match.js +38 -13
  176. package/dist/service/iam/authorize/pass-role/sim-iam-pass-role-authorizer.d.ts +74 -0
  177. package/dist/service/iam/authorize/pass-role/sim-iam-pass-role-authorizer.js +92 -0
  178. package/dist/service/iam/authorize/sim-iam-account-auth-z.d.ts +21 -5
  179. package/dist/service/iam/authorize/sim-iam-account-auth-z.js +7 -3
  180. package/dist/service/iam/authorize/sim-iam-authorizer.d.ts +5 -2
  181. package/dist/service/iam/authorize/sim-iam-authorizer.js +3 -1
  182. package/dist/service/iam/authorize/sim-iam-inter-service-auth-z.d.ts +1 -1
  183. package/dist/service/iam/authorize/sim-iam-wildcard.js +39 -4
  184. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.js +2 -1
  185. package/dist/service/iam/cfn/name/sim-cfn-iam-generated-name.d.ts +16 -0
  186. package/dist/service/iam/cfn/name/sim-cfn-iam-generated-name.js +36 -0
  187. package/dist/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.js +9 -8
  188. package/dist/service/iam/cfn/sim-cfn-iam-optional-string.d.ts +17 -0
  189. package/dist/service/iam/cfn/sim-cfn-iam-optional-string.js +17 -0
  190. package/dist/service/iam/cfn/user/sim-cfn-iam-user-properties-parser.js +4 -8
  191. package/dist/service/iam/command/policy/create-policy/create-policy-input-resolver.js +2 -0
  192. package/dist/service/iam/command/policy/put-role-policy/put-role-policy.handler.js +5 -0
  193. package/dist/service/iam/command/policy/put-user-policy/put-user-policy.handler.js +5 -0
  194. package/dist/service/iam/command/role/create-role/create-role.handler.js +4 -1
  195. package/dist/service/iam/error/sim-iam.error.d.ts +11 -0
  196. package/dist/service/iam/error/sim-iam.error.js +13 -0
  197. package/dist/service/iam/index.d.ts +1 -0
  198. package/dist/service/iam/policy/sim-iam-policy-document-of-size.d.ts +18 -0
  199. package/dist/service/iam/policy/sim-iam-policy-document-of-size.js +41 -0
  200. package/dist/service/iam/role/sim-iam-deploy-role.d.ts +56 -0
  201. package/dist/service/iam/role/sim-iam-deploy-role.js +50 -0
  202. package/dist/service/iam/role/sim-iam-role-with-policy.factory.d.ts +11 -0
  203. package/dist/service/iam/role/sim-iam-role-with-policy.factory.js +4 -2
  204. package/dist/service/iam/sim-iam-account-parts.d.ts +16 -0
  205. package/dist/service/iam/sim-iam-account-parts.js +2 -0
  206. package/dist/service/iam/sim-iam.d.ts +12 -2
  207. package/dist/service/iam/sim-iam.js +12 -0
  208. package/dist/service/iam/validate/size/sim-iam-policy-document-size.d.ts +57 -0
  209. package/dist/service/iam/validate/size/sim-iam-policy-document-size.js +71 -0
  210. package/dist/service/kms/command/authorize/sim-kms-authorizer.d.ts +3 -1
  211. package/dist/service/kms/command/authorize/sim-kms-authorizer.js +4 -1
  212. package/dist/service/kms/command/sim-kms-request-options.d.ts +11 -0
  213. package/dist/service/kms/key/sim-kms-key-policy.d.ts +5 -4
  214. package/dist/service/kms/key/sim-kms-key-policy.js +4 -3
  215. package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-properties-parser.d.ts +2 -2
  216. package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-properties-parser.js +4 -3
  217. package/dist/service/lambda/cfn/function/sim-cfn-lambda-generated-function-name.d.ts +10 -0
  218. package/dist/service/lambda/cfn/function/sim-cfn-lambda-generated-function-name.js +25 -0
  219. package/dist/service/lambda/command/authorize/sim-lambda-resource-policies.d.ts +1 -1
  220. package/dist/service/lambda/command/create-function/create-function-authorizer.d.ts +9 -2
  221. package/dist/service/lambda/command/create-function/create-function-authorizer.js +16 -2
  222. package/dist/service/lambda/command/create-function/create-function.handler.js +1 -1
  223. package/dist/service/lambda/command/update-function-configuration/update-function-configuration-authorizer.d.ts +7 -2
  224. package/dist/service/lambda/command/update-function-configuration/update-function-configuration-authorizer.js +14 -2
  225. package/dist/service/lambda/command/update-function-configuration/update-function-configuration.handler.js +1 -1
  226. package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts +10 -1
  227. package/dist/service/lambda/function/logging/sim-lambda-function-logging.js +25 -1
  228. package/dist/service/lambda/function/logging/sim-lambda-invoke-error-log.d.ts +13 -0
  229. package/dist/service/lambda/function/logging/sim-lambda-invoke-error-log.js +18 -0
  230. package/dist/service/lambda/sim-lambda-service-principal.d.ts +7 -0
  231. package/dist/service/lambda/sim-lambda-service-principal.js +7 -0
  232. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-authorization.d.ts +46 -0
  233. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-authorization.js +49 -0
  234. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.d.ts +5 -0
  235. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.js +6 -0
  236. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.d.ts +5 -0
  237. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.js +6 -0
  238. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.d.ts +5 -0
  239. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.js +6 -0
  240. package/dist/service/logs/cfn/group/sim-cfn-log-group-creator.d.ts +9 -2
  241. package/dist/service/logs/cfn/group/sim-cfn-log-group-creator.js +34 -5
  242. package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.js +1 -1
  243. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.d.ts +4 -0
  244. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.js +9 -4
  245. package/dist/service/logs/sim-logs-commands.d.ts +3 -0
  246. package/dist/service/logs/sim-logs-commands.js +4 -0
  247. package/dist/service/logs/sim-logs.js +6 -1
  248. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.d.ts +2 -2
  249. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.js +4 -3
  250. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-generated-name.d.ts +12 -0
  251. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-generated-name.js +22 -0
  252. package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.d.ts +1 -1
  253. package/dist/service/scheduler/command/authorize/sim-scheduler-authorizer.d.ts +10 -1
  254. package/dist/service/scheduler/command/authorize/sim-scheduler-authorizer.js +19 -1
  255. package/dist/service/scheduler/command/schedule/sim-scheduler-create-schedule.js +1 -0
  256. package/dist/service/scheduler/command/schedule/sim-scheduler-schedule-access.d.ts +8 -0
  257. package/dist/service/scheduler/command/schedule/sim-scheduler-schedule-access.js +9 -0
  258. package/dist/service/scheduler/command/schedule/sim-scheduler-update-schedule.js +1 -0
  259. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-generated-name.d.ts +15 -0
  260. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-generated-name.js +22 -0
  261. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-properties.d.ts +4 -10
  262. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-properties.js +13 -31
  263. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-value.d.ts +17 -0
  264. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-value.js +30 -0
  265. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-name.d.ts +6 -0
  266. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-name.js +8 -3
  267. package/dist/service/sns/command/authorize/sim-sns-topic-resource-policies.d.ts +1 -1
  268. package/dist/service/sqs/command/authorize/sim-sqs-queue-resource-policies.d.ts +1 -1
  269. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-generated-parameter-name.d.ts +16 -0
  270. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-generated-parameter-name.js +23 -0
  271. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-properties.d.ts +2 -4
  272. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-properties.js +5 -5
  273. package/dist/service/ssm/parameter/sim-ssm-kms-crypto.d.ts +6 -4
  274. package/dist/service/ssm/parameter/sim-ssm-kms-crypto.js +4 -4
  275. package/dist/service/ssm/parameter/sim-ssm-parameter-arn.d.ts +17 -0
  276. package/dist/service/ssm/parameter/sim-ssm-parameter-arn.js +20 -0
  277. package/dist/service/ssm/parameter/sim-ssm-parameter-kms.d.ts +15 -9
  278. package/dist/service/ssm/parameter/sim-ssm-parameter-kms.js +20 -10
  279. package/dist/service/ssm/parameter/sim-ssm-parameter-name.js +3 -12
  280. package/dist/service/stepfunctions/command/authorize/sim-step-functions-authorizer.d.ts +41 -0
  281. package/dist/service/stepfunctions/command/authorize/sim-step-functions-authorizer.js +64 -0
  282. package/dist/service/stepfunctions/command/machine/sim-state-machine-create.d.ts +5 -2
  283. package/dist/service/stepfunctions/command/machine/sim-state-machine-create.js +6 -2
  284. package/dist/service/stepfunctions/command/machine/sim-state-machine-delete.d.ts +26 -0
  285. package/dist/service/stepfunctions/command/machine/sim-state-machine-delete.js +29 -0
  286. package/dist/service/stepfunctions/command/machine/sim-state-machine-lookup.d.ts +7 -0
  287. package/dist/service/stepfunctions/command/machine/sim-state-machine-lookup.js +12 -3
  288. package/dist/service/stepfunctions/command/machine/sim-state-machine-update.d.ts +19 -0
  289. package/dist/service/stepfunctions/command/machine/{sim-state-machine-writes.js → sim-state-machine-update.js} +3 -14
  290. package/dist/service/stepfunctions/sim-step-functions.d.ts +8 -2
  291. package/dist/service/stepfunctions/sim-step-functions.js +26 -9
  292. package/dist/service/sts/auth-z/assume-role-auth-z-coordinator.d.ts +9 -2
  293. package/dist/service/sts/auth-z/assume-role-auth-z-coordinator.js +2 -2
  294. package/dist/service/sts/auth-z/assume-role-source-account-auth-z.d.ts +10 -4
  295. package/dist/service/sts/auth-z/assume-role-source-account-auth-z.js +8 -7
  296. package/dist/service/sts/auth-z/assume-role-target-auth-z.d.ts +2 -2
  297. package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.d.ts +6 -2
  298. package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.js +14 -11
  299. package/dist/service/sts/command/assume-role/assume-role.handler.d.ts +10 -1
  300. package/dist/service/sts/command/assume-role/assume-role.handler.js +6 -2
  301. package/dist/service/sts/command/get-caller-identity/get-caller-identity.handler.d.ts +10 -1
  302. package/dist/service/sts/command/get-caller-identity/get-caller-identity.handler.js +5 -1
  303. package/dist/service/sts/service-role/sim-service-role.js +5 -1
  304. package/dist/service/sts/sim-sts.d.ts +18 -1
  305. package/dist/service/sts/sim-sts.js +8 -0
  306. package/dist/util/memo/bounded-memo.d.ts +36 -0
  307. package/dist/util/memo/bounded-memo.js +58 -0
  308. package/docs/README.md +54 -0
  309. package/docs/ai-skill/README.md +69 -0
  310. package/docs/cli/README.md +284 -0
  311. package/docs/factories/README.md +140 -0
  312. package/docs/lint/README.md +176 -0
  313. package/docs/non-aws-dependencies/README.md +261 -0
  314. package/docs/sdk/README.md +274 -0
  315. package/docs/serve/README.md +1126 -0
  316. package/docs/services/acm/README.md +823 -0
  317. package/docs/services/apigateway/README.md +1919 -0
  318. package/docs/services/apigatewayv2/README.md +2678 -0
  319. package/docs/services/athena/README.md +1044 -0
  320. package/docs/services/bedrock/README.md +350 -0
  321. package/docs/services/cloudformation/README.md +3625 -0
  322. package/docs/services/cloudfront/README.md +3098 -0
  323. package/docs/services/cloudwatch/README.md +422 -0
  324. package/docs/services/cognito/README.md +4924 -0
  325. package/docs/services/dynamodb/README.md +3785 -0
  326. package/docs/services/ecr/README.md +302 -0
  327. package/docs/services/ecs/README.md +2021 -0
  328. package/docs/services/elbv2/README.md +1901 -0
  329. package/docs/services/eventbridge/README.md +1118 -0
  330. package/docs/services/firehose/README.md +811 -0
  331. package/docs/services/glue/README.md +507 -0
  332. package/docs/services/iam/README.md +1578 -0
  333. package/docs/services/kinesis/README.md +455 -0
  334. package/docs/services/kms/README.md +664 -0
  335. package/docs/services/lambda/README.md +3719 -0
  336. package/docs/services/logs/README.md +882 -0
  337. package/docs/services/organizations/README.md +574 -0
  338. package/docs/services/personalize/README.md +835 -0
  339. package/docs/services/rekognition/README.md +1070 -0
  340. package/docs/services/route53/README.md +1783 -0
  341. package/docs/services/s3/README.md +3029 -0
  342. package/docs/services/scheduler/README.md +814 -0
  343. package/docs/services/secretsmanager/README.md +670 -0
  344. package/docs/services/ses/README.md +1013 -0
  345. package/docs/services/sns/README.md +1904 -0
  346. package/docs/services/sqs/README.md +1185 -0
  347. package/docs/services/ssm/README.md +1096 -0
  348. package/docs/services/stepfunctions/README.md +1341 -0
  349. package/docs/services/sts/README.md +245 -0
  350. package/docs/services/wafv2/README.md +1380 -0
  351. package/docs/terraform/README.md +248 -0
  352. package/docs/time/README.md +284 -0
  353. package/llms.txt +59 -0
  354. package/package.json +7 -4
  355. package/dist/service/stepfunctions/command/machine/sim-state-machine-writes.d.ts +0 -25
@@ -1,4 +1,6 @@
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 { SimCfBehaviorPolicies } from "./sim-cf-behavior-policies.js";
2
4
  import { SimCfBehaviorResponseHeadersPolicy } from "./sim-cf-behavior-response-headers-policy.js";
3
5
  import { SimCloudFrontBehaviorConfigurator } from "./sim-cloud-front-behavior-configurator.js";
4
6
  import { SimCloudFrontDistributionConfigurator } from "./sim-cloud-front-distribution-configurator.js";
@@ -10,6 +12,6 @@ import { SimCloudFrontOriginConfigurator } from "./sim-cloud-front-origin-config
10
12
  * same set of configurators.
11
13
  */
12
14
  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));
15
+ const behaviorPolicies = new SimCfBehaviorPolicies(new SimCfBehaviorResponseHeadersPolicy(properties.responseHeadersPolicies), new SimCfBehaviorCachePolicy(properties.cachePolicies));
16
+ return new SimCloudFrontDistributionConfigurator(new SimCloudFrontOriginConfigurator(properties.s3OriginResolver, properties.originAccessControls, properties.customOriginDispatcher), new SimCloudFrontBehaviorConfigurator(behaviorPolicies), behaviorPolicies, new SimCfDistributionWebAcl(properties.webAclResolver));
15
17
  }
@@ -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
  }
@@ -2,7 +2,7 @@ import type { SimCloudFrontDistributionConfig } from "../../command/create-distr
2
2
  import type { SimCloudFrontDistribution } from "../sim-cloudfront-distribution.js";
3
3
  import type { SimCloudFrontOriginConfigurator } from "./sim-cloud-front-origin-configurator.js";
4
4
  import type { SimCloudFrontBehaviorConfigurator } from "./sim-cloud-front-behavior-configurator.js";
5
- import type { SimCfBehaviorResponseHeadersPolicy } from "./sim-cf-behavior-response-headers-policy.js";
5
+ import type { SimCfBehaviorPolicies } from "./sim-cf-behavior-policies.js";
6
6
  import { type SimCfDistributionWebAcl } from "../../web-acl/sim-cf-distribution-web-acl.js";
7
7
  /**
8
8
  * Applies top-level Distribution configuration to a sim CloudFront Distribution.
@@ -24,10 +24,10 @@ import { type SimCfDistributionWebAcl } from "../../web-acl/sim-cf-distribution-
24
24
  export declare class SimCloudFrontDistributionConfigurator {
25
25
  private readonly originConfigurator;
26
26
  private readonly behaviorConfigurator;
27
- private readonly responseHeadersPolicy;
27
+ private readonly behaviorPolicies;
28
28
  private readonly webAcl;
29
29
  private readonly customErrorConfigurator;
30
- constructor(originConfigurator: SimCloudFrontOriginConfigurator, behaviorConfigurator: SimCloudFrontBehaviorConfigurator, responseHeadersPolicy: SimCfBehaviorResponseHeadersPolicy, webAcl: SimCfDistributionWebAcl);
30
+ constructor(originConfigurator: SimCloudFrontOriginConfigurator, behaviorConfigurator: SimCloudFrontBehaviorConfigurator, behaviorPolicies: SimCfBehaviorPolicies, webAcl: SimCfDistributionWebAcl);
31
31
  /**
32
32
  * Refuse a DistributionConfig this simulation cannot apply, before anything
33
33
  * is applied.
@@ -22,13 +22,13 @@ import { findSimCfRedundantOrigins, warnSimCfRedundantOrigins, } from "../../ori
22
22
  export class SimCloudFrontDistributionConfigurator {
23
23
  originConfigurator;
24
24
  behaviorConfigurator;
25
- responseHeadersPolicy;
25
+ behaviorPolicies;
26
26
  webAcl;
27
27
  customErrorConfigurator = new SimCloudFrontCustomErrorConfigurator();
28
- constructor(originConfigurator, behaviorConfigurator, responseHeadersPolicy, webAcl) {
28
+ constructor(originConfigurator, behaviorConfigurator, behaviorPolicies, webAcl) {
29
29
  this.originConfigurator = originConfigurator;
30
30
  this.behaviorConfigurator = behaviorConfigurator;
31
- this.responseHeadersPolicy = responseHeadersPolicy;
31
+ this.behaviorPolicies = behaviorPolicies;
32
32
  this.webAcl = webAcl;
33
33
  }
34
34
  /**
@@ -42,7 +42,7 @@ export class SimCloudFrontDistributionConfigurator {
42
42
  * worth undoing.
43
43
  */
44
44
  assertConfigurable(distributionConfig) {
45
- this.responseHeadersPolicy.assertAllExist(distributionConfig);
45
+ this.behaviorPolicies.assertAllExist(distributionConfig);
46
46
  this.webAcl.assertUsable(distributionConfig);
47
47
  }
48
48
  /**
@@ -1,4 +1,5 @@
1
1
  import type { SimAcmRegistry } from "../../acm/registry/sim-acm-registry.js";
2
+ import type { SimCloudFrontCachePolicyRegistry } from "../cache-policy/sim-cf-cache-policy-registry.js";
2
3
  import type { SimCfCustomOriginDispatcher } from "../origin/custom/sim-cf-custom-origin-dispatcher.js";
3
4
  import type { SimCloudFrontS3OriginResolver } from "../origin/s3/sim-cloudfront-s3-origin.js";
4
5
  import type { SimCloudFrontOriginAccessControlRegistry } from "../origin-access-control/sim-cf-origin-access-control-registry.js";
@@ -11,7 +12,7 @@ import type { SimCfEdgeFunctions } from "../edge/sim-cf-edge-functions.js";
11
12
  *
12
13
  * A DistributionConfig is mostly references: a Bucket or a hostname per
13
14
  * Origin, a certificate, an origin access control, a response headers policy,
14
- * a web ACL, a Lambda@Edge function version. None of them belongs to
15
+ * a cache policy, a web ACL, a Lambda@Edge function version. None of them belongs to
15
16
  * CloudFront, and creation and update resolve every one of them the same way,
16
17
  * so they travel together.
17
18
  */
@@ -21,6 +22,7 @@ export interface SimCfDistributionConfigurationState {
21
22
  readonly acmRegistry: SimAcmRegistry | undefined;
22
23
  readonly originAccessControls: SimCloudFrontOriginAccessControlRegistry;
23
24
  readonly responseHeadersPolicies: SimCloudFrontResponseHeadersPolicyRegistry;
25
+ readonly cachePolicies: SimCloudFrontCachePolicyRegistry;
24
26
  readonly webAclResolver: SimCfWebAclResolver | undefined;
25
27
  readonly edgeFunctions: SimCfEdgeFunctions | undefined;
26
28
  }
@@ -1,4 +1,5 @@
1
1
  import type { SimCloudFrontDistributionConfig } from "../command/create-distribution/create-distribution.command.js";
2
+ import type { SimCloudFrontCachePolicyRegistry } from "../cache-policy/sim-cf-cache-policy-registry.js";
2
3
  import type { SimCfCustomOriginDispatcher } from "../origin/custom/sim-cf-custom-origin-dispatcher.js";
3
4
  import type { SimCloudFrontS3OriginResolver } from "../origin/s3/sim-cloudfront-s3-origin.js";
4
5
  import type { SimCloudFrontOriginAccessControlRegistry } from "../origin-access-control/sim-cf-origin-access-control-registry.js";
@@ -12,6 +13,7 @@ interface SimCloudFrontDistributionReconfigurerProperties {
12
13
  readonly customOriginDispatcher?: SimCfCustomOriginDispatcher | undefined;
13
14
  readonly originAccessControls: SimCloudFrontOriginAccessControlRegistry;
14
15
  readonly responseHeadersPolicies: SimCloudFrontResponseHeadersPolicyRegistry;
16
+ readonly cachePolicies: SimCloudFrontCachePolicyRegistry;
15
17
  readonly webAclResolver?: SimCfWebAclResolver | undefined;
16
18
  }
17
19
  /**
@@ -101,6 +101,27 @@ export declare class SimCloudFrontResponseHeadersPolicyAlreadyExists extends Sim
101
101
  readonly name = "ResponseHeadersPolicyAlreadyExists";
102
102
  constructor(message: string);
103
103
  }
104
+ /**
105
+ * Simulated CloudFront NoSuchCachePolicy error.
106
+ *
107
+ * What CloudFront answers when a Behavior's `CachePolicyId` names no cache
108
+ * policy the account holds, at Distribution create or update time rather than
109
+ * when a request first needs the policy.
110
+ */
111
+ export declare class SimCloudFrontNoSuchCachePolicy extends SimCloudFrontError {
112
+ readonly name = "NoSuchCachePolicy";
113
+ constructor(message: string);
114
+ }
115
+ /**
116
+ * Simulated CloudFront CachePolicyAlreadyExists error.
117
+ *
118
+ * CloudFront requires a cache policy name to be unique within an account, so a
119
+ * second policy claiming a name is refused rather than created.
120
+ */
121
+ export declare class SimCloudFrontCachePolicyAlreadyExists extends SimCloudFrontError {
122
+ readonly name = "CachePolicyAlreadyExists";
123
+ constructor(message: string);
124
+ }
104
125
  /**
105
126
  * Simulated CloudFront InvalidOriginAccessControl error.
106
127
  *
@@ -118,6 +118,31 @@ export class SimCloudFrontResponseHeadersPolicyAlreadyExists extends SimCloudFro
118
118
  super(message, { httpStatusCode: 409 });
119
119
  }
120
120
  }
121
+ /**
122
+ * Simulated CloudFront NoSuchCachePolicy error.
123
+ *
124
+ * What CloudFront answers when a Behavior's `CachePolicyId` names no cache
125
+ * policy the account holds, at Distribution create or update time rather than
126
+ * when a request first needs the policy.
127
+ */
128
+ export class SimCloudFrontNoSuchCachePolicy extends SimCloudFrontError {
129
+ name = "NoSuchCachePolicy";
130
+ constructor(message) {
131
+ super(message, { httpStatusCode: 404 });
132
+ }
133
+ }
134
+ /**
135
+ * Simulated CloudFront CachePolicyAlreadyExists error.
136
+ *
137
+ * CloudFront requires a cache policy name to be unique within an account, so a
138
+ * second policy claiming a name is refused rather than created.
139
+ */
140
+ export class SimCloudFrontCachePolicyAlreadyExists extends SimCloudFrontError {
141
+ name = "CachePolicyAlreadyExists";
142
+ constructor(message) {
143
+ super(message, { httpStatusCode: 409 });
144
+ }
145
+ }
121
146
  /**
122
147
  * Simulated CloudFront InvalidOriginAccessControl error.
123
148
  *
@@ -1,4 +1,4 @@
1
- import { SimIamAccessDenied } from "../../iam/error/sim-iam.error.js";
1
+ import { simCfAuthorize } from "../sim-cf-authorize.js";
2
2
  /**
3
3
  * What every key value store command needs: the stores, IAM, and the clock.
4
4
  *
@@ -21,15 +21,7 @@ export class SimCfKeyValueStoreAccess {
21
21
  * Ensure the caller may take an action on a key value store ARN.
22
22
  */
23
23
  authorize(action, resource, caller) {
24
- const decision = this.iam.authorize({ action, resource, caller });
25
- if (decision.isDenied) {
26
- throw new SimIamAccessDenied({
27
- principal: decision.caller.principal,
28
- reason: decision.denialReason,
29
- action,
30
- resource,
31
- });
32
- }
24
+ simCfAuthorize({ iam: this.iam, action, resource, caller });
33
25
  }
34
26
  /**
35
27
  * Ensure the caller may take an action on any key value store.
@@ -1,6 +1,7 @@
1
1
  import { faker } from "@faker-js/faker";
2
2
  import { makeSimAwsAccountId, } from "../../aws/sim-aws-account.js";
3
3
  import { SimCloudFrontPreconditionFailed } from "../error/sim-cf-key-value-store.error.js";
4
+ import { makeSimCloudFrontETag } from "../sim-cf-etag.js";
4
5
  import { SimCloudFrontKeyValueStoreKeys, } from "./sim-cf-key-value-store-keys.js";
5
6
  /**
6
7
  * Simulated CloudFront key value store.
@@ -175,5 +176,5 @@ export function makeKeyValueStoreId() {
175
176
  * Generate a fake ETag, in the shape CloudFront gives one.
176
177
  */
177
178
  export function makeKeyValueStoreETag() {
178
- return faker.helpers.fromRegExp(/E[0-9A-Z]{13}/);
179
+ return makeSimCloudFrontETag();
179
180
  }
@@ -23,6 +23,18 @@ export class SimCloudFrontSdkCommandRouter {
23
23
  "DeleteFunctionCommand",
24
24
  async (command, context) => await simCloudFront.deleteFunction(command, simSdkCallerOptions(context)),
25
25
  ],
26
+ [
27
+ "ListFunctionsCommand",
28
+ async (command, context) => await simCloudFront.listFunctions(command, simSdkCallerOptions(context)),
29
+ ],
30
+ [
31
+ "DescribeFunctionCommand",
32
+ async (command, context) => await simCloudFront.describeFunction(command, simSdkCallerOptions(context)),
33
+ ],
34
+ [
35
+ "GetFunctionCommand",
36
+ async (command, context) => await simCloudFront.getFunction(command, simSdkCallerOptions(context)),
37
+ ],
26
38
  [
27
39
  "GetDistributionCommand",
28
40
  async (command, context) => await simCloudFront.getDistribution(command, simSdkCallerOptions(context)),
@@ -0,0 +1,16 @@
1
+ import type { SimAwsCaller } from "../aws/caller/sim-aws-caller.js";
2
+ import type { SimIamInterServiceAuthZ } from "../iam/authorize/sim-iam-inter-service-auth-z.js";
3
+ interface SimCfAuthorizeProperties {
4
+ readonly iam: SimIamInterServiceAuthZ;
5
+ readonly action: string;
6
+ readonly resource: string;
7
+ readonly caller?: SimAwsCaller | undefined;
8
+ }
9
+ /**
10
+ * Ensure a caller may take a CloudFront action on a resource.
11
+ *
12
+ * Every CloudFront command asks IAM the same question and refuses a denial the
13
+ * same way, so the question is asked here rather than once per command group.
14
+ */
15
+ export declare function simCfAuthorize(properties: SimCfAuthorizeProperties): void;
16
+ export {};
@@ -0,0 +1,19 @@
1
+ import { SimIamAccessDenied } from "../iam/error/sim-iam.error.js";
2
+ /**
3
+ * Ensure a caller may take a CloudFront action on a resource.
4
+ *
5
+ * Every CloudFront command asks IAM the same question and refuses a denial the
6
+ * same way, so the question is asked here rather than once per command group.
7
+ */
8
+ export function simCfAuthorize(properties) {
9
+ const { iam, action, resource, caller } = properties;
10
+ const decision = iam.authorize({ action, resource, caller });
11
+ if (decision.isDenied) {
12
+ throw new SimIamAccessDenied({
13
+ principal: decision.caller.principal,
14
+ reason: decision.denialReason,
15
+ action,
16
+ resource,
17
+ });
18
+ }
19
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Generate a fake ETag, in the shape CloudFront gives one.
3
+ *
4
+ * Every versioned CloudFront resource carries one of these, and a write says
5
+ * which version it is writing over by sending it back as `IfMatch`.
6
+ */
7
+ export declare function makeSimCloudFrontETag(): string;
@@ -0,0 +1,10 @@
1
+ import { faker } from "@faker-js/faker";
2
+ /**
3
+ * Generate a fake ETag, in the shape CloudFront gives one.
4
+ *
5
+ * Every versioned CloudFront resource carries one of these, and a write says
6
+ * which version it is writing over by sending it back as `IfMatch`.
7
+ */
8
+ export function makeSimCloudFrontETag() {
9
+ return faker.helpers.fromRegExp(/E[0-9A-Z]{13}/);
10
+ }
@@ -5,10 +5,8 @@ import type { SimAwsAccountRegionScope } from "../aws/sim-aws-account-region-sco
5
5
  import type { SimAwsAccountId } from "../aws/sim-aws-account.js";
6
6
  import type { SimIamInterServiceAuthZ } from "../iam/authorize/sim-iam-inter-service-auth-z.js";
7
7
  import type { SimCreateDistributionCommand, SimCreateDistributionCommandOutput } from "./command/create-distribution/create-distribution.command.js";
8
- import type { SimCreateFunctionCommand, SimCreateFunctionCommandOutput } from "./command/create-function/create-function.command.js";
9
- import { type SimCloudFrontFunctionMap } from "./command/create-function/create-function.handler.js";
8
+ import type { SimCloudFrontFunctionMap } from "./command/create-function/create-function.handler.js";
10
9
  import type { SimDeleteDistributionCommand, SimDeleteDistributionCommandOutput } from "./command/delete-distribution/delete-distribution.command.js";
11
- import type { SimDeleteFunctionCommand, SimDeleteFunctionCommandOutput } from "./command/delete-function/delete-function.command.js";
12
10
  import type { SimGetDistributionCommand, SimGetDistributionCommandOutput } from "./command/get-distribution/get-distribution.command.js";
13
11
  import type { SimUpdateDistributionCommand, SimUpdateDistributionCommandOutput } from "./command/update-distribution/update-distribution.command.js";
14
12
  import type { SimCloudFrontDistribution, SimCloudFrontDistributionId } from "./distribution/sim-cloudfront-distribution.js";
@@ -16,11 +14,13 @@ import type { SimCfCustomOriginDispatcher } from "./origin/custom/sim-cf-custom-
16
14
  import { type SimCloudFrontS3OriginResolver } from "./origin/s3/sim-cloudfront-s3-origin.js";
17
15
  import type { SimCloudFrontOriginAccessControlRegistry } from "./origin-access-control/sim-cf-origin-access-control-registry.js";
18
16
  import type { SimCloudFrontResponseHeadersPolicyRegistry } from "./response-headers-policy/sim-cf-response-headers-policy-registry.js";
17
+ import type { SimCloudFrontCachePolicyRegistry } from "./cache-policy/sim-cf-cache-policy-registry.js";
19
18
  import { SimCloudFrontRegistry } from "./registry/sim-cloud-front-registry.js";
20
19
  import type { SimCfWebAclResolver } from "./web-acl/sim-cf-web-acl.js";
21
20
  import type { SimCfEdgeFunctions } from "./edge/sim-cf-edge-functions.js";
22
21
  import { SimCfKeyValueStoreCommands } from "./key-value-store/sim-cf-key-value-store-commands.js";
23
22
  import { SimCloudFrontKeyValueStoreApi } from "./sim-cloudfront-key-value-store.js";
23
+ import { SimCfFunctionCommands } from "./cff/sim-cf-function-commands.js";
24
24
  /**
25
25
  * How one simulated CloudFront is put together.
26
26
  */
@@ -43,6 +43,7 @@ interface SimCloudFrontCommandsProperties extends SimCloudFrontProperties {
43
43
  readonly cloudFrontFunctions: SimCloudFrontFunctionMap;
44
44
  readonly originAccessControls: SimCloudFrontOriginAccessControlRegistry;
45
45
  readonly responseHeadersPolicies: SimCloudFrontResponseHeadersPolicyRegistry;
46
+ readonly cachePolicies: SimCloudFrontCachePolicyRegistry;
46
47
  }
47
48
  /**
48
49
  * Options carried by any simulated CloudFront request.
@@ -75,8 +76,11 @@ export declare class SimCloudFrontCommands {
75
76
  * well as by the Distribution commands, which check one can be associated.
76
77
  */
77
78
  readonly edgeFunctions: SimCfEdgeFunctions | undefined;
79
+ /**
80
+ * The CloudFront Function commands, and the Functions they work on.
81
+ */
82
+ readonly functions: SimCfFunctionCommands;
78
83
  private readonly distributionState;
79
- private readonly functionState;
80
84
  private readonly configurationState;
81
85
  constructor(properties: SimCloudFrontCommandsProperties);
82
86
  /**
@@ -95,13 +99,5 @@ export declare class SimCloudFrontCommands {
95
99
  * Handle a Delete Distribution Command from the SDK.
96
100
  */
97
101
  deleteDistribution(command: SimDeleteDistributionCommand, options?: SimCloudFrontRequestOptions): Promise<SimDeleteDistributionCommandOutput>;
98
- /**
99
- * Handle a Create Function Command from the SDK.
100
- */
101
- createFunction(command: SimCreateFunctionCommand, options?: SimCloudFrontRequestOptions): Promise<SimCreateFunctionCommandOutput>;
102
- /**
103
- * Handle a Delete Function Command from the SDK.
104
- */
105
- deleteFunction(command: SimDeleteFunctionCommand, options?: SimCloudFrontRequestOptions): Promise<SimDeleteFunctionCommandOutput>;
106
102
  }
107
103
  export {};
@@ -1,9 +1,7 @@
1
1
  import { BackgroundTasks, } from "../../util/background/background.js";
2
2
  import { simIamGlobalServiceRegion, simIamInRegion, } from "../iam/authorize/sim-iam-region-auth-z.js";
3
3
  import { CreateDistributionCommandHandler } from "./command/create-distribution/create-distribution.handler.js";
4
- import { CreateFunctionCommandHandler, } from "./command/create-function/create-function.handler.js";
5
4
  import { DeleteDistributionCommandHandler } from "./command/delete-distribution/delete-distribution.handler.js";
6
- import { DeleteFunctionCommandHandler } from "./command/delete-function/delete-function.handler.js";
7
5
  import { GetDistributionCommandHandler } from "./command/get-distribution/get-distribution.handler.js";
8
6
  import { UpdateDistributionCommandHandler } from "./command/update-distribution/update-distribution.handler.js";
9
7
  import { emptyCloudFrontS3OriginResolver, } from "./origin/s3/sim-cloudfront-s3-origin.js";
@@ -13,6 +11,7 @@ import { SimCfKeyValueStoreCommands } from "./key-value-store/sim-cf-key-value-s
13
11
  import { SimCloudFrontKeyValueStoreRegistry } from "./key-value-store/sim-cf-key-value-store-registry.js";
14
12
  import { SimCloudFrontKeyValueStoreApi } from "./sim-cloudfront-key-value-store.js";
15
13
  import { SimCffKeyValueStoreUsers } from "./cff/kvs/sim-cff-key-value-store-users.js";
14
+ import { SimCfFunctionCommands } from "./cff/sim-cf-function-commands.js";
16
15
  /**
17
16
  * The commands of one simulated CloudFront, and the state they share.
18
17
  *
@@ -37,8 +36,11 @@ export class SimCloudFrontCommands {
37
36
  * well as by the Distribution commands, which check one can be associated.
38
37
  */
39
38
  edgeFunctions;
39
+ /**
40
+ * The CloudFront Function commands, and the Functions they work on.
41
+ */
42
+ functions;
40
43
  distributionState;
41
- functionState;
42
44
  configurationState;
43
45
  constructor(properties) {
44
46
  const { accountId, distributions, cloudFrontFunctions, cloudFrontRegistry = new SimCloudFrontRegistry(), s3OriginResolver = emptyCloudFrontS3OriginResolver, customOriginDispatcher, acmRegistry, webAclResolver, edgeFunctions, background = new BackgroundTasks(), } = properties;
@@ -54,13 +56,13 @@ export class SimCloudFrontCommands {
54
56
  iam,
55
57
  background,
56
58
  };
57
- this.functionState = {
59
+ this.functions = new SimCfFunctionCommands({
58
60
  accountId,
59
61
  cloudFrontFunctions,
60
62
  iam,
61
63
  background,
62
64
  keyValueStores,
63
- };
65
+ });
64
66
  this.configurationState = {
65
67
  s3OriginResolver,
66
68
  customOriginDispatcher,
@@ -69,6 +71,7 @@ export class SimCloudFrontCommands {
69
71
  edgeFunctions,
70
72
  originAccessControls: properties.originAccessControls,
71
73
  responseHeadersPolicies: properties.responseHeadersPolicies,
74
+ cachePolicies: properties.cachePolicies,
72
75
  };
73
76
  const keyValueStoreAccess = new SimCfKeyValueStoreAccess({
74
77
  accountId,
@@ -111,16 +114,4 @@ export class SimCloudFrontCommands {
111
114
  async deleteDistribution(command, options) {
112
115
  return await new DeleteDistributionCommandHandler(this.distributionState).handle(command, options);
113
116
  }
114
- /**
115
- * Handle a Create Function Command from the SDK.
116
- */
117
- async createFunction(command, options) {
118
- return await new CreateFunctionCommandHandler(this.functionState).handle(command, options);
119
- }
120
- /**
121
- * Handle a Delete Function Command from the SDK.
122
- */
123
- async deleteFunction(command, options) {
124
- return await new DeleteFunctionCommandHandler(this.functionState).handle(command, options);
125
- }
126
117
  }
@@ -0,0 +1,43 @@
1
+ import type { SimCloudFrontCachePolicy, SimCloudFrontCachePolicyId } from "./cache-policy/sim-cf-cache-policy.js";
2
+ import { SimCloudFrontCachePolicyRegistry } from "./cache-policy/sim-cf-cache-policy-registry.js";
3
+ import type { SimCloudFrontResponseHeadersPolicy, SimCloudFrontResponseHeadersPolicyId } from "./response-headers-policy/sim-cf-response-headers-policy.js";
4
+ import { SimCloudFrontResponseHeadersPolicyRegistry } from "./response-headers-policy/sim-cf-response-headers-policy-registry.js";
5
+ /**
6
+ * The policies one simulated CloudFront holds.
7
+ *
8
+ * A cache Behavior names a response headers policy and a cache policy by ID,
9
+ * and both are stored here. Neither has a create command in this simulation,
10
+ * so CloudFormation is the only thing that makes one, and these methods are
11
+ * how it hands a policy over. `SimCloudFront` extends this, and a caller
12
+ * reaches the policies on the one service object.
13
+ */
14
+ export declare class SimCloudFrontPolicies {
15
+ protected readonly responseHeadersPolicies: SimCloudFrontResponseHeadersPolicyRegistry;
16
+ protected readonly cachePolicies: SimCloudFrontCachePolicyRegistry;
17
+ /**
18
+ * Store a simulated response headers policy. A name another policy already
19
+ * holds is refused, as CloudFront refuses one.
20
+ */
21
+ addResponseHeadersPolicy(policy: SimCloudFrontResponseHeadersPolicy): void;
22
+ /**
23
+ * Forget a simulated response headers policy.
24
+ */
25
+ removeResponseHeadersPolicy(policyId: SimCloudFrontResponseHeadersPolicyId): void;
26
+ /**
27
+ * Get a simulated response headers policy by ID.
28
+ */
29
+ getResponseHeadersPolicyById(policyId: SimCloudFrontResponseHeadersPolicyId | string): SimCloudFrontResponseHeadersPolicy | undefined;
30
+ /**
31
+ * Store a simulated cache policy. A name another policy already holds is
32
+ * refused, as CloudFront refuses one.
33
+ */
34
+ addCachePolicy(policy: SimCloudFrontCachePolicy): void;
35
+ /**
36
+ * Forget a simulated cache policy.
37
+ */
38
+ removeCachePolicy(policyId: SimCloudFrontCachePolicyId): void;
39
+ /**
40
+ * Get a simulated cache policy by ID.
41
+ */
42
+ getCachePolicyById(policyId: SimCloudFrontCachePolicyId | string): SimCloudFrontCachePolicy | undefined;
43
+ }
@@ -0,0 +1,53 @@
1
+ import { SimCloudFrontCachePolicyRegistry } from "./cache-policy/sim-cf-cache-policy-registry.js";
2
+ import { SimCloudFrontResponseHeadersPolicyRegistry } from "./response-headers-policy/sim-cf-response-headers-policy-registry.js";
3
+ /**
4
+ * The policies one simulated CloudFront holds.
5
+ *
6
+ * A cache Behavior names a response headers policy and a cache policy by ID,
7
+ * and both are stored here. Neither has a create command in this simulation,
8
+ * so CloudFormation is the only thing that makes one, and these methods are
9
+ * how it hands a policy over. `SimCloudFront` extends this, and a caller
10
+ * reaches the policies on the one service object.
11
+ */
12
+ export class SimCloudFrontPolicies {
13
+ responseHeadersPolicies = new SimCloudFrontResponseHeadersPolicyRegistry();
14
+ cachePolicies = new SimCloudFrontCachePolicyRegistry();
15
+ /**
16
+ * Store a simulated response headers policy. A name another policy already
17
+ * holds is refused, as CloudFront refuses one.
18
+ */
19
+ addResponseHeadersPolicy(policy) {
20
+ this.responseHeadersPolicies.add(policy);
21
+ }
22
+ /**
23
+ * Forget a simulated response headers policy.
24
+ */
25
+ removeResponseHeadersPolicy(policyId) {
26
+ this.responseHeadersPolicies.remove(policyId);
27
+ }
28
+ /**
29
+ * Get a simulated response headers policy by ID.
30
+ */
31
+ getResponseHeadersPolicyById(policyId) {
32
+ return this.responseHeadersPolicies.byId(policyId);
33
+ }
34
+ /**
35
+ * Store a simulated cache policy. A name another policy already holds is
36
+ * refused, as CloudFront refuses one.
37
+ */
38
+ addCachePolicy(policy) {
39
+ this.cachePolicies.add(policy);
40
+ }
41
+ /**
42
+ * Forget a simulated cache policy.
43
+ */
44
+ removeCachePolicy(policyId) {
45
+ this.cachePolicies.remove(policyId);
46
+ }
47
+ /**
48
+ * Get a simulated cache policy by ID.
49
+ */
50
+ getCachePolicyById(policyId) {
51
+ return this.cachePolicies.byId(policyId);
52
+ }
53
+ }
@@ -6,10 +6,11 @@ import type { SimCreateDistributionCommand, SimCreateDistributionCommandOutput }
6
6
  import type { SimCreateFunctionCommand, SimCreateFunctionCommandOutput } from "./command/create-function/create-function.command.js";
7
7
  import type { SimDeleteDistributionCommand, SimDeleteDistributionCommandOutput } from "./command/delete-distribution/delete-distribution.command.js";
8
8
  import type { SimDeleteFunctionCommand, SimDeleteFunctionCommandOutput } from "./command/delete-function/delete-function.command.js";
9
+ import type { SimDescribeFunctionCommand, SimDescribeFunctionCommandOutput, SimGetFunctionCommand, SimGetFunctionCommandOutput, SimListFunctionsCommand, SimListFunctionsCommandOutput } from "./command/function/sim-cf-function-command.types.js";
9
10
  import type { SimGetDistributionCommand, SimGetDistributionCommandOutput } from "./command/get-distribution/get-distribution.command.js";
10
11
  import type { SimUpdateDistributionCommand, SimUpdateDistributionCommandOutput } from "./command/update-distribution/update-distribution.command.js";
11
12
  import type { SimCloudFrontDistribution, SimCloudFrontDistributionId } from "./distribution/sim-cloudfront-distribution.js";
12
- import type { SimCloudFrontResponseHeadersPolicy, SimCloudFrontResponseHeadersPolicyId } from "./response-headers-policy/sim-cf-response-headers-policy.js";
13
+ import { SimCloudFrontPolicies } from "./sim-cloudfront-policies.js";
13
14
  import type { SimCloudFrontOriginAccessControl, SimCloudFrontOriginAccessControlId } from "./origin-access-control/sim-cf-origin-access-control.js";
14
15
  import type { SimCfKeyValueStoreCommands } from "./key-value-store/sim-cf-key-value-store-commands.js";
15
16
  import type { SimCloudFrontKeyValueStoreApi } from "./sim-cloudfront-key-value-store.js";
@@ -18,10 +19,9 @@ export type { SimCloudFrontProperties, SimCloudFrontRequestOptions, } from "./si
18
19
  /**
19
20
  * Simulated CloudFront. Handles SDK commands. Emulates AWS behaviour and state.
20
21
  */
21
- export declare class SimCloudFront {
22
+ export declare class SimCloudFront extends SimCloudFrontPolicies {
22
23
  private readonly distributions;
23
24
  private readonly cloudFrontFunctions;
24
- private readonly responseHeadersPolicies;
25
25
  private readonly originAccessControls;
26
26
  private readonly accountRegionScope;
27
27
  private readonly commands;
@@ -72,29 +72,25 @@ export declare class SimCloudFront {
72
72
  */
73
73
  deleteFunction(command: SimDeleteFunctionCommand, options?: SimCloudFrontRequestOptions): Promise<SimDeleteFunctionCommandOutput>;
74
74
  /**
75
- * Get a sim CloudFront Function by ARN.
75
+ * Handle a List Functions Command from the SDK.
76
76
  */
77
- getCloudFrontFunctionByArn(cloudFrontFunctionArn: SimArn): SimCloudFrontFunction | undefined;
77
+ listFunctions(command: SimListFunctionsCommand, options?: SimCloudFrontRequestOptions): Promise<SimListFunctionsCommandOutput>;
78
78
  /**
79
- * Get a sim CloudFront Function by name.
79
+ * Handle a Describe Function Command from the SDK.
80
80
  */
81
- getCloudFrontFunctionByName(cloudFrontFunctionName: SimCloudFrontFunctionName | string): SimCloudFrontFunction | undefined;
81
+ describeFunction(command: SimDescribeFunctionCommand, options?: SimCloudFrontRequestOptions): Promise<SimDescribeFunctionCommandOutput>;
82
82
  /**
83
- * Store a simulated response headers policy.
84
- *
85
- * There is no CreateResponseHeadersPolicy command here, so CloudFormation is
86
- * the only thing that makes one, and this is how it hands the policy over.
87
- * A name another policy already holds is refused, as CloudFront refuses one.
83
+ * Handle a Get Function Command from the SDK.
88
84
  */
89
- addResponseHeadersPolicy(policy: SimCloudFrontResponseHeadersPolicy): void;
85
+ getFunction(command: SimGetFunctionCommand, options?: SimCloudFrontRequestOptions): Promise<SimGetFunctionCommandOutput>;
90
86
  /**
91
- * Forget a simulated response headers policy.
87
+ * Get a sim CloudFront Function by ARN.
92
88
  */
93
- removeResponseHeadersPolicy(policyId: SimCloudFrontResponseHeadersPolicyId): void;
89
+ getCloudFrontFunctionByArn(cloudFrontFunctionArn: SimArn): SimCloudFrontFunction | undefined;
94
90
  /**
95
- * Get a simulated response headers policy by ID.
91
+ * Get a sim CloudFront Function by name.
96
92
  */
97
- getResponseHeadersPolicyById(policyId: SimCloudFrontResponseHeadersPolicyId | string): SimCloudFrontResponseHeadersPolicy | undefined;
93
+ getCloudFrontFunctionByName(cloudFrontFunctionName: SimCloudFrontFunctionName | string): SimCloudFrontFunction | undefined;
98
94
  /**
99
95
  * Store a simulated origin access control.
100
96
  *