@kensio/yulin 1.20.16 → 1.20.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (312) hide show
  1. package/dist/service/aws/caller/sim-aws-ambient-caller.d.ts +23 -0
  2. package/dist/service/aws/caller/sim-aws-ambient-caller.js +12 -0
  3. package/dist/service/aws/caller/sim-aws-caller-resolver.d.ts +17 -6
  4. package/dist/service/aws/caller/sim-aws-caller-resolver.js +21 -26
  5. package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts +6 -0
  6. package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +3 -0
  7. package/dist/service/aws/factory/sim-aws-account-service-cache.d.ts +6 -0
  8. package/dist/service/aws/factory/sim-aws-account-service-cache.js +5 -1
  9. package/dist/service/aws/factory/sim-aws-registered-service-builder.js +3 -1
  10. package/dist/service/aws/factory/sim-aws-service-factory.js +9 -1
  11. package/dist/service/cloudformation/command/create-stack/create-stack.handler.d.ts +4 -0
  12. package/dist/service/cloudformation/command/create-stack/create-stack.handler.js +4 -1
  13. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js +2 -1
  14. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.d.ts +11 -2
  15. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.js +2 -1
  16. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts +6 -0
  17. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts +11 -0
  18. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js +17 -15
  19. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.d.ts +12 -0
  20. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.js +2 -1
  21. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cache-policy-cfn.d.ts +23 -0
  22. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cache-policy-cfn.js +30 -0
  23. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cfn-value-adapter.js +8 -0
  24. package/dist/service/cloudformation/resource/name/sim-cfn-generated-resource-name.d.ts +29 -12
  25. package/dist/service/cloudformation/resource/name/sim-cfn-generated-resource-name.js +51 -20
  26. package/dist/service/cloudformation/stack/deploy/sim-cfn-resource-order.d.ts +19 -0
  27. package/dist/service/cloudformation/stack/deploy/sim-cfn-resource-order.js +6 -0
  28. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.d.ts +7 -0
  29. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.js +9 -2
  30. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-creator.d.ts +2 -0
  31. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-creator.js +2 -1
  32. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +6 -0
  33. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +4 -1
  34. package/dist/service/cloudformation/stack/sim-cfn-stack.js +2 -1
  35. package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +6 -0
  36. package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts +5 -0
  37. package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy-registry.d.ts +37 -0
  38. package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy-registry.js +50 -0
  39. package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy.d.ts +25 -0
  40. package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy.js +21 -0
  41. package/dist/service/cloudfront/cache-policy/sim-cf-managed-cache-policies.d.ts +28 -0
  42. package/dist/service/cloudfront/cache-policy/sim-cf-managed-cache-policies.js +48 -0
  43. package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.d.ts +8 -0
  44. package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.js +13 -0
  45. package/dist/service/cloudfront/cff/sim-cf-function-commands.d.ts +52 -0
  46. package/dist/service/cloudfront/cff/sim-cf-function-commands.js +51 -0
  47. package/dist/service/cloudfront/cff/sim-cff-configuration.d.ts +41 -0
  48. package/dist/service/cloudfront/cff/sim-cff-configuration.js +34 -0
  49. package/dist/service/cloudfront/cff/sim-cff-stage.d.ts +23 -0
  50. package/dist/service/cloudfront/cff/sim-cff-stage.js +30 -0
  51. package/dist/service/cloudfront/cff/sim-cloudfront-function.d.ts +6 -1
  52. package/dist/service/cloudfront/cff/sim-cloudfront-function.js +6 -0
  53. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-config.d.ts +27 -0
  54. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-config.js +42 -0
  55. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-creator.d.ts +24 -0
  56. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-creator.js +32 -0
  57. package/dist/service/cloudfront/cfn/distro/{sim-cfn-cf-distro-response-headers-policy.d.ts → sim-cfn-cf-distro-behavior-policies.d.ts} +8 -7
  58. package/dist/service/cloudfront/cfn/distro/{sim-cfn-cf-distro-response-headers-policy.js → sim-cfn-cf-distro-behavior-policies.js} +11 -37
  59. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.d.ts +6 -5
  60. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js +8 -7
  61. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-policy-drops.d.ts +23 -0
  62. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-policy-drops.js +50 -0
  63. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.d.ts +1 -0
  64. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.js +10 -0
  65. package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts +1 -0
  66. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts +2 -0
  67. package/dist/service/cloudfront/command/create-function/create-function.handler.js +7 -1
  68. package/dist/service/cloudfront/command/function/sim-cf-describe-function.d.ts +22 -0
  69. package/dist/service/cloudfront/command/function/sim-cf-describe-function.js +32 -0
  70. package/dist/service/cloudfront/command/function/sim-cf-function-access.d.ts +48 -0
  71. package/dist/service/cloudfront/command/function/sim-cf-function-access.js +48 -0
  72. package/dist/service/cloudfront/command/function/sim-cf-function-command.types.d.ts +97 -0
  73. package/dist/service/cloudfront/command/function/sim-cf-function-command.types.js +10 -0
  74. package/dist/service/cloudfront/command/function/sim-cf-function-lookup.d.ts +12 -0
  75. package/dist/service/cloudfront/command/function/sim-cf-function-lookup.js +21 -0
  76. package/dist/service/cloudfront/command/function/sim-cf-function-summary.d.ts +11 -0
  77. package/dist/service/cloudfront/command/function/sim-cf-function-summary.js +30 -0
  78. package/dist/service/cloudfront/command/function/sim-cf-get-function.d.ts +23 -0
  79. package/dist/service/cloudfront/command/function/sim-cf-get-function.js +33 -0
  80. package/dist/service/cloudfront/command/function/sim-cf-list-functions.d.ts +22 -0
  81. package/dist/service/cloudfront/command/function/sim-cf-list-functions.js +38 -0
  82. package/dist/service/cloudfront/command/update-distribution/update-distribution.handler.d.ts +2 -0
  83. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-cache-policy.d.ts +18 -0
  84. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-cache-policy.js +30 -0
  85. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-policies.d.ts +28 -0
  86. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-policies.js +41 -0
  87. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.d.ts +2 -2
  88. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.js +6 -3
  89. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.d.ts +0 -10
  90. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.js +0 -19
  91. package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.d.ts +2 -0
  92. package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.js +4 -2
  93. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.d.ts +3 -3
  94. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.js +5 -5
  95. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.d.ts +3 -3
  96. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.js +4 -4
  97. package/dist/service/cloudfront/distribution/sim-cf-distribution-configuration-state.d.ts +3 -1
  98. package/dist/service/cloudfront/distribution/sim-cf-distribution-reconfigurer.d.ts +2 -0
  99. package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts +21 -0
  100. package/dist/service/cloudfront/error/sim-cloudfront.error.js +25 -0
  101. package/dist/service/cloudfront/key-value-store/sim-cf-key-value-store-access.js +2 -10
  102. package/dist/service/cloudfront/key-value-store/sim-cf-key-value-store.js +2 -1
  103. package/dist/service/cloudfront/sdk/sim-cloudfront-sdk-command-router.js +12 -0
  104. package/dist/service/cloudfront/sim-cf-authorize.d.ts +16 -0
  105. package/dist/service/cloudfront/sim-cf-authorize.js +19 -0
  106. package/dist/service/cloudfront/sim-cf-etag.d.ts +7 -0
  107. package/dist/service/cloudfront/sim-cf-etag.js +10 -0
  108. package/dist/service/cloudfront/sim-cloudfront-commands.d.ts +8 -12
  109. package/dist/service/cloudfront/sim-cloudfront-commands.js +8 -17
  110. package/dist/service/cloudfront/sim-cloudfront-policies.d.ts +43 -0
  111. package/dist/service/cloudfront/sim-cloudfront-policies.js +53 -0
  112. package/dist/service/cloudfront/sim-cloudfront.d.ts +13 -17
  113. package/dist/service/cloudfront/sim-cloudfront.js +22 -25
  114. package/dist/service/ecr/authorize/sim-ecr-authorizer.d.ts +31 -0
  115. package/dist/service/ecr/authorize/sim-ecr-authorizer.js +38 -0
  116. package/dist/service/ecr/cfn/repository/sim-cfn-ecr-repository-creator.d.ts +11 -2
  117. package/dist/service/ecr/cfn/repository/sim-cfn-ecr-repository-creator.js +11 -2
  118. package/dist/service/ecr/cfn/sim-ecr-cfn-resource-factory.d.ts +4 -2
  119. package/dist/service/ecr/cfn/sim-ecr-cfn-resource-factory.js +8 -9
  120. package/dist/service/ecr/cfn/sim-ecr-cfn-unsupported-resource.d.ts +7 -0
  121. package/dist/service/ecr/cfn/sim-ecr-cfn-unsupported-resource.js +9 -0
  122. package/dist/service/ecr/sim-ecr.d.ts +7 -0
  123. package/dist/service/ecr/sim-ecr.js +16 -4
  124. package/dist/service/ecs/command/authorize/sim-ecs-authorizer.d.ts +12 -0
  125. package/dist/service/ecs/command/authorize/sim-ecs-authorizer.js +21 -0
  126. package/dist/service/ecs/command/register-task-definition/register-task-definition.handler.js +1 -0
  127. package/dist/service/ecs/sim-ecs-service-principal.d.ts +8 -0
  128. package/dist/service/ecs/sim-ecs-service-principal.js +8 -0
  129. package/dist/service/eventbridge/command/authorize/sim-event-bridge-authorizer.d.ts +12 -0
  130. package/dist/service/eventbridge/command/authorize/sim-event-bridge-authorizer.js +21 -0
  131. package/dist/service/eventbridge/command/rule/sim-event-bridge-rule-access.d.ts +13 -0
  132. package/dist/service/eventbridge/command/rule/sim-event-bridge-rule-access.js +9 -0
  133. package/dist/service/eventbridge/command/target/sim-event-bridge-put-targets.js +1 -0
  134. package/dist/service/firehose/command/authorize/sim-firehose-authorizer.d.ts +12 -0
  135. package/dist/service/firehose/command/authorize/sim-firehose-authorizer.js +20 -0
  136. package/dist/service/firehose/command/sim-firehose-delivery-stream-access.d.ts +4 -0
  137. package/dist/service/firehose/command/sim-firehose-delivery-stream-access.js +6 -0
  138. package/dist/service/firehose/command/stream/sim-firehose-create-delivery-stream.js +3 -1
  139. package/dist/service/firehose/sim-firehose-service-principal.d.ts +8 -0
  140. package/dist/service/firehose/sim-firehose-service-principal.js +8 -0
  141. package/dist/service/firehose/source/sim-firehose-source.d.ts +5 -0
  142. package/dist/service/firehose/source/sim-firehose-source.js +5 -0
  143. package/dist/service/glue/cfn/database/sim-cfn-glue-database-properties.js +2 -2
  144. package/dist/service/glue/cfn/sim-cfn-glue-generated-name.d.ts +10 -0
  145. package/dist/service/glue/cfn/sim-cfn-glue-generated-name.js +25 -0
  146. package/dist/service/glue/cfn/table/sim-cfn-glue-table-properties.js +2 -3
  147. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.d.ts +33 -2
  148. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.js +33 -2
  149. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.d.ts +4 -3
  150. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.js +9 -3
  151. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.d.ts +14 -5
  152. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.js +16 -12
  153. package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.d.ts +9 -3
  154. package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.js +5 -3
  155. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts +9 -71
  156. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js +2 -1
  157. package/dist/service/iam/authorize/context/sim-iam-auth-z-input.d.ts +87 -0
  158. package/dist/service/iam/authorize/context/sim-iam-auth-z-input.js +1 -0
  159. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.d.ts +11 -3
  160. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.js +20 -8
  161. package/dist/service/iam/authorize/match/sim-iam-principal-match.d.ts +29 -8
  162. package/dist/service/iam/authorize/match/sim-iam-principal-match.js +38 -13
  163. package/dist/service/iam/authorize/pass-role/sim-iam-pass-role-authorizer.d.ts +74 -0
  164. package/dist/service/iam/authorize/pass-role/sim-iam-pass-role-authorizer.js +92 -0
  165. package/dist/service/iam/authorize/sim-iam-account-auth-z.d.ts +14 -5
  166. package/dist/service/iam/authorize/sim-iam-account-auth-z.js +6 -4
  167. package/dist/service/iam/authorize/sim-iam-authorizer.d.ts +3 -1
  168. package/dist/service/iam/authorize/sim-iam-authorizer.js +2 -1
  169. package/dist/service/iam/authorize/sim-iam-inter-service-auth-z.d.ts +1 -1
  170. package/dist/service/iam/authorize/sim-iam-wildcard.js +39 -4
  171. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.js +2 -1
  172. package/dist/service/iam/cfn/name/sim-cfn-iam-generated-name.d.ts +16 -0
  173. package/dist/service/iam/cfn/name/sim-cfn-iam-generated-name.js +36 -0
  174. package/dist/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.js +9 -8
  175. package/dist/service/iam/cfn/sim-cfn-iam-optional-string.d.ts +17 -0
  176. package/dist/service/iam/cfn/sim-cfn-iam-optional-string.js +17 -0
  177. package/dist/service/iam/cfn/user/sim-cfn-iam-user-properties-parser.js +4 -8
  178. package/dist/service/iam/command/policy/create-policy/create-policy-input-resolver.js +2 -0
  179. package/dist/service/iam/command/policy/put-role-policy/put-role-policy.handler.js +5 -0
  180. package/dist/service/iam/command/policy/put-user-policy/put-user-policy.handler.js +5 -0
  181. package/dist/service/iam/command/role/create-role/create-role.handler.js +4 -1
  182. package/dist/service/iam/error/sim-iam.error.d.ts +11 -0
  183. package/dist/service/iam/error/sim-iam.error.js +13 -0
  184. package/dist/service/iam/index.d.ts +1 -0
  185. package/dist/service/iam/policy/sim-iam-policy-document-of-size.d.ts +18 -0
  186. package/dist/service/iam/policy/sim-iam-policy-document-of-size.js +41 -0
  187. package/dist/service/iam/role/sim-iam-deploy-role.d.ts +56 -0
  188. package/dist/service/iam/role/sim-iam-deploy-role.js +50 -0
  189. package/dist/service/iam/role/sim-iam-role-with-policy.factory.d.ts +3 -1
  190. package/dist/service/iam/sim-iam-account-parts.d.ts +8 -0
  191. package/dist/service/iam/sim-iam-account-parts.js +1 -0
  192. package/dist/service/iam/sim-iam.d.ts +12 -2
  193. package/dist/service/iam/sim-iam.js +12 -0
  194. package/dist/service/iam/validate/size/sim-iam-policy-document-size.d.ts +57 -0
  195. package/dist/service/iam/validate/size/sim-iam-policy-document-size.js +71 -0
  196. package/dist/service/kms/command/authorize/sim-kms-authorizer.d.ts +3 -1
  197. package/dist/service/kms/command/authorize/sim-kms-authorizer.js +4 -1
  198. package/dist/service/kms/command/sim-kms-request-options.d.ts +11 -0
  199. package/dist/service/kms/key/sim-kms-key-policy.d.ts +5 -4
  200. package/dist/service/kms/key/sim-kms-key-policy.js +4 -3
  201. package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-properties-parser.d.ts +2 -2
  202. package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-properties-parser.js +4 -3
  203. package/dist/service/lambda/cfn/function/sim-cfn-lambda-generated-function-name.d.ts +10 -0
  204. package/dist/service/lambda/cfn/function/sim-cfn-lambda-generated-function-name.js +25 -0
  205. package/dist/service/lambda/command/authorize/sim-lambda-resource-policies.d.ts +1 -1
  206. package/dist/service/lambda/command/create-function/create-function-authorizer.d.ts +9 -2
  207. package/dist/service/lambda/command/create-function/create-function-authorizer.js +16 -2
  208. package/dist/service/lambda/command/create-function/create-function.handler.js +1 -1
  209. package/dist/service/lambda/command/update-function-configuration/update-function-configuration-authorizer.d.ts +7 -2
  210. package/dist/service/lambda/command/update-function-configuration/update-function-configuration-authorizer.js +14 -2
  211. package/dist/service/lambda/command/update-function-configuration/update-function-configuration.handler.js +1 -1
  212. package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts +10 -1
  213. package/dist/service/lambda/function/logging/sim-lambda-function-logging.js +25 -1
  214. package/dist/service/lambda/function/logging/sim-lambda-invoke-error-log.d.ts +13 -0
  215. package/dist/service/lambda/function/logging/sim-lambda-invoke-error-log.js +18 -0
  216. package/dist/service/lambda/sim-lambda-service-principal.d.ts +7 -0
  217. package/dist/service/lambda/sim-lambda-service-principal.js +7 -0
  218. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-authorization.d.ts +46 -0
  219. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-authorization.js +49 -0
  220. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.d.ts +5 -0
  221. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.js +6 -0
  222. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.d.ts +5 -0
  223. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.js +6 -0
  224. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.d.ts +5 -0
  225. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.js +6 -0
  226. package/dist/service/logs/cfn/group/sim-cfn-log-group-creator.d.ts +9 -2
  227. package/dist/service/logs/cfn/group/sim-cfn-log-group-creator.js +34 -5
  228. package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.js +1 -1
  229. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.d.ts +4 -0
  230. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.js +9 -4
  231. package/dist/service/logs/sim-logs-commands.d.ts +3 -0
  232. package/dist/service/logs/sim-logs-commands.js +4 -0
  233. package/dist/service/logs/sim-logs.js +6 -1
  234. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.d.ts +2 -2
  235. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.js +4 -3
  236. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-generated-name.d.ts +12 -0
  237. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-generated-name.js +22 -0
  238. package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.d.ts +1 -1
  239. package/dist/service/scheduler/command/authorize/sim-scheduler-authorizer.d.ts +10 -1
  240. package/dist/service/scheduler/command/authorize/sim-scheduler-authorizer.js +19 -1
  241. package/dist/service/scheduler/command/schedule/sim-scheduler-create-schedule.js +1 -0
  242. package/dist/service/scheduler/command/schedule/sim-scheduler-schedule-access.d.ts +8 -0
  243. package/dist/service/scheduler/command/schedule/sim-scheduler-schedule-access.js +9 -0
  244. package/dist/service/scheduler/command/schedule/sim-scheduler-update-schedule.js +1 -0
  245. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-generated-name.d.ts +15 -0
  246. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-generated-name.js +22 -0
  247. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-properties.d.ts +4 -10
  248. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-properties.js +13 -31
  249. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-value.d.ts +17 -0
  250. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-value.js +30 -0
  251. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-name.d.ts +6 -0
  252. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-name.js +8 -3
  253. package/dist/service/sns/command/authorize/sim-sns-topic-resource-policies.d.ts +1 -1
  254. package/dist/service/sqs/command/authorize/sim-sqs-queue-resource-policies.d.ts +1 -1
  255. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-generated-parameter-name.d.ts +16 -0
  256. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-generated-parameter-name.js +23 -0
  257. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-properties.d.ts +2 -4
  258. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-properties.js +5 -5
  259. package/dist/service/ssm/parameter/sim-ssm-kms-crypto.d.ts +6 -4
  260. package/dist/service/ssm/parameter/sim-ssm-kms-crypto.js +4 -4
  261. package/dist/service/ssm/parameter/sim-ssm-parameter-arn.d.ts +17 -0
  262. package/dist/service/ssm/parameter/sim-ssm-parameter-arn.js +20 -0
  263. package/dist/service/ssm/parameter/sim-ssm-parameter-kms.d.ts +15 -9
  264. package/dist/service/ssm/parameter/sim-ssm-parameter-kms.js +20 -10
  265. package/dist/service/ssm/parameter/sim-ssm-parameter-name.js +3 -12
  266. package/dist/service/stepfunctions/command/authorize/sim-step-functions-authorizer.d.ts +41 -0
  267. package/dist/service/stepfunctions/command/authorize/sim-step-functions-authorizer.js +64 -0
  268. package/dist/service/stepfunctions/command/machine/sim-state-machine-create.d.ts +5 -2
  269. package/dist/service/stepfunctions/command/machine/sim-state-machine-create.js +6 -2
  270. package/dist/service/stepfunctions/command/machine/sim-state-machine-delete.d.ts +26 -0
  271. package/dist/service/stepfunctions/command/machine/sim-state-machine-delete.js +29 -0
  272. package/dist/service/stepfunctions/command/machine/sim-state-machine-lookup.d.ts +7 -0
  273. package/dist/service/stepfunctions/command/machine/sim-state-machine-lookup.js +12 -3
  274. package/dist/service/stepfunctions/command/machine/sim-state-machine-update.d.ts +19 -0
  275. package/dist/service/stepfunctions/command/machine/{sim-state-machine-writes.js → sim-state-machine-update.js} +3 -14
  276. package/dist/service/stepfunctions/sim-step-functions.d.ts +8 -2
  277. package/dist/service/stepfunctions/sim-step-functions.js +26 -9
  278. package/dist/service/sts/command/assume-role/assume-role.handler.d.ts +5 -0
  279. package/dist/service/sts/command/assume-role/assume-role.handler.js +1 -0
  280. package/dist/service/sts/command/get-caller-identity/get-caller-identity.handler.d.ts +5 -0
  281. package/dist/service/sts/command/get-caller-identity/get-caller-identity.handler.js +1 -0
  282. package/dist/service/sts/sim-sts.d.ts +9 -0
  283. package/dist/service/sts/sim-sts.js +4 -0
  284. package/dist/util/memo/bounded-memo.d.ts +36 -0
  285. package/dist/util/memo/bounded-memo.js +58 -0
  286. package/docs/sdk/README.md +3 -1
  287. package/docs/services/cloudformation/README.md +196 -11
  288. package/docs/services/cloudfront/README.md +230 -6
  289. package/docs/services/cloudwatch/README.md +6 -4
  290. package/docs/services/cognito/README.md +8 -7
  291. package/docs/services/dynamodb/README.md +6 -5
  292. package/docs/services/ecs/README.md +20 -9
  293. package/docs/services/elbv2/README.md +6 -2
  294. package/docs/services/eventbridge/README.md +9 -1
  295. package/docs/services/firehose/README.md +9 -3
  296. package/docs/services/glue/README.md +6 -0
  297. package/docs/services/iam/README.md +322 -27
  298. package/docs/services/kinesis/README.md +3 -2
  299. package/docs/services/kms/README.md +7 -2
  300. package/docs/services/lambda/README.md +76 -2
  301. package/docs/services/logs/README.md +16 -2
  302. package/docs/services/s3/README.md +7 -2
  303. package/docs/services/scheduler/README.md +12 -4
  304. package/docs/services/secretsmanager/README.md +6 -3
  305. package/docs/services/ses/README.md +3 -1
  306. package/docs/services/sns/README.md +5 -5
  307. package/docs/services/sqs/README.md +5 -5
  308. package/docs/services/ssm/README.md +40 -16
  309. package/docs/services/stepfunctions/README.md +11 -2
  310. package/docs/services/wafv2/README.md +5 -3
  311. package/package.json +1 -1
  312. package/dist/service/stepfunctions/command/machine/sim-state-machine-writes.d.ts +0 -25
