@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
@@ -0,0 +1,48 @@
1
+ import type { BackgroundScheduler } from "../../../../util/background/background.js";
2
+ import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
3
+ import type { SimAwsAccountId } from "../../../aws/sim-aws-account.js";
4
+ import type { SimIamInterServiceAuthZ } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
5
+ import type { SimCloudFrontFunctionStage } from "../../cff/sim-cff-stage.js";
6
+ import type { SimCloudFrontFunction } from "../../cff/sim-cloudfront-function.js";
7
+ import type { SimCloudFrontFunctionMap } from "../create-function/create-function.handler.js";
8
+ interface SimCfFunctionAccessProperties {
9
+ readonly accountId: SimAwsAccountId;
10
+ readonly cloudFrontFunctions: SimCloudFrontFunctionMap;
11
+ readonly iam: SimIamInterServiceAuthZ;
12
+ readonly background: BackgroundScheduler;
13
+ }
14
+ /**
15
+ * What every command reading a Function back needs: the Functions, IAM, and
16
+ * the clock.
17
+ *
18
+ * ListFunctions, DescribeFunction and GetFunction authorize the same way and
19
+ * resolve a Function the same way, so the wiring is here once rather than in
20
+ * each of them. Each command class is then only its own AWS behaviour.
21
+ */
22
+ export declare class SimCfFunctionAccess {
23
+ readonly cloudFrontFunctions: SimCloudFrontFunctionMap;
24
+ readonly background: BackgroundScheduler;
25
+ private readonly accountId;
26
+ private readonly iam;
27
+ constructor(properties: SimCfFunctionAccessProperties);
28
+ /**
29
+ * Ensure the caller may take an action on a Function ARN.
30
+ */
31
+ authorize(action: string, resource: string, caller?: SimAwsCaller): void;
32
+ /**
33
+ * Ensure the caller may take an action on any Function in the Account.
34
+ *
35
+ * ListFunctions names no Function, so a policy granting it has to use the
36
+ * wildcard, and this is what it is authorized against.
37
+ */
38
+ authorizeAnyFunction(action: string, caller?: SimAwsCaller): void;
39
+ /**
40
+ * Resolve a Function in a stage, having authorized the action against it.
41
+ *
42
+ * The ARN is built from the name the caller gave, so authorization happens
43
+ * before the Function map is read and an unauthorized caller is refused
44
+ * whether or not the name resolves.
45
+ */
46
+ authorizedByName(action: string, functionName: string, stage: SimCloudFrontFunctionStage, caller?: SimAwsCaller): SimCloudFrontFunction;
47
+ }
48
+ export {};
@@ -0,0 +1,48 @@
1
+ import { simCfAuthorize } from "../../sim-cf-authorize.js";
2
+ import { simCfFunctionInStage } from "./sim-cf-function-lookup.js";
3
+ /**
4
+ * What every command reading a Function back needs: the Functions, IAM, and
5
+ * the clock.
6
+ *
7
+ * ListFunctions, DescribeFunction and GetFunction authorize the same way and
8
+ * resolve a Function the same way, so the wiring is here once rather than in
9
+ * each of them. Each command class is then only its own AWS behaviour.
10
+ */
11
+ export class SimCfFunctionAccess {
12
+ cloudFrontFunctions;
13
+ background;
14
+ accountId;
15
+ iam;
16
+ constructor(properties) {
17
+ this.accountId = properties.accountId;
18
+ this.cloudFrontFunctions = properties.cloudFrontFunctions;
19
+ this.iam = properties.iam;
20
+ this.background = properties.background;
21
+ }
22
+ /**
23
+ * Ensure the caller may take an action on a Function ARN.
24
+ */
25
+ authorize(action, resource, caller) {
26
+ simCfAuthorize({ iam: this.iam, action, resource, caller });
27
+ }
28
+ /**
29
+ * Ensure the caller may take an action on any Function in the Account.
30
+ *
31
+ * ListFunctions names no Function, so a policy granting it has to use the
32
+ * wildcard, and this is what it is authorized against.
33
+ */
34
+ authorizeAnyFunction(action, caller) {
35
+ this.authorize(action, `arn:aws:cloudfront::${this.accountId}:function/*`, caller);
36
+ }
37
+ /**
38
+ * Resolve a Function in a stage, having authorized the action against it.
39
+ *
40
+ * The ARN is built from the name the caller gave, so authorization happens
41
+ * before the Function map is read and an unauthorized caller is refused
42
+ * whether or not the name resolves.
43
+ */
44
+ authorizedByName(action, functionName, stage, caller) {
45
+ this.authorize(action, `arn:aws:cloudfront::${this.accountId}:function/${functionName}`, caller);
46
+ return simCfFunctionInStage(this.cloudFrontFunctions, functionName, stage);
47
+ }
48
+ }
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Structural types for the commands that read a CloudFront Function back.
3
+ *
4
+ * ListFunctions, DescribeFunction and GetFunction all address a Function by
5
+ * name and a stage, and answer with the same summary shape, so their types are
6
+ * together here rather than one file each.
7
+ *
8
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/
9
+ */
10
+ import type { SimArn } from "../../../aws/arn.js";
11
+ import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
12
+ import type { SimCloudFrontFunctionRuntime } from "../../cff/sim-cff-configuration.js";
13
+ import type { SimCloudFrontFunctionStage } from "../../cff/sim-cff-stage.js";
14
+ /**
15
+ * Minimal structural sim CloudFront Function config.
16
+ */
17
+ export interface SimCfFunctionConfig {
18
+ Comment: string;
19
+ Runtime: SimCloudFrontFunctionRuntime;
20
+ KeyValueStoreAssociations?: {
21
+ Quantity: number;
22
+ Items: {
23
+ KeyValueStoreARN: SimArn;
24
+ }[];
25
+ };
26
+ }
27
+ /**
28
+ * Minimal structural sim CloudFront Function metadata.
29
+ */
30
+ export interface SimCfFunctionMetadata {
31
+ FunctionARN: SimArn;
32
+ Stage: SimCloudFrontFunctionStage;
33
+ CreatedTime: Date;
34
+ LastModifiedTime: Date;
35
+ }
36
+ /**
37
+ * Minimal structural sim CloudFront Function summary.
38
+ */
39
+ export interface SimCfFunctionSummary {
40
+ Name: string;
41
+ Status: string;
42
+ FunctionConfig: SimCfFunctionConfig;
43
+ FunctionMetadata: SimCfFunctionMetadata;
44
+ }
45
+ /**
46
+ * Minimal structural sim CloudFront ListFunctions command.
47
+ */
48
+ export interface SimListFunctionsCommand {
49
+ readonly input: {
50
+ readonly Stage?: string | undefined;
51
+ };
52
+ }
53
+ /**
54
+ * Minimal structural sim CloudFront ListFunctions output.
55
+ */
56
+ export interface SimListFunctionsCommandOutput {
57
+ readonly $metadata: SimResponseMetadata;
58
+ FunctionList: {
59
+ Quantity: number;
60
+ Items: SimCfFunctionSummary[];
61
+ };
62
+ }
63
+ /**
64
+ * Minimal structural sim CloudFront DescribeFunction command.
65
+ */
66
+ export interface SimDescribeFunctionCommand {
67
+ readonly input: {
68
+ readonly Name?: string | undefined;
69
+ readonly Stage?: string | undefined;
70
+ };
71
+ }
72
+ /**
73
+ * Minimal structural sim CloudFront DescribeFunction output.
74
+ */
75
+ export interface SimDescribeFunctionCommandOutput {
76
+ readonly $metadata: SimResponseMetadata;
77
+ FunctionSummary: SimCfFunctionSummary;
78
+ ETag: string;
79
+ }
80
+ /**
81
+ * Minimal structural sim CloudFront GetFunction command.
82
+ */
83
+ export interface SimGetFunctionCommand {
84
+ readonly input: {
85
+ readonly Name?: string | undefined;
86
+ readonly Stage?: string | undefined;
87
+ };
88
+ }
89
+ /**
90
+ * Minimal structural sim CloudFront GetFunction output.
91
+ */
92
+ export interface SimGetFunctionCommandOutput {
93
+ readonly $metadata: SimResponseMetadata;
94
+ FunctionCode: Uint8Array;
95
+ ETag: string;
96
+ ContentType: string;
97
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Structural types for the commands that read a CloudFront Function back.
3
+ *
4
+ * ListFunctions, DescribeFunction and GetFunction all address a Function by
5
+ * name and a stage, and answer with the same summary shape, so their types are
6
+ * together here rather than one file each.
7
+ *
8
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/
9
+ */
10
+ export {};
@@ -0,0 +1,12 @@
1
+ import { type SimCloudFrontFunctionStage } from "../../cff/sim-cff-stage.js";
2
+ import type { SimCloudFrontFunction } from "../../cff/sim-cloudfront-function.js";
3
+ import type { SimCloudFrontFunctionMap } from "../create-function/create-function.handler.js";
4
+ /**
5
+ * Resolve a Function a stage can be read from.
6
+ *
7
+ * A name the Account holds no Function under is refused, and so is one whose
8
+ * Function has not reached the stage asked for. Both answer with
9
+ * NoSuchFunctionExists. That is what CloudFront answers when a stage holds
10
+ * nothing under the name asked for.
11
+ */
12
+ export declare function simCfFunctionInStage(cloudFrontFunctions: SimCloudFrontFunctionMap, functionName: string, stage: SimCloudFrontFunctionStage): SimCloudFrontFunction;
@@ -0,0 +1,21 @@
1
+ import { simCffInStage, } from "../../cff/sim-cff-stage.js";
2
+ import { SimCloudFrontNoSuchFunctionExists } from "../../error/sim-cloudfront.error.js";
3
+ /**
4
+ * Resolve a Function a stage can be read from.
5
+ *
6
+ * A name the Account holds no Function under is refused, and so is one whose
7
+ * Function has not reached the stage asked for. Both answer with
8
+ * NoSuchFunctionExists. That is what CloudFront answers when a stage holds
9
+ * nothing under the name asked for.
10
+ */
11
+ export function simCfFunctionInStage(cloudFrontFunctions, functionName, stage) {
12
+ const cloudFrontFunction = cloudFrontFunctions.get(functionName);
13
+ if (cloudFrontFunction === undefined) {
14
+ throw new SimCloudFrontNoSuchFunctionExists(`No sim CloudFront Function named ${functionName}`);
15
+ }
16
+ if (!simCffInStage(cloudFrontFunction, stage)) {
17
+ throw new SimCloudFrontNoSuchFunctionExists(`Sim CloudFront Function ${functionName} has not been published, so it ` +
18
+ `is in DEVELOPMENT and not in ${stage}`);
19
+ }
20
+ return cloudFrontFunction;
21
+ }
@@ -0,0 +1,11 @@
1
+ import type { SimCloudFrontFunctionStage } from "../../cff/sim-cff-stage.js";
2
+ import type { SimCloudFrontFunction } from "../../cff/sim-cloudfront-function.js";
3
+ import type { SimCfFunctionSummary } from "./sim-cf-function-command.types.js";
4
+ /**
5
+ * Describe a Function the way ListFunctions and DescribeFunction both do.
6
+ *
7
+ * The stage comes from the request rather than the Function, because a
8
+ * published Function is in both stages and answers under whichever one was
9
+ * asked for.
10
+ */
11
+ export declare function simCfFunctionSummary(cloudFrontFunction: SimCloudFrontFunction, stage: SimCloudFrontFunctionStage): SimCfFunctionSummary;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Describe a Function the way ListFunctions and DescribeFunction both do.
3
+ *
4
+ * The stage comes from the request rather than the Function, because a
5
+ * published Function is in both stages and answers under whichever one was
6
+ * asked for.
7
+ */
8
+ export function simCfFunctionSummary(cloudFrontFunction, stage) {
9
+ const keyValueStore = cloudFrontFunction.keyValueStore;
10
+ return {
11
+ Name: cloudFrontFunction.name,
12
+ Status: cloudFrontFunction.status,
13
+ FunctionConfig: {
14
+ Comment: cloudFrontFunction.config.comment,
15
+ Runtime: cloudFrontFunction.config.runtime,
16
+ ...(keyValueStore !== undefined && {
17
+ KeyValueStoreAssociations: {
18
+ Quantity: 1,
19
+ Items: [{ KeyValueStoreARN: keyValueStore.arn }],
20
+ },
21
+ }),
22
+ },
23
+ FunctionMetadata: {
24
+ FunctionARN: cloudFrontFunction.arn,
25
+ Stage: stage,
26
+ CreatedTime: cloudFrontFunction.config.createdTime,
27
+ LastModifiedTime: cloudFrontFunction.config.lastModifiedTime,
28
+ },
29
+ };
30
+ }
@@ -0,0 +1,23 @@
1
+ import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
2
+ import type { SimCfFunctionAccess } from "./sim-cf-function-access.js";
3
+ import type { SimGetFunctionCommand, SimGetFunctionCommandOutput } from "./sim-cf-function-command.types.js";
4
+ /**
5
+ * Simulated CloudFront GetFunction command.
6
+ *
7
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/GetFunctionCommand/
8
+ */
9
+ export declare class SimCfGetFunction {
10
+ private readonly access;
11
+ private static readonly action;
12
+ constructor(access: SimCfFunctionAccess);
13
+ /**
14
+ * Get one sim CloudFront Function's code.
15
+ *
16
+ * A Function created from source answers with the source it was given. One
17
+ * created from a handler function reference has no uploaded source, and
18
+ * answers with that handler's own source text. That is the code it runs.
19
+ */
20
+ handle(command: SimGetFunctionCommand, options?: {
21
+ readonly caller?: SimAwsCaller;
22
+ }): Promise<SimGetFunctionCommandOutput>;
23
+ }
@@ -0,0 +1,33 @@
1
+ import { assertDefined } from "../../../../util/type-guard/defined.js";
2
+ import { simCffRequestedStage } from "../../cff/sim-cff-stage.js";
3
+ /**
4
+ * Simulated CloudFront GetFunction command.
5
+ *
6
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/GetFunctionCommand/
7
+ */
8
+ export class SimCfGetFunction {
9
+ access;
10
+ static action = "cloudfront:GetFunction";
11
+ constructor(access) {
12
+ this.access = access;
13
+ }
14
+ /**
15
+ * Get one sim CloudFront Function's code.
16
+ *
17
+ * A Function created from source answers with the source it was given. One
18
+ * created from a handler function reference has no uploaded source, and
19
+ * answers with that handler's own source text. That is the code it runs.
20
+ */
21
+ async handle(command, options) {
22
+ assertDefined(command.input.Name, "GetFunctionCommand.input.Name");
23
+ const stage = simCffRequestedStage(command.input.Stage);
24
+ await this.access.background.sequence();
25
+ const cloudFrontFunction = this.access.authorizedByName(SimCfGetFunction.action, command.input.Name, stage, options?.caller);
26
+ return {
27
+ $metadata: {},
28
+ FunctionCode: cloudFrontFunction.config.functionCode,
29
+ ETag: cloudFrontFunction.config.etag,
30
+ ContentType: "application/octet-stream",
31
+ };
32
+ }
33
+ }
@@ -0,0 +1,22 @@
1
+ import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
2
+ import type { SimCfFunctionAccess } from "./sim-cf-function-access.js";
3
+ import type { SimListFunctionsCommand, SimListFunctionsCommandOutput } from "./sim-cf-function-command.types.js";
4
+ /**
5
+ * Simulated CloudFront ListFunctions command.
6
+ *
7
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/ListFunctionsCommand/
8
+ */
9
+ export declare class SimCfListFunctions {
10
+ private readonly access;
11
+ private static readonly action;
12
+ constructor(access: SimCfFunctionAccess);
13
+ /**
14
+ * List this Account's sim CloudFront Functions in one stage.
15
+ *
16
+ * The whole list comes back. `Marker` and `MaxItems` are the paging every
17
+ * other simulated listing leaves out, so there is no `NextMarker` either.
18
+ */
19
+ handle(command: SimListFunctionsCommand, options?: {
20
+ readonly caller?: SimAwsCaller;
21
+ }): Promise<SimListFunctionsCommandOutput>;
22
+ }
@@ -0,0 +1,38 @@
1
+ import { simCffInStage, simCffRequestedStage, } from "../../cff/sim-cff-stage.js";
2
+ import { simCfFunctionSummary } from "./sim-cf-function-summary.js";
3
+ /**
4
+ * Simulated CloudFront ListFunctions command.
5
+ *
6
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudfront/command/ListFunctionsCommand/
7
+ */
8
+ export class SimCfListFunctions {
9
+ access;
10
+ static action = "cloudfront:ListFunctions";
11
+ constructor(access) {
12
+ this.access = access;
13
+ }
14
+ /**
15
+ * List this Account's sim CloudFront Functions in one stage.
16
+ *
17
+ * The whole list comes back. `Marker` and `MaxItems` are the paging every
18
+ * other simulated listing leaves out, so there is no `NextMarker` either.
19
+ */
20
+ async handle(command, options) {
21
+ const stage = simCffRequestedStage(command.input.Stage);
22
+ await this.access.background.sequence();
23
+ // Listing is authorized across the Account rather than per Function, which
24
+ // is what a policy for this action grants.
25
+ this.access.authorizeAnyFunction(SimCfListFunctions.action, options?.caller);
26
+ const cloudFrontFunctions = this.access.cloudFrontFunctions
27
+ .values()
28
+ .filter((cloudFrontFunction) => simCffInStage(cloudFrontFunction, stage))
29
+ .toArray();
30
+ return {
31
+ $metadata: {},
32
+ FunctionList: {
33
+ Quantity: cloudFrontFunctions.length,
34
+ Items: cloudFrontFunctions.map((cloudFrontFunction) => simCfFunctionSummary(cloudFrontFunction, stage)),
35
+ },
36
+ };
37
+ }
38
+ }
@@ -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
  /**