@kensio/yulin 0.36.0 → 0.38.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 (545) hide show
  1. package/dist/sdk/router/resolve-sim-sdk-command-router.d.ts.map +1 -1
  2. package/dist/sdk/router/resolve-sim-sdk-command-router.js +3 -0
  3. package/dist/sdk/router/resolve-sim-sdk-command-router.js.map +1 -1
  4. package/dist/serve/controller/sim-service-controller.d.ts +13 -0
  5. package/dist/serve/controller/sim-service-controller.d.ts.map +1 -1
  6. package/dist/serve/controller/sim-service-controller.js.map +1 -1
  7. package/dist/serve/http/url/sim-aws-local-url.d.ts.map +1 -1
  8. package/dist/serve/http/url/sim-aws-local-url.js +5 -1
  9. package/dist/serve/http/url/sim-aws-local-url.js.map +1 -1
  10. package/dist/service/aws/factory/sim-aws-account-service-cache.d.ts.map +1 -1
  11. package/dist/service/aws/factory/sim-aws-account-service-cache.js +3 -0
  12. package/dist/service/aws/factory/sim-aws-account-service-cache.js.map +1 -1
  13. package/dist/service/aws/factory/sim-aws-service-factory.d.ts +8 -0
  14. package/dist/service/aws/factory/sim-aws-service-factory.d.ts.map +1 -1
  15. package/dist/service/aws/factory/sim-aws-service-factory.js +14 -0
  16. package/dist/service/aws/factory/sim-aws-service-factory.js.map +1 -1
  17. package/dist/service/aws/sim-aws-account-region-scope.d.ts +5 -0
  18. package/dist/service/aws/sim-aws-account-region-scope.d.ts.map +1 -1
  19. package/dist/service/aws/sim-aws-account-region-scope.js +6 -0
  20. package/dist/service/aws/sim-aws-account-region-scope.js.map +1 -1
  21. package/dist/service/aws/sim-aws-account.d.ts +5 -0
  22. package/dist/service/aws/sim-aws-account.d.ts.map +1 -1
  23. package/dist/service/aws/sim-aws-account.js +6 -0
  24. package/dist/service/aws/sim-aws-account.js.map +1 -1
  25. package/dist/service/aws/sim-aws-region.d.ts +5 -0
  26. package/dist/service/aws/sim-aws-region.d.ts.map +1 -1
  27. package/dist/service/aws/sim-aws-region.js +6 -0
  28. package/dist/service/aws/sim-aws-region.js.map +1 -1
  29. package/dist/service/aws/sim-aws-request-authentication.d.ts +35 -0
  30. package/dist/service/aws/sim-aws-request-authentication.d.ts.map +1 -0
  31. package/dist/service/aws/sim-aws-request-authentication.js +32 -0
  32. package/dist/service/aws/sim-aws-request-authentication.js.map +1 -0
  33. package/dist/service/aws/sim-aws.d.ts +7 -21
  34. package/dist/service/aws/sim-aws.d.ts.map +1 -1
  35. package/dist/service/aws/sim-aws.js +15 -26
  36. package/dist/service/aws/sim-aws.js.map +1 -1
  37. package/dist/service/cloudformation/resource/dependency/sim-cfn-resource-dependencies.d.ts.map +1 -1
  38. package/dist/service/cloudformation/resource/dependency/sim-cfn-resource-dependencies.js +1 -1
  39. package/dist/service/cloudformation/resource/dependency/sim-cfn-resource-dependencies.js.map +1 -1
  40. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.js +1 -1
  41. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.js.map +1 -1
  42. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.d.ts.map +1 -1
  43. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.js +2 -1
  44. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.js.map +1 -1
  45. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.d.ts +116 -0
  46. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.d.ts.map +1 -0
  47. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.js +126 -0
  48. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.js.map +1 -0
  49. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.d.ts +52 -0
  50. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.d.ts.map +1 -0
  51. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.js +77 -0
  52. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.js.map +1 -0
  53. package/dist/service/iam/authorize/caller-account/sim-iam-caller-account-resolver.d.ts +37 -0
  54. package/dist/service/iam/authorize/caller-account/sim-iam-caller-account-resolver.d.ts.map +1 -0
  55. package/dist/service/iam/authorize/caller-account/sim-iam-caller-account-resolver.js +33 -0
  56. package/dist/service/iam/authorize/caller-account/sim-iam-caller-account-resolver.js.map +1 -0
  57. package/dist/service/iam/authorize/caller-account/sim-iam-caller-account.d.ts +21 -0
  58. package/dist/service/iam/authorize/caller-account/sim-iam-caller-account.d.ts.map +1 -0
  59. package/dist/service/iam/authorize/caller-account/sim-iam-caller-account.js +2 -0
  60. package/dist/service/iam/authorize/caller-account/sim-iam-caller-account.js.map +1 -0
  61. package/dist/service/iam/authorize/caller-account/sim-iam-cross-account-caller.d.ts +34 -0
  62. package/dist/service/iam/authorize/caller-account/sim-iam-cross-account-caller.d.ts.map +1 -0
  63. package/dist/service/iam/authorize/caller-account/sim-iam-cross-account-caller.js +22 -0
  64. package/dist/service/iam/authorize/caller-account/sim-iam-cross-account-caller.js.map +1 -0
  65. package/dist/service/iam/authorize/caller-account/sim-iam-same-account-caller.d.ts +18 -0
  66. package/dist/service/iam/authorize/caller-account/sim-iam-same-account-caller.d.ts.map +1 -0
  67. package/dist/service/iam/authorize/caller-account/sim-iam-same-account-caller.js +16 -0
  68. package/dist/service/iam/authorize/caller-account/sim-iam-same-account-caller.js.map +1 -0
  69. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.d.ts +17 -0
  70. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.d.ts.map +1 -0
  71. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.js +24 -0
  72. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.js.map +1 -0
  73. package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.d.ts +1 -2
  74. package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.d.ts.map +1 -1
  75. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts +49 -2
  76. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts.map +1 -1
  77. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js +44 -8
  78. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js.map +1 -1
  79. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.d.ts +9 -0
  80. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.d.ts.map +1 -1
  81. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.factory.d.ts.map +1 -1
  82. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.factory.js +2 -0
  83. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.factory.js.map +1 -1
  84. package/dist/service/iam/authorize/identity/sim-iam-account-identity-policies.d.ts +14 -0
  85. package/dist/service/iam/authorize/identity/sim-iam-account-identity-policies.d.ts.map +1 -0
  86. package/dist/service/iam/authorize/identity/sim-iam-account-identity-policies.js +2 -0
  87. package/dist/service/iam/authorize/identity/sim-iam-account-identity-policies.js.map +1 -0
  88. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.d.ts +6 -1
  89. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.d.ts.map +1 -1
  90. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.js +25 -16
  91. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.js.map +1 -1
  92. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.d.ts +2 -1
  93. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.d.ts.map +1 -1
  94. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.js +2 -1
  95. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.js.map +1 -1
  96. package/dist/service/iam/authorize/match/sim-iam-principal-match.d.ts +39 -0
  97. package/dist/service/iam/authorize/match/sim-iam-principal-match.d.ts.map +1 -0
  98. package/dist/service/iam/authorize/match/sim-iam-principal-match.js +55 -0
  99. package/dist/service/iam/authorize/match/sim-iam-principal-match.js.map +1 -0
  100. package/dist/service/iam/authorize/sim-iam-account-auth-z.d.ts +24 -1
  101. package/dist/service/iam/authorize/sim-iam-account-auth-z.d.ts.map +1 -1
  102. package/dist/service/iam/authorize/sim-iam-account-auth-z.js +18 -4
  103. package/dist/service/iam/authorize/sim-iam-account-auth-z.js.map +1 -1
  104. package/dist/service/iam/authorize/sim-iam-authorizer.d.ts +11 -2
  105. package/dist/service/iam/authorize/sim-iam-authorizer.d.ts.map +1 -1
  106. package/dist/service/iam/authorize/sim-iam-authorizer.js +14 -1
  107. package/dist/service/iam/authorize/sim-iam-authorizer.js.map +1 -1
  108. package/dist/service/iam/authorize/sim-iam-decision.d.ts +17 -5
  109. package/dist/service/iam/authorize/sim-iam-decision.d.ts.map +1 -1
  110. package/dist/service/iam/authorize/sim-iam-decision.js +29 -14
  111. package/dist/service/iam/authorize/sim-iam-decision.js.map +1 -1
  112. package/dist/service/iam/command/sim-iam-command-handlers.d.ts +41 -0
  113. package/dist/service/iam/command/sim-iam-command-handlers.d.ts.map +1 -0
  114. package/dist/service/iam/command/sim-iam-command-handlers.js +42 -0
  115. package/dist/service/iam/command/sim-iam-command-handlers.js.map +1 -0
  116. package/dist/service/iam/index.d.ts +1 -0
  117. package/dist/service/iam/index.d.ts.map +1 -1
  118. package/dist/service/iam/index.js +1 -0
  119. package/dist/service/iam/index.js.map +1 -1
  120. package/dist/service/iam/registry/sim-iam-account-resolver.d.ts +8 -0
  121. package/dist/service/iam/registry/sim-iam-account-resolver.d.ts.map +1 -1
  122. package/dist/service/iam/registry/sim-iam-registry.d.ts +4 -0
  123. package/dist/service/iam/registry/sim-iam-registry.d.ts.map +1 -1
  124. package/dist/service/iam/registry/sim-iam-registry.js +7 -1
  125. package/dist/service/iam/registry/sim-iam-registry.js.map +1 -1
  126. package/dist/service/iam/request/sim-aws-request-caller-resolver.d.ts +21 -5
  127. package/dist/service/iam/request/sim-aws-request-caller-resolver.d.ts.map +1 -1
  128. package/dist/service/iam/request/sim-aws-request-caller-resolver.js +15 -9
  129. package/dist/service/iam/request/sim-aws-request-caller-resolver.js.map +1 -1
  130. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-request.d.ts +3 -1
  131. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-request.d.ts.map +1 -1
  132. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-request.js +6 -4
  133. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-request.js.map +1 -1
  134. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.d.ts +34 -14
  135. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.d.ts.map +1 -1
  136. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.js +56 -29
  137. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.js.map +1 -1
  138. package/dist/service/iam/sigv4/error/sim-iam-sigv4.error.d.ts +13 -1
  139. package/dist/service/iam/sigv4/error/sim-iam-sigv4.error.d.ts.map +1 -1
  140. package/dist/service/iam/sigv4/error/sim-iam-sigv4.error.js +14 -0
  141. package/dist/service/iam/sigv4/error/sim-iam-sigv4.error.js.map +1 -1
  142. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-credential.d.ts +25 -0
  143. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-credential.d.ts.map +1 -0
  144. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-credential.js +41 -0
  145. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-credential.js.map +1 -0
  146. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-parameters.d.ts +27 -0
  147. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-parameters.d.ts.map +1 -0
  148. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-parameters.js +41 -0
  149. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-parameters.js.map +1 -0
  150. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-query.d.ts +39 -0
  151. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-query.d.ts.map +1 -0
  152. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-query.js +59 -0
  153. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-query.js.map +1 -0
  154. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-window.d.ts +30 -0
  155. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-window.d.ts.map +1 -0
  156. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-window.js +64 -0
  157. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-window.js.map +1 -0
  158. package/dist/service/iam/sigv4/sim-iam-sigv4-authorization.d.ts +2 -1
  159. package/dist/service/iam/sigv4/sim-iam-sigv4-authorization.d.ts.map +1 -1
  160. package/dist/service/iam/sigv4/sim-iam-sigv4-authorization.js.map +1 -1
  161. package/dist/service/iam/sigv4/sim-iam-sigv4-request-date.d.ts +22 -1
  162. package/dist/service/iam/sigv4/sim-iam-sigv4-request-date.d.ts.map +1 -1
  163. package/dist/service/iam/sigv4/sim-iam-sigv4-request-date.js +49 -7
  164. package/dist/service/iam/sigv4/sim-iam-sigv4-request-date.js.map +1 -1
  165. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-check.d.ts +9 -2
  166. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-check.d.ts.map +1 -1
  167. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-check.js +5 -5
  168. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-check.js.map +1 -1
  169. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-statement.d.ts +16 -0
  170. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-statement.d.ts.map +1 -0
  171. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-statement.js +2 -0
  172. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-statement.js.map +1 -0
  173. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-credentials.d.ts +12 -3
  174. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-credentials.d.ts.map +1 -1
  175. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-credentials.js +9 -5
  176. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-credentials.js.map +1 -1
  177. package/dist/service/iam/sigv4/sim-iam-sigv4-verifier.d.ts +20 -4
  178. package/dist/service/iam/sigv4/sim-iam-sigv4-verifier.d.ts.map +1 -1
  179. package/dist/service/iam/sigv4/sim-iam-sigv4-verifier.js +52 -6
  180. package/dist/service/iam/sigv4/sim-iam-sigv4-verifier.js.map +1 -1
  181. package/dist/service/iam/sim-iam-account-parts.d.ts +58 -0
  182. package/dist/service/iam/sim-iam-account-parts.d.ts.map +1 -0
  183. package/dist/service/iam/sim-iam-account-parts.js +72 -0
  184. package/dist/service/iam/sim-iam-account-parts.js.map +1 -0
  185. package/dist/service/iam/sim-iam.d.ts +28 -21
  186. package/dist/service/iam/sim-iam.d.ts.map +1 -1
  187. package/dist/service/iam/sim-iam.js +42 -71
  188. package/dist/service/iam/sim-iam.js.map +1 -1
  189. package/dist/service/kms/command/alias/alias.command.d.ts +43 -0
  190. package/dist/service/kms/command/alias/alias.command.d.ts.map +1 -0
  191. package/dist/service/kms/command/alias/alias.command.js +2 -0
  192. package/dist/service/kms/command/alias/alias.command.js.map +1 -0
  193. package/dist/service/kms/command/alias/sim-kms-alias-commands.d.ts +34 -0
  194. package/dist/service/kms/command/alias/sim-kms-alias-commands.d.ts.map +1 -0
  195. package/dist/service/kms/command/alias/sim-kms-alias-commands.js +56 -0
  196. package/dist/service/kms/command/alias/sim-kms-alias-commands.js.map +1 -0
  197. package/dist/service/kms/command/authorize/sim-kms-authorizer.d.ts +38 -0
  198. package/dist/service/kms/command/authorize/sim-kms-authorizer.d.ts.map +1 -0
  199. package/dist/service/kms/command/authorize/sim-kms-authorizer.js +58 -0
  200. package/dist/service/kms/command/authorize/sim-kms-authorizer.js.map +1 -0
  201. package/dist/service/kms/command/crypto/crypto.command.d.ts +68 -0
  202. package/dist/service/kms/command/crypto/crypto.command.d.ts.map +1 -0
  203. package/dist/service/kms/command/crypto/crypto.command.js +2 -0
  204. package/dist/service/kms/command/crypto/crypto.command.js.map +1 -0
  205. package/dist/service/kms/command/crypto/sim-kms-ciphertext-key.d.ts +40 -0
  206. package/dist/service/kms/command/crypto/sim-kms-ciphertext-key.d.ts.map +1 -0
  207. package/dist/service/kms/command/crypto/sim-kms-ciphertext-key.js +58 -0
  208. package/dist/service/kms/command/crypto/sim-kms-ciphertext-key.js.map +1 -0
  209. package/dist/service/kms/command/crypto/sim-kms-crypto-commands.d.ts +38 -0
  210. package/dist/service/kms/command/crypto/sim-kms-crypto-commands.d.ts.map +1 -0
  211. package/dist/service/kms/command/crypto/sim-kms-crypto-commands.js +74 -0
  212. package/dist/service/kms/command/crypto/sim-kms-crypto-commands.js.map +1 -0
  213. package/dist/service/kms/command/crypto/sim-kms-data-key-spec.d.ts +16 -0
  214. package/dist/service/kms/command/crypto/sim-kms-data-key-spec.d.ts.map +1 -0
  215. package/dist/service/kms/command/crypto/sim-kms-data-key-spec.js +50 -0
  216. package/dist/service/kms/command/crypto/sim-kms-data-key-spec.js.map +1 -0
  217. package/dist/service/kms/command/crypto/sim-kms-generate-data-key.d.ts +31 -0
  218. package/dist/service/kms/command/crypto/sim-kms-generate-data-key.d.ts.map +1 -0
  219. package/dist/service/kms/command/crypto/sim-kms-generate-data-key.js +35 -0
  220. package/dist/service/kms/command/crypto/sim-kms-generate-data-key.js.map +1 -0
  221. package/dist/service/kms/command/key/key.command.d.ts +159 -0
  222. package/dist/service/kms/command/key/key.command.d.ts.map +1 -0
  223. package/dist/service/kms/command/key/key.command.js +2 -0
  224. package/dist/service/kms/command/key/key.command.js.map +1 -0
  225. package/dist/service/kms/command/key/sim-kms-key-commands.d.ts +41 -0
  226. package/dist/service/kms/command/key/sim-kms-key-commands.d.ts.map +1 -0
  227. package/dist/service/kms/command/key/sim-kms-key-commands.js +45 -0
  228. package/dist/service/kms/command/key/sim-kms-key-commands.js.map +1 -0
  229. package/dist/service/kms/command/key/sim-kms-key-lifecycle-commands.d.ts +48 -0
  230. package/dist/service/kms/command/key/sim-kms-key-lifecycle-commands.d.ts.map +1 -0
  231. package/dist/service/kms/command/key/sim-kms-key-lifecycle-commands.js +67 -0
  232. package/dist/service/kms/command/key/sim-kms-key-lifecycle-commands.js.map +1 -0
  233. package/dist/service/kms/command/key/sim-kms-key-policy-commands.d.ts +39 -0
  234. package/dist/service/kms/command/key/sim-kms-key-policy-commands.d.ts.map +1 -0
  235. package/dist/service/kms/command/key/sim-kms-key-policy-commands.js +57 -0
  236. package/dist/service/kms/command/key/sim-kms-key-policy-commands.js.map +1 -0
  237. package/dist/service/kms/command/key/sim-kms-key-type.d.ts +14 -0
  238. package/dist/service/kms/command/key/sim-kms-key-type.d.ts.map +1 -0
  239. package/dist/service/kms/command/key/sim-kms-key-type.js +31 -0
  240. package/dist/service/kms/command/key/sim-kms-key-type.js.map +1 -0
  241. package/dist/service/kms/command/key/sim-kms-list-keys.d.ts +29 -0
  242. package/dist/service/kms/command/key/sim-kms-list-keys.d.ts.map +1 -0
  243. package/dist/service/kms/command/key/sim-kms-list-keys.js +31 -0
  244. package/dist/service/kms/command/key/sim-kms-list-keys.js.map +1 -0
  245. package/dist/service/kms/command/key/sim-kms-pending-window.d.ts +17 -0
  246. package/dist/service/kms/command/key/sim-kms-pending-window.d.ts.map +1 -0
  247. package/dist/service/kms/command/key/sim-kms-pending-window.js +37 -0
  248. package/dist/service/kms/command/key/sim-kms-pending-window.js.map +1 -0
  249. package/dist/service/kms/command/sim-kms-command.types.d.ts +10 -0
  250. package/dist/service/kms/command/sim-kms-command.types.d.ts.map +1 -0
  251. package/dist/service/kms/command/sim-kms-command.types.js +2 -0
  252. package/dist/service/kms/command/sim-kms-command.types.js.map +1 -0
  253. package/dist/service/kms/error/sim-kms.error.d.ts +88 -0
  254. package/dist/service/kms/error/sim-kms.error.d.ts.map +1 -0
  255. package/dist/service/kms/error/sim-kms.error.js +101 -0
  256. package/dist/service/kms/error/sim-kms.error.js.map +1 -0
  257. package/dist/service/kms/index.d.ts +8 -0
  258. package/dist/service/kms/index.d.ts.map +1 -0
  259. package/dist/service/kms/index.js +6 -0
  260. package/dist/service/kms/index.js.map +1 -0
  261. package/dist/service/kms/key/sim-kms-alias.d.ts +45 -0
  262. package/dist/service/kms/key/sim-kms-alias.d.ts.map +1 -0
  263. package/dist/service/kms/key/sim-kms-alias.js +59 -0
  264. package/dist/service/kms/key/sim-kms-alias.js.map +1 -0
  265. package/dist/service/kms/key/sim-kms-ciphertext-blob.d.ts +43 -0
  266. package/dist/service/kms/key/sim-kms-ciphertext-blob.d.ts.map +1 -0
  267. package/dist/service/kms/key/sim-kms-ciphertext-blob.js +89 -0
  268. package/dist/service/kms/key/sim-kms-ciphertext-blob.js.map +1 -0
  269. package/dist/service/kms/key/sim-kms-encryption-context.d.ts +34 -0
  270. package/dist/service/kms/key/sim-kms-encryption-context.d.ts.map +1 -0
  271. package/dist/service/kms/key/sim-kms-encryption-context.js +39 -0
  272. package/dist/service/kms/key/sim-kms-encryption-context.js.map +1 -0
  273. package/dist/service/kms/key/sim-kms-key-factory.d.ts +36 -0
  274. package/dist/service/kms/key/sim-kms-key-factory.d.ts.map +1 -0
  275. package/dist/service/kms/key/sim-kms-key-factory.js +47 -0
  276. package/dist/service/kms/key/sim-kms-key-factory.js.map +1 -0
  277. package/dist/service/kms/key/sim-kms-key-identifier.d.ts +44 -0
  278. package/dist/service/kms/key/sim-kms-key-identifier.d.ts.map +1 -0
  279. package/dist/service/kms/key/sim-kms-key-identifier.js +81 -0
  280. package/dist/service/kms/key/sim-kms-key-identifier.js.map +1 -0
  281. package/dist/service/kms/key/sim-kms-key-lifecycle.d.ts +71 -0
  282. package/dist/service/kms/key/sim-kms-key-lifecycle.d.ts.map +1 -0
  283. package/dist/service/kms/key/sim-kms-key-lifecycle.js +106 -0
  284. package/dist/service/kms/key/sim-kms-key-lifecycle.js.map +1 -0
  285. package/dist/service/kms/key/sim-kms-key-material.d.ts +36 -0
  286. package/dist/service/kms/key/sim-kms-key-material.d.ts.map +1 -0
  287. package/dist/service/kms/key/sim-kms-key-material.js +74 -0
  288. package/dist/service/kms/key/sim-kms-key-material.js.map +1 -0
  289. package/dist/service/kms/key/sim-kms-key-metadata.d.ts +45 -0
  290. package/dist/service/kms/key/sim-kms-key-metadata.d.ts.map +1 -0
  291. package/dist/service/kms/key/sim-kms-key-metadata.js +44 -0
  292. package/dist/service/kms/key/sim-kms-key-metadata.js.map +1 -0
  293. package/dist/service/kms/key/sim-kms-key-policy.d.ts +45 -0
  294. package/dist/service/kms/key/sim-kms-key-policy.d.ts.map +1 -0
  295. package/dist/service/kms/key/sim-kms-key-policy.js +69 -0
  296. package/dist/service/kms/key/sim-kms-key-policy.js.map +1 -0
  297. package/dist/service/kms/key/sim-kms-key-store.d.ts +58 -0
  298. package/dist/service/kms/key/sim-kms-key-store.d.ts.map +1 -0
  299. package/dist/service/kms/key/sim-kms-key-store.js +111 -0
  300. package/dist/service/kms/key/sim-kms-key-store.js.map +1 -0
  301. package/dist/service/kms/key/sim-kms-key.d.ts +88 -0
  302. package/dist/service/kms/key/sim-kms-key.d.ts.map +1 -0
  303. package/dist/service/kms/key/sim-kms-key.js +106 -0
  304. package/dist/service/kms/key/sim-kms-key.js.map +1 -0
  305. package/dist/service/kms/key/sim-kms-policy-document.d.ts +30 -0
  306. package/dist/service/kms/key/sim-kms-policy-document.d.ts.map +1 -0
  307. package/dist/service/kms/key/sim-kms-policy-document.js +54 -0
  308. package/dist/service/kms/key/sim-kms-policy-document.js.map +1 -0
  309. package/dist/service/kms/sdk/sim-kms-sdk-command-router.d.ts +18 -0
  310. package/dist/service/kms/sdk/sim-kms-sdk-command-router.d.ts.map +1 -0
  311. package/dist/service/kms/sdk/sim-kms-sdk-command-router.js +80 -0
  312. package/dist/service/kms/sdk/sim-kms-sdk-command-router.js.map +1 -0
  313. package/dist/service/kms/sim-kms.d.ts +105 -0
  314. package/dist/service/kms/sim-kms.d.ts.map +1 -0
  315. package/dist/service/kms/sim-kms.js +187 -0
  316. package/dist/service/kms/sim-kms.js.map +1 -0
  317. package/dist/service/lambda/command/create-function/create-function.handler.d.ts.map +1 -1
  318. package/dist/service/lambda/command/create-function/create-function.handler.js +3 -0
  319. package/dist/service/lambda/command/create-function/create-function.handler.js.map +1 -1
  320. package/dist/service/lambda/function/code/sim-lambda-code-resolver.d.ts +6 -0
  321. package/dist/service/lambda/function/code/sim-lambda-code-resolver.d.ts.map +1 -1
  322. package/dist/service/lambda/function/code/sim-lambda-code-resolver.js +1 -0
  323. package/dist/service/lambda/function/code/sim-lambda-code-resolver.js.map +1 -1
  324. package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts +15 -0
  325. package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts.map +1 -1
  326. package/dist/service/lambda/function/code/sim-lambda-executable-code.js +5 -0
  327. package/dist/service/lambda/function/code/sim-lambda-executable-code.js.map +1 -1
  328. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code-factory.d.ts +3 -0
  329. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code-factory.d.ts.map +1 -1
  330. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code-factory.js +3 -0
  331. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code-factory.js.map +1 -1
  332. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.d.ts +11 -0
  333. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.d.ts.map +1 -1
  334. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.js +7 -2
  335. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.js.map +1 -1
  336. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.d.ts +6 -5
  337. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.d.ts.map +1 -1
  338. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.js +10 -5
  339. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.js.map +1 -1
  340. package/dist/service/lambda/function/invoke/sim-lambda-process-clock.d.ts +53 -0
  341. package/dist/service/lambda/function/invoke/sim-lambda-process-clock.d.ts.map +1 -0
  342. package/dist/service/lambda/function/invoke/sim-lambda-process-clock.js +101 -0
  343. package/dist/service/lambda/function/invoke/sim-lambda-process-clock.js.map +1 -0
  344. package/dist/service/lambda/function/sim-lambda-function.d.ts +8 -0
  345. package/dist/service/lambda/function/sim-lambda-function.d.ts.map +1 -1
  346. package/dist/service/lambda/function/sim-lambda-function.js +15 -1
  347. package/dist/service/lambda/function/sim-lambda-function.js.map +1 -1
  348. package/dist/service/lambda/serve/sim-lambda-url-router.js +1 -1
  349. package/dist/service/lambda/serve/sim-lambda-url-router.js.map +1 -1
  350. package/dist/service/route53/resolve/sim-r53-service-target-resolver.d.ts +14 -0
  351. package/dist/service/route53/resolve/sim-r53-service-target-resolver.d.ts.map +1 -1
  352. package/dist/service/route53/resolve/sim-r53-service-target-resolver.js +38 -0
  353. package/dist/service/route53/resolve/sim-r53-service-target-resolver.js.map +1 -1
  354. package/dist/service/s3/bucket/public-access/sim-s3-pinning-condition.d.ts +7 -0
  355. package/dist/service/s3/bucket/public-access/sim-s3-pinning-condition.d.ts.map +1 -0
  356. package/dist/service/s3/bucket/public-access/sim-s3-pinning-condition.js +73 -0
  357. package/dist/service/s3/bucket/public-access/sim-s3-pinning-condition.js.map +1 -0
  358. package/dist/service/s3/bucket/public-access/sim-s3-public-access-block.d.ts +61 -0
  359. package/dist/service/s3/bucket/public-access/sim-s3-public-access-block.d.ts.map +1 -0
  360. package/dist/service/s3/bucket/public-access/sim-s3-public-access-block.js +57 -0
  361. package/dist/service/s3/bucket/public-access/sim-s3-public-access-block.js.map +1 -0
  362. package/dist/service/s3/bucket/public-access/sim-s3-public-policy-guard.d.ts +19 -0
  363. package/dist/service/s3/bucket/public-access/sim-s3-public-policy-guard.d.ts.map +1 -0
  364. package/dist/service/s3/bucket/public-access/sim-s3-public-policy-guard.js +28 -0
  365. package/dist/service/s3/bucket/public-access/sim-s3-public-policy-guard.js.map +1 -0
  366. package/dist/service/s3/bucket/public-access/sim-s3-public-policy.d.ts +18 -0
  367. package/dist/service/s3/bucket/public-access/sim-s3-public-policy.d.ts.map +1 -0
  368. package/dist/service/s3/bucket/public-access/sim-s3-public-policy.js +35 -0
  369. package/dist/service/s3/bucket/public-access/sim-s3-public-policy.js.map +1 -0
  370. package/dist/service/s3/bucket/public-access/sim-s3-public-principal.d.ts +11 -0
  371. package/dist/service/s3/bucket/public-access/sim-s3-public-principal.d.ts.map +1 -0
  372. package/dist/service/s3/bucket/public-access/sim-s3-public-principal.js +34 -0
  373. package/dist/service/s3/bucket/public-access/sim-s3-public-principal.js.map +1 -0
  374. package/dist/service/s3/bucket/sim-s3-bucket-arn.d.ts +9 -0
  375. package/dist/service/s3/bucket/sim-s3-bucket-arn.d.ts.map +1 -0
  376. package/dist/service/s3/bucket/sim-s3-bucket-arn.js +10 -0
  377. package/dist/service/s3/bucket/sim-s3-bucket-arn.js.map +1 -0
  378. package/dist/service/s3/bucket/sim-s3-bucket.d.ts +25 -0
  379. package/dist/service/s3/bucket/sim-s3-bucket.d.ts.map +1 -1
  380. package/dist/service/s3/bucket/sim-s3-bucket.js +34 -1
  381. package/dist/service/s3/bucket/sim-s3-bucket.js.map +1 -1
  382. package/dist/service/s3/bucket/sim-s3-endpoint-url.d.ts +16 -0
  383. package/dist/service/s3/bucket/sim-s3-endpoint-url.d.ts.map +1 -0
  384. package/dist/service/s3/bucket/sim-s3-endpoint-url.js +19 -0
  385. package/dist/service/s3/bucket/sim-s3-endpoint-url.js.map +1 -0
  386. package/dist/service/s3/bucket/website/sim-s3-public-website.fixture.d.ts +13 -0
  387. package/dist/service/s3/bucket/website/sim-s3-public-website.fixture.d.ts.map +1 -0
  388. package/dist/service/s3/bucket/website/sim-s3-public-website.fixture.js +36 -0
  389. package/dist/service/s3/bucket/website/sim-s3-public-website.fixture.js.map +1 -0
  390. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.d.ts +27 -0
  391. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.d.ts.map +1 -0
  392. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.js +92 -0
  393. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.js.map +1 -0
  394. package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.d.ts +32 -0
  395. package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.d.ts.map +1 -0
  396. package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.js +55 -0
  397. package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.js.map +1 -0
  398. package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.d.ts +2 -4
  399. package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.d.ts.map +1 -1
  400. package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.js +10 -61
  401. package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.js.map +1 -1
  402. package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.d.ts +11 -0
  403. package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.d.ts.map +1 -0
  404. package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.js +22 -0
  405. package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.js.map +1 -0
  406. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy-authorizer.d.ts +23 -0
  407. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy-authorizer.d.ts.map +1 -0
  408. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy-authorizer.js +36 -0
  409. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy-authorizer.js.map +1 -0
  410. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.command.d.ts +20 -0
  411. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.command.d.ts.map +1 -0
  412. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.command.js +2 -0
  413. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.command.js.map +1 -0
  414. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.handler.d.ts +32 -0
  415. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.handler.d.ts.map +1 -0
  416. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.handler.js +37 -0
  417. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.handler.js.map +1 -0
  418. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.command.d.ts +20 -0
  419. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.command.d.ts.map +1 -0
  420. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.command.js +2 -0
  421. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.command.js.map +1 -0
  422. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.handler.d.ts +30 -0
  423. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.handler.d.ts.map +1 -0
  424. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.handler.js +35 -0
  425. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.handler.js.map +1 -0
  426. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy-authorizer.d.ts +20 -0
  427. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy-authorizer.d.ts.map +1 -0
  428. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy-authorizer.js +33 -0
  429. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy-authorizer.js.map +1 -0
  430. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.command.d.ts +24 -0
  431. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.command.d.ts.map +1 -0
  432. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.command.js +2 -0
  433. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.command.js.map +1 -0
  434. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.handler.d.ts +29 -0
  435. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.handler.d.ts.map +1 -0
  436. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.handler.js +40 -0
  437. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.handler.js.map +1 -0
  438. package/dist/service/s3/command/get-public-access-block/get-public-access-block.command.d.ts +22 -0
  439. package/dist/service/s3/command/get-public-access-block/get-public-access-block.command.d.ts.map +1 -0
  440. package/dist/service/s3/command/get-public-access-block/get-public-access-block.command.js +2 -0
  441. package/dist/service/s3/command/get-public-access-block/get-public-access-block.command.js.map +1 -0
  442. package/dist/service/s3/command/get-public-access-block/get-public-access-block.handler.d.ts +32 -0
  443. package/dist/service/s3/command/get-public-access-block/get-public-access-block.handler.d.ts.map +1 -0
  444. package/dist/service/s3/command/get-public-access-block/get-public-access-block.handler.js +39 -0
  445. package/dist/service/s3/command/get-public-access-block/get-public-access-block.handler.js.map +1 -0
  446. package/dist/service/s3/command/public-access-block/sim-s3-public-access-block-authorizer.d.ts +31 -0
  447. package/dist/service/s3/command/public-access-block/sim-s3-public-access-block-authorizer.d.ts.map +1 -0
  448. package/dist/service/s3/command/public-access-block/sim-s3-public-access-block-authorizer.js +48 -0
  449. package/dist/service/s3/command/public-access-block/sim-s3-public-access-block-authorizer.js.map +1 -0
  450. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.d.ts +1 -0
  451. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.d.ts.map +1 -1
  452. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.js +7 -6
  453. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.js.map +1 -1
  454. package/dist/service/s3/command/put-public-access-block/put-public-access-block.command.d.ts +22 -0
  455. package/dist/service/s3/command/put-public-access-block/put-public-access-block.command.d.ts.map +1 -0
  456. package/dist/service/s3/command/put-public-access-block/put-public-access-block.command.js +2 -0
  457. package/dist/service/s3/command/put-public-access-block/put-public-access-block.command.js.map +1 -0
  458. package/dist/service/s3/command/put-public-access-block/put-public-access-block.handler.d.ts +33 -0
  459. package/dist/service/s3/command/put-public-access-block/put-public-access-block.handler.d.ts.map +1 -0
  460. package/dist/service/s3/command/put-public-access-block/put-public-access-block.handler.js +40 -0
  461. package/dist/service/s3/command/put-public-access-block/put-public-access-block.handler.js.map +1 -0
  462. package/dist/service/s3/command/require-sim-s3-bucket.d.ts +10 -0
  463. package/dist/service/s3/command/require-sim-s3-bucket.d.ts.map +1 -0
  464. package/dist/service/s3/command/require-sim-s3-bucket.js +16 -0
  465. package/dist/service/s3/command/require-sim-s3-bucket.js.map +1 -0
  466. package/dist/service/s3/command/sim-s3-command-handlers.d.ts +91 -0
  467. package/dist/service/s3/command/sim-s3-command-handlers.d.ts.map +1 -0
  468. package/dist/service/s3/command/sim-s3-command-handlers.js +115 -0
  469. package/dist/service/s3/command/sim-s3-command-handlers.js.map +1 -0
  470. package/dist/service/s3/command/sim-s3-command.types.d.ts +19 -0
  471. package/dist/service/s3/command/sim-s3-command.types.d.ts.map +1 -0
  472. package/dist/service/s3/command/sim-s3-command.types.js +8 -0
  473. package/dist/service/s3/command/sim-s3-command.types.js.map +1 -0
  474. package/dist/service/s3/error/sim-s3-checksum.error.d.ts +28 -0
  475. package/dist/service/s3/error/sim-s3-checksum.error.d.ts.map +1 -0
  476. package/dist/service/s3/error/sim-s3-checksum.error.js +32 -0
  477. package/dist/service/s3/error/sim-s3-checksum.error.js.map +1 -0
  478. package/dist/service/s3/error/sim-s3.error.d.ts +20 -0
  479. package/dist/service/s3/error/sim-s3.error.d.ts.map +1 -1
  480. package/dist/service/s3/error/sim-s3.error.js +24 -0
  481. package/dist/service/s3/error/sim-s3.error.js.map +1 -1
  482. package/dist/service/s3/sdk/sim-s3-sdk-command-router.d.ts.map +1 -1
  483. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +20 -0
  484. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js.map +1 -1
  485. package/dist/service/s3/serve/sim-s3-bucket-locator.d.ts +40 -0
  486. package/dist/service/s3/serve/sim-s3-bucket-locator.d.ts.map +1 -0
  487. package/dist/service/s3/serve/sim-s3-bucket-locator.js +59 -0
  488. package/dist/service/s3/serve/sim-s3-bucket-locator.js.map +1 -0
  489. package/dist/service/s3/serve/sim-s3-controller.d.ts +7 -0
  490. package/dist/service/s3/serve/sim-s3-controller.d.ts.map +1 -1
  491. package/dist/service/s3/serve/sim-s3-controller.js +14 -2
  492. package/dist/service/s3/serve/sim-s3-controller.js.map +1 -1
  493. package/dist/service/s3/serve/sim-s3-get-object-controller.d.ts +40 -6
  494. package/dist/service/s3/serve/sim-s3-get-object-controller.d.ts.map +1 -1
  495. package/dist/service/s3/serve/sim-s3-get-object-controller.js +80 -49
  496. package/dist/service/s3/serve/sim-s3-get-object-controller.js.map +1 -1
  497. package/dist/service/s3/serve/sim-s3-object-address.d.ts +42 -0
  498. package/dist/service/s3/serve/sim-s3-object-address.d.ts.map +1 -0
  499. package/dist/service/s3/serve/sim-s3-object-address.js +66 -0
  500. package/dist/service/s3/serve/sim-s3-object-address.js.map +1 -0
  501. package/dist/service/s3/serve/sim-s3-request-router.d.ts +18 -13
  502. package/dist/service/s3/serve/sim-s3-request-router.d.ts.map +1 -1
  503. package/dist/service/s3/serve/sim-s3-request-router.js +72 -48
  504. package/dist/service/s3/serve/sim-s3-request-router.js.map +1 -1
  505. package/dist/service/s3/serve/sim-s3-rest-controller.d.ts +36 -0
  506. package/dist/service/s3/serve/sim-s3-rest-controller.d.ts.map +1 -0
  507. package/dist/service/s3/serve/sim-s3-rest-controller.js +92 -0
  508. package/dist/service/s3/serve/sim-s3-rest-controller.js.map +1 -0
  509. package/dist/service/s3/serve/sim-s3-rest-error-response.d.ts +28 -0
  510. package/dist/service/s3/serve/sim-s3-rest-error-response.d.ts.map +1 -0
  511. package/dist/service/s3/serve/sim-s3-rest-error-response.js +63 -0
  512. package/dist/service/s3/serve/sim-s3-rest-error-response.js.map +1 -0
  513. package/dist/service/s3/serve/sim-s3-rest-refusal.d.ts +7 -0
  514. package/dist/service/s3/serve/sim-s3-rest-refusal.d.ts.map +1 -0
  515. package/dist/service/s3/serve/sim-s3-rest-refusal.js +18 -0
  516. package/dist/service/s3/serve/sim-s3-rest-refusal.js.map +1 -0
  517. package/dist/service/s3/serve/sim-s3-route.d.ts +40 -0
  518. package/dist/service/s3/serve/sim-s3-route.d.ts.map +1 -0
  519. package/dist/service/s3/serve/sim-s3-route.js +7 -0
  520. package/dist/service/s3/serve/sim-s3-route.js.map +1 -0
  521. package/dist/service/s3/serve/sim-s3-upload-checksum.d.ts +27 -0
  522. package/dist/service/s3/serve/sim-s3-upload-checksum.d.ts.map +1 -0
  523. package/dist/service/s3/serve/sim-s3-upload-checksum.js +86 -0
  524. package/dist/service/s3/serve/sim-s3-upload-checksum.js.map +1 -0
  525. package/dist/service/s3/serve/website/sim-s3-website-object-loader.d.ts +51 -0
  526. package/dist/service/s3/serve/website/sim-s3-website-object-loader.d.ts.map +1 -0
  527. package/dist/service/s3/serve/website/sim-s3-website-object-loader.js +75 -0
  528. package/dist/service/s3/serve/website/sim-s3-website-object-loader.js.map +1 -0
  529. package/dist/service/s3/serve/website/sim-s3-website-object.d.ts +18 -0
  530. package/dist/service/s3/serve/website/sim-s3-website-object.d.ts.map +1 -0
  531. package/dist/service/s3/serve/website/sim-s3-website-object.js +28 -0
  532. package/dist/service/s3/serve/website/sim-s3-website-object.js.map +1 -0
  533. package/dist/service/s3/serve/website/sim-s3-website-responses.d.ts +27 -0
  534. package/dist/service/s3/serve/website/sim-s3-website-responses.d.ts.map +1 -0
  535. package/dist/service/s3/serve/website/sim-s3-website-responses.js +44 -0
  536. package/dist/service/s3/serve/website/sim-s3-website-responses.js.map +1 -0
  537. package/dist/service/s3/sim-s3.d.ts +34 -9
  538. package/dist/service/s3/sim-s3.d.ts.map +1 -1
  539. package/dist/service/s3/sim-s3.js +65 -55
  540. package/dist/service/s3/sim-s3.js.map +1 -1
  541. package/dist/util/clock/sim-clock-date.d.ts +20 -0
  542. package/dist/util/clock/sim-clock-date.d.ts.map +1 -0
  543. package/dist/util/clock/sim-clock-date.js +43 -0
  544. package/dist/util/clock/sim-clock-date.js.map +1 -0
  545. package/package.json +17 -11
