@kensio/yulin 1.20.16 → 1.21.0

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 (437) hide show
  1. package/dist/service/athena/engine/sim-athena-comparison-shims.d.ts +13 -0
  2. package/dist/service/athena/engine/sim-athena-comparison-shims.js +68 -0
  3. package/dist/service/athena/engine/sim-athena-shims.js +2 -0
  4. package/dist/service/aws/caller/sim-aws-ambient-caller.d.ts +23 -0
  5. package/dist/service/aws/caller/sim-aws-ambient-caller.js +12 -0
  6. package/dist/service/aws/caller/sim-aws-caller-resolver.d.ts +17 -6
  7. package/dist/service/aws/caller/sim-aws-caller-resolver.js +21 -26
  8. package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts +6 -0
  9. package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +3 -0
  10. package/dist/service/aws/factory/sim-aws-account-service-cache.d.ts +6 -0
  11. package/dist/service/aws/factory/sim-aws-account-service-cache.js +5 -1
  12. package/dist/service/aws/factory/sim-aws-registered-service-builder.js +3 -1
  13. package/dist/service/aws/factory/sim-aws-service-factory.js +9 -1
  14. package/dist/service/cloudformation/command/create-stack/create-stack.handler.d.ts +4 -0
  15. package/dist/service/cloudformation/command/create-stack/create-stack.handler.js +4 -1
  16. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js +2 -1
  17. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.d.ts +11 -2
  18. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.js +2 -1
  19. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts +6 -0
  20. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts +11 -0
  21. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js +17 -15
  22. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.d.ts +12 -0
  23. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.js +2 -1
  24. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cache-policy-cfn.d.ts +23 -0
  25. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cache-policy-cfn.js +30 -0
  26. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-cfn-value-adapter.js +16 -0
  27. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-orp-cfn.d.ts +24 -0
  28. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cloudfront-orp-cfn.js +31 -0
  29. package/dist/service/cloudformation/resource/name/sim-cfn-generated-resource-name.d.ts +29 -12
  30. package/dist/service/cloudformation/resource/name/sim-cfn-generated-resource-name.js +51 -20
  31. package/dist/service/cloudformation/stack/deploy/sim-cfn-resource-order.d.ts +19 -0
  32. package/dist/service/cloudformation/stack/deploy/sim-cfn-resource-order.js +6 -0
  33. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.d.ts +7 -0
  34. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-batch-creator.js +9 -2
  35. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-creator.d.ts +2 -0
  36. package/dist/service/cloudformation/stack/deploy/sim-cfn-stack-resource-creator.js +2 -1
  37. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +6 -0
  38. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +4 -1
  39. package/dist/service/cloudformation/stack/sim-cfn-stack.js +2 -1
  40. package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +6 -0
  41. package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts +16 -0
  42. package/dist/service/cloudfront/cache/sim-cf-accept-encoding.d.ts +11 -0
  43. package/dist/service/cloudfront/cache/sim-cf-accept-encoding.js +27 -0
  44. package/dist/service/cloudfront/cache/sim-cf-cache-control.d.ts +28 -0
  45. package/dist/service/cloudfront/cache/sim-cf-cache-control.js +49 -0
  46. package/dist/service/cloudfront/cache/sim-cf-cache-entry-key-path.d.ts +11 -0
  47. package/dist/service/cloudfront/cache/sim-cf-cache-entry-key-path.js +22 -0
  48. package/dist/service/cloudfront/cache/sim-cf-cache-entry-key.d.ts +32 -0
  49. package/dist/service/cloudfront/cache/sim-cf-cache-entry-key.js +112 -0
  50. package/dist/service/cloudfront/cache/sim-cf-cache-status.d.ts +27 -0
  51. package/dist/service/cloudfront/cache/sim-cf-cache-status.js +53 -0
  52. package/dist/service/cloudfront/cache/sim-cf-cache-ttl.d.ts +28 -0
  53. package/dist/service/cloudfront/cache/sim-cf-cache-ttl.js +50 -0
  54. package/dist/service/cloudfront/cache/sim-cf-cacheable-request.d.ts +35 -0
  55. package/dist/service/cloudfront/cache/sim-cf-cacheable-request.js +32 -0
  56. package/dist/service/cloudfront/cache/sim-cf-distribution-cache.d.ts +57 -0
  57. package/dist/service/cloudfront/cache/sim-cf-distribution-cache.js +115 -0
  58. package/dist/service/cloudfront/cache/sim-cf-edge.d.ts +37 -0
  59. package/dist/service/cloudfront/cache/sim-cf-edge.js +34 -0
  60. package/dist/service/cloudfront/cache/sim-cf-error-cache-ttl.d.ts +36 -0
  61. package/dist/service/cloudfront/cache/sim-cf-error-cache-ttl.js +28 -0
  62. package/dist/service/cloudfront/cache/sim-cf-http-date.d.ts +15 -0
  63. package/dist/service/cloudfront/cache/sim-cf-http-date.js +40 -0
  64. package/dist/service/cloudfront/cache-policy/sim-cf-cache-key.d.ts +63 -0
  65. package/dist/service/cloudfront/cache-policy/sim-cf-cache-key.js +70 -0
  66. package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy-registry.d.ts +37 -0
  67. package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy-registry.js +50 -0
  68. package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy.d.ts +35 -0
  69. package/dist/service/cloudfront/cache-policy/sim-cf-cache-policy.js +49 -0
  70. package/dist/service/cloudfront/cache-policy/sim-cf-managed-cache-policies.d.ts +33 -0
  71. package/dist/service/cloudfront/cache-policy/sim-cf-managed-cache-policies.js +132 -0
  72. package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.d.ts +8 -0
  73. package/dist/service/cloudfront/cff/function-code-input/cff-function-code-input.js +13 -0
  74. package/dist/service/cloudfront/cff/sim-cf-function-commands.d.ts +52 -0
  75. package/dist/service/cloudfront/cff/sim-cf-function-commands.js +51 -0
  76. package/dist/service/cloudfront/cff/sim-cff-configuration.d.ts +41 -0
  77. package/dist/service/cloudfront/cff/sim-cff-configuration.js +34 -0
  78. package/dist/service/cloudfront/cff/sim-cff-search-distribution.fixture.js +4 -0
  79. package/dist/service/cloudfront/cff/sim-cff-stage.d.ts +23 -0
  80. package/dist/service/cloudfront/cff/sim-cff-stage.js +30 -0
  81. package/dist/service/cloudfront/cff/sim-cloudfront-function.d.ts +6 -1
  82. package/dist/service/cloudfront/cff/sim-cloudfront-function.js +6 -0
  83. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-config.d.ts +28 -0
  84. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-config.js +71 -0
  85. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-creator.d.ts +24 -0
  86. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-creator.js +32 -0
  87. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-key.d.ts +10 -0
  88. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-key.js +50 -0
  89. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-section.d.ts +28 -0
  90. package/dist/service/cloudfront/cfn/cache-policy/sim-cfn-cf-cache-policy-section.js +29 -0
  91. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-behavior-policy-kinds.d.ts +16 -0
  92. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-behavior-policy-kinds.js +23 -0
  93. package/dist/service/cloudfront/cfn/distro/{sim-cfn-cf-distro-response-headers-policy.d.ts → sim-cfn-cf-distro-behavior-policies.d.ts} +9 -7
  94. package/dist/service/cloudfront/cfn/distro/{sim-cfn-cf-distro-response-headers-policy.js → sim-cfn-cf-distro-behavior-policies.js} +12 -37
  95. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.d.ts +6 -5
  96. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js +8 -7
  97. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-policy-drops.d.ts +23 -0
  98. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-policy-drops.js +35 -0
  99. package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-config.d.ts +28 -0
  100. package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-config.js +46 -0
  101. package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-creator.d.ts +24 -0
  102. package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-creator.js +32 -0
  103. package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-forwarding.d.ts +10 -0
  104. package/dist/service/cloudfront/cfn/origin-request-policy/sim-cfn-cf-orp-forwarding.js +51 -0
  105. package/dist/service/cloudfront/cfn/policy/sim-cfn-cf-policy-section.d.ts +22 -0
  106. package/dist/service/cloudfront/cfn/policy/sim-cfn-cf-policy-section.js +54 -0
  107. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.d.ts +2 -0
  108. package/dist/service/cloudfront/cfn/sim-cfn-cloudfront-resource-factory.js +22 -0
  109. package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts +2 -0
  110. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts +4 -0
  111. package/dist/service/cloudfront/command/create-function/create-function.handler.js +7 -1
  112. package/dist/service/cloudfront/command/function/sim-cf-describe-function.d.ts +22 -0
  113. package/dist/service/cloudfront/command/function/sim-cf-describe-function.js +32 -0
  114. package/dist/service/cloudfront/command/function/sim-cf-function-access.d.ts +48 -0
  115. package/dist/service/cloudfront/command/function/sim-cf-function-access.js +48 -0
  116. package/dist/service/cloudfront/command/function/sim-cf-function-command.types.d.ts +97 -0
  117. package/dist/service/cloudfront/command/function/sim-cf-function-command.types.js +10 -0
  118. package/dist/service/cloudfront/command/function/sim-cf-function-lookup.d.ts +12 -0
  119. package/dist/service/cloudfront/command/function/sim-cf-function-lookup.js +21 -0
  120. package/dist/service/cloudfront/command/function/sim-cf-function-summary.d.ts +11 -0
  121. package/dist/service/cloudfront/command/function/sim-cf-function-summary.js +30 -0
  122. package/dist/service/cloudfront/command/function/sim-cf-get-function.d.ts +23 -0
  123. package/dist/service/cloudfront/command/function/sim-cf-get-function.js +33 -0
  124. package/dist/service/cloudfront/command/function/sim-cf-list-functions.d.ts +22 -0
  125. package/dist/service/cloudfront/command/function/sim-cf-list-functions.js +38 -0
  126. package/dist/service/cloudfront/command/invalidation/sim-cf-create-invalidation.d.ts +28 -0
  127. package/dist/service/cloudfront/command/invalidation/sim-cf-create-invalidation.js +59 -0
  128. package/dist/service/cloudfront/command/invalidation/sim-cf-get-invalidation.d.ts +19 -0
  129. package/dist/service/cloudfront/command/invalidation/sim-cf-get-invalidation.js +32 -0
  130. package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-access.d.ts +36 -0
  131. package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-access.js +45 -0
  132. package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-command.types.d.ts +80 -0
  133. package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-command.types.js +1 -0
  134. package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-commands.d.ts +39 -0
  135. package/dist/service/cloudfront/command/invalidation/sim-cf-invalidation-commands.js +35 -0
  136. package/dist/service/cloudfront/command/invalidation/sim-cf-list-invalidations.d.ts +23 -0
  137. package/dist/service/cloudfront/command/invalidation/sim-cf-list-invalidations.js +39 -0
  138. package/dist/service/cloudfront/command/update-distribution/update-distribution.handler.d.ts +4 -0
  139. package/dist/service/cloudfront/controller/content/sim-cf-content-stage.d.ts +51 -0
  140. package/dist/service/cloudfront/controller/content/sim-cf-content-stage.js +65 -0
  141. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.d.ts +2 -3
  142. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.js +4 -4
  143. package/dist/service/cloudfront/controller/error/sim-cf-custom-error-responder.d.ts +4 -0
  144. package/dist/service/cloudfront/controller/error/sim-cf-custom-error-responder.js +12 -8
  145. package/dist/service/cloudfront/controller/origin/sim-cf-origin-stage.d.ts +2 -2
  146. package/dist/service/cloudfront/controller/origin/sim-cf-origin-stage.js +2 -2
  147. package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.d.ts +6 -6
  148. package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.js +35 -20
  149. package/dist/service/cloudfront/custom-error/sim-cloudfront-custom-error-response.d.ts +23 -5
  150. package/dist/service/cloudfront/custom-error/sim-cloudfront-custom-error-response.js +8 -0
  151. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-cache-policy.d.ts +18 -0
  152. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-cache-policy.js +30 -0
  153. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-origin-request-policy.d.ts +18 -0
  154. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-origin-request-policy.js +30 -0
  155. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-policies.d.ts +30 -0
  156. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-policies.js +44 -0
  157. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.d.ts +2 -2
  158. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-properties.js +9 -3
  159. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.d.ts +0 -10
  160. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.js +0 -19
  161. package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.d.ts +4 -0
  162. package/dist/service/cloudfront/distribution/configurator/sim-cf-distribution-configurator.factory.js +8 -2
  163. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.d.ts +3 -3
  164. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.js +5 -5
  165. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-custom-error-configurator.d.ts +13 -3
  166. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-custom-error-configurator.js +27 -6
  167. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.d.ts +3 -3
  168. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.js +4 -4
  169. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.d.ts +3 -1
  170. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-origin-configurator.js +4 -1
  171. package/dist/service/cloudfront/distribution/sim-cf-distribution-configuration-state.d.ts +7 -3
  172. package/dist/service/cloudfront/distribution/sim-cf-distribution-reconfigurer.d.ts +4 -0
  173. package/dist/service/cloudfront/distribution/sim-cf-distribution-view.js +1 -1
  174. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.d.ts +25 -2
  175. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.js +24 -0
  176. package/dist/service/cloudfront/error/sim-cf-invalidation.error.d.ts +22 -0
  177. package/dist/service/cloudfront/error/sim-cf-invalidation.error.js +26 -0
  178. package/dist/service/cloudfront/error/sim-cf-origin-request-policy.error.d.ts +22 -0
  179. package/dist/service/cloudfront/error/sim-cf-origin-request-policy.error.js +26 -0
  180. package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts +21 -0
  181. package/dist/service/cloudfront/error/sim-cloudfront.error.js +25 -0
  182. package/dist/service/cloudfront/index.d.ts +2 -0
  183. package/dist/service/cloudfront/index.js +1 -0
  184. package/dist/service/cloudfront/invalidation/sim-cf-invalidation-path.d.ts +22 -0
  185. package/dist/service/cloudfront/invalidation/sim-cf-invalidation-path.js +32 -0
  186. package/dist/service/cloudfront/invalidation/sim-cf-invalidation-view.d.ts +43 -0
  187. package/dist/service/cloudfront/invalidation/sim-cf-invalidation-view.js +33 -0
  188. package/dist/service/cloudfront/invalidation/sim-cf-invalidation.d.ts +55 -0
  189. package/dist/service/cloudfront/invalidation/sim-cf-invalidation.js +56 -0
  190. package/dist/service/cloudfront/invalidation/sim-cf-invalidations.d.ts +41 -0
  191. package/dist/service/cloudfront/invalidation/sim-cf-invalidations.js +58 -0
  192. package/dist/service/cloudfront/invalidation/sim-cf-repeated-invalidation.d.ts +15 -0
  193. package/dist/service/cloudfront/invalidation/sim-cf-repeated-invalidation.js +23 -0
  194. package/dist/service/cloudfront/key-value-store/sim-cf-key-value-store-access.js +2 -10
  195. package/dist/service/cloudfront/key-value-store/sim-cf-key-value-store.js +2 -1
  196. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-forwarding.d.ts +19 -0
  197. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-forwarding.js +116 -0
  198. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts +15 -5
  199. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js +13 -8
  200. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-signer.js +8 -5
  201. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.d.ts +13 -0
  202. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js +8 -0
  203. package/dist/service/cloudfront/origin-request-policy/sim-cf-behavior-forwarded.d.ts +24 -0
  204. package/dist/service/cloudfront/origin-request-policy/sim-cf-behavior-forwarded.js +21 -0
  205. package/dist/service/cloudfront/origin-request-policy/sim-cf-forwarded-to-origin.d.ts +57 -0
  206. package/dist/service/cloudfront/origin-request-policy/sim-cf-forwarded-to-origin.js +129 -0
  207. package/dist/service/cloudfront/origin-request-policy/sim-cf-managed-origin-request-policies.d.ts +30 -0
  208. package/dist/service/cloudfront/origin-request-policy/sim-cf-managed-origin-request-policies.js +121 -0
  209. package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-forwarding.d.ts +56 -0
  210. package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-forwarding.js +67 -0
  211. package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy-registry.d.ts +38 -0
  212. package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy-registry.js +51 -0
  213. package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy.d.ts +32 -0
  214. package/dist/service/cloudfront/origin-request-policy/sim-cf-origin-request-policy.js +30 -0
  215. package/dist/service/cloudfront/registry/sim-cloud-front-registry.d.ts +25 -0
  216. package/dist/service/cloudfront/registry/sim-cloud-front-registry.js +23 -0
  217. package/dist/service/cloudfront/sdk/sim-cloudfront-sdk-command-router.js +24 -0
  218. package/dist/service/cloudfront/sim-cf-authorize.d.ts +16 -0
  219. package/dist/service/cloudfront/sim-cf-authorize.js +19 -0
  220. package/dist/service/cloudfront/sim-cf-etag.d.ts +7 -0
  221. package/dist/service/cloudfront/sim-cf-etag.js +10 -0
  222. package/dist/service/cloudfront/sim-cloudfront-caching.d.ts +31 -0
  223. package/dist/service/cloudfront/sim-cloudfront-caching.js +38 -0
  224. package/dist/service/cloudfront/sim-cloudfront-commands.d.ts +20 -12
  225. package/dist/service/cloudfront/sim-cloudfront-commands.js +20 -17
  226. package/dist/service/cloudfront/sim-cloudfront-distributions.d.ts +21 -0
  227. package/dist/service/cloudfront/sim-cloudfront-distributions.js +23 -0
  228. package/dist/service/cloudfront/sim-cloudfront-origin-access-controls.d.ts +30 -0
  229. package/dist/service/cloudfront/sim-cloudfront-origin-access-controls.js +35 -0
  230. package/dist/service/cloudfront/sim-cloudfront-policies.d.ts +60 -0
  231. package/dist/service/cloudfront/sim-cloudfront-policies.js +75 -0
  232. package/dist/service/cloudfront/sim-cloudfront.d.ts +24 -44
  233. package/dist/service/cloudfront/sim-cloudfront.js +37 -58
  234. package/dist/service/ecr/authorize/sim-ecr-authorizer.d.ts +31 -0
  235. package/dist/service/ecr/authorize/sim-ecr-authorizer.js +38 -0
  236. package/dist/service/ecr/cfn/repository/sim-cfn-ecr-repository-creator.d.ts +11 -2
  237. package/dist/service/ecr/cfn/repository/sim-cfn-ecr-repository-creator.js +11 -2
  238. package/dist/service/ecr/cfn/sim-ecr-cfn-resource-factory.d.ts +4 -2
  239. package/dist/service/ecr/cfn/sim-ecr-cfn-resource-factory.js +8 -9
  240. package/dist/service/ecr/cfn/sim-ecr-cfn-unsupported-resource.d.ts +7 -0
  241. package/dist/service/ecr/cfn/sim-ecr-cfn-unsupported-resource.js +9 -0
  242. package/dist/service/ecr/sim-ecr.d.ts +7 -0
  243. package/dist/service/ecr/sim-ecr.js +16 -4
  244. package/dist/service/ecs/command/authorize/sim-ecs-authorizer.d.ts +12 -0
  245. package/dist/service/ecs/command/authorize/sim-ecs-authorizer.js +21 -0
  246. package/dist/service/ecs/command/register-task-definition/register-task-definition.handler.js +1 -0
  247. package/dist/service/ecs/sim-ecs-service-principal.d.ts +8 -0
  248. package/dist/service/ecs/sim-ecs-service-principal.js +8 -0
  249. package/dist/service/eventbridge/command/authorize/sim-event-bridge-authorizer.d.ts +12 -0
  250. package/dist/service/eventbridge/command/authorize/sim-event-bridge-authorizer.js +21 -0
  251. package/dist/service/eventbridge/command/rule/sim-event-bridge-rule-access.d.ts +13 -0
  252. package/dist/service/eventbridge/command/rule/sim-event-bridge-rule-access.js +9 -0
  253. package/dist/service/eventbridge/command/target/sim-event-bridge-put-targets.js +1 -0
  254. package/dist/service/firehose/command/authorize/sim-firehose-authorizer.d.ts +12 -0
  255. package/dist/service/firehose/command/authorize/sim-firehose-authorizer.js +20 -0
  256. package/dist/service/firehose/command/sim-firehose-delivery-stream-access.d.ts +4 -0
  257. package/dist/service/firehose/command/sim-firehose-delivery-stream-access.js +6 -0
  258. package/dist/service/firehose/command/stream/sim-firehose-create-delivery-stream.js +3 -1
  259. package/dist/service/firehose/sim-firehose-service-principal.d.ts +8 -0
  260. package/dist/service/firehose/sim-firehose-service-principal.js +8 -0
  261. package/dist/service/firehose/source/sim-firehose-source.d.ts +5 -0
  262. package/dist/service/firehose/source/sim-firehose-source.js +5 -0
  263. package/dist/service/glue/cfn/database/sim-cfn-glue-database-properties.js +2 -2
  264. package/dist/service/glue/cfn/sim-cfn-glue-generated-name.d.ts +10 -0
  265. package/dist/service/glue/cfn/sim-cfn-glue-generated-name.js +25 -0
  266. package/dist/service/glue/cfn/table/sim-cfn-glue-table-properties.js +2 -3
  267. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.d.ts +34 -2
  268. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.js +34 -2
  269. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.d.ts +4 -3
  270. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.js +9 -3
  271. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.d.ts +14 -5
  272. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.js +16 -12
  273. package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.d.ts +9 -3
  274. package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.js +5 -3
  275. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts +9 -71
  276. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js +2 -1
  277. package/dist/service/iam/authorize/context/sim-iam-auth-z-input.d.ts +89 -0
  278. package/dist/service/iam/authorize/context/sim-iam-auth-z-input.js +1 -0
  279. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.d.ts +11 -3
  280. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.js +20 -8
  281. package/dist/service/iam/authorize/match/sim-iam-principal-match.d.ts +29 -8
  282. package/dist/service/iam/authorize/match/sim-iam-principal-match.js +38 -13
  283. package/dist/service/iam/authorize/pass-role/sim-iam-pass-role-authorizer.d.ts +74 -0
  284. package/dist/service/iam/authorize/pass-role/sim-iam-pass-role-authorizer.js +92 -0
  285. package/dist/service/iam/authorize/sim-iam-account-auth-z.d.ts +14 -5
  286. package/dist/service/iam/authorize/sim-iam-account-auth-z.js +6 -4
  287. package/dist/service/iam/authorize/sim-iam-authorizer.d.ts +3 -1
  288. package/dist/service/iam/authorize/sim-iam-authorizer.js +2 -1
  289. package/dist/service/iam/authorize/sim-iam-inter-service-auth-z.d.ts +1 -1
  290. package/dist/service/iam/authorize/sim-iam-wildcard.js +39 -4
  291. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.js +2 -1
  292. package/dist/service/iam/cfn/name/sim-cfn-iam-generated-name.d.ts +16 -0
  293. package/dist/service/iam/cfn/name/sim-cfn-iam-generated-name.js +36 -0
  294. package/dist/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.js +9 -8
  295. package/dist/service/iam/cfn/sim-cfn-iam-optional-string.d.ts +17 -0
  296. package/dist/service/iam/cfn/sim-cfn-iam-optional-string.js +17 -0
  297. package/dist/service/iam/cfn/user/sim-cfn-iam-user-properties-parser.js +4 -8
  298. package/dist/service/iam/command/policy/create-policy/create-policy-input-resolver.js +2 -0
  299. package/dist/service/iam/command/policy/put-role-policy/put-role-policy.handler.js +5 -0
  300. package/dist/service/iam/command/policy/put-user-policy/put-user-policy.handler.js +5 -0
  301. package/dist/service/iam/command/role/create-role/create-role.handler.js +4 -1
  302. package/dist/service/iam/error/sim-iam.error.d.ts +11 -0
  303. package/dist/service/iam/error/sim-iam.error.js +13 -0
  304. package/dist/service/iam/index.d.ts +1 -0
  305. package/dist/service/iam/policy/sim-iam-policy-document-of-size.d.ts +18 -0
  306. package/dist/service/iam/policy/sim-iam-policy-document-of-size.js +41 -0
  307. package/dist/service/iam/role/sim-iam-deploy-role.d.ts +56 -0
  308. package/dist/service/iam/role/sim-iam-deploy-role.js +50 -0
  309. package/dist/service/iam/role/sim-iam-role-with-policy.factory.d.ts +3 -1
  310. package/dist/service/iam/sim-iam-account-parts.d.ts +8 -0
  311. package/dist/service/iam/sim-iam-account-parts.js +1 -0
  312. package/dist/service/iam/sim-iam.d.ts +12 -2
  313. package/dist/service/iam/sim-iam.js +12 -0
  314. package/dist/service/iam/validate/size/sim-iam-policy-document-size.d.ts +57 -0
  315. package/dist/service/iam/validate/size/sim-iam-policy-document-size.js +71 -0
  316. package/dist/service/kms/command/authorize/sim-kms-authorizer.d.ts +3 -1
  317. package/dist/service/kms/command/authorize/sim-kms-authorizer.js +4 -1
  318. package/dist/service/kms/command/sim-kms-request-options.d.ts +15 -0
  319. package/dist/service/kms/key/sim-kms-key-policy.d.ts +5 -4
  320. package/dist/service/kms/key/sim-kms-key-policy.js +4 -3
  321. package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-properties-parser.d.ts +2 -2
  322. package/dist/service/lambda/cfn/function/sim-cfn-lambda-function-properties-parser.js +4 -3
  323. package/dist/service/lambda/cfn/function/sim-cfn-lambda-generated-function-name.d.ts +10 -0
  324. package/dist/service/lambda/cfn/function/sim-cfn-lambda-generated-function-name.js +25 -0
  325. package/dist/service/lambda/command/authorize/sim-lambda-resource-policies.d.ts +1 -1
  326. package/dist/service/lambda/command/create-function/create-function-authorizer.d.ts +9 -2
  327. package/dist/service/lambda/command/create-function/create-function-authorizer.js +16 -2
  328. package/dist/service/lambda/command/create-function/create-function.handler.js +1 -1
  329. package/dist/service/lambda/command/update-function-configuration/update-function-configuration-authorizer.d.ts +7 -2
  330. package/dist/service/lambda/command/update-function-configuration/update-function-configuration-authorizer.js +14 -2
  331. package/dist/service/lambda/command/update-function-configuration/update-function-configuration.handler.js +1 -1
  332. package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts +10 -1
  333. package/dist/service/lambda/function/logging/sim-lambda-function-logging.js +25 -1
  334. package/dist/service/lambda/function/logging/sim-lambda-invoke-error-log.d.ts +13 -0
  335. package/dist/service/lambda/function/logging/sim-lambda-invoke-error-log.js +18 -0
  336. package/dist/service/lambda/sim-lambda-service-principal.d.ts +7 -0
  337. package/dist/service/lambda/sim-lambda-service-principal.js +7 -0
  338. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-authorization.d.ts +46 -0
  339. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-authorization.js +49 -0
  340. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.d.ts +5 -0
  341. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.js +6 -0
  342. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.d.ts +5 -0
  343. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.js +6 -0
  344. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.d.ts +5 -0
  345. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.js +6 -0
  346. package/dist/service/logs/cfn/group/sim-cfn-log-group-creator.d.ts +9 -2
  347. package/dist/service/logs/cfn/group/sim-cfn-log-group-creator.js +34 -5
  348. package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.js +1 -1
  349. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.d.ts +4 -0
  350. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.js +9 -4
  351. package/dist/service/logs/command/delivery/sim-logs-delivery-source-commands.d.ts +6 -4
  352. package/dist/service/logs/command/delivery/sim-logs-delivery-source-commands.js +13 -4
  353. package/dist/service/logs/delivery/cloudfront/sim-logs-vended-log-delivery.d.ts +23 -0
  354. package/dist/service/logs/delivery/cloudfront/sim-logs-vended-log-delivery.js +28 -0
  355. package/dist/service/logs/sim-logs-commands.d.ts +3 -0
  356. package/dist/service/logs/sim-logs-commands.js +4 -0
  357. package/dist/service/logs/sim-logs.js +6 -1
  358. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.d.ts +2 -2
  359. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.js +4 -3
  360. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-generated-name.d.ts +12 -0
  361. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-generated-name.js +22 -0
  362. package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.d.ts +1 -1
  363. package/dist/service/scheduler/command/authorize/sim-scheduler-authorizer.d.ts +10 -1
  364. package/dist/service/scheduler/command/authorize/sim-scheduler-authorizer.js +19 -1
  365. package/dist/service/scheduler/command/schedule/sim-scheduler-create-schedule.js +1 -0
  366. package/dist/service/scheduler/command/schedule/sim-scheduler-schedule-access.d.ts +8 -0
  367. package/dist/service/scheduler/command/schedule/sim-scheduler-schedule-access.js +9 -0
  368. package/dist/service/scheduler/command/schedule/sim-scheduler-update-schedule.js +1 -0
  369. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-generated-name.d.ts +15 -0
  370. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-generated-name.js +22 -0
  371. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-properties.d.ts +4 -10
  372. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-properties.js +13 -31
  373. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-value.d.ts +17 -0
  374. package/dist/service/secretsmanager/cfn/secret/sim-cfn-secrets-manager-secret-value.js +30 -0
  375. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-name.d.ts +6 -0
  376. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-name.js +8 -3
  377. package/dist/service/sns/command/authorize/sim-sns-topic-resource-policies.d.ts +1 -1
  378. package/dist/service/sqs/command/authorize/sim-sqs-queue-resource-policies.d.ts +1 -1
  379. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-generated-parameter-name.d.ts +16 -0
  380. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-generated-parameter-name.js +23 -0
  381. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-properties.d.ts +2 -4
  382. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-properties.js +5 -5
  383. package/dist/service/ssm/parameter/sim-ssm-kms-crypto.d.ts +11 -12
  384. package/dist/service/ssm/parameter/sim-ssm-kms-crypto.js +4 -4
  385. package/dist/service/ssm/parameter/sim-ssm-parameter-arn.d.ts +17 -0
  386. package/dist/service/ssm/parameter/sim-ssm-parameter-arn.js +20 -0
  387. package/dist/service/ssm/parameter/sim-ssm-parameter-kms.d.ts +13 -8
  388. package/dist/service/ssm/parameter/sim-ssm-parameter-kms.js +13 -8
  389. package/dist/service/ssm/parameter/sim-ssm-parameter-name.js +3 -12
  390. package/dist/service/stepfunctions/command/authorize/sim-step-functions-authorizer.d.ts +41 -0
  391. package/dist/service/stepfunctions/command/authorize/sim-step-functions-authorizer.js +64 -0
  392. package/dist/service/stepfunctions/command/machine/sim-state-machine-create.d.ts +5 -2
  393. package/dist/service/stepfunctions/command/machine/sim-state-machine-create.js +6 -2
  394. package/dist/service/stepfunctions/command/machine/sim-state-machine-delete.d.ts +26 -0
  395. package/dist/service/stepfunctions/command/machine/sim-state-machine-delete.js +29 -0
  396. package/dist/service/stepfunctions/command/machine/sim-state-machine-lookup.d.ts +7 -0
  397. package/dist/service/stepfunctions/command/machine/sim-state-machine-lookup.js +12 -3
  398. package/dist/service/stepfunctions/command/machine/sim-state-machine-update.d.ts +19 -0
  399. package/dist/service/stepfunctions/command/machine/{sim-state-machine-writes.js → sim-state-machine-update.js} +3 -14
  400. package/dist/service/stepfunctions/sim-step-functions.d.ts +8 -2
  401. package/dist/service/stepfunctions/sim-step-functions.js +26 -9
  402. package/dist/service/sts/command/assume-role/assume-role.handler.d.ts +5 -0
  403. package/dist/service/sts/command/assume-role/assume-role.handler.js +1 -0
  404. package/dist/service/sts/command/get-caller-identity/get-caller-identity.handler.d.ts +5 -0
  405. package/dist/service/sts/command/get-caller-identity/get-caller-identity.handler.js +1 -0
  406. package/dist/service/sts/sim-sts.d.ts +9 -0
  407. package/dist/service/sts/sim-sts.js +4 -0
  408. package/dist/util/memo/bounded-memo.d.ts +36 -0
  409. package/dist/util/memo/bounded-memo.js +58 -0
  410. package/docs/sdk/README.md +3 -1
  411. package/docs/services/athena/README.md +7 -1
  412. package/docs/services/cloudformation/README.md +197 -11
  413. package/docs/services/cloudfront/README.md +1116 -14
  414. package/docs/services/cloudwatch/README.md +6 -4
  415. package/docs/services/cognito/README.md +8 -7
  416. package/docs/services/dynamodb/README.md +6 -5
  417. package/docs/services/ecs/README.md +23 -9
  418. package/docs/services/elbv2/README.md +6 -2
  419. package/docs/services/eventbridge/README.md +9 -1
  420. package/docs/services/firehose/README.md +9 -3
  421. package/docs/services/glue/README.md +6 -0
  422. package/docs/services/iam/README.md +322 -27
  423. package/docs/services/kinesis/README.md +3 -2
  424. package/docs/services/kms/README.md +11 -2
  425. package/docs/services/lambda/README.md +76 -2
  426. package/docs/services/logs/README.md +22 -2
  427. package/docs/services/s3/README.md +7 -2
  428. package/docs/services/scheduler/README.md +12 -4
  429. package/docs/services/secretsmanager/README.md +6 -3
  430. package/docs/services/ses/README.md +3 -1
  431. package/docs/services/sns/README.md +5 -5
  432. package/docs/services/sqs/README.md +5 -5
  433. package/docs/services/ssm/README.md +35 -18
  434. package/docs/services/stepfunctions/README.md +11 -2
  435. package/docs/services/wafv2/README.md +5 -3
  436. package/package.json +1 -1
  437. package/dist/service/stepfunctions/command/machine/sim-state-machine-writes.d.ts +0 -25