@@ -0,0 +1,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
+ }
@@ -0,0 +1,23 @@
1
+ import type { SimCloudFrontFunction } from "./sim-cloudfront-function.js";
2
+ /**
3
+ * The two stages a CloudFront Function can be read from.
4
+ *
5
+ * A Function is created into DEVELOPMENT and reaches LIVE once it is
6
+ * published. LIVE is the copy a Distribution runs.
7
+ */
8
+ export type SimCloudFrontFunctionStage = "DEVELOPMENT" | "LIVE";
9
+ /**
10
+ * Read the stage a request asked for.
11
+ *
12
+ * CloudFront defaults an omitted `Stage` to DEVELOPMENT, the copy a Function
13
+ * is created into, and refuses a value that names neither stage.
14
+ */
15
+ export declare function simCffRequestedStage(stage: string | undefined): SimCloudFrontFunctionStage;
16
+ /**
17
+ * Whether a Function can be read from a stage.
18
+ *
19
+ * Every Function is in DEVELOPMENT from the moment it is created. It reaches
20
+ * LIVE once it is published, so a Function still waiting to publish answers to
21
+ * DEVELOPMENT alone.
22
+ */
23
+ export declare function simCffInStage(cloudFrontFunction: SimCloudFrontFunction, stage: SimCloudFrontFunctionStage): boolean;
@@ -0,0 +1,30 @@
1
+ import { SimCloudFrontInvalidArgument } from "../error/sim-cloudfront.error.js";
2
+ const simCffStages = new Set([
3
+ "DEVELOPMENT",
4
+ "LIVE",
5
+ ]);
6
+ /**
7
+ * Read the stage a request asked for.
8
+ *
9
+ * CloudFront defaults an omitted `Stage` to DEVELOPMENT, the copy a Function
10
+ * is created into, and refuses a value that names neither stage.
11
+ */
12
+ export function simCffRequestedStage(stage) {
13
+ if (stage === undefined) {
14
+ return "DEVELOPMENT";
15
+ }
16
+ if (!simCffStages.has(stage)) {
17
+ throw new SimCloudFrontInvalidArgument(`CloudFront Function stage ${stage} is neither DEVELOPMENT nor LIVE`);
18
+ }
19
+ return stage;
20
+ }
21
+ /**
22
+ * Whether a Function can be read from a stage.
23
+ *
24
+ * Every Function is in DEVELOPMENT from the moment it is created. It reaches
25
+ * LIVE once it is published, so a Function still waiting to publish answers to
26
+ * DEVELOPMENT alone.
27
+ */
28
+ export function simCffInStage(cloudFrontFunction, stage) {
29
+ return stage === "DEVELOPMENT" || cloudFrontFunction.status !== "UNPUBLISHED";
30
+ }
@@ -4,9 +4,10 @@ import type { Brand } from "../../../util/brand.type.js";
4
4
  import type { SimArn } from "../../aws/arn.js";