@@ -0,0 +1,35 @@
1
+ import { simIamPolicyDocumentStatements } from "../../../iam/policy/sim-iam-pol-document-statements.js";
2
+ import { simS3ConditionPinsPrincipal } from "./sim-s3-pinning-condition.js";
3
+ import { simS3PrincipalIsWildcard } from "./sim-s3-public-principal.js";
4
+ /**
5
+ * Decides whether a Bucket policy allows public access, which is what S3 Block
6
+ * Public Access judges a PutBucketPolicy call against.
7
+ *
8
+ * Real S3 starts by assuming a policy is public and looks for a reason it is
9
+ * not: a statement qualifies as non-public only when it grants access to fixed
10
+ * values. The simulator follows the same direction, so anything it cannot
11
+ * classify stays public and gets refused.
12
+ */
13
+ export class SimS3PublicPolicy {
14
+ /**
15
+ * Whether any statement in the document grants public access.
16
+ */
17
+ isPublic(document) {
18
+ return simIamPolicyDocumentStatements(document).some((statement) => this.statementIsPublic(statement));
19
+ }
20
+ statementIsPublic(statement) {
21
+ if (statement.Effect !== "Allow") {
22
+ return false;
23
+ }
24
+ // NotPrincipal grants to everyone except the listed identities, which is
25
+ // public by any reading.
26
+ if (statement.NotPrincipal !== undefined) {
27
+ return true;
28
+ }
29
+ if (!simS3PrincipalIsWildcard(statement.Principal)) {
30
+ return false;
31
+ }
32
+ return !simS3ConditionPinsPrincipal(statement.Condition);
33
+ }
34
+ }
35
+ //# sourceMappingURL=sim-s3-public-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-s3-public-policy.js","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/public-access/sim-s3-public-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,wDAAwD,CAAC;AAKxG,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAExE;;;;;;;;GAQG;AACH,MAAM,OAAO,iBAAiB;IAC5B;;OAEG;IACH,QAAQ,CAAC,QAA8B;QACrC,OAAO,8BAA8B,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CACjE,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAClC,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,SAAwC;QAChE,IAAI,SAAS,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,yEAAyE;QACzE,yBAAyB;QACzB,IAAI,SAAS,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;YACnD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,CAAC,2BAA2B,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import type { SimIamPolicyDocumentPrincipal } from "../../../iam/policy/sim-iam-policy.js";
2
+ /**
3
+ * Whether a policy statement Principal names everyone rather than fixed
4
+ * identities.
5
+ *
6
+ * Only the `AWS` principal type can be a wildcard that opens a Bucket to the
7
+ * world. A `Service`, `Federated` or `CanonicalUser` principal names something
8
+ * specific, so a statement granting one of those is not public.
9
+ */
10
+ export declare function simS3PrincipalIsWildcard(principal: SimIamPolicyDocumentPrincipal | undefined): boolean;
11
+ //# sourceMappingURL=sim-s3-public-principal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-s3-public-principal.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/public-access/sim-s3-public-principal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6BAA6B,EAE9B,MAAM,uCAAuC,CAAC;AAE/C;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,6BAA6B,GAAG,SAAS,GACnD,OAAO,CAkBT"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Whether a policy statement Principal names everyone rather than fixed
3
+ * identities.
4
+ *
5
+ * Only the `AWS` principal type can be a wildcard that opens a Bucket to the
6
+ * world. A `Service`, `Federated` or `CanonicalUser` principal names something
7
+ * specific, so a statement granting one of those is not public.
8
+ */
9
+ export function simS3PrincipalIsWildcard(principal) {
10
+ if (principal === undefined) {
11
+ // A Bucket policy statement must name a Principal. One that does not is
12
+ // not something the simulator can classify, so it counts as public.
13
+ return true;
14
+ }
15
+ if (typeof principal === "string") {
16
+ return principal === "*";
17
+ }
18
+ if (Array.isArray(principal)) {
19
+ return principal.includes("*");
20
+ }
21
+ return awsPrincipalIsWildcard(principal);
22
+ }
23
+ function awsPrincipalIsWildcard(principal) {
24
+ for (const [principalType, value] of Object.entries(principal)) {
25
+ if (principalType.toLowerCase() !== "aws") {
26
+ continue;
27
+ }
28
+ if (typeof value === "string" ? value === "*" : value.includes("*")) {
29
+ return true;
30
+ }
31
+ }
32
+ return false;
33
+ }
34
+ //# sourceMappingURL=sim-s3-public-principal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-s3-public-principal.js","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/public-access/sim-s3-public-principal.ts"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CACtC,SAAoD;IAEpD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,wEAAwE;QACxE,oEAAoE;QACpE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,SAAS,KAAK,GAAG,CAAC;IAC3B,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,sBAAsB,CAC3B,SAAgD,CACjD,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,SAA8C;IAE9C,KAAK,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/D,IAAI,aAAa,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;YAC1C,SAAS;QACX,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACpE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { SimS3BucketName } from "./sim-s3-bucket.js";
2
+ /**
3
+ * The ARN of a simulated S3 Bucket.
4
+ *
5
+ * S3 Bucket ARNs name no Account and no Region, because Bucket names are
6
+ * globally unique in S3. Object ARNs are this with `/<key>` appended.
7
+ */
8
+ export declare function simS3BucketArn(bucketName: SimS3BucketName | string): string;
9
+ //# sourceMappingURL=sim-s3-bucket-arn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-s3-bucket-arn.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/bucket/sim-s3-bucket-arn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,CAE3E"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * The ARN of a simulated S3 Bucket.
3
+ *
4
+ * S3 Bucket ARNs name no Account and no Region, because Bucket names are
5
+ * globally unique in S3. Object ARNs are this with `/<key>` appended.
6
+ */
7
+ export function simS3BucketArn(bucketName) {
8
+ return `arn:aws:s3:::${bucketName}`;
9
+ }
10
+ //# sourceMappingURL=sim-s3-bucket-arn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-s3-bucket-arn.js","sourceRoot":"","sources":["../../../../src/service/s3/bucket/sim-s3-bucket-arn.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,UAAoC;IACjE,OAAO,gBAAgB,UAAU,EAAE,CAAC;AACtC,CAAC"}
@@ -2,6 +2,7 @@ import type { Brand } from "../../../util/brand.type.js";
2
2
  import type { SimS3BucketStorage } from "../storage/s3-bucket-storage.js";