@@ -6,11 +6,11 @@ import type { SimCreateDistributionCommand, SimCreateDistributionCommandOutput }
6
6
  import type { SimCreateFunctionCommand, SimCreateFunctionCommandOutput } from "./command/create-function/create-function.command.js";
7
7
  import type { SimDeleteDistributionCommand, SimDeleteDistributionCommandOutput } from "./command/delete-distribution/delete-distribution.command.js";
8
8
  import type { SimDeleteFunctionCommand, SimDeleteFunctionCommandOutput } from "./command/delete-function/delete-function.command.js";
9
+ import type { SimDescribeFunctionCommand, SimDescribeFunctionCommandOutput, SimGetFunctionCommand, SimGetFunctionCommandOutput, SimListFunctionsCommand, SimListFunctionsCommandOutput } from "./command/function/sim-cf-function-command.types.js";
9
10
  import type { SimGetDistributionCommand, SimGetDistributionCommandOutput } from "./command/get-distribution/get-distribution.command.js";
11
+ import type { SimCreateInvalidationCommand, SimCreateInvalidationCommandOutput, SimGetInvalidationCommand, SimGetInvalidationCommandOutput, SimListInvalidationsCommand, SimListInvalidationsCommandOutput } from "./command/invalidation/sim-cf-invalidation-command.types.js";
10
12
  import type { SimUpdateDistributionCommand, SimUpdateDistributionCommandOutput } from "./command/update-distribution/update-distribution.command.js";
