@kensio/yulin 1.20.16 → 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 (312) hide show
  1. package/dist/service/aws/caller/sim-aws-ambient-caller.d.ts +23 -0
  2. package/dist/service/aws/caller/sim-aws-ambient-caller.js +12 -0
  3. package/dist/service/aws/caller/sim-aws-caller-resolver.d.ts +17 -6
  4. package/dist/service/aws/caller/sim-aws-caller-resolver.js +21 -26
  5. package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts +6 -0
  6. package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +3 -0
  7. package/dist/service/aws/factory/sim-aws-account-service-cache.d.ts +6 -0
  8. package/dist/service/aws/factory/sim-aws-account-service-cache.js +5 -1
  9. package/dist/service/aws/factory/sim-aws-registered-service-builder.js +3 -1
  10. package/dist/service/aws/factory/sim-aws-service-factory.js +9 -1
  11. package/dist/service/cloudformation/command/create-stack/create-stack.handler.d.ts +4 -0
  12. package/dist/service/cloudformation/command/create-stack/create-stack.handler.js +4 -1
  13. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js +2 -1
  14. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.d.ts +11 -2
  15. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.js +2 -1
  16. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts +6 -0
  17. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts +11 -0
  18. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js +17 -15
  19. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.d.ts +12 -0
  20. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.js +2 -1
  21. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cache-policy-cfn.d.ts +23 -0
  22. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cache-policy-cfn.js +30 -0
  23. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cfn-value-adapter.js +8 -0
  24. package/dist/service/cloudformation/resource/name/sim-cfn-generated-resource-name.d.ts +29 -12
  25. package/dist/service/cloudformation/resource/name/sim-cfn-generated-resource-name.js +51 -20
  26. package/dist/service/cloudformation/stack/deploy/sim-cfn-resource-order.d.ts +19 -0
  27. package/dist/service/cloudformation/stack/deploy/sim-cfn-resource-order.js +6 -0
  28. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.d.ts +7 -0
  29. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.js +9 -2
  30. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-creator.d.ts +2 -0
  31. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-creator.js +2 -1
  32. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +6 -0
  33. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +4 -1
  34. package/dist/service/cloudformation/stack/sim-cfn-stack.js +2 -1
  35. package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +6 -0
  36. package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts +5 -0
  37. package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy-registry.d.ts +37 -0
  38. package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy-registry.js +50 -0
  39. package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy.d.ts +25 -0
  40. package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy.js +21 -0
  41. package/dist/service/cloudfront/cache-policy/sim-cf-managed-cache-policies.d.ts +28 -0
  42. package/dist/service/cloudfront/cache-policy/sim-cf-managed-cache-policies.js +48 -0
  43. package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.d.ts +8 -0
  44. package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.js +13 -0
  45. package/dist/service/cloudfront/cff/sim-cf-function-commands.d.ts +52 -0
  46. package/dist/service/cloudfront/cff/sim-cf-function-commands.js +51 -0
  47. package/dist/service/cloudfront/cff/sim-cff-configuration.d.ts +41 -0
  48. package/dist/service/cloudfront/cff/sim-cff-configuration.js +34 -0
  49. package/dist/service/cloudfront/cff/sim-cff-stage.d.ts +23 -0
  50. package/dist/service/cloudfront/cff/sim-cff-stage.js +30 -0
  51. package/dist/service/cloudfront/cff/sim-cloudfront-function.d.ts +6 -1
  52. package/dist/service/cloudfront/cff/sim-cloudfront-function.js +6 -0
  53. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-config.d.ts +27 -0
  54. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-config.js +42 -0
  55. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-creator.d.ts +24 -0
  56. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-creator.js +32 -0
  57. 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
  58. package/dist/service/cloudfront/cfn/distro/{sim-cfn-cf-distro-response-headers-policy.js → sim-cfn-cf-distro-behavior-policies.js} +11 -37
  59. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.d.ts +6 -5
  60. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js +8 -7
  61. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-policy-drops.d.ts +23 -0
  62. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-policy-drops.js +50 -0
  63. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.d.ts +1 -0
  64. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.js +10 -0
  65. package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts +1 -0
  66. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts +2 -0
  67. package/dist/service/cloudfront/command/create-function/create-function.handler.js +7 -1
  68. package/dist/service/cloudfront/command/function/sim-cf-describe-function.d.ts +22 -0
  69. package/dist/service/cloudfront/command/function/sim-cf-describe-function.js +32 -0
  70. package/dist/service/cloudfront/command/function/sim-cf-function-access.d.ts +48 -0
  71. package/dist/service/cloudfront/command/function/sim-cf-function-access.js +48 -0
  72. package/dist/service/cloudfront/command/function/sim-cf-function-command.types.d.ts +97 -0
  73. package/dist/service/cloudfront/command/function/sim-cf-function-command.types.js +10 -0
  74. package/dist/service/cloudfront/command/function/sim-cf-function-lookup.d.ts +12 -0
  75. package/dist/service/cloudfront/command/function/sim-cf-function-lookup.js +21 -0
  76. package/dist/service/cloudfront/command/function/sim-cf-function-summary.d.ts +11 -0
  77. package/dist/service/cloudfront/command/function/sim-cf-function-summary.js +30 -0
  78. package/dist/service/cloudfront/command/function/sim-cf-get-function.d.ts +23 -0
  79. package/dist/service/cloudfront/command/function/sim-cf-get-function.js +33 -0
  80. package/dist/service/cloudfront/command/function/sim-cf-list-functions.d.ts +22 -0
  81. package/dist/service/cloudfront/command/function/sim-cf-list-functions.js +38 -0
  82. package/dist/service/cloudfront/command/update-distribution/update-distribution.handler.d.ts +2 -0
  83. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-cache-policy.d.ts +18 -0
  84. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-cache-policy.js +30 -0
  85. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-policies.d.ts +28 -0
  86. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-policies.js +41 -0
  87. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.d.ts +2 -2
  88. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.js +6 -3
  89. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.d.ts +0 -10
  90. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.js +0 -19
  91. package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.d.ts +2 -0
  92. package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.js +4 -2
  93. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.d.ts +3 -3
  94. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.js +5 -5
  95. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.d.ts +3 -3
  96. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.js +4 -4
  97. package/dist/service/cloudfront/distribution/sim-cf-distribution-configuration-state.d.ts +3 -1
  98. package/dist/service/cloudfront/distribution/sim-cf-distribution-reconfigurer.d.ts +2 -0
  99. package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts +21 -0
  100. package/dist/service/cloudfront/error/sim-cloudfront.error.js +25 -0
  101. package/dist/service/cloudfront/key-value-store/sim-cf-key-value-store-access.js +2 -10
  102. package/dist/service/cloudfront/key-value-store/sim-cf-key-value-store.js +2 -1
  103. package/dist/service/cloudfront/sdk/sim-cloudfront-sdk-command-router.js +12 -0
  104. package/dist/service/cloudfront/sim-cf-authorize.d.ts +16 -0
  105. package/dist/service/cloudfront/sim-cf-authorize.js +19 -0
  106. package/dist/service/cloudfront/sim-cf-etag.d.ts +7 -0
  107. package/dist/service/cloudfront/sim-cf-etag.js +10 -0
  108. package/dist/service/cloudfront/sim-cloudfront-commands.d.ts +8 -12
  109. package/dist/service/cloudfront/sim-cloudfront-commands.js +8 -17
  110. package/dist/service/cloudfront/sim-cloudfront-policies.d.ts +43 -0
  111. package/dist/service/cloudfront/sim-cloudfront-policies.js +53 -0
  112. package/dist/service/cloudfront/sim-cloudfront.d.ts +13 -17
  113. package/dist/service/cloudfront/sim-cloudfront.js +22 -25
  114. package/dist/service/ecr/authorize/sim-ecr-authorizer.d.ts +31 -0
  115. package/dist/service/ecr/authorize/sim-ecr-authorizer.js +38 -0
  116. package/dist/service/ecr/cfn/repository/sim-cfn-ecr-repository-creator.d.ts +11 -2
  117. package/dist/service/ecr/cfn/repository/sim-cfn-ecr-repository-creator.js +11 -2
  118. package/dist/service/ecr/cfn/sim-ecr-cfn-resource-factory.d.ts +4 -2
  119. package/dist/service/ecr/cfn/sim-ecr-cfn-resource-factory.js +8 -9
  120. package/dist/service/ecr/cfn/sim-ecr-cfn-unsupported-resource.d.ts +7 -0
  121. package/dist/service/ecr/cfn/sim-ecr-cfn-unsupported-resource.js +9 -0
  122. package/dist/service/ecr/sim-ecr.d.ts +7 -0
  123. package/dist/service/ecr/sim-ecr.js +16 -4
  124. package/dist/service/ecs/command/authorize/sim-ecs-authorizer.d.ts +12 -0
  125. package/dist/service/ecs/command/authorize/sim-ecs-authorizer.js +21 -0
  126. package/dist/service/ecs/command/register-task-definition/register-task-definition.handler.js +1 -0
  127. package/dist/service/ecs/sim-ecs-service-principal.d.ts +8 -0
  128. package/dist/service/ecs/sim-ecs-service-principal.js +8 -0
  129. package/dist/service/eventbridge/command/authorize/sim-event-bridge-authorizer.d.ts +12 -0
  130. package/dist/service/eventbridge/command/authorize/sim-event-bridge-authorizer.js +21 -0
  131. package/dist/service/eventbridge/command/rule/sim-event-bridge-rule-access.d.ts +13 -0
  132. package/dist/service/eventbridge/command/rule/sim-event-bridge-rule-access.js +9 -0
  133. package/dist/service/eventbridge/command/target/sim-event-bridge-put-targets.js +1 -0
  134. package/dist/service/firehose/command/authorize/sim-firehose-authorizer.d.ts +12 -0
  135. package/dist/service/firehose/command/authorize/sim-firehose-authorizer.js +20 -0
  136. package/dist/service/firehose/command/sim-firehose-delivery-stream-access.d.ts +4 -0
  137. package/dist/service/firehose/command/sim-firehose-delivery-stream-access.js +6 -0
  138. package/dist/service/firehose/command/stream/sim-firehose-create-delivery-stream.js +3 -1
  139. package/dist/service/firehose/sim-firehose-service-principal.d.ts +8 -0
  140. package/dist/service/firehose/sim-firehose-service-principal.js +8 -0
  141. package/dist/service/firehose/source/sim-firehose-source.d.ts +5 -0
  142. package/dist/service/firehose/source/sim-firehose-source.js +5 -0
  143. package/dist/service/glue/cfn/database/sim-cfn-glue-database-properties.js +2 -2
  144. package/dist/service/glue/cfn/sim-cfn-glue-generated-name.d.ts +10 -0
  145. package/dist/service/glue/cfn/sim-cfn-glue-generated-name.js +25 -0
  146. package/dist/service/glue/cfn/table/sim-cfn-glue-table-properties.js +2 -3
  147. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.d.ts +33 -2
  148. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.js +33 -2
  149. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.d.ts +4 -3
  150. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.js +9 -3
  151. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.d.ts +14 -5
  152. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.js +16 -12
  153. package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.d.ts +9 -3
  154. package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.js +5 -3
  155. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts +9 -71
  156. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js +2 -1
  157. package/dist/service/iam/authorize/context/sim-iam-auth-z-input.d.ts +87 -0
  158. package/dist/service/iam/authorize/context/sim-iam-auth-z-input.js +1 -0
  159. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.d.ts +11 -3
  160. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.js +20 -8
  161. package/dist/service/iam/authorize/match/sim-iam-principal-match.d.ts +29 -8
  162. package/dist/service/iam/authorize/match/sim-iam-principal-match.js +38 -13
  163. package/dist/service/iam/authorize/pass-role/sim-iam-pass-role-authorizer.d.ts +74 -0
  164. package/dist/service/iam/authorize/pass-role/sim-iam-pass-role-authorizer.js +92 -0
  165. package/dist/service/iam/authorize/sim-iam-account-auth-z.d.ts +14 -5
  166. package/dist/service/iam/authorize/sim-iam-account-auth-z.js +6 -4
  167. package/dist/service/iam/authorize/sim-iam-authorizer.d.ts +3 -1
  168. package/dist/service/iam/authorize/sim-iam-authorizer.js +2 -1
  169. package/dist/service/iam/authorize/sim-iam-inter-service-auth-z.d.ts +1 -1
  170. package/dist/service/iam/authorize/sim-iam-wildcard.js +39 -4
  171. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.js +2 -1
  172. package/dist/service/iam/cfn/name/sim-cfn-iam-generated-name.d.ts +16 -0
  173. package/dist/service/iam/cfn/name/sim-cfn-iam-generated-name.js +36 -0
  174. package/dist/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.js +9 -8
  175. package/dist/service/iam/cfn/sim-cfn-iam-optional-string.d.ts +17 -0
  176. package/dist/service/iam/cfn/sim-cfn-iam-optional-string.js +17 -0
  177. package/dist/service/iam/cfn/user/sim-cfn-iam-user-properties-parser.js +4 -8
  178. package/dist/service/iam/command/policy/create-policy/create-policy-input-resolver.js +2 -0
  179. package/dist/service/iam/command/policy/put-role-policy/put-role-policy.handler.js +5 -0
  180. package/dist/service/iam/command/policy/put-user-policy/put-user-policy.handler.js +5 -0
  181. package/dist/service/iam/command/role/create-role/create-role.handler.js +4 -1
  182. package/dist/service/iam/error/sim-iam.error.d.ts +11 -0
  183. package/dist/service/iam/error/sim-iam.error.js +13 -0
  184. package/dist/service/iam/index.d.ts +1 -0
  185. package/dist/service/iam/policy/sim-iam-policy-document-of-size.d.ts +18 -0
  186. package/dist/service/iam/policy/sim-iam-policy-document-of-size.js +41 -0
  187. package/dist/service/iam/role/sim-iam-deploy-role.d.ts +56 -0
  188. package/dist/service/iam/role/sim-iam-deploy-role.js +50 -0
  189. package/dist/service/iam/role/sim-iam-role-with-policy.factory.d.ts +3 -1
  190. package/dist/service/iam/sim-iam-account-parts.d.ts +8 -0
  191. package/dist/service/iam/sim-iam-account-parts.js +1 -0
  192. package/dist/service/iam/sim-iam.d.ts +12 -2
  193. package/dist/service/iam/sim-iam.js +12 -0
  194. package/dist/service/iam/validate/size/sim-iam-policy-document-size.d.ts +57 -0
  195. package/dist/service/iam/validate/size/sim-iam-policy-document-size.js +71 -0
  196. package/dist/service/kms/command/authorize/sim-kms-authorizer.d.ts +3 -1
  197. package/dist/service/kms/command/authorize/sim-kms-authorizer.js +4 -1
  198. package/dist/service/kms/command/sim-kms-request-options.d.ts +11 -0
  199. package/dist/service/kms/key/sim-kms-key-policy.d.ts +5 -4
  200. package/dist/service/kms/key/sim-kms-key-policy.js +4 -3
  201. package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-properties-parser.d.ts +2 -2
  202. package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-properties-parser.js +4 -3
  203. package/dist/service/lambda/cfn/function/sim-cfn-lambda-generated-function-name.d.ts +10 -0
  204. package/dist/service/lambda/cfn/function/sim-cfn-lambda-generated-function-name.js +25 -0
  205. package/dist/service/lambda/command/authorize/sim-lambda-resource-policies.d.ts +1 -1
  206. package/dist/service/lambda/command/create-function/create-function-authorizer.d.ts +9 -2
  207. package/dist/service/lambda/command/create-function/create-function-authorizer.js +16 -2
  208. package/dist/service/lambda/command/create-function/create-function.handler.js +1 -1
  209. package/dist/service/lambda/command/update-function-configuration/update-function-configuration-authorizer.d.ts +7 -2
  210. package/dist/service/lambda/command/update-function-configuration/update-function-configuration-authorizer.js +14 -2
  211. package/dist/service/lambda/command/update-function-configuration/update-function-configuration.handler.js +1 -1
  212. package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts +10 -1
  213. package/dist/service/lambda/function/logging/sim-lambda-function-logging.js +25 -1
  214. package/dist/service/lambda/function/logging/sim-lambda-invoke-error-log.d.ts +13 -0
  215. package/dist/service/lambda/function/logging/sim-lambda-invoke-error-log.js +18 -0
  216. package/dist/service/lambda/sim-lambda-service-principal.d.ts +7 -0
  217. package/dist/service/lambda/sim-lambda-service-principal.js +7 -0
  218. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-authorization.d.ts +46 -0
  219. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-authorization.js +49 -0
  220. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.d.ts +5 -0
  221. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.js +6 -0
  222. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.d.ts +5 -0
  223. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.js +6 -0
  224. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.d.ts +5 -0
  225. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.js +6 -0
  226. package/dist/service/logs/cfn/group/sim-cfn-log-group-creator.d.ts +9 -2
  227. package/dist/service/logs/cfn/group/sim-cfn-log-group-creator.js +34 -5
  228. package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.js +1 -1
  229. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.d.ts +4 -0
  230. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.js +9 -4
  231. package/dist/service/logs/sim-logs-commands.d.ts +3 -0
  232. package/dist/service/logs/sim-logs-commands.js +4 -0
  233. package/dist/service/logs/sim-logs.js +6 -1
  234. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.d.ts +2 -2
  235. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.js +4 -3
  236. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-generated-name.d.ts +12 -0
  237. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-generated-name.js +22 -0
  238. package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.d.ts +1 -1
  239. package/dist/service/scheduler/command/authorize/sim-scheduler-authorizer.d.ts +10 -1
  240. package/dist/service/scheduler/command/authorize/sim-scheduler-authorizer.js +19 -1
  241. package/dist/service/scheduler/command/schedule/sim-scheduler-create-schedule.js +1 -0
  242. package/dist/service/scheduler/command/schedule/sim-scheduler-schedule-access.d.ts +8 -0
  243. package/dist/service/scheduler/command/schedule/sim-scheduler-schedule-access.js +9 -0
  244. package/dist/service/scheduler/command/schedule/sim-scheduler-update-schedule.js +1 -0
  245. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-generated-name.d.ts +15 -0
  246. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-generated-name.js +22 -0
  247. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-properties.d.ts +4 -10
  248. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-properties.js +13 -31
  249. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-value.d.ts +17 -0
  250. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-value.js +30 -0
  251. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-name.d.ts +6 -0
  252. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-name.js +8 -3
  253. package/dist/service/sns/command/authorize/sim-sns-topic-resource-policies.d.ts +1 -1
  254. package/dist/service/sqs/command/authorize/sim-sqs-queue-resource-policies.d.ts +1 -1
  255. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-generated-parameter-name.d.ts +16 -0
  256. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-generated-parameter-name.js +23 -0
  257. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-properties.d.ts +2 -4
  258. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-properties.js +5 -5
  259. package/dist/service/ssm/parameter/sim-ssm-kms-crypto.d.ts +6 -4
  260. package/dist/service/ssm/parameter/sim-ssm-kms-crypto.js +4 -4
  261. package/dist/service/ssm/parameter/sim-ssm-parameter-arn.d.ts +17 -0
  262. package/dist/service/ssm/parameter/sim-ssm-parameter-arn.js +20 -0
  263. package/dist/service/ssm/parameter/sim-ssm-parameter-kms.d.ts +15 -9
  264. package/dist/service/ssm/parameter/sim-ssm-parameter-kms.js +20 -10
  265. package/dist/service/ssm/parameter/sim-ssm-parameter-name.js +3 -12
  266. package/dist/service/stepfunctions/command/authorize/sim-step-functions-authorizer.d.ts +41 -0
  267. package/dist/service/stepfunctions/command/authorize/sim-step-functions-authorizer.js +64 -0
  268. package/dist/service/stepfunctions/command/machine/sim-state-machine-create.d.ts +5 -2
  269. package/dist/service/stepfunctions/command/machine/sim-state-machine-create.js +6 -2
  270. package/dist/service/stepfunctions/command/machine/sim-state-machine-delete.d.ts +26 -0
  271. package/dist/service/stepfunctions/command/machine/sim-state-machine-delete.js +29 -0
  272. package/dist/service/stepfunctions/command/machine/sim-state-machine-lookup.d.ts +7 -0
  273. package/dist/service/stepfunctions/command/machine/sim-state-machine-lookup.js +12 -3
  274. package/dist/service/stepfunctions/command/machine/sim-state-machine-update.d.ts +19 -0
  275. package/dist/service/stepfunctions/command/machine/{sim-state-machine-writes.js → sim-state-machine-update.js} +3 -14
  276. package/dist/service/stepfunctions/sim-step-functions.d.ts +8 -2
  277. package/dist/service/stepfunctions/sim-step-functions.js +26 -9
  278. package/dist/service/sts/command/assume-role/assume-role.handler.d.ts +5 -0
  279. package/dist/service/sts/command/assume-role/assume-role.handler.js +1 -0
  280. package/dist/service/sts/command/get-caller-identity/get-caller-identity.handler.d.ts +5 -0
  281. package/dist/service/sts/command/get-caller-identity/get-caller-identity.handler.js +1 -0
  282. package/dist/service/sts/sim-sts.d.ts +9 -0
  283. package/dist/service/sts/sim-sts.js +4 -0
  284. package/dist/util/memo/bounded-memo.d.ts +36 -0
  285. package/dist/util/memo/bounded-memo.js +58 -0
  286. package/docs/sdk/README.md +3 -1
  287. package/docs/services/cloudformation/README.md +196 -11
  288. package/docs/services/cloudfront/README.md +230 -6
  289. package/docs/services/cloudwatch/README.md +6 -4
  290. package/docs/services/cognito/README.md +8 -7
  291. package/docs/services/dynamodb/README.md +6 -5
  292. package/docs/services/ecs/README.md +20 -9
  293. package/docs/services/elbv2/README.md +6 -2
  294. package/docs/services/eventbridge/README.md +9 -1
  295. package/docs/services/firehose/README.md +9 -3
  296. package/docs/services/glue/README.md +6 -0
  297. package/docs/services/iam/README.md +322 -27
  298. package/docs/services/kinesis/README.md +3 -2
  299. package/docs/services/kms/README.md +7 -2
  300. package/docs/services/lambda/README.md +76 -2
  301. package/docs/services/logs/README.md +16 -2
  302. package/docs/services/s3/README.md +7 -2
  303. package/docs/services/scheduler/README.md +12 -4
  304. package/docs/services/secretsmanager/README.md +6 -3
  305. package/docs/services/ses/README.md +3 -1
  306. package/docs/services/sns/README.md +5 -5
  307. package/docs/services/sqs/README.md +5 -5
  308. package/docs/services/ssm/README.md +40 -16
  309. package/docs/services/stepfunctions/README.md +11 -2
  310. package/docs/services/wafv2/README.md +5 -3
  311. package/package.json +1 -1
  312. package/dist/service/stepfunctions/command/machine/sim-state-machine-writes.d.ts +0 -25