3
3
  import type { SimS3Object } from "../object/s3-object.js";
4
4
  import { SimS3BucketWebsite } from "./website/sim-s3-bucket-website.js";
5
+ import { SimS3PublicAccessBlock } from "./public-access/sim-s3-public-access-block.js";
5
6
  import type { SimAwsAccountRegionScope } from "../../aws/sim-aws-account-region-scope.js";
6
7
  import type { SimIamPolicyDocument } from "../../iam/policy/sim-iam-policy.js";
7
8
  export type SimS3BucketName = Brand<string, "SimS3BucketName">;
@@ -11,6 +12,7 @@ interface SimS3BucketProperties {
11
12
  readonly storage?: SimS3BucketStorage;
12
13
  readonly website?: SimS3BucketWebsite;
13
14
  readonly policy?: SimIamPolicyDocument | undefined;
15
+ readonly publicAccessBlock?: SimS3PublicAccessBlock;
14
16
  }
15
17
  /**
16
18
  * Simulated S3 Bucket.
@@ -21,6 +23,7 @@ export declare class SimS3Bucket {
21
23
  private storage;
22
24
  private website;
23
25
  private policy;
26
+ private publicAccessBlock;
24
27
  constructor(properties: SimS3BucketProperties);
25
28
  /**
26
29
  * Put a simulated S3 Object into storage.
@@ -54,6 +57,28 @@ export declare class SimS3Bucket {
54
57
  * Get the Bucket resource policy.
55
58
  */