5
5
  import { type SimAwsAccountId } from "../../aws/sim-aws-account.js";
6
6
  import type { SimCloudFrontKeyValueStore } from "../key-value-store/sim-cf-key-value-store.js";
7
+ import { SimCffConfiguration, type SimCffConfigurationProperties } from "./sim-cff-configuration.js";
7
8
  export type SimCloudFrontFunctionName = Brand<string, "SimCloudFrontFunctionName">;
8
9
  export type CloudFrontFunctionStatus = "UNPUBLISHED" | "UNASSOCIATED" | "ASSOCIATED";
9
- interface SimCloudFrontFunctionProperties {
10
+ interface SimCloudFrontFunctionProperties extends SimCffConfigurationProperties {
10
11
  name: SimCloudFrontFunctionName | string;
11
12
  status?: CloudFrontFunctionStatus;
12
13
  readonly accountId?: SimAwsAccountId;
@@ -22,6 +23,10 @@ export declare class SimCloudFrontFunction {
22
23
  #private;
23
24
  readonly name: SimCloudFrontFunctionName;
24
25
  readonly accountId: SimAwsAccountId;
26
+ /**
27
+ * What this Function was created with, which every read of it reports.
28
+ */
29
+ readonly config: SimCffConfiguration;
25
30
  private readonly handlerFunction;
26
31
  private readonly eventAdapter;
27
32
  private readonly associatedKeyValueStore;
@@ -1,5 +1,6 @@
1
1
  import { SimCffEventAdapter } from "./adapter/sim-cff-event-adapter.js";
2
2
  import { makeSimAwsAccountId, } from "../../aws/sim-aws-account.js";
3
+ import { SimCffConfiguration, } from "./sim-cff-configuration.js";
3
4
  import { cffCloudFrontModule } from "./kvs/cff-cloudfront-module.js";
4
5
  import { simCffCloudFrontGlobal } from "./kvs/sim-cff-cloudfront-global.js";
5
6
  export const defaultCffHandler = (event) => {
@@ -14,6 +15,10 @@ export const defaultCffHandler = (event) => {
14
15
  export class SimCloudFrontFunction {
15
16
  name;
16
17
  accountId;
18
+ /**
19
+ * What this Function was created with, which every read of it reports.
20
+ */
21
+ config;
17
22
  #status;
18
23
  handlerFunction;
19
24
  eventAdapter;
@@ -23,6 +28,7 @@ export class SimCloudFrontFunction {
23
28
  this.name = name;
24
29
  this.#status = status;
25
30
  this.accountId = accountId;
31
+ this.config = new SimCffConfiguration(properties);
26
32
  this.handlerFunction = handlerFunction;
27
33
  this.eventAdapter = eventAdapter;
28
34
  this.associatedKeyValueStore = properties.keyValueStore;
@@ -0,0 +1,27 @@
1
+ import type { SimCfnResource } from "../../../cloudformation/resource/sim-cfn-resource.js";
2
+ import type { SimCfnTemplateValueRecord } from "../../../cloudformation/template/value/sim-cfn-template-value.js";
3
+ import { SimCloudFrontCachePolicy } from "../../cache-policy/sim-cf-cache-policy.js";
4
+ /**
5
+ * Reads an AWS::CloudFront::CachePolicy Resource into a simulated policy.
6
+ *
7
+ * `Name` and `Comment` are what the policy carries. The cache key sections and
8
+ * the TTLs are read past: what they configure is a cache this simulation has
9
+ * yet to grow. A Resource missing its `Name` is refused, as CloudFormation
10
+ * refuses one.
11
+ */
12
+ export declare class SimCfnCfCachePolicyConfig {
13
+ private readonly resource;
14
+ private readonly properties;
15
+ constructor(properties: {
16
+ readonly resource: SimCfnResource;
17
+ readonly properties: SimCfnTemplateValueRecord;
18
+ });
19
+ /**
20
+ * Build the simulated policy this Resource describes.
21
+ */
22
+ build(): SimCloudFrontCachePolicy;
23
+ /**
24
+ * Refuse this Resource, saying which part of it could not be read.
25
+ */
26
+ private refuse;
27
+ }
@@ -0,0 +1,42 @@
1
+ import { isRecord } from "../../../../util/type-guard/record.js";
2
+ import { SimCloudFrontCachePolicy } from "../../cache-policy/sim-cf-cache-policy.js";
3
+ /**
4
+ * Reads an AWS::CloudFront::CachePolicy Resource into a simulated policy.
5
+ *
6
+ * `Name` and `Comment` are what the policy carries. The cache key sections and
7
+ * the TTLs are read past: what they configure is a cache this simulation has
8
+ * yet to grow. A Resource missing its `Name` is refused, as CloudFormation
9
+ * refuses one.
10
+ */
11
+ export class SimCfnCfCachePolicyConfig {
12
+ resource;
13
+ properties;
14
+ constructor(properties) {
15
+ this.resource = properties.resource;
16
+ this.properties = properties.properties;
17
+ }
18
+ /**
19
+ * Build the simulated policy this Resource describes.
20
+ */
21
+ build() {
22
+ const config = this.properties["CachePolicyConfig"];
23
+ if (!isRecord(config)) {
24
+ return this.refuse("CachePolicyConfig must be an object");
25
+ }
26
+ const name = config["Name"];
27
+ if (typeof name !== "string") {
28
+ return this.refuse("CachePolicyConfig needs a string Name");
29
+ }
30
+ const comment = config["Comment"];
31
+ return new SimCloudFrontCachePolicy({
32
+ name,
33
+ ...(typeof comment === "string" && { comment }),
34
+ });
35
+ }
36
+ /**
37
+ * Refuse this Resource, saying which part of it could not be read.
38
+ */
39
+ refuse(detail) {
40
+ throw new Error(`Invalid AWS::CloudFront::CachePolicy ${this.resource.logicalId}: ${detail}`);
41
+ }
42
+ }
@@ -0,0 +1,24 @@
1
+ import type { SimCfnResource } from "../../../cloudformation/resource/sim-cfn-resource.js";
2
+ import type { SimCfnTemplateValueRecord } from "../../../cloudformation/template/value/sim-cfn-template-value.js";
3
+ import type { SimCloudFront } from "../../sim-cloudfront.js";
4
+ import type { SimCloudFrontCachePolicy } from "../../cache-policy/sim-cf-cache-policy.js";
5
+ interface SimCfnCfCachePolicyCreatorProperties {
6
+ readonly cloudFront: SimCloudFront;
7
+ }
8
+ /**
9
+ * Creates simulated cache policies from AWS::CloudFront::CachePolicy
10
+ * Resources.
11
+ */
12
+ export declare class SimCfnCfCachePolicyCreator {
13
+ private readonly cloudFront;
14
+ constructor(properties: SimCfnCfCachePolicyCreatorProperties);
15
+ /**
16
+ * Create and store the policy one Resource describes.
17
+ */
18
+ create(resource: SimCfnResource, properties: SimCfnTemplateValueRecord): SimCloudFrontCachePolicy;
19
+ /**
20
+ * Remove a policy created from a Resource.
21
+ */
22
+ delete(resource: SimCfnResource): void;
23
+ }
24
+ export {};
@@ -0,0 +1,32 @@
1
+ import { SimCfnCfCachePolicyConfig } from "./sim-cfn-cf-cache-policy-config.js";
2
+ /**
3
+ * Creates simulated cache policies from AWS::CloudFront::CachePolicy
4
+ * Resources.
5
+ */
6
+ export class SimCfnCfCachePolicyCreator {
7
+ cloudFront;
8
+ constructor(properties) {
9
+ this.cloudFront = properties.cloudFront;
10
+ }
11
+ /**
12
+ * Create and store the policy one Resource describes.
13
+ */
14
+ create(resource, properties) {
15
+ const policy = new SimCfnCfCachePolicyConfig({
16
+ resource,
17
+ properties,
18
+ }).build();
19
+ this.cloudFront.addCachePolicy(policy);
20
+ return policy;
21
+ }
22
+ /**
23
+ * Remove a policy created from a Resource.
24
+ */
25
+ delete(resource) {
26
+ const policy = resource.simResource;
27
+ if (policy === undefined) {
28
+ return;
29
+ }
30
+ this.cloudFront.removeCachePolicy(policy.id);
31
+ }
32
+ }
@@ -2,8 +2,8 @@ import type { SimCfnResource } from "../../../cloudformation/resource/sim-cfn-re
2
2
  import type { SimCloudFrontDistributionConfig } from "../../command/create-distribution/create-distribution.command.js";
3
3
  import type { SimCloudFront } from "../../sim-cloudfront.js";
4
4
  /**
5
- * The DistributionConfig to deploy, without a `ResponseHeadersPolicyId` naming
6
- * a response headers policy this simulation does not hold.
5
+ * The DistributionConfig to deploy, without a policy ID naming a response
6
+ * headers policy or a cache policy this simulation does not hold.
7
7
  *
8
8
  * `CreateDistribution` refuses such an ID, as real CloudFront refuses one, and
9
9
  * a Distribution deployed from a template is the one place that refusal costs
@@ -14,10 +14,11 @@ import type { SimCloudFront } from "../../sim-cloudfront.js";
14
14
  * make with it. That is the same reason an absent `WebACLId` is left out here.
15
15
  *
16
16
  * So the property is left off that Behavior and recorded on
17
- * `stack.ignoredProperties`. The Behavior deploys and serves every response
18
- * without the policy's headers. A test that cares reads the record.
17
+ * `stack.ignoredProperties`. The Behavior deploys, and a test that cares reads
18
+ * the record. CloudFront's managed policies count as held, so a Behavior
19
+ * naming one keeps it.
19
20
  *
20
- * One Behavior losing its policy leaves the others holding theirs. CloudFront's
21
- * managed policies count as held, so a Behavior naming one keeps it.
21
+ * One Behavior losing a policy leaves the others holding theirs, and a
22
+ * Behavior losing one kind of policy keeps the other.
22
23
  */
23
- export declare function simCfnCfDistroWithHeldResponseHeadersPolicies(resource: SimCfnResource, distributionConfig: SimCloudFrontDistributionConfig, cloudFront: SimCloudFront): SimCloudFrontDistributionConfig;
24
+ export declare function simCfnCfDistroWithHeldBehaviorPolicies(resource: SimCfnResource, distributionConfig: SimCloudFrontDistributionConfig, cloudFront: SimCloudFront): SimCloudFrontDistributionConfig;
@@ -1,39 +1,12 @@
1
1
  import { normalizeSimCfList } from "../../command/create-distribution/sim-cf-normalize-list.js";
2
+ import { SimCfnCfDistroPolicyDrops } from "./sim-cfn-cf-distro-policy-drops.js";
2
3
  /**
3
4
  * The path a dropped policy on the default Behavior is recorded under.
4
5
  */
5
6
  const defaultBehaviorPath = "DistributionConfig.DefaultCacheBehavior";
6
7
  /**
7
- * Takes a `ResponseHeadersPolicyId` naming a policy this simulation does not
8
- * hold off the Behavior that named it, and records each one.
9
- */
10
- class SimCfnCfDistroPolicyDrops {
11
- resource;
12
- cloudFront;
13
- count = 0;
14
- constructor(resource, cloudFront) {
15
- this.resource = resource;
16
- this.cloudFront = cloudFront;
17
- }
18
- /**
19
- * One Behavior, keeping a policy that is here and dropping one that is not.
20
- */
21
- heldPolicy(behavior, behaviorPath) {
22
- const policyId = behavior.ResponseHeadersPolicyId;
23
- if (policyId === undefined ||
24
- this.cloudFront.getResponseHeadersPolicyById(policyId) !== undefined) {
25
- return behavior;
26
- }
27
- this.count += 1;
28
- this.resource.ignoreProperty(`${behaviorPath}.ResponseHeadersPolicyId`, `response headers policy ${policyId} is not held by this simulation, ` +
29
- `so the Behavior is deployed without one and serves every response ` +
30
- `without the headers that policy would have set`);
31
- return { ...behavior, ResponseHeadersPolicyId: undefined };
32
- }
33
- }
34
- /**
35
- * The DistributionConfig to deploy, without a `ResponseHeadersPolicyId` naming
36
- * a response headers policy this simulation does not hold.
8
+ * The DistributionConfig to deploy, without a policy ID naming a response
9
+ * headers policy or a cache policy this simulation does not hold.
37
10
  *
38
11
  * `CreateDistribution` refuses such an ID, as real CloudFront refuses one, and
39
12
  * a Distribution deployed from a template is the one place that refusal costs
@@ -44,13 +17,14 @@ class SimCfnCfDistroPolicyDrops {
44
17
  * make with it. That is the same reason an absent `WebACLId` is left out here.
45
18
  *
46
19
  * So the property is left off that Behavior and recorded on
47
- * `stack.ignoredProperties`. The Behavior deploys and serves every response
48
- * without the policy's headers. A test that cares reads the record.
20
+ * `stack.ignoredProperties`. The Behavior deploys, and a test that cares reads
21
+ * the record. CloudFront's managed policies count as held, so a Behavior
22
+ * naming one keeps it.
49
23
  *
50
- * One Behavior losing its policy leaves the others holding theirs. CloudFront's
51
- * managed policies count as held, so a Behavior naming one keeps it.
24
+ * One Behavior losing a policy leaves the others holding theirs, and a
25
+ * Behavior losing one kind of policy keeps the other.
52
26
  */
53
- export function simCfnCfDistroWithHeldResponseHeadersPolicies(resource, distributionConfig, cloudFront) {
27
+ export function simCfnCfDistroWithHeldBehaviorPolicies(resource, distributionConfig, cloudFront) {
54
28
  const drops = new SimCfnCfDistroPolicyDrops(resource, cloudFront);
55
29
  const defaultCacheBehavior = distroDefaultBehavior(drops, distributionConfig);
56
30
  const cacheBehaviors = distroCacheBehaviors(drops, distributionConfig);
@@ -71,7 +45,7 @@ function distroDefaultBehavior(drops, distributionConfig) {
71
45
  if (behavior === undefined) {
72
46
  return undefined;
73
47
  }
74
- return drops.heldPolicy(behavior, defaultBehaviorPath);
48
+ return drops.heldPolicies(behavior, defaultBehaviorPath);
75
49
  }
76
50
  /**
77
51
  * Every path-based cache Behavior, each without a policy that is not here.
@@ -88,6 +62,6 @@ function distroCacheBehaviors(drops, distributionConfig) {
88
62
  }
89
63
  return {
90
64
  ...behaviors,
91
- Items: items.map((behavior, index) => drops.heldPolicy(behavior, `DistributionConfig.CacheBehaviors.${behavior.PathPattern ?? String(index)}`)),
65
+ Items: items.map((behavior, index) => drops.heldPolicies(behavior, `DistributionConfig.CacheBehaviors.${behavior.PathPattern ?? String(index)}`)),
92
66
  };
93
67
  }
@@ -10,11 +10,12 @@ interface SimCfnCfDistroCreatorProperties {
10
10
  *
11
11
  * A `WebACLId` naming a web ACL this simulation does not hold is left out and
12
12
  * recorded, and so are a Lambda@Edge association it cannot run and a
13
- * `ResponseHeadersPolicyId` naming a policy it does not hold. CloudFront has no
14
- * Resource of its own for any of the three, so all of them live on the
15
- * Distribution itself, and refusing one would take the Distribution down over
16
- * something that was never the point of the template. The site a local dev
17
- * server and a suite of tests make requests to has to survive that.
13
+ * `ResponseHeadersPolicyId` or `CachePolicyId` naming a policy it does not
14
+ * hold. CloudFront has no Resource of its own for any of them, so all of them
15
+ * live on the Distribution itself, and refusing one would take the
16
+ * Distribution down over something that was never the point of the template.
17
+ * The site a local dev server and a suite of tests make requests to has to
18
+ * survive that.
18
19
  */
19
20
  export declare class SimCfnCfDistroCreator {
20
21
  private readonly cloudFront;