@@ -0,0 +1,38 @@
1
+ import { simCffInStage, simCffRequestedStage, } from "../../cff/sim-cff-stage.js";
2
+ import { simCfFunctionSummary } from "./sim-cf-function-summary.js";
3
+ /**
4
+ * Simulated CloudFront ListFunctions command.
5
+ *
6
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/ListFunctionsCommand/
7
+ */
8
+ export class SimCfListFunctions {
9
+ access;
10
+ static action = "cloudfront:ListFunctions";
11
+ constructor(access) {
12
+ this.access = access;
13
+ }
14
+ /**
15
+ * List this Account's sim CloudFront Functions in one stage.
16
+ *
17
+ * The whole list comes back. `Marker` and `MaxItems` are the paging every
18
+ * other simulated listing leaves out, so there is no `NextMarker` either.
19
+ */
20
+ async handle(command, options) {
21
+ const stage = simCffRequestedStage(command.input.Stage);
22
+ await this.access.background.sequence();
23
+ // Listing is authorized across the Account rather than per Function, which
24
+ // is what a policy for this action grants.
25
+ this.access.authorizeAnyFunction(SimCfListFunctions.action, options?.caller);
26
+ const cloudFrontFunctions = this.access.cloudFrontFunctions
27
+ .values()
28
+ .filter((cloudFrontFunction) => simCffInStage(cloudFrontFunction, stage))
29
+ .toArray();
30
+ return {
31
+ $metadata: {},
32
+ FunctionList: {
33
+ Quantity: cloudFrontFunctions.length,
34
+ Items: cloudFrontFunctions.map((cloudFrontFunction) => simCfFunctionSummary(cloudFrontFunction, stage)),
35
+ },
36
+ };
37
+ }
38
+ }
@@ -10,6 +10,7 @@ import type { SimCfCustomOriginDispatcher } from "../../origin/custom/sim-cf-cus
10
10
  import type { SimCloudFrontS3OriginResolver } from "../../origin/s3/sim-cloudfront-s3-origin.js";