56
59
  getPolicy(): SimIamPolicyDocument | undefined;
60
+ /**
61
+ * Remove the Bucket resource policy.
62
+ *
63
+ * Real S3 DeleteBucketPolicy is idempotent, so this reports nothing about
64
+ * whether there was a policy to remove.
65
+ */
66
+ deletePolicy(): void;
67
+ /**
68
+ * Replace this Bucket's Block Public Access settings.
69
+ */
70
+ configurePublicAccessBlock(publicAccessBlock: SimS3PublicAccessBlock): void;
71
+ /**
72
+ * Get this Bucket's Block Public Access settings.
73
+ */
74
+ getPublicAccessBlock(): SimS3PublicAccessBlock;
75
+ /**
76
+ * Remove this Bucket's Block Public Access settings.
77
+ *
78
+ * Removing the configuration returns the Bucket to the all-enabled state a
79
+ * new Bucket starts in, rather than leaving it unprotected.
80
+ */
81
+ deletePublicAccessBlock(): void;
57
82
  /**
58
83
  * Get the simulated AWS account Region scope for this Bucket.
59
84
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sim-s3-bucket.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/bucket/sim-s3-bucket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAK/E,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAE/D,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,UAAU,EAAE,eAAe,GAAG,MAAM,CAAC;IAC9C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;IACvD,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;CACpD;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,SAAgB,UAAU,EAAE,eAAe,CAAC;IAE5C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA2B;IAC9D,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,MAAM,CAAmC;IAEjD,YAAY,UAAU,EAAE,qBAAqB,EAgB5C;IAED;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAElD;IAED;;OAEG;IACG,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAE7D;IAED;;OAEG;IACG,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAEzD;IAED;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAErD;IAED;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAElD;IAED;;OAEG;IACH,UAAU,IAAI,kBAAkB,CAE/B;IAED;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAElD;IAED;;OAEG;IACH,SAAS,IAAI,oBAAoB,GAAG,SAAS,CAE5C;IAED;;OAEG;IACH,qBAAqB,IAAI,wBAAwB,CAEhD;IAED;;OAEG;IACH,aAAa,IAAI,GAAG,CAMnB;CACF"}
1
+ {"version":3,"file":"sim-s3-bucket.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/bucket/sim-s3-bucket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AACvF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAK/E,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAE/D,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,UAAU,EAAE,eAAe,GAAG,MAAM,CAAC;IAC9C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;IACvD,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;CACrD;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,SAAgB,UAAU,EAAE,eAAe,CAAC;IAE5C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA2B;IAC9D,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,iBAAiB,CAAyB;IAElD,YAAY,UAAU,EAAE,qBAAqB,EAkB5C;IAED;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAElD;IAED;;OAEG;IACG,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAE7D;IAED;;OAEG;IACG,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAEzD;IAED;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAErD;IAED;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAElD;IAED;;OAEG;IACH,UAAU,IAAI,kBAAkB,CAE/B;IAED;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAElD;IAED;;OAEG;IACH,SAAS,IAAI,oBAAoB,GAAG,SAAS,CAE5C;IAED;;;;;OAKG;IACH,YAAY,IAAI,IAAI,CAEnB;IAED;;OAEG;IACH,0BAA0B,CAAC,iBAAiB,EAAE,sBAAsB,GAAG,IAAI,CAE1E;IAED;;OAEG;IACH,oBAAoB,IAAI,sBAAsB,CAE7C;IAED;;;;;OAKG;IACH,uBAAuB,IAAI,IAAI,CAE9B;IAED;;OAEG;IACH,qBAAqB,IAAI,wBAAwB,CAEhD;IAED;;OAEG;IACH,aAAa,IAAI,GAAG,CAMnB;CACF"}
@@ -1,5 +1,6 @@
1
1
  import { MemoryS3BucketStorage } from "../storage/s3-memory-storage.js";
2
2
  import { SimS3BucketWebsite } from "./website/sim-s3-bucket-website.js";
3
+ import { SimS3PublicAccessBlock } from "./public-access/sim-s3-public-access-block.js";
3
4
  import { simS3BucketWebsiteUrl } from "./website/sim-s3-bucket-website-url.js";
4
5
  import { validateS3BucketName } from "./validate/validate-s3-bucket-name.js";
5
6
  import { simAwsAccountRegionScopeFactory } from "../../aws/sim-aws-account-region-scope.factory.js";
@@ -12,14 +13,16 @@ export class SimS3Bucket {
12
13
  storage;
13
14
  website;
14
15
  policy;
16
+ publicAccessBlock;
15
17
  constructor(properties) {
16
- const { bucketName, accountRegionScope = simAwsAccountRegionScopeFactory.make(), storage = new MemoryS3BucketStorage(), website = new SimS3BucketWebsite(), policy, } = properties;
18
+ const { bucketName, accountRegionScope = simAwsAccountRegionScopeFactory.make(), storage = new MemoryS3BucketStorage(), website = new SimS3BucketWebsite(), policy, publicAccessBlock = SimS3PublicAccessBlock.blockingAll(), } = properties;
17
19
  validateS3BucketName(bucketName);
18
20
  this.bucketName = bucketName;
19
21
  this.accountRegionScope = accountRegionScope;
20
22
  this.storage = storage;
21
23
  this.website = website;
22
24
  this.policy = policy;
25
+ this.publicAccessBlock = publicAccessBlock;
23
26
  }
24
27
  /**
25
28
  * Put a simulated S3 Object into storage.
@@ -69,6 +72,36 @@ export class SimS3Bucket {
69
72
  getPolicy() {
70
73
  return this.policy;
71
74
  }
75
+ /**
76
+ * Remove the Bucket resource policy.
77
+ *
78
+ * Real S3 DeleteBucketPolicy is idempotent, so this reports nothing about
79
+ * whether there was a policy to remove.
80
+ */
81
+ deletePolicy() {
82
+ this.policy = undefined;
83
+ }
84
+ /**
85
+ * Replace this Bucket's Block Public Access settings.
86
+ */
87
+ configurePublicAccessBlock(publicAccessBlock) {
88
+ this.publicAccessBlock = publicAccessBlock;
89
+ }
90
+ /**
91
+ * Get this Bucket's Block Public Access settings.
92
+ */
93
+ getPublicAccessBlock() {
94
+ return this.publicAccessBlock;
95
+ }
96
+ /**
97
+ * Remove this Bucket's Block Public Access settings.
98
+ *
99
+ * Removing the configuration returns the Bucket to the all-enabled state a
100
+ * new Bucket starts in, rather than leaving it unprotected.
101
+ */
102
+ deletePublicAccessBlock() {
103
+ this.publicAccessBlock = SimS3PublicAccessBlock.blockingAll();
104
+ }
72
105
  /**
73
106
  * Get the simulated AWS account Region scope for this Bucket.
74
107
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sim-s3-bucket.js","sourceRoot":"","sources":["../../../../src/service/s3/bucket/sim-s3-bucket.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAGxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,+BAA+B,EAAE,MAAM,mDAAmD,CAAC;AAYpG;;GAEG;AACH,MAAM,OAAO,WAAW;IACN,UAAU,CAAkB;IAE3B,kBAAkB,CAA2B;IACtD,OAAO,CAAqB;IAC5B,OAAO,CAAqB;IAC5B,MAAM,CAAmC;IAEjD,YAAY,UAAiC;QAC3C,MAAM,EACJ,UAAU,EACV,kBAAkB,GAAG,+BAA+B,CAAC,IAAI,EAAE,EAC3D,OAAO,GAAG,IAAI,qBAAqB,EAAE,EACrC,OAAO,GAAG,IAAI,kBAAkB,EAAE,EAClC,MAAM,GACP,GAAG,UAAU,CAAC;QAEf,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAEjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,MAAmB;QACjC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,GAAW;QACzB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,MAAe;QAC/B,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,OAA2B;QAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,OAA2B;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,MAA4B;QAC1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,qBAAqB,CAC1B,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,OAAO,CACb,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"sim-s3-bucket.js","sourceRoot":"","sources":["../../../../src/service/s3/bucket/sim-s3-bucket.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { AwsRegionName } from "../../aws/sim-aws-region.js";
2
+ import type { SimS3BucketName } from "./sim-s3-bucket.js";
3
+ /**
4
+ * The simulated S3 REST API endpoint for a Region.
5
+ *
6
+ * This is the URL an AWS SDK client is pointed at, and the client adds the
7
+ * Bucket to it for itself, as it does against real S3. Handing out the service
8
+ * endpoint rather than a Bucket one is therefore what lets the real SDK, and
9
+ * the real presigner, build simulated S3 URLs without being told how.
10
+ */
11
+ export declare function simS3ServiceUrl(regionName: AwsRegionName): URL;
12
+ /**
13
+ * The simulated S3 REST API endpoint for one Bucket, in virtual-hosted style.
14
+ */
15
+ export declare function simS3BucketUrl(bucketName: SimS3BucketName, regionName: AwsRegionName): URL;
16
+ //# sourceMappingURL=sim-s3-endpoint-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-s3-endpoint-url.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/bucket/sim-s3-endpoint-url.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,aAAa,GAAG,GAAG,CAE9D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,eAAe,EAC3B,UAAU,EAAE,aAAa,GACxB,GAAG,CAIL"}
@@ -0,0 +1,19 @@
1
+ import { simAwsLocalConfig } from "../../../serve/http/local-server/sim-aws-local.config.js";
2
+ /**
3
+ * The simulated S3 REST API endpoint for a Region.
4
+ *
5
+ * This is the URL an AWS SDK client is pointed at, and the client adds the
6
+ * Bucket to it for itself, as it does against real S3. Handing out the service
7
+ * endpoint rather than a Bucket one is therefore what lets the real SDK, and
8
+ * the real presigner, build simulated S3 URLs without being told how.
9
+ */
10
+ export function simS3ServiceUrl(regionName) {
11
+ return new URL(`http://s3.${regionName}.${simAwsLocalConfig.hostname}/`);
12
+ }
13
+ /**
14
+ * The simulated S3 REST API endpoint for one Bucket, in virtual-hosted style.
15
+ */
16
+ export function simS3BucketUrl(bucketName, regionName) {
17
+ return new URL(`http://${bucketName}.s3.${regionName}.${simAwsLocalConfig.hostname}/`);
18
+ }
19
+ //# sourceMappingURL=sim-s3-endpoint-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-s3-endpoint-url.js","sourceRoot":"","sources":["../../../../src/service/s3/bucket/sim-s3-endpoint-url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0DAA0D,CAAC;AAI7F;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,UAAyB;IACvD,OAAO,IAAI,GAAG,CAAC,aAAa,UAAU,IAAI,iBAAiB,CAAC,QAAQ,GAAG,CAAC,CAAC;AAC3E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,UAA2B,EAC3B,UAAyB;IAEzB,OAAO,IAAI,GAAG,CACZ,UAAU,UAAU,OAAO,UAAU,IAAI,iBAAiB,CAAC,QAAQ,GAAG,CACvE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { SimS3 } from "../../sim-s3.js";
2
+ /**
3
+ * Make a Bucket's Objects publicly readable, as a static website Bucket must
4
+ * be.
5
+ *
6
+ * Real S3 serves a website endpoint only what the Bucket policy has made
7
+ * readable, and blocks a public Bucket policy on a new Bucket, so a website
8
+ * needs both steps. This issues exactly the two commands a real deployment
9
+ * issues rather than reaching around them, so a test using it exercises the
10
+ * same path a user's own setup would.
11
+ */
12
+ export declare function grantPublicWebsiteRead(simS3: SimS3, bucketName: string): Promise<void>;
13
+ //# sourceMappingURL=sim-s3-public-website.fixture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-s3-public-website.fixture.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/website/sim-s3-public-website.fixture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAyBf"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Make a Bucket's Objects publicly readable, as a static website Bucket must
3
+ * be.
4
+ *
5
+ * Real S3 serves a website endpoint only what the Bucket policy has made
6
+ * readable, and blocks a public Bucket policy on a new Bucket, so a website
7
+ * needs both steps. This issues exactly the two commands a real deployment
8
+ * issues rather than reaching around them, so a test using it exercises the
9
+ * same path a user's own setup would.
10
+ */
11
+ export async function grantPublicWebsiteRead(simS3, bucketName) {
12
+ await simS3.putPublicAccessBlock({
13
+ input: {
14
+ Bucket: bucketName,
15
+ PublicAccessBlockConfiguration: {
16
+ BlockPublicAcls: true,
17
+ IgnorePublicAcls: true,
18
+ },
19
+ },
20
+ });
21
+ await simS3.putBucketPolicy({
22
+ input: {
23
+ Bucket: bucketName,
24
+ Policy: JSON.stringify({
25
+ Version: "2012-10-17",
26
+ Statement: {
27
+ Effect: "Allow",
28
+ Principal: "*",
29
+ Action: "s3:GetObject",
30
+ Resource: `arn:aws:s3:::${bucketName}/*`,
31
+ },
32
+ }),
33
+ },
34
+ });
35
+ }
36
+ //# sourceMappingURL=sim-s3-public-website.fixture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-s3-public-website.fixture.js","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/website/sim-s3-public-website.fixture.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,KAAY,EACZ,UAAkB;IAElB,MAAM,KAAK,CAAC,oBAAoB,CAAC;QAC/B,KAAK,EAAE;YACL,MAAM,EAAE,UAAU;YAClB,8BAA8B,EAAE;gBAC9B,eAAe,EAAE,IAAI;gBACrB,gBAAgB,EAAE,IAAI;aACvB;SACF;KACF,CAAC,CAAC;IAEH,MAAM,KAAK,CAAC,eAAe,CAAC;QAC1B,KAAK,EAAE;YACL,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;gBACrB,OAAO,EAAE,YAAY;gBACrB,SAAS,EAAE;oBACT,MAAM,EAAE,OAAO;oBACf,SAAS,EAAE,GAAG;oBACd,MAAM,EAAE,cAAc;oBACtB,QAAQ,EAAE,gBAAgB,UAAU,IAAI;iBACzC;aACF,CAAC;SACH;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -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 type { SimS3 } from "../../sim-s3.js";
4
+ import type { SimS3Bucket } from "../../bucket/sim-s3-bucket.js";
5
+ interface SimCfnS3BucketCreatorProperties {
6
+ readonly simS3: SimS3;
7
+ }
8
+ /**
9
+ * Creates simulated S3 Buckets from AWS::S3::Bucket CloudFormation Resources.
10
+ */
11
+ export declare class SimCfnS3BucketCreator {
12
+ private readonly simS3;
13
+ constructor(properties: SimCfnS3BucketCreatorProperties);
14
+ /**
15
+ * Create a simulated Bucket, with its website configuration when declared.
16
+ */
17
+ create(resource: SimCfnResource, properties: SimCfnTemplateValueRecord): Promise<SimS3Bucket>;
18
+ /**
19
+ * Read PublicAccessBlockConfiguration, which a template uses to open a
20
+ * Bucket up from the all-blocked state a new Bucket starts in.
21
+ */
22
+ private publicAccessConfigurationForResource;
23
+ private bucketNameForResource;
24
+ private websiteConfigurationForResource;
25
+ }
26
+ export {};
27
+ //# sourceMappingURL=sim-cfn-s3-bucket-creator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-s3-bucket-creator.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kEAAkE,CAAC;AAClH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAMjE,UAAU,+BAA+B;IACvC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAE9B,YAAY,UAAU,EAAE,+BAA+B,EAEtD;IAED;;OAEG;IACG,MAAM,CACV,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,yBAAyB,GACpC,OAAO,CAAC,WAAW,CAAC,CAwCtB;IAED;;;OAGG;IACH,OAAO,CAAC,oCAAoC;IAiB5C,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,+BAA+B;CAqCxC"}
@@ -0,0 +1,92 @@
1
+ import { validateS3BucketName } from "../../bucket/validate/validate-s3-bucket-name.js";
2
+ import { assertDefined } from "../../../../util/type-guard/defined.js";
3
+ /**
4
+ * Creates simulated S3 Buckets from AWS::S3::Bucket CloudFormation Resources.
5
+ */
6
+ export class SimCfnS3BucketCreator {
7
+ simS3;
8
+ constructor(properties) {
9
+ this.simS3 = properties.simS3;
10
+ }
11
+ /**
12
+ * Create a simulated Bucket, with its website configuration when declared.
13
+ */
14
+ async create(resource, properties) {
15
+ const bucketName = this.bucketNameForResource(resource, properties);
16
+ validateS3BucketName(bucketName);
17
+ await this.simS3.createBucket({
18
+ input: {
19
+ Bucket: bucketName,
20
+ },
21
+ });
22
+ const bucket = this.simS3.getSimBucketByName(bucketName);
23
+ assertDefined(bucket, `sim S3 Bucket ${bucketName} after CloudFormation creation`);
24
+ const websiteConfig = this.websiteConfigurationForResource(properties);
25
+ if (websiteConfig !== undefined) {
26
+ await this.simS3.putBucketWebsite({
27
+ input: {
28
+ Bucket: bucketName,
29
+ WebsiteConfiguration: websiteConfig,
30
+ },
31
+ });
32
+ }
33
+ const publicAccessConfig = this.publicAccessConfigurationForResource(properties);
34
+ if (publicAccessConfig !== undefined) {
35
+ await this.simS3.putPublicAccessBlock({
36
+ input: {
37
+ Bucket: bucketName,
38
+ PublicAccessBlockConfiguration: publicAccessConfig,
39
+ },
40
+ });
41
+ }
42
+ return bucket;
43
+ }
44
+ /**
45
+ * Read PublicAccessBlockConfiguration, which a template uses to open a
46
+ * Bucket up from the all-blocked state a new Bucket starts in.
47
+ */
48
+ publicAccessConfigurationForResource(properties) {
49
+ const publicAccessConfig = properties["PublicAccessBlockConfiguration"];
50
+ if (publicAccessConfig === undefined ||
51
+ publicAccessConfig === null ||
52
+ typeof publicAccessConfig !== "object" ||
53
+ Array.isArray(publicAccessConfig)) {
54
+ return undefined;
55
+ }
56
+ return publicAccessConfig;
57
+ }
58
+ bucketNameForResource(resource, properties) {
59
+ const bucketName = properties["BucketName"];
60
+ if (typeof bucketName === "string") {
61
+ return bucketName;
62
+ }
63
+ return resource.logicalId.toLowerCase();
64
+ }
65
+ websiteConfigurationForResource(properties) {
66
+ const websiteConfig = properties["WebsiteConfiguration"];
67
+ if (websiteConfig === undefined ||
68
+ websiteConfig === null ||
69
+ typeof websiteConfig !== "object" ||
70
+ Array.isArray(websiteConfig)) {
71
+ return undefined;
72
+ }
73
+ if ("RoutingRules" in websiteConfig &&
74
+ !Array.isArray(websiteConfig["RoutingRules"])) {
75
+ return undefined;
76
+ }
77
+ return {
78
+ ...websiteConfig,
79
+ IndexDocument: typeof websiteConfig["IndexDocument"] === "string"
80
+ ? {
81
+ Suffix: websiteConfig["IndexDocument"],
82
+ }
83
+ : websiteConfig["IndexDocument"],
84
+ ErrorDocument: typeof websiteConfig["ErrorDocument"] === "string"
85
+ ? {
86
+ Key: websiteConfig["ErrorDocument"],
87
+ }
88
+ : websiteConfig["ErrorDocument"],
89
+ };
90
+ }
91
+ }
92
+ //# sourceMappingURL=sim-cfn-s3-bucket-creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-s3-bucket-creator.js","sourceRoot":"","sources":["../../../../../src/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
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 { SimS3Bucket } from "../../bucket/sim-s3-bucket.js";
4
+ import type { SimS3 } from "../../sim-s3.js";
5
+ interface SimCfnS3BucketPolicyCreatorProperties {
6
+ readonly simS3: SimS3;
7
+ }
8
+ /**
9
+ * Creates simulated S3 Bucket policies from AWS::S3::BucketPolicy Resources.
10
+ *
11
+ * This is what CDK emits for every `grantRead`, `grantPut` and
12
+ * `addToResourcePolicy`, so a synthesized template reaches it whether or not
13
+ * the app mentions a Bucket policy itself. Creation goes through the normal
14
+ * PutBucketPolicy command path, so a policy declared in a template is validated
15
+ * and enforced exactly as one applied through the SDK.
16
+ */
17
+ export declare class SimCfnS3BucketPolicyCreator {
18
+ private readonly simS3;
19
+ constructor(properties: SimCfnS3BucketPolicyCreatorProperties);
20
+ /**
21
+ * Attach a policy to the Bucket named by the Resource.
22
+ *
23
+ * The simulated Bucket is returned as the Resource's simulated object,
24
+ * because a Bucket policy has no existence of its own in S3: it is state on
25
+ * the Bucket it is attached to.
26
+ */
27
+ create(resource: SimCfnResource, properties: SimCfnTemplateValueRecord): Promise<SimS3Bucket>;
28
+ private bucketNameForResource;
29
+ private policyDocumentForResource;
30
+ }
31
+ export {};
32
+ //# sourceMappingURL=sim-cfn-s3-bucket-policy-creator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-s3-bucket-policy-creator.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kEAAkE,CAAC;AAClH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAG7C,UAAU,qCAAqC;IAC7C,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACvB;AAED;;;;;;;;GAQG;AACH,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAE9B,YAAY,UAAU,EAAE,qCAAqC,EAE5D;IAED;;;;;;OAMG;IACG,MAAM,CACV,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,yBAAyB,GACpC,OAAO,CAAC,WAAW,CAAC,CAkBtB;IAED,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,yBAAyB;CAmBlC"}
@@ -0,0 +1,55 @@
1
+ import { jsonStringify } from "../../../../util/type-guard/json.js";
2
+ import { assertDefined } from "../../../../util/type-guard/defined.js";
3
+ /**
4
+ * Creates simulated S3 Bucket policies from AWS::S3::BucketPolicy Resources.
5
+ *
6
+ * This is what CDK emits for every `grantRead`, `grantPut` and
7
+ * `addToResourcePolicy`, so a synthesized template reaches it whether or not
8
+ * the app mentions a Bucket policy itself. Creation goes through the normal
9
+ * PutBucketPolicy command path, so a policy declared in a template is validated
10
+ * and enforced exactly as one applied through the SDK.
11
+ */
12
+ export class SimCfnS3BucketPolicyCreator {
13
+ simS3;
14
+ constructor(properties) {
15
+ this.simS3 = properties.simS3;
16
+ }
17
+ /**
18
+ * Attach a policy to the Bucket named by the Resource.
19
+ *
20
+ * The simulated Bucket is returned as the Resource's simulated object,
21
+ * because a Bucket policy has no existence of its own in S3: it is state on
22
+ * the Bucket it is attached to.
23
+ */
24
+ async create(resource, properties) {
25
+ const bucketName = this.bucketNameForResource(resource, properties);
26
+ const policyDocument = this.policyDocumentForResource(resource, properties);
27
+ await this.simS3.putBucketPolicy({
28
+ input: {
29
+ Bucket: bucketName,
30
+ Policy: jsonStringify(policyDocument),
31
+ },
32
+ });
33
+ const bucket = this.simS3.getSimBucketByName(bucketName);
34
+ assertDefined(bucket, `sim S3 Bucket ${bucketName} after CloudFormation Bucket policy creation`);
35
+ return bucket;
36
+ }
37
+ bucketNameForResource(resource, properties) {
38
+ const bucketName = properties["Bucket"];
39
+ if (typeof bucketName !== "string") {
40
+ throw new TypeError(`AWS::S3::BucketPolicy ${resource.logicalId} requires a Bucket name string, got ${typeof bucketName}`);
41
+ }
42
+ return bucketName;
43
+ }
44
+ policyDocumentForResource(resource, properties) {
45
+ const policyDocument = properties["PolicyDocument"];
46
+ if (policyDocument === undefined ||
47
+ policyDocument === null ||
48
+ typeof policyDocument !== "object" ||
49
+ Array.isArray(policyDocument)) {
50
+ throw new TypeError(`AWS::S3::BucketPolicy ${resource.logicalId} requires a PolicyDocument object`);
51
+ }
52
+ return policyDocument;
53
+ }
54
+ }
55
+ //# sourceMappingURL=sim-cfn-s3-bucket-policy-creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-s3-bucket-policy-creator.js","sourceRoot":"","sources":["../../../../../src/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAKpE,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAMvE;;;;;;;;GAQG;AACH,MAAM,OAAO,2BAA2B;IACrB,KAAK,CAAQ;IAE9B,YAAY,UAAiD;QAC3D,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;IAChC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CACV,QAAwB,EACxB,UAAqC;QAErC,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACpE,MAAM,cAAc,GAAG,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAE5E,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;YAC/B,KAAK,EAAE;gBACL,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC;aACtC;SACF,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QACzD,aAAa,CACX,MAAM,EACN,iBAAiB,UAAU,8CAA8C,CAC1E,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,qBAAqB,CAC3B,QAAwB,EACxB,UAAqC;QAErC,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAExC,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,IAAI,SAAS,CACjB,yBAAyB,QAAQ,CAAC,SAAS,uCAAuC,OAAO,UAAU,EAAE,CACtG,CAAC;QACJ,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,yBAAyB,CAC/B,QAAwB,EACxB,UAAqC;QAErC,MAAM,cAAc,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAEpD,IACE,cAAc,KAAK,SAAS;YAC5B,cAAc,KAAK,IAAI;YACvB,OAAO,cAAc,KAAK,QAAQ;YAClC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAC7B,CAAC;YACD,MAAM,IAAI,SAAS,CACjB,yBAAyB,QAAQ,CAAC,SAAS,mCAAmC,CAC/E,CAAC;QACJ,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;CACF"}
@@ -5,14 +5,12 @@ import type { SimCfnServiceResourceFactory } from "../../cloudformation/resource
5
5
  * CloudFormation Resource factory for simulated S3 resources.