11
- import type { SimCloudFrontDistribution, SimCloudFrontDistributionId } from "./distribution/sim-cloudfront-distribution.js";
12
- import type { SimCloudFrontResponseHeadersPolicy, SimCloudFrontResponseHeadersPolicyId } from "./response-headers-policy/sim-cf-response-headers-policy.js";
13
- import type { SimCloudFrontOriginAccessControl, SimCloudFrontOriginAccessControlId } from "./origin-access-control/sim-cf-origin-access-control.js";
13
+ import { SimCloudFrontDistributions } from "./sim-cloudfront-distributions.js";
14
14
  import type { SimCfKeyValueStoreCommands } from "./key-value-store/sim-cf-key-value-store-commands.js";
15
15
  import type { SimCloudFrontKeyValueStoreApi } from "./sim-cloudfront-key-value-store.js";
16
16
  import { type SimCloudFrontProperties, type SimCloudFrontRequestOptions } from "./sim-cloudfront-commands.js";
@@ -18,11 +18,8 @@ export type { SimCloudFrontProperties, SimCloudFrontRequestOptions, } from "./si
18
18
  /**
19
19
  * Simulated CloudFront. Handles SDK commands. Emulates AWS behaviour and state.
20
20
  */
21
- export declare class SimCloudFront {
22
- private readonly distributions;
21
+ export declare class SimCloudFront extends SimCloudFrontDistributions {
23
22
  private readonly cloudFrontFunctions;
24
- private readonly responseHeadersPolicies;
25
- private readonly originAccessControls;
26
23
  private readonly accountRegionScope;
27
24
  private readonly commands;
28
25
  private readonly cfnFactory;
@@ -39,14 +36,6 @@ export declare class SimCloudFront {
39
36
  * client talks to, reached from SimAws as `cloudFrontKeyValueStore()`.
40
37
  */
41
38
  keyValueStoreApi(): SimCloudFrontKeyValueStoreApi;
42
- /**
43
- * Get the simulated Distributions owned by this sim CloudFront service.
44
- */
45
- getDistributions(): ReadonlyMap<SimCloudFrontDistributionId, SimCloudFrontDistribution>;
46
- /**
47
- * Get a simulated CloudFront Distribution by ID.
48
- */
49
- getSimDistributionById(distributionId: SimCloudFrontDistributionId | string): SimCloudFrontDistribution | undefined;
50
39
  /**
51
40
  * Handle a Create Distribution Command from the SDK.
52
41
  */
@@ -64,54 +53,45 @@ export declare class SimCloudFront {
64
53
  */
65
54
  deleteDistribution(command: SimDeleteDistributionCommand, options?: SimCloudFrontRequestOptions): Promise<SimDeleteDistributionCommandOutput>;
66
55
  /**
67
- * Handle a Create Function Command from the SDK.
56
+ * Handle a Create Invalidation Command from the SDK.
68
57
  */
69
- createFunction(command: SimCreateFunctionCommand, options?: SimCloudFrontRequestOptions): Promise<SimCreateFunctionCommandOutput>;
58
+ createInvalidation(command: SimCreateInvalidationCommand, options?: SimCloudFrontRequestOptions): Promise<SimCreateInvalidationCommandOutput>;
70
59
  /**
71
- * Handle a Delete Function Command from the SDK.
60
+ * Handle a Get Invalidation Command from the SDK.
72
61
  */
73
- deleteFunction(command: SimDeleteFunctionCommand, options?: SimCloudFrontRequestOptions): Promise<SimDeleteFunctionCommandOutput>;
62
+ getInvalidation(command: SimGetInvalidationCommand, options?: SimCloudFrontRequestOptions): Promise<SimGetInvalidationCommandOutput>;
74
63
  /**
75
- * Get a sim CloudFront Function by ARN.
64
+ * Handle a List Invalidations Command from the SDK.
76
65
  */
77
- getCloudFrontFunctionByArn(cloudFrontFunctionArn: SimArn): SimCloudFrontFunction | undefined;
66
+ listInvalidations(command: SimListInvalidationsCommand, options?: SimCloudFrontRequestOptions): Promise<SimListInvalidationsCommandOutput>;
78
67
  /**
79
- * Get a sim CloudFront Function by name.
68
+ * Handle a Create Function Command from the SDK.
80
69
  */
81
- getCloudFrontFunctionByName(cloudFrontFunctionName: SimCloudFrontFunctionName | string): SimCloudFrontFunction | undefined;
70
+ createFunction(command: SimCreateFunctionCommand, options?: SimCloudFrontRequestOptions): Promise<SimCreateFunctionCommandOutput>;
82
71
  /**
83
- * Store a simulated response headers policy.
84
- *
85
- * There is no CreateResponseHeadersPolicy command here, so CloudFormation is
86
- * the only thing that makes one, and this is how it hands the policy over.
87
- * A name another policy already holds is refused, as CloudFront refuses one.
72
+ * Handle a Delete Function Command from the SDK.
88
73
  */
89
- addResponseHeadersPolicy(policy: SimCloudFrontResponseHeadersPolicy): void;
74
+ deleteFunction(command: SimDeleteFunctionCommand, options?: SimCloudFrontRequestOptions): Promise<SimDeleteFunctionCommandOutput>;
90
75
  /**
91
- * Forget a simulated response headers policy.
76
+ * Handle a List Functions Command from the SDK.
92
77
  */
93
- removeResponseHeadersPolicy(policyId: SimCloudFrontResponseHeadersPolicyId): void;
78
+ listFunctions(command: SimListFunctionsCommand, options?: SimCloudFrontRequestOptions): Promise<SimListFunctionsCommandOutput>;
94
79
  /**
95
- * Get a simulated response headers policy by ID.
80
+ * Handle a Describe Function Command from the SDK.
96
81
  */
97
- getResponseHeadersPolicyById(policyId: SimCloudFrontResponseHeadersPolicyId | string): SimCloudFrontResponseHeadersPolicy | undefined;
82
+ describeFunction(command: SimDescribeFunctionCommand, options?: SimCloudFrontRequestOptions): Promise<SimDescribeFunctionCommandOutput>;
98
83
  /**
99
- * Store a simulated origin access control.
100
- *
101
- * There is no CreateOriginAccessControl command here, so CloudFormation is
102
- * the only thing that makes one, and this is how it hands it over. A name
103
- * another origin access control already holds is refused, as CloudFront
104
- * refuses one.
84
+ * Handle a Get Function Command from the SDK.
105
85
  */
106
- addOriginAccessControl(originAccessControl: SimCloudFrontOriginAccessControl): void;
86
+ getFunction(command: SimGetFunctionCommand, options?: SimCloudFrontRequestOptions): Promise<SimGetFunctionCommandOutput>;
107
87
  /**
108
- * Forget a simulated origin access control.
88
+ * Get a sim CloudFront Function by ARN.
109
89
  */
110
- removeOriginAccessControl(originAccessControlId: SimCloudFrontOriginAccessControlId): void;
90
+ getCloudFrontFunctionByArn(cloudFrontFunctionArn: SimArn): SimCloudFrontFunction | undefined;
111
91
  /**
112
- * Get a simulated origin access control by ID.
92
+ * Get a sim CloudFront Function by name.
113
93
  */
114
- getOriginAccessControlById(originAccessControlId: SimCloudFrontOriginAccessControlId | string): SimCloudFrontOriginAccessControl | undefined;
94
+ getCloudFrontFunctionByName(cloudFrontFunctionName: SimCloudFrontFunctionName | string): SimCloudFrontFunction | undefined;
115
95
  /**
116
96
  * Get this service's CloudFormation Resource factory.
117
97
  */
@@ -1,32 +1,32 @@
1
1
  import { simAwsAccountRegionScopeFactory } from "../aws/sim-aws-account-region-scope.factory.js";
2
2
  import { SimCloudFrontCloudFormationResourceFactory } from "./cfn/sim-cfn-cloudfront-resource-factory.js";
3
- import { SimCloudFrontResponseHeadersPolicyRegistry } from "./response-headers-policy/sim-cf-response-headers-policy-registry.js";
4
- import { SimCloudFrontOriginAccessControlRegistry } from "./origin-access-control/sim-cf-origin-access-control-registry.js";
3
+ import { SimCloudFrontDistributions } from "./sim-cloudfront-distributions.js";
5
4
  import { simCffNameInArn } from "./cff/sim-cff-arn.js";
6
5
  import { SimCloudFrontSdkCommandRouter } from "./sdk/sim-cloudfront-sdk-command-router.js";
7
6
  import { SimCloudFrontCommands, } from "./sim-cloudfront-commands.js";
8
7
  /**
9
8
  * Simulated CloudFront. Handles SDK commands. Emulates AWS behaviour and state.
10
9
  */
11
- export class SimCloudFront {
12
- distributions = new Map();
10
+ export class SimCloudFront extends SimCloudFrontDistributions {
13
11
  cloudFrontFunctions = new Map();
14
- responseHeadersPolicies = new SimCloudFrontResponseHeadersPolicyRegistry();
15
- originAccessControls = new SimCloudFrontOriginAccessControlRegistry();
16
12
  accountRegionScope;
17
13
  commands;
18
14
  cfnFactory = new SimCloudFrontCloudFormationResourceFactory(this);
19
15
  sdkRouter = new SimCloudFrontSdkCommandRouter(this);
20
16
  constructor(properties = {}) {
17
+ super(properties.cloudFrontRegistry);
21
18
  this.accountRegionScope =
22
19
  properties.accountRegionScope ?? simAwsAccountRegionScopeFactory.make();
23
20
  this.commands = new SimCloudFrontCommands({
24
21
  ...properties,
22
+ cloudFrontRegistry: this.cloudFrontRegistry,
25
23
  accountId: this.accountRegionScope.accountId,
26
24
  distributions: this.distributions,
27
25
  cloudFrontFunctions: this.cloudFrontFunctions,
28
26
  originAccessControls: this.originAccessControls,
29
27
  responseHeadersPolicies: this.responseHeadersPolicies,
28
+ cachePolicies: this.cachePolicies,
29
+ originRequestPolicies: this.originRequestPolicies,
30
30
  });
31
31
  }
32
32
  /**
@@ -44,18 +44,6 @@ export class SimCloudFront {
44
44
  keyValueStoreApi() {
45
45
  return this.commands.keyValueStoreApi;
46
46
  }
47
- /**
48
- * Get the simulated Distributions owned by this sim CloudFront service.
49
- */
50
- getDistributions() {
51
- return this.distributions;
52
- }
53
- /**
54
- * Get a simulated CloudFront Distribution by ID.
55
- */
56
- getSimDistributionById(distributionId) {
57
- return this.distributions.get(distributionId);
58
- }
59
47
  /**
60
48
  * Handle a Create Distribution Command from the SDK.
61
49
  */
@@ -81,74 +69,65 @@ export class SimCloudFront {
81
69
  return await this.commands.deleteDistribution(command, options);
82
70
  }
83
71
  /**
84
- * Handle a Create Function Command from the SDK.
72
+ * Handle a Create Invalidation Command from the SDK.
85
73
  */
86
- async createFunction(command, options) {
87
- return await this.commands.createFunction(command, options);
74
+ async createInvalidation(command, options) {
75
+ return await this.commands.invalidations.createInvalidation(command, options);
88
76
  }
89
77
  /**
90
- * Handle a Delete Function Command from the SDK.
78
+ * Handle a Get Invalidation Command from the SDK.
91
79
  */
92
- async deleteFunction(command, options) {
93
- return await this.commands.deleteFunction(command, options);
80
+ async getInvalidation(command, options) {
81
+ return await this.commands.invalidations.getInvalidation(command, options);
94
82
  }
95
83
  /**
96
- * Get a sim CloudFront Function by ARN.
84
+ * Handle a List Invalidations Command from the SDK.
97
85
  */
98
- getCloudFrontFunctionByArn(cloudFrontFunctionArn) {
99
- const name = simCffNameInArn(cloudFrontFunctionArn, this.accountRegionScope.accountId);
100
- return name === undefined ? undefined : this.cloudFrontFunctions.get(name);
86
+ async listInvalidations(command, options) {
87
+ return await this.commands.invalidations.listInvalidations(command, options);
101
88
  }
102
89
  /**
103
- * Get a sim CloudFront Function by name.
90
+ * Handle a Create Function Command from the SDK.
104
91
  */
105
- getCloudFrontFunctionByName(cloudFrontFunctionName) {
106
- return this.cloudFrontFunctions.get(cloudFrontFunctionName);
92
+ async createFunction(command, options) {
93
+ return await this.commands.functions.createFunction(command, options);
107
94
  }
108
95
  /**
109
- * Store a simulated response headers policy.
110
- *
111
- * There is no CreateResponseHeadersPolicy command here, so CloudFormation is
112
- * the only thing that makes one, and this is how it hands the policy over.
113
- * A name another policy already holds is refused, as CloudFront refuses one.
96
+ * Handle a Delete Function Command from the SDK.
114
97
  */
115
- addResponseHeadersPolicy(policy) {
116
- this.responseHeadersPolicies.add(policy);
98
+ async deleteFunction(command, options) {
99
+ return await this.commands.functions.deleteFunction(command, options);
117
100
  }
118
101
  /**
119
- * Forget a simulated response headers policy.
102
+ * Handle a List Functions Command from the SDK.
120
103
  */
121
- removeResponseHeadersPolicy(policyId) {
122
- this.responseHeadersPolicies.remove(policyId);
104
+ async listFunctions(command, options) {
105
+ return await this.commands.functions.listFunctions(command, options);
123
106
  }
124
107
  /**
125
- * Get a simulated response headers policy by ID.
108
+ * Handle a Describe Function Command from the SDK.
126
109
  */
127
- getResponseHeadersPolicyById(policyId) {
128
- return this.responseHeadersPolicies.byId(policyId);
110
+ async describeFunction(command, options) {
111
+ return await this.commands.functions.describeFunction(command, options);
129
112
  }
130
113
  /**
131
- * Store a simulated origin access control.
132
- *
133
- * There is no CreateOriginAccessControl command here, so CloudFormation is
134
- * the only thing that makes one, and this is how it hands it over. A name
135
- * another origin access control already holds is refused, as CloudFront
136
- * refuses one.
114
+ * Handle a Get Function Command from the SDK.
137
115
  */
138
- addOriginAccessControl(originAccessControl) {
139
- this.originAccessControls.add(originAccessControl);
116
+ async getFunction(command, options) {
117
+ return await this.commands.functions.getFunction(command, options);
140
118
  }
141
119
  /**
142
- * Forget a simulated origin access control.
120
+ * Get a sim CloudFront Function by ARN.
143
121
  */
144
- removeOriginAccessControl(originAccessControlId) {
145
- this.originAccessControls.remove(originAccessControlId);
122
+ getCloudFrontFunctionByArn(cloudFrontFunctionArn) {
123
+ const name = simCffNameInArn(cloudFrontFunctionArn, this.accountRegionScope.accountId);
124
+ return name === undefined ? undefined : this.cloudFrontFunctions.get(name);
146
125
  }
147
126
  /**
148
- * Get a simulated origin access control by ID.
127
+ * Get a sim CloudFront Function by name.
149
128
  */
150
- getOriginAccessControlById(originAccessControlId) {
151
- return this.originAccessControls.byId(originAccessControlId);
129
+ getCloudFrontFunctionByName(cloudFrontFunctionName) {
130
+ return this.cloudFrontFunctions.get(cloudFrontFunctionName);
152
131
  }
153
132
  /**
154
133
  * Get this service's CloudFormation Resource factory.
@@ -0,0 +1,31 @@
1
+ import type { SimAwsCaller } from "../../aws/caller/sim-aws-caller.js";
2
+ import type { SimAwsResolvedCaller } from "../../aws/caller/sim-aws-caller-resolver.js";
3
+ import type { SimIamInterServiceAuthZ } from "../../iam/authorize/sim-iam-inter-service-auth-z.js";
4
+ import type { SimEcrRepositoryAddress } from "../repository/sim-ecr-repository-address.js";
5
+ interface SimEcrAuthorizerProperties {
6
+ readonly iam: SimIamInterServiceAuthZ;
7
+ readonly address: SimEcrRepositoryAddress;
8
+ }
9
+ /**
10
+ * Applies simulated IAM authorization to ECR requests.
11
+ *
12
+ * Registering a simulated image is not one of them. That is a Yulin-native
13
+ * operation on the simulator's own accessor, and it is how a test says what an
14
+ * image is. A CloudFormation deployment is what authorizes here. It makes and
15
+ * removes a repository as the caller its Stack named.
16
+ */
17
+ export declare class SimEcrAuthorizer {
18
+ private readonly iam;
19
+ private readonly address;
20
+ constructor(properties: SimEcrAuthorizerProperties);
21
+ /**
22
+ * Ensure the caller may perform an action on a repository of this name.
23
+ *
24
+ * The repository need not be there. Real IAM evaluates a request before the
25
+ * service handles it, so a caller with no permission is refused whether or
26
+ * not the repository is there, and `CreateRepository` authorizes against the
27
+ * ARN the repository is about to have.
28
+ */
29
+ authorizeRepository(action: string, repositoryName: string, caller?: SimAwsCaller): SimAwsResolvedCaller;
30
+ }
31
+ export {};
@@ -0,0 +1,38 @@
1
+ import { SimIamAccessDenied } from "../../iam/error/sim-iam.error.js";
2
+ /**
3
+ * Applies simulated IAM authorization to ECR requests.
4
+ *
5
+ * Registering a simulated image is not one of them. That is a Yulin-native
6
+ * operation on the simulator's own accessor, and it is how a test says what an
7
+ * image is. A CloudFormation deployment is what authorizes here. It makes and
8
+ * removes a repository as the caller its Stack named.
9
+ */
10
+ export class SimEcrAuthorizer {
11
+ iam;
12
+ address;
13
+ constructor(properties) {
14
+ this.iam = properties.iam;
15
+ this.address = properties.address;
16
+ }
17
+ /**
18
+ * Ensure the caller may perform an action on a repository of this name.
19
+ *
20
+ * The repository need not be there. Real IAM evaluates a request before the
21
+ * service handles it, so a caller with no permission is refused whether or
22
+ * not the repository is there, and `CreateRepository` authorizes against the
23
+ * ARN the repository is about to have.
24
+ */
25
+ authorizeRepository(action, repositoryName, caller) {
26
+ const resource = this.address.arn(repositoryName);
27
+ const decision = this.iam.authorize({ action, resource, caller });
28
+ if (decision.isDenied) {
29
+ throw new SimIamAccessDenied({
30
+ principal: decision.caller.principal,
31
+ reason: decision.denialReason,
32
+ action,
33
+ resource,
34
+ });
35
+ }
36
+ return decision.caller;
37
+ }
38
+ }
@@ -1,9 +1,12 @@
1
+ import type { SimCfnResourceCallerOptions } from "../../../cloudformation/resource/caller/sim-cfn-resource-caller-options.js";
1
2
  import type { SimCfnResource } from "../../../cloudformation/resource/sim-cfn-resource.js";
2
3
  import type { SimCfnTemplateValueRecord } from "../../../cloudformation/template/value/sim-cfn-template-value.js";
4
+ import type { SimEcrAuthorizer } from "../../authorize/sim-ecr-authorizer.js";
3
5
  import type { SimEcrRepository } from "../../repository/sim-ecr-repository.js";
4
6
  import type { SimEcr } from "../../sim-ecr.js";
5
7
  interface SimCfnEcrRepositoryCreatorProperties {
6
8
  readonly ecr: SimEcr;
9
+ readonly authorizer: SimEcrAuthorizer;
7
10
  }
8
11
  /**
9
12
  * Creates simulated repositories from AWS::ECR::Repository Resources.
@@ -16,11 +19,17 @@ interface SimCfnEcrRepositoryCreatorProperties {
16
19
  */
17
20
  export declare class SimCfnEcrRepositoryCreator {
18
21
  private readonly ecr;
22
+ private readonly authorizer;
19
23
  constructor(properties: SimCfnEcrRepositoryCreatorProperties);
20
24
  /**
21
25
  * Create a repository from an AWS::ECR::Repository Resource.
26
+ *
27
+ * Naming the repository is what makes it. That is where the deployment's
28
+ * caller is authorized, as it is on a real deploy before ECR answers. A
29
+ * repository a test has already registered a handler in is adopted, and the
30
+ * caller is authorized for it either way.
22
31
  */
23
- create(resource: SimCfnResource, properties: SimCfnTemplateValueRecord): SimEcrRepository;
32
+ create(resource: SimCfnResource, properties: SimCfnTemplateValueRecord, options?: SimCfnResourceCallerOptions): SimEcrRepository;
24
33
  /**
25
34
  * Delete a repository created from an AWS::ECR::Repository Resource.
26
35
  *
@@ -37,6 +46,6 @@ export declare class SimCfnEcrRepositoryCreator {
37
46
  * being protected here is a test's own registration rather than anything
38
47
  * CloudFormation put there.
39
48
  */
40
- delete(resource: SimCfnResource, repository: SimEcrRepository): void;
49
+ delete(resource: SimCfnResource, repository: SimEcrRepository, options?: SimCfnResourceCallerOptions): void;
41
50
  }
42
51
  export {};
@@ -10,19 +10,27 @@ import { SimCfnEcrRepositoryProperties } from "./sim-cfn-ecr-repository-properti
10
10
  */
11
11
  export class SimCfnEcrRepositoryCreator {
12
12
  ecr;
13
+ authorizer;
13
14
  constructor(properties) {
14
15
  this.ecr = properties.ecr;
16
+ this.authorizer = properties.authorizer;
15
17
  }
16
18
  /**
17
19
  * Create a repository from an AWS::ECR::Repository Resource.
20
+ *
21
+ * Naming the repository is what makes it. That is where the deployment's
22
+ * caller is authorized, as it is on a real deploy before ECR answers. A
23
+ * repository a test has already registered a handler in is adopted, and the
24
+ * caller is authorized for it either way.
18
25
  */
19
- create(resource, properties) {
26
+ create(resource, properties, options) {
20
27
  const repositoryProperties = new SimCfnEcrRepositoryProperties({
21
28
  resource,
22
29
  properties,
23
30
  });
24
31
  const repositoryName = repositoryProperties.repositoryName();
25
32
  repositoryProperties.recordIgnoredProperties();
33
+ this.authorizer.authorizeRepository("ecr:CreateRepository", repositoryName, options?.caller);
26
34
  return this.ecr.repository(repositoryName);
27
35
  }
28
36
  /**
@@ -41,7 +49,8 @@ export class SimCfnEcrRepositoryCreator {
41
49
  * being protected here is a test's own registration rather than anything
42
50
  * CloudFormation put there.
43
51
  */
44
- delete(resource, repository) {
52
+ delete(resource, repository, options) {
53
+ this.authorizer.authorizeRepository("ecr:DeleteRepository", repository.repositoryName, options?.caller);
45
54
  if (repository.hasImage) {
46
55
  throw new Error(`Unsupported sim ECR CloudFormation Resource ${resource.logicalId} ` +
47
56
  `deletion: the simulated ECR repository ` +
@@ -1,8 +1,10 @@
1
1
  import type { SimCfnServiceResourceFactory } from "../../cloudformation/resource/factory/sim-cfn-resource-factory.type.js";
2
- import type { SimCfnResource, SimCloudFormationResourceCreateContext } from "../../cloudformation/resource/sim-cfn-resource.js";
2
+ import type { SimCfnResource, SimCloudFormationResourceCreateContext, SimCloudFormationResourceDeleteContext } from "../../cloudformation/resource/sim-cfn-resource.js";
3
+ import type { SimEcrAuthorizer } from "../authorize/sim-ecr-authorizer.js";
3
4
  import type { SimEcr } from "../sim-ecr.js";
4
5
  interface SimEcrCfnResourceFactoryProperties {
5
6
  readonly ecr: SimEcr;
7
+ readonly authorizer: SimEcrAuthorizer;
6
8
  }
7
9
  /**
8
10
  * CloudFormation Resource factory for simulated ECR resources.
@@ -21,6 +23,6 @@ export declare class SimEcrCfnResourceFactory implements SimCfnServiceResourceFa
21
23
  /**
22
24
  * Delete a simulated ECR resource created from a CloudFormation Resource.
23
25
  */
24
- delete(resourceTypeName: string, resource: SimCfnResource): Promise<void>;
26
+ delete(resourceTypeName: string, resource: SimCfnResource, context: SimCloudFormationResourceDeleteContext): Promise<void>;
25
27
  }
26
28
  export {};
@@ -1,5 +1,7 @@
1
1
  import { assertDefined } from "../../../util/type-guard/defined.js";
2
+ import { simCfnResourceCallerOptions } from "../../cloudformation/resource/caller/sim-cfn-resource-caller-options.js";
2
3
  import { SimCfnEcrRepositoryCreator } from "./repository/sim-cfn-ecr-repository-creator.js";
4
+ import { unsupportedSimEcrResourceType } from "./sim-ecr-cfn-unsupported-resource.js";
3
5
  /**
4
6
  * CloudFormation Resource factory for simulated ECR resources.
5
7
  *
@@ -10,30 +12,27 @@ import { SimCfnEcrRepositoryCreator } from "./repository/sim-cfn-ecr-repository-
10
12
  export class SimEcrCfnResourceFactory {
11
13
  repositoryCreator;
12
14
  constructor(properties) {
13
- this.repositoryCreator = new SimCfnEcrRepositoryCreator({
14
- ecr: properties.ecr,
15
- });
15
+ this.repositoryCreator = new SimCfnEcrRepositoryCreator(properties);
16
16
  }
17
17
  /**
18
18
  * Create a simulated ECR resource from a CloudFormation Resource.
19
19
  */
20
20
  create(resourceTypeName, resource, context) {
21
21
  if (resourceTypeName !== "Repository") {
22
- throw new Error(`Unsupported sim ECR CloudFormation Resource ${resourceTypeName}`);
22
+ throw unsupportedSimEcrResourceType(resourceTypeName, "");
23
23
  }
24
- return Promise.resolve(this.repositoryCreator.create(resource, context.resolvedProperties ?? resource.properties));
24
+ return Promise.resolve(this.repositoryCreator.create(resource, context.resolvedProperties ?? resource.properties, simCfnResourceCallerOptions(context.caller)));
25
25
  }
26
26
  /**
27
27
  * Delete a simulated ECR resource created from a CloudFormation Resource.
28
28
  */
29
- delete(resourceTypeName, resource) {
29
+ delete(resourceTypeName, resource, context) {
30
30
  if (resourceTypeName !== "Repository") {
31
- throw new Error(`Unsupported sim ECR CloudFormation Resource ${resourceTypeName} ` +
32
- `deletion`);
31
+ throw unsupportedSimEcrResourceType(resourceTypeName, " deletion");
33
32
  }
34
33
  const repository = resource.simResource;
35
34
  assertDefined(repository, `sim ECR repository for CloudFormation Resource ${resource.logicalId}`);
36
- this.repositoryCreator.delete(resource, repository);
35
+ this.repositoryCreator.delete(resource, repository, simCfnResourceCallerOptions(context.caller));
37
36
  return Promise.resolve();
38
37
  }
39
38
  }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * A refusal naming an ECR Resource type this simulation has no creator for.
3
+ *
4
+ * The wording is what a Stack reads to record the Resource as a skip rather
5
+ * than failing the whole deployment over it.
6
+ */
7
+ export declare function unsupportedSimEcrResourceType(resourceTypeName: string, suffix: string): Error;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * A refusal naming an ECR Resource type this simulation has no creator for.
3
+ *
4
+ * The wording is what a Stack reads to record the Resource as a skip rather
5
+ * than failing the whole deployment over it.
6
+ */
7
+ export function unsupportedSimEcrResourceType(resourceTypeName, suffix) {
8
+ return new Error(`Unsupported sim ECR CloudFormation Resource ${resourceTypeName}${suffix}`);
9
+ }
@@ -1,9 +1,11 @@
1
1
  import type { SimCfnServiceResourceFactory } from "../cloudformation/resource/factory/sim-cfn-resource-factory.type.js";
2
2
  import type { SimAwsAccountRegionScope } from "../aws/sim-aws-account-region-scope.js";
3
+ import type { SimIamInterServiceAuthZ } from "../iam/authorize/sim-iam-inter-service-auth-z.js";
3
4
  import { SimEcrRegistry } from "./registry/sim-ecr-registry.js";
4
5
  import type { SimEcrRepository } from "./repository/sim-ecr-repository.js";
5
6
  interface SimEcrProperties {
6
7
  readonly accountRegionScope?: SimAwsAccountRegionScope;
8
+ readonly iam?: SimIamInterServiceAuthZ;
7
9
  readonly registry?: SimEcrRegistry;
8
10
  }
9
11
  /**
@@ -19,6 +21,11 @@ interface SimEcrProperties {
19
21
  * Repositories are scoped to an account and region, as they are on real AWS:
20
22
  * a repository ARN names the region, and the registry host in an image URI
21
23
  * carries both the account and the region.
24
+ *
25
+ * Nothing a test does here is authorized, for the same reason. Naming a
26
+ * repository is the simulator's own accessor, and no principal makes that
27
+ * request. A CloudFormation deployment does make one, and a Stack making or
28
+ * removing a repository is decided by simulated IAM as the caller it named.
22
29
  */
23
30
  export declare class SimEcr {
24
31
  private readonly repositories;
@@ -1,4 +1,6 @@
1
1
  import { simAwsAccountRegionScopeFactory } from "../aws/sim-aws-account-region-scope.factory.js";
2
+ import { simIamInRegion } from "../iam/authorize/sim-iam-region-auth-z.js";
3
+ import { SimEcrAuthorizer } from "./authorize/sim-ecr-authorizer.js";
2
4
  import { SimEcrCfnResourceFactory } from "./cfn/sim-ecr-cfn-resource-factory.js";
3
5
  import { SimEcrRegistry } from "./registry/sim-ecr-registry.js";
4
6
  import { SimEcrRepositoryAddress } from "./repository/sim-ecr-repository-address.js";
@@ -16,15 +18,25 @@ import { SimEcrRepositoryStore } from "./repository/sim-ecr-repository-store.js"
16
18
  * Repositories are scoped to an account and region, as they are on real AWS:
17
19
  * a repository ARN names the region, and the registry host in an image URI
18
20
  * carries both the account and the region.
21
+ *
22
+ * Nothing a test does here is authorized, for the same reason. Naming a
23
+ * repository is the simulator's own accessor, and no principal makes that
24
+ * request. A CloudFormation deployment does make one, and a Stack making or
25
+ * removing a repository is decided by simulated IAM as the caller it named.
19
26
  */
20
27
  export class SimEcr {
21
28
  repositories;
22
- cfnFactory = new SimEcrCfnResourceFactory({ ecr: this });
29
+ cfnFactory;
23
30
  constructor(properties = {}) {
24
31
  const { accountRegionScope = simAwsAccountRegionScopeFactory.make(), registry = new SimEcrRegistry(), } = properties;
25
- this.repositories = new SimEcrRepositoryStore({
26
- address: new SimEcrRepositoryAddress(accountRegionScope),
27
- registry,
32
+ const address = new SimEcrRepositoryAddress(accountRegionScope);
33
+ this.repositories = new SimEcrRepositoryStore({ address, registry });
34
+ this.cfnFactory = new SimEcrCfnResourceFactory({
35
+ ecr: this,
36
+ authorizer: new SimEcrAuthorizer({
37
+ iam: simIamInRegion(properties.iam, accountRegionScope.regionName),
38
+ address,
39
+ }),
28
40
  });
29
41
  }
30
42
  /**
@@ -18,11 +18,23 @@ interface SimEcsAuthorizerProperties {
18
18
  * A denial is reported as ECS's own AccessDeniedException rather than the
19
19
  * shared IAM error, because that is the error a real ECS caller would have to
20
20
  * handle.
21
+ *
22
+ * A registration carrying a `taskRoleArn` or an `executionRoleArn` hands ECS
23
+ * Roles it runs the task as later, and each one is authorized as
24
+ * `iam:PassRole` against the Role itself.
21
25
  */
22
26
  export declare class SimEcsAuthorizer {
23
27
  private readonly iam;
24
28
  private readonly callerIdentifier;
29
+ private readonly passRole;
25
30
  constructor(properties: SimEcsAuthorizerProperties);
31
+ /**
32
+ * Ensure the caller may hand ECS every Role a task definition names.
33
+ *
34
+ * Both Roles are optional on a registration, and one left out passes
35
+ * nothing.
36
+ */
37
+ authorizePassRole(roleArns: readonly (string | undefined)[], options?: SimEcsRequestOptions): void;
26
38
  /**
27
39
  * Ensure the caller may perform an action on a cluster, named by its ARN.
28
40
  *
@@ -1,5 +1,7 @@
1
+ import { SimIamPassRoleAuthorizer, simIamPassRoleDenialMessage, } from "../../../iam/authorize/pass-role/sim-iam-pass-role-authorizer.js";
1
2
  import { SimIamCallerIdentifier } from "../../../iam/error/sim-iam-caller-identifier.js";
2
3
  import { SimEcsAccessDeniedException } from "../../error/sim-ecs.error.js";
4
+ import { simEcsTasksServicePrincipal } from "../../sim-ecs-service-principal.js";
3
5
  /**
4
6
  * The resource an ECS action with no resource type authorizes against.
5
7
  *
@@ -24,12 +26,31 @@ const noResource = "*";
24
26
  * A denial is reported as ECS's own AccessDeniedException rather than the
25
27
  * shared IAM error, because that is the error a real ECS caller would have to
26
28
  * handle.
29
+ *
30
+ * A registration carrying a `taskRoleArn` or an `executionRoleArn` hands ECS
31
+ * Roles it runs the task as later, and each one is authorized as
32
+ * `iam:PassRole` against the Role itself.
27
33
  */
28
34
  export class SimEcsAuthorizer {
29
35
  iam;
30
36
  callerIdentifier = new SimIamCallerIdentifier();
37
+ passRole;
31
38
  constructor(properties) {
32
39
  this.iam = properties.iam;
40
+ this.passRole = new SimIamPassRoleAuthorizer({
41
+ iam: properties.iam,
42
+ passedToService: simEcsTasksServicePrincipal,
43
+ denied: (denial) => new SimEcsAccessDeniedException(simIamPassRoleDenialMessage(denial)),
44
+ });
45
+ }
46
+ /**
47
+ * Ensure the caller may hand ECS every Role a task definition names.
48
+ *
49
+ * Both Roles are optional on a registration, and one left out passes
50
+ * nothing.
51
+ */
52
+ authorizePassRole(roleArns, options) {
53
+ this.passRole.authorizeAll(roleArns, options?.caller);
33
54
  }
34
55
  /**
35
56
  * Ensure the caller may perform an action on a cluster, named by its ARN.