@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
@@ -3,12 +3,14 @@ import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
3
3
  import type { SimCfnBinding } from "../../bind/sim-cfn-binding.js";
4
4
  import type { SimCdkOutContext } from "../../cdk/sim-cdk-out-context.js";
5
5
  import type { SimCfnResource } from "../../resource/sim-cfn-resource.js";
6
+ import { type SimCfnResourceOrder } from "./sim-cfn-resource-order.js";
6
7
  interface SimCfnStackResourceBatchCreatorProperties {
7
8
  readonly simAws: SimAws;
8
9
  readonly resources: ReadonlyMap<string, SimCfnResource>;
9
10
  readonly cdkOutContext?: SimCdkOutContext | undefined;
10
11
  readonly bindings?: readonly SimCfnBinding[] | undefined;
11
12
  readonly caller?: SimAwsCaller | undefined;
13
+ readonly resourceOrder?: SimCfnResourceOrder | undefined;
12
14
  }
13
15
  /**
14
16
  * Creates one dependency-ready batch of Stack Resources.
@@ -17,6 +19,7 @@ interface SimCfnStackResourceBatchCreatorProperties {
17
19
  * class owns only the batch execution details:
18
20
  *
19
21
  * - create all Resources in the batch in parallel
22
+ * - start them in the order the deployment asked for
20
23
  * - pass the shared Stack creation context to each Resource
21
24
  *
22
25
  * It does not choose which Resources are ready, retry incomplete Resources, or
@@ -30,12 +33,16 @@ export declare class SimCfnStackResourceBatchCreator {
30
33
  private readonly cdkOutContext;
31
34
  private readonly bindings;
32
35
  private readonly caller;
36
+ private readonly resourceOrder;
33
37
  constructor(properties: SimCfnStackResourceBatchCreatorProperties);
34
38
  /**
35
39
  * Create the supplied Resources concurrently.
36
40
  *
37
41
  * Each Resource still owns its own create lifecycle and status transitions.
38
42
  * This method only waits for the batch to settle.
43
+ *
44
+ * Nothing in the batch depends on anything else in it, so the order they
45
+ * start in is the deployment's to choose.
39
46
  */
40
47
  create(resources: readonly SimCfnResource[]): Promise<void>;
41
48
  }
@@ -1,3 +1,4 @@
1
+ import { simCfnOrderedResources, } from "./sim-cfn-resource-order.js";
1
2
  /**
2
3
  * Creates one dependency-ready batch of Stack Resources.
3
4
  *
@@ -5,6 +6,7 @@
5
6
  * class owns only the batch execution details:
6
7
  *
7
8
  * - create all Resources in the batch in parallel
9
+ * - start them in the order the deployment asked for
8
10
  * - pass the shared Stack creation context to each Resource
9
11
  *
10
12
  * It does not choose which Resources are ready, retry incomplete Resources, or
@@ -18,22 +20,27 @@ export class SimCfnStackResourceBatchCreator {
18
20
  cdkOutContext;
19
21
  bindings;
20
22
  caller;
23
+ resourceOrder;
21
24
  constructor(properties) {
22
- const { simAws, resources, cdkOutContext, bindings, caller } = properties;
25
+ const { simAws, resources, cdkOutContext, bindings, caller, resourceOrder, } = properties;
23
26
  this.simAws = simAws;
24
27
  this.resources = resources;
25
28
  this.cdkOutContext = cdkOutContext;
26
29
  this.bindings = bindings;
27
30
  this.caller = caller;
31
+ this.resourceOrder = resourceOrder;
28
32
  }
29
33
  /**
30
34
  * Create the supplied Resources concurrently.
31
35
  *
32
36
  * Each Resource still owns its own create lifecycle and status transitions.
33
37
  * This method only waits for the batch to settle.
38
+ *
39
+ * Nothing in the batch depends on anything else in it, so the order they
40
+ * start in is the deployment's to choose.
34
41
  */