6
6
  */
7
7
  export declare class SimS3CloudFormationResourceFactory implements SimCfnServiceResourceFactory {
8
- private readonly simS3;
8
+ private readonly bucketCreator;
9
+ private readonly bucketPolicyCreator;
9
10
  constructor(simS3: SimS3);
10
11
  /**
11
12
  * Create a simulated S3 resource from a CloudFormation Resource.
12
13
  */
13
14
  create(resourceTypeName: string, resource: SimCfnResource, context: SimCloudFormationResourceCreateContext): Promise<object | undefined>;
14
- private createBucket;
15
- private bucketNameForResource;
16
- private websiteConfigurationForResource;
17
15
  }
18
16
  //# sourceMappingURL=sim-cfn-s3-resource-factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-s3-resource-factory.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/cfn/sim-cfn-s3-resource-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,sCAAsC,EACvC,MAAM,mDAAmD,CAAC;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wEAAwE,CAAC;AAM3H;;GAEG;AACH,qBAAa,kCAAmC,YAAW,4BAA4B;IACzE,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAlC,YAA6B,KAAK,EAAE,KAAK,EAAI;IAE7C;;OAEG;IACG,MAAM,CACV,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,sCAAsC,GAC9C,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAW7B;YAEa,YAAY;IAoC1B,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,+BAA+B;CAuCxC"}
1
+ {"version":3,"file":"sim-cfn-s3-resource-factory.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/cfn/sim-cfn-s3-resource-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,sCAAsC,EACvC,MAAM,mDAAmD,CAAC;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wEAAwE,CAAC;AAI3H;;GAEG;AACH,qBAAa,kCAAmC,YAAW,4BAA4B;IACrF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA8B;IAElE,YAAY,KAAK,EAAE,KAAK,EAGvB;IAED;;OAEG;IACG,MAAM,CACV,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,sCAAsC,GAC9C,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAoB7B;CACF"}