11
11
  import type { SimCloudFrontOriginAccessControlRegistry } from "../../origin-access-control/sim-cf-origin-access-control-registry.js";
12
12
  import type { SimCloudFrontResponseHeadersPolicyRegistry } from "../../response-headers-policy/sim-cf-response-headers-policy-registry.js";
13
+ import type { SimCloudFrontCachePolicyRegistry } from "../../cache-policy/sim-cf-cache-policy-registry.js";
13
14
  import type { SimCfWebAclResolver } from "../../web-acl/sim-cf-web-acl.js";
14
15
  import type { SimCloudFrontRegistry } from "../../registry/sim-cloud-front-registry.js";
15
16
  import type { SimUpdateDistributionCommand, SimUpdateDistributionCommandOutput } from "./update-distribution.command.js";
@@ -21,6 +22,7 @@ interface UpdateDistributionCommandHandlerProperties {
21
22
  readonly customOriginDispatcher?: SimCfCustomOriginDispatcher | undefined;
22
23
  readonly originAccessControls: SimCloudFrontOriginAccessControlRegistry;
23
24
  readonly responseHeadersPolicies: SimCloudFrontResponseHeadersPolicyRegistry;
25
+ readonly cachePolicies: SimCloudFrontCachePolicyRegistry;
24
26
  readonly webAclResolver?: SimCfWebAclResolver | undefined;
25
27
  readonly iam?: SimIamInterServiceAuthZ;
26
28
  readonly acmRegistry?: SimAcmRegistry | undefined;
@@ -0,0 +1,18 @@
1
+ import type { SimCloudFrontCachePolicyRegistry } from "../../cache-policy/sim-cf-cache-policy-registry.js";
2
+ /**
3
+ * Refuses a Cache Behavior naming a cache policy this simulation does not
4
+ * hold.
5
+ *
6
+ * Real CloudFront checks this when the Distribution is created or updated, so
7
+ * a template naming a mistyped policy ID fails the deploy there too, rather
8
+ * than deploying successfully and only failing the first request that reaches
9
+ * the Behavior.
10
+ */
11
+ export declare class SimCfBehaviorCachePolicy {
12
+ private readonly policies;
13
+ constructor(policies: SimCloudFrontCachePolicyRegistry);
14
+ /**
15
+ * Refuse one Behavior naming a policy which is not there.
16
+ */
17
+ assertExists(targetOriginId: string | undefined, cachePolicyId: string | undefined): void;
18
+ }
@@ -0,0 +1,30 @@
1
+ import { SimCloudFrontNoSuchCachePolicy } from "../../error/sim-cloudfront.error.js";
2
+ /**
3
+ * Refuses a Cache Behavior naming a cache policy this simulation does not
4
+ * hold.
5
+ *
6
+ * Real CloudFront checks this when the Distribution is created or updated, so
7
+ * a template naming a mistyped policy ID fails the deploy there too, rather
8
+ * than deploying successfully and only failing the first request that reaches
9
+ * the Behavior.
10
+ */
11
+ export class SimCfBehaviorCachePolicy {
12
+ policies;
13
+ constructor(policies) {
14
+ this.policies = policies;
15
+ }
16
+ /**
17
+ * Refuse one Behavior naming a policy which is not there.
18
+ */
19
+ assertExists(targetOriginId, cachePolicyId) {
20
+ if (cachePolicyId === undefined ||
21
+ this.policies.byId(cachePolicyId) !== undefined) {
22
+ return;
23
+ }
24
+ throw new SimCloudFrontNoSuchCachePolicy(`Sim CloudFront Behavior for Origin ${targetOriginId} names cache ` +
25
+ `policy ${cachePolicyId}, which does not exist. A Behavior names one ` +
26
+ `of CloudFront's seven managed policies, or a policy an ` +
27
+ `AWS::CloudFront::CachePolicy Resource created in this simulation. A ` +
28
+ `policy ID from a real account is neither.`);
29
+ }
30
+ }
@@ -0,0 +1,28 @@
1
+ import type { SimCloudFrontCacheBehaviorConfig, SimCloudFrontDefaultCacheBehaviorConfig, SimCloudFrontDistributionConfig } from "../../command/create-distribution/create-distribution.command.js";
2
+ import type { SimCfBehaviorCachePolicy } from "./sim-cf-behavior-cache-policy.js";
3
+ import type { SimCfBehaviorResponseHeadersPolicy } from "./sim-cf-behavior-response-headers-policy.js";
4
+ /**
5
+ * The policies a Cache Behavior names, and whether this simulation holds them.
6
+ *
7
+ * A Behavior points at a response headers policy and a cache policy by ID, and
8
+ * both live outside the Distribution. Each one is checked the same way and at
9
+ * the same moment, so they are asked together.
10
+ */
11
+ export declare class SimCfBehaviorPolicies {
12
+ private readonly responseHeadersPolicy;
13
+ private readonly cachePolicy;
14
+ constructor(responseHeadersPolicy: SimCfBehaviorResponseHeadersPolicy, cachePolicy: SimCfBehaviorCachePolicy);
15
+ /**
16
+ * Refuse every Behavior of a DistributionConfig that names a policy which is
17
+ * not there, without touching the Distribution.
18
+ *
19
+ * An update replaces a Distribution's whole configuration, so this runs
20
+ * before any of it is torn down. A refusal here leaves the Distribution
21
+ * serving exactly what it served before, rather than half replaced.
22
+ */
23
+ assertAllExist(distributionConfig: SimCloudFrontDistributionConfig): void;
24
+ /**
25
+ * Refuse one Behavior naming a policy of either kind which is not there.
26
+ */
27
+ assertExists(behavior: SimCloudFrontDefaultCacheBehaviorConfig | SimCloudFrontCacheBehaviorConfig): void;
28
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The policies a Cache Behavior names, and whether this simulation holds them.
3
+ *
4
+ * A Behavior points at a response headers policy and a cache policy by ID, and
5
+ * both live outside the Distribution. Each one is checked the same way and at
6
+ * the same moment, so they are asked together.
7
+ */
8
+ export class SimCfBehaviorPolicies {
9
+ responseHeadersPolicy;
10
+ cachePolicy;
11
+ constructor(responseHeadersPolicy, cachePolicy) {
12
+ this.responseHeadersPolicy = responseHeadersPolicy;
13
+ this.cachePolicy = cachePolicy;
14
+ }
15
+ /**
16
+ * Refuse every Behavior of a DistributionConfig that names a policy which is
17
+ * not there, without touching the Distribution.
18
+ *
19
+ * An update replaces a Distribution's whole configuration, so this runs
20
+ * before any of it is torn down. A refusal here leaves the Distribution
21
+ * serving exactly what it served before, rather than half replaced.
22
+ */
23
+ assertAllExist(distributionConfig) {
24
+ const behaviors = [
25
+ distributionConfig.DefaultCacheBehavior,
26
+ ...(distributionConfig.CacheBehaviors?.Items ?? []),
27
+ ];
28
+ for (const behavior of behaviors) {
29
+ if (behavior !== undefined) {
30
+ this.assertExists(behavior);
31
+ }
32
+ }
33
+ }
34
+ /**
35
+ * Refuse one Behavior naming a policy of either kind which is not there.
36
+ */
37
+ assertExists(behavior) {
38
+ this.responseHeadersPolicy.assertExists(behavior.TargetOriginId, behavior.ResponseHeadersPolicyId);
39
+ this.cachePolicy.assertExists(behavior.TargetOriginId, behavior.CachePolicyId);
40
+ }
41
+ }
@@ -1,8 +1,8 @@
1
1
  import type { SimCloudFrontCacheBehaviorConfig, SimCloudFrontDefaultCacheBehaviorConfig } from "../../command/create-distribution/create-distribution.command.js";
2
2
  import type { SimCloudFrontBehavior } from "../../behaviour/sim-cloud-front-behavior.js";
3
- import type { SimCfBehaviorResponseHeadersPolicy } from "./sim-cf-behavior-response-headers-policy.js";
3
+ import type { SimCfBehaviorPolicies } from "./sim-cf-behavior-policies.js";
4
4
  /**
5
5
  * Build the Behavior properties common to both the default Cache Behavior and
6
6
  * a named one. Callers add their own fields, such as the path pattern, on top.
7
7
  */
8
- export declare function simCfBehaviorProperties(cacheBehavior: SimCloudFrontDefaultCacheBehaviorConfig | SimCloudFrontCacheBehaviorConfig, responseHeadersPolicy: SimCfBehaviorResponseHeadersPolicy): SimCloudFrontBehavior;
8
+ export declare function simCfBehaviorProperties(cacheBehavior: SimCloudFrontDefaultCacheBehaviorConfig | SimCloudFrontCacheBehaviorConfig, policies: SimCfBehaviorPolicies): SimCloudFrontBehavior;
@@ -6,10 +6,10 @@ import { assertConsistentQuantity } from "../../command/sim-cf-list-quantity.js"
6
6
  * Build the Behavior properties common to both the default Cache Behavior and
7
7
  * a named one. Callers add their own fields, such as the path pattern, on top.
8
8
  */
9
- export function simCfBehaviorProperties(cacheBehavior, responseHeadersPolicy) {
10
- const { TargetOriginId, ResponseHeadersPolicyId } = cacheBehavior;
9
+ export function simCfBehaviorProperties(cacheBehavior, policies) {
10
+ const { TargetOriginId, ResponseHeadersPolicyId, CachePolicyId } = cacheBehavior;
11
11
  assertDefined(TargetOriginId, "CloudFront CacheBehavior TargetOriginId");
12
- responseHeadersPolicy.assertExists(TargetOriginId, ResponseHeadersPolicyId);
12
+ policies.assertExists(cacheBehavior);
13
13
  return {
14
14
  targetOriginName: TargetOriginId,
15
15
  allowedMethods: methodsSet("AllowedMethods", cacheBehavior.AllowedMethods, [
@@ -23,6 +23,9 @@ export function simCfBehaviorProperties(cacheBehavior, responseHeadersPolicy) {
23
23
  ...(ResponseHeadersPolicyId !== undefined && {
24
24
  responseHeadersPolicyId: ResponseHeadersPolicyId,
25
25
  }),
26
+ ...(CachePolicyId !== undefined && {
27
+ cachePolicyId: CachePolicyId,
28
+ }),
26
29
  functionAssociations: configureCffAssociations(cacheBehavior),
27
30
  lambdaFunctionAssociations: configureEdgeAssociations(cacheBehavior),
28
31
  };
@@ -1,4 +1,3 @@
1
- import type { SimCloudFrontDistributionConfig } from "../../command/create-distribution/create-distribution.command.js";
2
1
  import type { SimCloudFrontResponseHeadersPolicyRegistry } from "../../response-headers-policy/sim-cf-response-headers-policy-registry.js";
3
2
  /**
4
3
  * Refuses a Cache Behavior naming a response headers policy this simulation
@@ -12,15 +11,6 @@ import type { SimCloudFrontResponseHeadersPolicyRegistry } from "../../response-
12
11
  export declare class SimCfBehaviorResponseHeadersPolicy {
13
12
  private readonly policies;
14
13
  constructor(policies: SimCloudFrontResponseHeadersPolicyRegistry);
15
- /**
16
- * Refuse every Behavior of a DistributionConfig that names a policy which is
17
- * not there, without touching the Distribution.
18
- *
19
- * An update replaces a Distribution's whole configuration, so this runs
20
- * before any of it is torn down: a refusal here leaves the Distribution
21
- * serving exactly what it served before, rather than half replaced.
22
- */
23
- assertAllExist(distributionConfig: SimCloudFrontDistributionConfig): void;
24
14
  /**
25
15
  * Refuse one Behavior naming a policy which is not there.
26
16
  */
@@ -13,25 +13,6 @@ export class SimCfBehaviorResponseHeadersPolicy {
13
13
  constructor(policies) {
14
14
  this.policies = policies;
15
15
  }
16
- /**
17
- * Refuse every Behavior of a DistributionConfig that names a policy which is
18
- * not there, without touching the Distribution.
19
- *
20
- * An update replaces a Distribution's whole configuration, so this runs
21
- * before any of it is torn down: a refusal here leaves the Distribution
22
- * serving exactly what it served before, rather than half replaced.
23
- */
24
- assertAllExist(distributionConfig) {
25
- const behaviors = [
26
- distributionConfig.DefaultCacheBehavior,
27
- ...(distributionConfig.CacheBehaviors?.Items ?? []),
28
- ];
29
- for (const behavior of behaviors) {
30
- if (behavior !== undefined) {
31
- this.assertExists(behavior.TargetOriginId, behavior.ResponseHeadersPolicyId);
32
- }
33
- }
34
- }
35
16
  /**
36
17
  * Refuse one Behavior naming a policy which is not there.
37
18
  */
@@ -1,3 +1,4 @@
1
+ import type { SimCloudFrontCachePolicyRegistry } from "../../cache-policy/sim-cf-cache-policy-registry.js";
1
2
  import type { SimCfCustomOriginDispatcher } from "../../origin/custom/sim-cf-custom-origin-dispatcher.js";
2
3
  import type { SimCloudFrontS3OriginResolver } from "../../origin/s3/sim-cloudfront-s3-origin.js";
3
4
  import type { SimCloudFrontOriginAccessControlRegistry } from "../../origin-access-control/sim-cf-origin-access-control-registry.js";
@@ -9,6 +10,7 @@ interface SimCloudFrontConfiguratorProperties {
9
10
  readonly customOriginDispatcher?: SimCfCustomOriginDispatcher | undefined;
10
11
  readonly originAccessControls: SimCloudFrontOriginAccessControlRegistry;
11
12
  readonly responseHeadersPolicies: SimCloudFrontResponseHeadersPolicyRegistry;
13
+ readonly cachePolicies: SimCloudFrontCachePolicyRegistry;
12
14
  readonly webAclResolver?: SimCfWebAclResolver | undefined;
13
15
  }
14
16
  /**
@@ -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
+ }