35
42
  async create(resources) {
36
- await Promise.all(resources.map(async (resource) => {
43
+ await Promise.all(simCfnOrderedResources(resources, this.resourceOrder).map(async (resource) => {
37
44
  await resource.create({
38
45
  simAws: this.simAws,
39
46
  resources: this.resources,
@@ -3,6 +3,7 @@ import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
3
3
  import type { SimCfnResource } from "../../resource/sim-cfn-resource.js";
4
4
  import type { SimCdkOutContext } from "../../cdk/sim-cdk-out-context.js";
5
5
  import type { SimCfnBinding } from "../../bind/sim-cfn-binding.js";
6
+ import type { SimCfnResourceOrder } from "./sim-cfn-resource-order.js";
6
7
  interface SimCfnStackResourceCreatorProperties {
7
8
  readonly simAws: SimAws;
8
9
  readonly resources: ReadonlyMap<string, SimCfnResource>;
@@ -10,6 +11,7 @@ interface SimCfnStackResourceCreatorProperties {
10
11
  readonly cdkOutContext?: SimCdkOutContext | undefined;
11
12
  readonly bindings?: readonly SimCfnBinding[] | undefined;
12
13
  readonly caller?: SimAwsCaller | undefined;
14
+ readonly resourceOrder?: SimCfnResourceOrder | undefined;
13
15
  }
14
16
  /**
15
17
  * Orchestrates dependency-ordered creation of a Stack's simulated Resources.
@@ -21,7 +21,7 @@ export class SimCfnStackResourceCreator {
21
21
  stackName;
22
22
  batchCreator;
23
23
  constructor(properties) {
24
- const { simAws, resources, stackName, cdkOutContext, bindings, caller } = properties;
24
+ const { simAws, resources, stackName, cdkOutContext, bindings, caller, resourceOrder, } = properties;
25
25
  this.resources = resources;
26
26
  this.stackName = stackName;
27
27
  this.batchCreator = new SimCfnStackResourceBatchCreator({
@@ -30,6 +30,7 @@ export class SimCfnStackResourceCreator {
30
30
  cdkOutContext,
31
31
  bindings,
32
32
  caller,
33
+ resourceOrder,
33
34
  });
34
35
  }
35
36
  /**
@@ -6,6 +6,7 @@ import type { SimCfnBinding } from "../bind/sim-cfn-binding.js";
6
6
  import type { SimCdkOutContext } from "../cdk/sim-cdk-out-context.js";
7
7
  import type { SimCfnResource } from "../resource/sim-cfn-resource.js";
8
8
  import type { SimCfnTemplate } from "../template/sim-cfn-template.js";
9
+ import type { SimCfnResourceOrder } from "./deploy/sim-cfn-resource-order.js";
9
10
  import { SimCfnStackUpdater } from "./update/sim-cfn-stack-updater.js";
10
11
  import type { SimCloudFormationStackName } from "./sim-cfn-stack.js";
11
12
  interface SimCfnStackUpdateProperties {
@@ -25,6 +26,10 @@ interface SimCfnStackResourceOperationsProperties {
25
26
  * caller leaves each service to decide the request as the Account root.
26
27
  */
27
28
  readonly caller?: SimAwsCaller | undefined;
29
+ /**
30
+ * The order Resources with no dependency between them are started in.
31
+ */
32
+ readonly resourceOrder?: SimCfnResourceOrder | undefined;
28
33
  }
29
34
  /**
30
35
  * What a Stack can ask simulated AWS to do with its Resources.
@@ -44,6 +49,7 @@ export declare class SimCfnStackResourceOperations {
44
49
  private readonly accountRegionScope;
45
50
  private readonly stackName;
46
51
  private readonly bindings;
52
+ private readonly resourceOrder;
47
53
  private cdkOutContext;
48
54
  private caller;
49
55
  constructor(properties: SimCfnStackResourceOperationsProperties);
@@ -20,16 +20,18 @@ export class SimCfnStackResourceOperations {
20
20
  accountRegionScope;
21
21
  stackName;
22
22
  bindings;
23
+ resourceOrder;
23
24
  cdkOutContext;
24
25
  caller;
25
26
  constructor(properties) {
26
- const { simAws, accountRegionScope, stackName, cdkOutContext, bindings, caller, } = properties;
27
+ const { simAws, accountRegionScope, stackName, cdkOutContext, bindings, caller, resourceOrder, } = properties;
27
28
  this.simAws = simAws;
28
29
  this.accountRegionScope = accountRegionScope;
29
30
  this.stackName = stackName;
30
31
  this.cdkOutContext = cdkOutContext;
31
32
  this.bindings = bindings;
32
33
  this.caller = caller;
34
+ this.resourceOrder = resourceOrder;
33
35
  }
34
36
  /**
35
37
  * Take on what an update brings with it, for this and every later operation.
@@ -106,6 +108,7 @@ export class SimCfnStackResourceOperations {
106
108
  cdkOutContext: this.cdkOutContext,
107
109
  bindings: this.bindings,
108
110
  caller: this.caller,
111
+ resourceOrder: this.resourceOrder,
109
112
  });
110
113
  }
111
114
  deleter(resources) {
@@ -38,7 +38,7 @@ export class SimCfnStack {
38
38
  stackOutputs;
39
39
  cfnTemplate;
40
40
  constructor(properties) {
41
- const { simAws, accountRegionScope, background, stackName, template, cdkOutContext, bindings, caller, exports, } = properties;
41
+ const { simAws, accountRegionScope, background, stackName, template, cdkOutContext, bindings, caller, resourceOrder, exports, } = properties;
42
42
  this.background = background;
43
43
  this.stackName = stackName;
44
44
  this.stackOutputs = new SimCfnStackOutputs({ stackName, exports });
@@ -61,6 +61,7 @@ export class SimCfnStack {
61
61
  cdkOutContext,
62
62
  bindings,
63
63
  caller,
64
+ resourceOrder,
64
65
  });
65
66
  this.lifecycle = new SimCfnStackDeploymentLifecycle({
66
67
  background,
@@ -7,6 +7,7 @@ import type { SimCfnTemplate } from "../template/sim-cfn-template.js";
7
7
  import type { SimCdkOutContext } from "../cdk/sim-cdk-out-context.js";
8
8
  import type { SimCfnBinding } from "../bind/sim-cfn-binding.js";
9
9
  import type { SimCfnExports } from "../export/sim-cfn-exports.js";
10
+ import type { SimCfnResourceOrder } from "./deploy/sim-cfn-resource-order.js";
10
11
  export type SimCloudFormationStackName = Brand<string, "SimCloudFormationStackName">;
11
12
  export type SimCloudFormationStackStatus = "REVIEW_IN_PROGRESS" | "CREATE_IN_PROGRESS" | "CREATE_COMPLETE" | "CREATE_FAILED" | "UPDATE_IN_PROGRESS" | "UPDATE_COMPLETE" | "UPDATE_FAILED" | "DELETE_IN_PROGRESS" | "DELETE_COMPLETE" | "DELETE_FAILED";
12
13
  export interface SimCfnStackUpdateProperties {
@@ -37,6 +38,11 @@ export interface SimCloudFormationStackProperties {
37
38
  * simulation.
38
39
  */
39
40
  readonly caller?: SimAwsCaller | undefined;
41
+ /**
42
+ * The order this Stack starts Resources with no dependency between them in.
43
+ * The template's own order unless the deployment asked for another one.
44
+ */
45
+ readonly resourceOrder?: SimCfnResourceOrder | undefined;
40
46
  /**
41
47
  * The export names published in the Account and Region this Stack deploys
42
48
  * into. This Stack publishes its own Outputs here and reads the ones its
@@ -12,6 +12,11 @@ export interface SimCloudFrontBehavior {
12
12
  * The response headers policy applied to every response this Behavior serves.
13
13
  */
14
14
  responseHeadersPolicyId?: string | undefined;
15
+ /**
16
+ * The cache policy this Behavior was given, whether a template created it or
17
+ * AWS manages it. The simulated cache does not read it yet.
18
+ */
19
+ cachePolicyId?: string | undefined;
15
20
  functionAssociations?: undefined | {
16
21
  viewerRequest?: SimArn;
17
22
  viewerResponse?: SimArn;
@@ -0,0 +1,37 @@
1
+ import type { SimCloudFrontCachePolicy, SimCloudFrontCachePolicyId } from "./sim-cf-cache-policy.js";
2
+ /**
3
+ * The cache policies one simulated CloudFront holds.
4
+ *
5
+ * Policies are found by ID, which is what a cache Behavior's `cachePolicyId`
6
+ * names, and by name, which is what decides whether a new one may be stored.
7
+ *
8
+ * AWS's seven managed policies are held apart from the ones a template
9
+ * creates. CloudFront keeps them in its own namespace, so a template may
10
+ * create a policy called `CachingDisabled` of its own, and deleting the stack
11
+ * that created it leaves the managed one where it was.
12
+ */
13
+ export declare class SimCloudFrontCachePolicyRegistry {
14
+ private readonly policies;
15
+ private readonly managedPolicies;
16
+ /**
17
+ * Store a policy a template created, refusing a name another such policy
18
+ * already holds as CloudFront does.
19
+ */
20
+ add(policy: SimCloudFrontCachePolicy): void;
21
+ /**
22
+ * Forget a policy.
23
+ */
24
+ remove(policyId: SimCloudFrontCachePolicyId): void;
25
+ /**
26
+ * Get a policy by ID, whether a template created it or AWS manages it.
27
+ */
28
+ byId(policyId: SimCloudFrontCachePolicyId | string): SimCloudFrontCachePolicy | undefined;
29
+ /**
30
+ * Get a policy a template created, by name.
31
+ *
32
+ * A managed policy is left out. Its name belongs to CloudFront's own
33
+ * namespace, and this is what decides whether a template may store a policy
34
+ * under a name.
35
+ */
36
+ byName(policyName: string): SimCloudFrontCachePolicy | undefined;
37
+ }
@@ -0,0 +1,50 @@
1
+ import { SimCloudFrontCachePolicyAlreadyExists } from "../error/sim-cloudfront.error.js";
2
+ import { simCfManagedCachePolicies } from "./sim-cf-managed-cache-policies.js";
3
+ /**
4
+ * The cache policies one simulated CloudFront holds.
5
+ *
6
+ * Policies are found by ID, which is what a cache Behavior's `cachePolicyId`
7
+ * names, and by name, which is what decides whether a new one may be stored.
8
+ *
9
+ * AWS's seven managed policies are held apart from the ones a template
10
+ * creates. CloudFront keeps them in its own namespace, so a template may
11
+ * create a policy called `CachingDisabled` of its own, and deleting the stack
12
+ * that created it leaves the managed one where it was.
13
+ */
14
+ export class SimCloudFrontCachePolicyRegistry {
15
+ policies = new Map();
16
+ managedPolicies = simCfManagedCachePolicies();
17
+ /**
18
+ * Store a policy a template created, refusing a name another such policy
19
+ * already holds as CloudFront does.
20
+ */
21
+ add(policy) {
22
+ if (this.byName(policy.name) !== undefined) {
23
+ throw new SimCloudFrontCachePolicyAlreadyExists(`Sim CloudFront cache policy ${policy.name} already exists`);
24
+ }
25
+ this.policies.set(policy.id, policy);
26
+ }
27
+ /**
28
+ * Forget a policy.
29
+ */
30
+ remove(policyId) {
31
+ this.policies.delete(policyId);
32
+ }
33
+ /**
34
+ * Get a policy by ID, whether a template created it or AWS manages it.
35
+ */
36
+ byId(policyId) {
37
+ const id = policyId;
38
+ return this.policies.get(id) ?? this.managedPolicies.get(id);
39
+ }
40
+ /**
41
+ * Get a policy a template created, by name.
42
+ *
43
+ * A managed policy is left out. Its name belongs to CloudFront's own
44
+ * namespace, and this is what decides whether a template may store a policy
45
+ * under a name.
46
+ */
47
+ byName(policyName) {
48
+ return this.policies.values().find((policy) => policy.name === policyName);
49
+ }
50
+ }
@@ -0,0 +1,25 @@
1
+ import type { Brand } from "../../../util/brand.type.js";
2
+ export type SimCloudFrontCachePolicyId = Brand<string, "SimCloudFrontCachePolicyId">;
3
+ interface SimCloudFrontCachePolicyProperties {
4
+ readonly id?: SimCloudFrontCachePolicyId;
5
+ readonly name: string;
6
+ readonly comment?: string | undefined;
7
+ }
8
+ /**
9
+ * Simulated CloudFront cache policy.
10
+ *
11
+ * A cache policy decides what a cache Behavior keys its cache on and how long
12
+ * an object stays there. This simulation holds the policy under its ID and
13
+ * hands it back. The cache key, the TTLs and the compression settings belong
14
+ * to a simulated cache, which CloudFront here has yet to grow.
15
+ *
16
+ * https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html
17
+ */
18
+ export declare class SimCloudFrontCachePolicy {
19
+ readonly id: SimCloudFrontCachePolicyId;
20
+ readonly name: string;
21
+ readonly comment: string | undefined;
22
+ constructor(properties: SimCloudFrontCachePolicyProperties);
23
+ }
24
+ export type SimCloudFrontCachePolicyMap = Map<SimCloudFrontCachePolicyId, SimCloudFrontCachePolicy>;
25
+ export {};
@@ -0,0 +1,21 @@
1
+ import { randomUUID } from "node:crypto";
2
+ /**
3
+ * Simulated CloudFront cache policy.
4
+ *
5
+ * A cache policy decides what a cache Behavior keys its cache on and how long
6
+ * an object stays there. This simulation holds the policy under its ID and
7
+ * hands it back. The cache key, the TTLs and the compression settings belong
8
+ * to a simulated cache, which CloudFront here has yet to grow.
9
+ *
10
+ * https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html
11
+ */
12
+ export class SimCloudFrontCachePolicy {
13
+ id;
14
+ name;
15
+ comment;
16
+ constructor(properties) {
17
+ this.id = properties.id ?? randomUUID();
18
+ this.name = properties.name;
19
+ this.comment = properties.comment;
20
+ }
21
+ }
@@ -0,0 +1,28 @@
1
+ import { type SimCloudFrontCachePolicyMap } from "./sim-cf-cache-policy.js";
2
+ /**
3
+ * The IDs AWS publishes for its managed cache policies.
4
+ *
5
+ * A template names one of these directly. CDK's `CachePolicy` statics carry
6
+ * the same seven, and synthesize the ID into a Behavior's `CachePolicyId` with
7
+ * no Resource behind it.
8
+ */
9
+ export declare const simCfManagedCachePolicyIds: {
10
+ readonly amplify: "2e54312d-136d-493c-8eb9-b001f22f67d2";
11
+ readonly cachingOptimized: "658327ea-f89d-4fab-a63d-7e88639e58f6";
12
+ readonly cachingOptimizedForUncompressedObjects: "b2884449-e4de-46a7-ac36-70bc7f1ddd6d";
13
+ readonly cachingDisabled: "4135ea2d-6df8-44a3-9df3-4b5a84be39ad";
14
+ readonly elementalMediaPackage: "08627262-05a9-4f76-9ded-b50ca2e3a84f";
15
+ readonly useOriginCacheControlHeaders: "83da9c7e-98b4-4e11-a168-04f0df8e2c65";
16
+ readonly useOriginCacheControlHeadersQueryStrings: "4cc15a8a-d715-48a4-82b8-cc0b614638fe";
17
+ };
18
+ /**
19
+ * The seven managed cache policies, built fresh for one simulated CloudFront.
20
+ *
21
+ * CloudFront owns these and every account has them, so a Behavior can name one
22
+ * without a template creating anything. Each carries the ID and the name AWS
23
+ * publishes for it. The cache key and the TTLs behind each one are left out,
24
+ * along with those of a policy a template creates.
25
+ *
26
+ * https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html
27
+ */
28
+ export declare function simCfManagedCachePolicies(): SimCloudFrontCachePolicyMap;
@@ -0,0 +1,48 @@
1
+ import { SimCloudFrontCachePolicy, } from "./sim-cf-cache-policy.js";
2
+ /**
3
+ * The IDs AWS publishes for its managed cache policies.
4
+ *
5
+ * A template names one of these directly. CDK's `CachePolicy` statics carry
6
+ * the same seven, and synthesize the ID into a Behavior's `CachePolicyId` with
7
+ * no Resource behind it.
8
+ */
9
+ export const simCfManagedCachePolicyIds = {
10
+ amplify: "2e54312d-136d-493c-8eb9-b001f22f67d2",
11
+ cachingOptimized: "658327ea-f89d-4fab-a63d-7e88639e58f6",
12
+ cachingOptimizedForUncompressedObjects: "b2884449-e4de-46a7-ac36-70bc7f1ddd6d",
13
+ cachingDisabled: "4135ea2d-6df8-44a3-9df3-4b5a84be39ad",
14
+ elementalMediaPackage: "08627262-05a9-4f76-9ded-b50ca2e3a84f",
15
+ useOriginCacheControlHeaders: "83da9c7e-98b4-4e11-a168-04f0df8e2c65",
16
+ useOriginCacheControlHeadersQueryStrings: "4cc15a8a-d715-48a4-82b8-cc0b614638fe",
17
+ };
18
+ /**
19
+ * The seven managed cache policies, built fresh for one simulated CloudFront.
20
+ *
21
+ * CloudFront owns these and every account has them, so a Behavior can name one
22
+ * without a template creating anything. Each carries the ID and the name AWS
23
+ * publishes for it. The cache key and the TTLs behind each one are left out,
24
+ * along with those of a policy a template creates.
25
+ *
26
+ * https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html
27
+ */
28
+ export function simCfManagedCachePolicies() {
29
+ const policies = [
30
+ managedCachePolicy(simCfManagedCachePolicyIds.amplify, "Amplify"),
31
+ managedCachePolicy(simCfManagedCachePolicyIds.cachingOptimized, "CachingOptimized"),
32
+ managedCachePolicy(simCfManagedCachePolicyIds.cachingOptimizedForUncompressedObjects, "CachingOptimizedForUncompressedObjects"),
33
+ managedCachePolicy(simCfManagedCachePolicyIds.cachingDisabled, "CachingDisabled"),
34
+ managedCachePolicy(simCfManagedCachePolicyIds.elementalMediaPackage, "Elemental-MediaPackage"),
35
+ managedCachePolicy(simCfManagedCachePolicyIds.useOriginCacheControlHeaders, "UseOriginCacheControlHeaders"),
36
+ managedCachePolicy(simCfManagedCachePolicyIds.useOriginCacheControlHeadersQueryStrings, "UseOriginCacheControlHeaders-QueryStrings"),
37
+ ];
38
+ return new Map(policies.map((policy) => [policy.id, policy]));
39
+ }
40
+ /**
41
+ * One managed policy, under the ID and the name AWS gives it.
42
+ */
43
+ function managedCachePolicy(id, name) {
44
+ return new SimCloudFrontCachePolicy({
45
+ id: id,
46
+ name,
47
+ });
48
+ }
@@ -7,6 +7,14 @@ type FunctionCodeInput = SimCreateFunctionCommand["input"]["FunctionCode"];
7
7
  * CloudFront CreateFunction Command input FunctionCode.
8
8
  */
9
9
  export declare function makeCffFunctionCodeInput(handlerFunction: CloudFrontFunction.Handler): FunctionCodeInput;
10
+ /**
11
+ * The source a Function reports as the code it was created with.
12
+ *
13
+ * A Function created from source keeps the bytes it was given. One created
14
+ * from a handler function reference was never given any source, so what it
15
+ * keeps is that handler's own source text, which is the code it runs.
16
+ */
17
+ export declare function cffFunctionCodeSource(functionCodeInput: FunctionCodeInput): Uint8Array;
10
18
  /**
11
19
  * A little trick to allow passing a handler function into CreateFunctionCommand
12
20
  * input as if it were a Uint8Array without TypeScript complaining.
@@ -9,6 +9,19 @@ export function makeCffFunctionCodeInput(handlerFunction) {
9
9
  stowaway.stowawayHandlerFunction(handlerFunction);
10
10
  return stowaway;
11
11
  }
12
+ /**
13
+ * The source a Function reports as the code it was created with.
14
+ *
15
+ * A Function created from source keeps the bytes it was given. One created
16
+ * from a handler function reference was never given any source, so what it
17
+ * keeps is that handler's own source text, which is the code it runs.
18
+ */
19
+ export function cffFunctionCodeSource(functionCodeInput) {
20
+ if (functionCodeInput instanceof CffUint8ArrayStowaway) {
21
+ return Buffer.from(functionCodeInput.handlerFunction.toString());
22
+ }
23
+ return functionCodeInput ?? new Uint8Array();
24
+ }
12
25
  /**
13
26
  * A little trick to allow passing a handler function into CreateFunctionCommand
14
27
  * input as if it were a Uint8Array without TypeScript complaining.
@@ -0,0 +1,52 @@
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 { SimCreateFunctionCommand, SimCreateFunctionCommandOutput } from "../command/create-function/create-function.command.js";
6
+ import { type SimCloudFrontFunctionMap } from "../command/create-function/create-function.handler.js";
7
+ import type { SimDeleteFunctionCommand, SimDeleteFunctionCommandOutput } from "../command/delete-function/delete-function.command.js";
8
+ import type { SimDescribeFunctionCommand, SimDescribeFunctionCommandOutput, SimGetFunctionCommand, SimGetFunctionCommandOutput, SimListFunctionsCommand, SimListFunctionsCommandOutput } from "../command/function/sim-cf-function-command.types.js";
9
+ import type { SimCloudFrontKeyValueStoreRegistry } from "../key-value-store/sim-cf-key-value-store-registry.js";
10
+ interface SimCfFunctionCommandsProperties {
11
+ readonly accountId: SimAwsAccountId;
12
+ readonly cloudFrontFunctions: SimCloudFrontFunctionMap;
13
+ readonly iam: SimIamInterServiceAuthZ;
14
+ readonly background: BackgroundScheduler;
15
+ readonly keyValueStores: SimCloudFrontKeyValueStoreRegistry;
16
+ }
17
+ interface FunctionRequestOptions {
18
+ readonly caller?: SimAwsCaller;
19
+ }
20
+ /**
21
+ * The CloudFront Function commands on the CloudFront client.
22
+ *
23
+ * They are grouped here rather than beside the Distribution commands on
24
+ * SimCloudFrontCommands because they work on their own state, the Account's
25
+ * Functions, and because there are enough of them to be their own thing.
26
+ */
27
+ export declare class SimCfFunctionCommands {
28
+ private readonly writeState;
29
+ private readonly access;
30
+ constructor(properties: SimCfFunctionCommandsProperties);
31
+ /**
32
+ * Handle a Create Function Command from the SDK.
33
+ */
34
+ createFunction(command: SimCreateFunctionCommand, options?: FunctionRequestOptions): Promise<SimCreateFunctionCommandOutput>;
35
+ /**
36
+ * Handle a Delete Function Command from the SDK.
37
+ */
38
+ deleteFunction(command: SimDeleteFunctionCommand, options?: FunctionRequestOptions): Promise<SimDeleteFunctionCommandOutput>;
39
+ /**
40
+ * Handle a List Functions Command from the SDK.
41
+ */
42
+ listFunctions(command: SimListFunctionsCommand, options?: FunctionRequestOptions): Promise<SimListFunctionsCommandOutput>;
43
+ /**
44
+ * Handle a Describe Function Command from the SDK.
45
+ */
46
+ describeFunction(command: SimDescribeFunctionCommand, options?: FunctionRequestOptions): Promise<SimDescribeFunctionCommandOutput>;
47
+ /**
48
+ * Handle a Get Function Command from the SDK.
49
+ */
50
+ getFunction(command: SimGetFunctionCommand, options?: FunctionRequestOptions): Promise<SimGetFunctionCommandOutput>;
51
+ }
52
+ export {};
@@ -0,0 +1,51 @@
1
+ import { CreateFunctionCommandHandler, } from "../command/create-function/create-function.handler.js";
2
+ import { DeleteFunctionCommandHandler } from "../command/delete-function/delete-function.handler.js";
3
+ import { SimCfDescribeFunction } from "../command/function/sim-cf-describe-function.js";
4
+ import { SimCfFunctionAccess } from "../command/function/sim-cf-function-access.js";
5
+ import { SimCfGetFunction } from "../command/function/sim-cf-get-function.js";
6
+ import { SimCfListFunctions } from "../command/function/sim-cf-list-functions.js";
7
+ /**
8
+ * The CloudFront Function commands on the CloudFront client.
9
+ *
10
+ * They are grouped here rather than beside the Distribution commands on
11
+ * SimCloudFrontCommands because they work on their own state, the Account's
12
+ * Functions, and because there are enough of them to be their own thing.
13
+ */
14
+ export class SimCfFunctionCommands {
15
+ writeState;
16
+ access;
17
+ constructor(properties) {
18
+ this.writeState = properties;
19
+ this.access = new SimCfFunctionAccess(properties);
20
+ }
21
+ /**
22
+ * Handle a Create Function Command from the SDK.
23
+ */
24
+ async createFunction(command, options) {
25
+ return await new CreateFunctionCommandHandler(this.writeState).handle(command, options);
26
+ }
27
+ /**
28
+ * Handle a Delete Function Command from the SDK.
29
+ */
30
+ async deleteFunction(command, options) {
31
+ return await new DeleteFunctionCommandHandler(this.writeState).handle(command, options);
32
+ }
33
+ /**
34
+ * Handle a List Functions Command from the SDK.
35
+ */
36
+ async listFunctions(command, options) {
37
+ return await new SimCfListFunctions(this.access).handle(command, options);
38
+ }
39
+ /**
40
+ * Handle a Describe Function Command from the SDK.
41
+ */
42
+ async describeFunction(command, options) {
43
+ return await new SimCfDescribeFunction(this.access).handle(command, options);
44
+ }
45
+ /**
46
+ * Handle a Get Function Command from the SDK.
47
+ */
48
+ async getFunction(command, options) {
49
+ return await new SimCfGetFunction(this.access).handle(command, options);
50
+ }
51
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The JavaScript runtime a CloudFront Function is written against.
3
+ */
4
+ export type SimCloudFrontFunctionRuntime = "cloudfront-js-1.0" | "cloudfront-js-2.0";
5
+ export interface SimCffConfigurationProperties {
6
+ /** The `FunctionConfig` comment, which CloudFront requires and reports. */
7
+ readonly comment?: string | undefined;
8
+ /** The `FunctionConfig` runtime this Function is written against. */
9
+ readonly runtime?: SimCloudFrontFunctionRuntime | undefined;
10
+ /** The source this Function was created with, which GetFunction reports. */
11
+ readonly functionCode?: Uint8Array | undefined;
12
+ /** When this Function was created, off the simulation's clock. */
13
+ readonly createdTime?: Date | undefined;
14
+ }
15
+ /**
16
+ * What a CloudFront Function was created with, which every read of it reports.
17
+ *
18
+ * This is the `FunctionConfig` and `FunctionMetadata` pair the API answers
19
+ * with, held together because they are written once at creation and read
20
+ * together afterwards. The Function itself is what runs; this is what it says
21
+ * about itself.
22
+ */
23
+ export declare class SimCffConfiguration {
24
+ readonly comment: string;
25
+ readonly runtime: SimCloudFrontFunctionRuntime;
26
+ readonly functionCode: Uint8Array;
27
+ /**
28
+ * When this Function was created, and when it was last changed.
29
+ *
30
+ * They are the same instant here. What moves the modified time apart from
31
+ * the created time in CloudFront is UpdateFunction and PublishFunction, and
32
+ * neither is simulated yet.
33
+ */
34
+ readonly createdTime: Date;
35
+ readonly lastModifiedTime: Date;
36
+ /**
37
+ * The version of this Function a write has to carry to be accepted.
38
+ */
39
+ readonly etag: string;
40
+ constructor(properties?: SimCffConfigurationProperties);
41
+ }
@@ -0,0 +1,34 @@
1
+ import { makeSimCloudFrontETag } from "../sim-cf-etag.js";
2
+ /**
3
+ * What a CloudFront Function was created with, which every read of it reports.
4
+ *
5
+ * This is the `FunctionConfig` and `FunctionMetadata` pair the API answers
6
+ * with, held together because they are written once at creation and read
7
+ * together afterwards. The Function itself is what runs; this is what it says
8
+ * about itself.
9
+ */
10
+ export class SimCffConfiguration {
11
+ comment;
12
+ runtime;
13
+ functionCode;
14
+ /**
15
+ * When this Function was created, and when it was last changed.
16
+ *
17
+ * They are the same instant here. What moves the modified time apart from
18
+ * the created time in CloudFront is UpdateFunction and PublishFunction, and
19
+ * neither is simulated yet.
20
+ */
21
+ createdTime;
22
+ lastModifiedTime;
23
+ /**
24
+ * The version of this Function a write has to carry to be accepted.
25
+ */
26
+ etag = makeSimCloudFrontETag();
27
+ constructor(properties = {}) {
28
+ this.comment = properties.comment ?? "";
29
+ this.runtime = properties.runtime ?? "cloudfront-js-2.0";
30
+ this.functionCode = properties.functionCode ?? new Uint8Array();
31
+ this.createdTime = properties.createdTime ?? new Date();
32
+ this.lastModifiedTime = this.createdTime;
33
+ }
34
+ }