@kensio/yulin 0.32.0 → 0.33.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 (612) hide show
  1. package/dist/docs/tsconfig.tsbuildinfo +1 -1
  2. package/dist/index.d.ts +0 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +0 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/serve/http/local-server/sim-aws-local-server.d.ts.map +1 -1
  7. package/dist/serve/http/local-server/sim-aws-local-server.js +4 -2
  8. package/dist/serve/http/local-server/sim-aws-local-server.js.map +1 -1
  9. package/dist/serve/http/sim-aws-http.d.ts.map +1 -1
  10. package/dist/serve/http/sim-aws-http.js +2 -1
  11. package/dist/serve/http/sim-aws-http.js.map +1 -1
  12. package/dist/service/acm/certificate/sim-acm-certificate.d.ts.map +1 -1
  13. package/dist/service/acm/certificate/sim-acm-certificate.js +2 -2
  14. package/dist/service/acm/certificate/sim-acm-certificate.js.map +1 -1
  15. package/dist/service/acm/cfn/property/sim-cfn-acm-cert-prop-reader.d.ts.map +1 -1
  16. package/dist/service/acm/cfn/property/sim-cfn-acm-cert-prop-reader.js +2 -2
  17. package/dist/service/acm/cfn/property/sim-cfn-acm-cert-prop-reader.js.map +1 -1
  18. package/dist/service/acm/command/describe-certificate/describe-certificate-authorizer.d.ts +31 -0
  19. package/dist/service/acm/command/describe-certificate/describe-certificate-authorizer.d.ts.map +1 -0
  20. package/dist/service/acm/command/describe-certificate/describe-certificate-authorizer.js +41 -0
  21. package/dist/service/acm/command/describe-certificate/describe-certificate-authorizer.js.map +1 -0
  22. package/dist/service/acm/command/describe-certificate/describe-certificate.handler.d.ts +13 -1
  23. package/dist/service/acm/command/describe-certificate/describe-certificate.handler.d.ts.map +1 -1
  24. package/dist/service/acm/command/describe-certificate/describe-certificate.handler.js +12 -2
  25. package/dist/service/acm/command/describe-certificate/describe-certificate.handler.js.map +1 -1
  26. package/dist/service/acm/command/list-certificates/list-certificates-authorizer.d.ts +31 -0
  27. package/dist/service/acm/command/list-certificates/list-certificates-authorizer.d.ts.map +1 -0
  28. package/dist/service/acm/command/list-certificates/list-certificates-authorizer.js +41 -0
  29. package/dist/service/acm/command/list-certificates/list-certificates-authorizer.js.map +1 -0
  30. package/dist/service/acm/command/list-certificates/list-certificates-page-builder.d.ts +82 -0
  31. package/dist/service/acm/command/list-certificates/list-certificates-page-builder.d.ts.map +1 -0
  32. package/dist/service/acm/command/list-certificates/list-certificates-page-builder.js +128 -0
  33. package/dist/service/acm/command/list-certificates/list-certificates-page-builder.js.map +1 -0
  34. package/dist/service/acm/command/list-certificates/list-certificates.handler.d.ts +21 -7
  35. package/dist/service/acm/command/list-certificates/list-certificates.handler.d.ts.map +1 -1
  36. package/dist/service/acm/command/list-certificates/list-certificates.handler.js +22 -50
  37. package/dist/service/acm/command/list-certificates/list-certificates.handler.js.map +1 -1
  38. package/dist/service/acm/command/request-certificate/request-certificate-authorizer.d.ts +28 -0
  39. package/dist/service/acm/command/request-certificate/request-certificate-authorizer.d.ts.map +1 -0
  40. package/dist/service/acm/command/request-certificate/request-certificate-authorizer.js +38 -0
  41. package/dist/service/acm/command/request-certificate/request-certificate-authorizer.js.map +1 -0
  42. package/dist/service/acm/command/request-certificate/request-certificate-validator.d.ts +25 -0
  43. package/dist/service/acm/command/request-certificate/request-certificate-validator.d.ts.map +1 -0
  44. package/dist/service/acm/command/request-certificate/request-certificate-validator.js +32 -0
  45. package/dist/service/acm/command/request-certificate/request-certificate-validator.js.map +1 -0
  46. package/dist/service/acm/command/request-certificate/request-certificate.handler.d.ts +15 -2
  47. package/dist/service/acm/command/request-certificate/request-certificate.handler.d.ts.map +1 -1
  48. package/dist/service/acm/command/request-certificate/request-certificate.handler.js +19 -10
  49. package/dist/service/acm/command/request-certificate/request-certificate.handler.js.map +1 -1
  50. package/dist/service/acm/sim-acm.d.ts +10 -3
  51. package/dist/service/acm/sim-acm.d.ts.map +1 -1
  52. package/dist/service/acm/sim-acm.js +13 -7
  53. package/dist/service/acm/sim-acm.js.map +1 -1
  54. package/dist/service/aws/caller/sim-aws-account-root-principal.d.ts.map +1 -1
  55. package/dist/service/aws/caller/sim-aws-account-root-principal.js +1 -3
  56. package/dist/service/aws/caller/sim-aws-account-root-principal.js.map +1 -1
  57. package/dist/service/aws/caller/sim-aws-caller-resolver.d.ts +40 -0
  58. package/dist/service/aws/caller/sim-aws-caller-resolver.d.ts.map +1 -0
  59. package/dist/service/aws/caller/sim-aws-caller-resolver.js +62 -0
  60. package/dist/service/aws/caller/sim-aws-caller-resolver.js.map +1 -0
  61. package/dist/service/aws/caller/sim-aws-caller.d.ts +23 -25
  62. package/dist/service/aws/caller/sim-aws-caller.d.ts.map +1 -1
  63. package/dist/service/aws/caller/sim-aws-caller.js +1 -6
  64. package/dist/service/aws/caller/sim-aws-caller.js.map +1 -1
  65. package/dist/service/aws/factory/sim-aws-account-service-cache.d.ts.map +1 -1
  66. package/dist/service/aws/factory/sim-aws-account-service-cache.js +10 -5
  67. package/dist/service/aws/factory/sim-aws-account-service-cache.js.map +1 -1
  68. package/dist/service/aws/factory/sim-aws-service-factory.d.ts +9 -4
  69. package/dist/service/aws/factory/sim-aws-service-factory.d.ts.map +1 -1
  70. package/dist/service/aws/factory/sim-aws-service-factory.js +20 -4
  71. package/dist/service/aws/factory/sim-aws-service-factory.js.map +1 -1
  72. package/dist/service/aws/sim-aws-account-region-scope.d.ts +7 -2
  73. package/dist/service/aws/sim-aws-account-region-scope.d.ts.map +1 -1
  74. package/dist/service/aws/sim-aws-account-region-scope.js +8 -2
  75. package/dist/service/aws/sim-aws-account-region-scope.js.map +1 -1
  76. package/dist/service/aws/sim-aws-account.d.ts +6 -1
  77. package/dist/service/aws/sim-aws-account.d.ts.map +1 -1
  78. package/dist/service/aws/sim-aws-account.js +7 -1
  79. package/dist/service/aws/sim-aws-account.js.map +1 -1
  80. package/dist/service/aws/sim-aws-region.d.ts +1 -1
  81. package/dist/service/aws/sim-aws-region.d.ts.map +1 -1
  82. package/dist/service/aws/sim-aws-region.js +1 -1
  83. package/dist/service/aws/sim-aws-region.js.map +1 -1
  84. package/dist/service/aws/sim-aws.d.ts +5 -0
  85. package/dist/service/aws/sim-aws.d.ts.map +1 -1
  86. package/dist/service/aws/sim-aws.js +6 -0
  87. package/dist/service/aws/sim-aws.js.map +1 -1
  88. package/dist/service/cloudformation/bind/validate/sim-cfn-exec-binding-matcher.js +1 -1
  89. package/dist/service/cloudformation/bind/validate/sim-cfn-exec-binding-matcher.js.map +1 -1
  90. package/dist/service/cloudformation/cdk/s3/bucket-deployment/sim-cdk-bucket-deployment.js +1 -1
  91. package/dist/service/cloudformation/cdk/s3/bucket-deployment/sim-cdk-bucket-deployment.js.map +1 -1
  92. package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.d.ts.map +1 -1
  93. package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.js +9 -6
  94. package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.js.map +1 -1
  95. package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.d.ts.map +1 -1
  96. package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.js +4 -1
  97. package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.js.map +1 -1
  98. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-stack-describer.d.ts.map +1 -1
  99. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-stack-describer.js +5 -2
  100. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-stack-describer.js.map +1 -1
  101. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cff-cfn.factory.js +3 -3
  102. package/dist/service/cloudformation/resource/cfn/cloudfront/sim-cff-cfn.factory.js.map +1 -1
  103. package/dist/service/cloudformation/resource/sim-cfn-resource.d.ts.map +1 -1
  104. package/dist/service/cloudformation/resource/sim-cfn-resource.js +3 -2
  105. package/dist/service/cloudformation/resource/sim-cfn-resource.js.map +1 -1
  106. package/dist/service/cloudformation/sim-cloudformation.d.ts +2 -2
  107. package/dist/service/cloudformation/sim-cloudformation.d.ts.map +1 -1
  108. package/dist/service/cloudformation/sim-cloudformation.js +12 -12
  109. package/dist/service/cloudformation/sim-cloudformation.js.map +1 -1
  110. package/dist/service/cloudformation/stack/output/sim-cfn-stack-output-resolver.d.ts.map +1 -1
  111. package/dist/service/cloudformation/stack/output/sim-cfn-stack-output-resolver.js +3 -2
  112. package/dist/service/cloudformation/stack/output/sim-cfn-stack-output-resolver.js.map +1 -1
  113. package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts +5 -5
  114. package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts.map +1 -1
  115. package/dist/service/cloudformation/stack/sim-cfn-stack.js +8 -7
  116. package/dist/service/cloudformation/stack/sim-cfn-stack.js.map +1 -1
  117. package/dist/service/cloudformation/template/node/fn/sub/resolve/sim-cfn-fn-sub-unresolved-value.d.ts.map +1 -1
  118. package/dist/service/cloudformation/template/node/fn/sub/resolve/sim-cfn-fn-sub-unresolved-value.js +3 -1
  119. package/dist/service/cloudformation/template/node/fn/sub/resolve/sim-cfn-fn-sub-unresolved-value.js.map +1 -1
  120. package/dist/service/cloudformation/template/node/fn/sub/resolve/sim-cfn-fn-sub-variable-resolver.js +4 -2
  121. package/dist/service/cloudformation/template/node/fn/sub/resolve/sim-cfn-fn-sub-variable-resolver.js.map +1 -1
  122. package/dist/service/cloudformation/template/node/fn/sub/sim-cfn-fn-sub.d.ts.map +1 -1
  123. package/dist/service/cloudformation/template/node/fn/sub/sim-cfn-fn-sub.js +2 -2
  124. package/dist/service/cloudformation/template/node/fn/sub/sim-cfn-fn-sub.js.map +1 -1
  125. package/dist/service/cloudformation/template/node/fn/sub/template/sim-cfn-fn-sub-template.d.ts.map +1 -1
  126. package/dist/service/cloudformation/template/node/fn/sub/template/sim-cfn-fn-sub-template.js +2 -1
  127. package/dist/service/cloudformation/template/node/fn/sub/template/sim-cfn-fn-sub-template.js.map +1 -1
  128. package/dist/service/cloudformation/template/node/sim-cfn-object.d.ts.map +1 -1
  129. package/dist/service/cloudformation/template/node/sim-cfn-object.js +4 -1
  130. package/dist/service/cloudformation/template/node/sim-cfn-object.js.map +1 -1
  131. package/dist/service/cloudformation/template/parse/node/sim-cfn-node-parser.d.ts.map +1 -1
  132. package/dist/service/cloudformation/template/parse/node/sim-cfn-node-parser.js +2 -1
  133. package/dist/service/cloudformation/template/parse/node/sim-cfn-node-parser.js.map +1 -1
  134. package/dist/service/cloudformation/template/sim-cfn-template.d.ts.map +1 -1
  135. package/dist/service/cloudformation/template/sim-cfn-template.js +2 -1
  136. package/dist/service/cloudformation/template/sim-cfn-template.js.map +1 -1
  137. package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts +2 -2
  138. package/dist/service/cloudfront/behaviour/sim-cloud-front-behavior.d.ts.map +1 -1
  139. package/dist/service/cloudfront/cff/sim-cloudfront-function.d.ts.map +1 -1
  140. package/dist/service/cloudfront/cff/sim-cloudfront-function.js +1 -1
  141. package/dist/service/cloudfront/cff/sim-cloudfront-function.js.map +1 -1
  142. package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-create-input-builder.d.ts.map +1 -1
  143. package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-create-input-builder.js +3 -2
  144. package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-create-input-builder.js.map +1 -1
  145. package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-creator.d.ts.map +1 -1
  146. package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-creator.js +3 -2
  147. package/dist/service/cloudfront/cfn/cff/sim-cfn-cff-creator.js.map +1 -1
  148. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.d.ts.map +1 -1
  149. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js +3 -2
  150. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js.map +1 -1
  151. package/dist/service/cloudfront/command/create-distribution/create-distribution-authorizer.d.ts +27 -0
  152. package/dist/service/cloudfront/command/create-distribution/create-distribution-authorizer.d.ts.map +1 -0
  153. package/dist/service/cloudfront/command/create-distribution/create-distribution-authorizer.js +37 -0
  154. package/dist/service/cloudfront/command/create-distribution/create-distribution-authorizer.js.map +1 -0
  155. package/dist/service/cloudfront/command/create-distribution/create-distribution.cmd.d.ts +8 -8
  156. package/dist/service/cloudfront/command/create-distribution/create-distribution.cmd.d.ts.map +1 -1
  157. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts +8 -1
  158. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.d.ts.map +1 -1
  159. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.js +10 -2
  160. package/dist/service/cloudfront/command/create-distribution/create-distribution.handler.js.map +1 -1
  161. package/dist/service/cloudfront/command/create-function/create-function-authorizer.d.ts +26 -0
  162. package/dist/service/cloudfront/command/create-function/create-function-authorizer.d.ts.map +1 -0
  163. package/dist/service/cloudfront/command/create-function/create-function-authorizer.js +35 -0
  164. package/dist/service/cloudfront/command/create-function/create-function-authorizer.js.map +1 -0
  165. package/dist/service/cloudfront/command/create-function/create-function.cmd.d.ts +2 -2
  166. package/dist/service/cloudfront/command/create-function/create-function.cmd.d.ts.map +1 -1
  167. package/dist/service/cloudfront/command/create-function/create-function.handler.d.ts +8 -1
  168. package/dist/service/cloudfront/command/create-function/create-function.handler.d.ts.map +1 -1
  169. package/dist/service/cloudfront/command/create-function/create-function.handler.js +12 -3
  170. package/dist/service/cloudfront/command/create-function/create-function.handler.js.map +1 -1
  171. package/dist/service/cloudfront/command/get-distribution/get-distribution-authorizer.d.ts +27 -0
  172. package/dist/service/cloudfront/command/get-distribution/get-distribution-authorizer.d.ts.map +1 -0
  173. package/dist/service/cloudfront/command/get-distribution/get-distribution-authorizer.js +36 -0
  174. package/dist/service/cloudfront/command/get-distribution/get-distribution-authorizer.js.map +1 -0
  175. package/dist/service/cloudfront/command/get-distribution/get-distribution.cmd.d.ts +2 -2
  176. package/dist/service/cloudfront/command/get-distribution/get-distribution.cmd.d.ts.map +1 -1
  177. package/dist/service/cloudfront/command/get-distribution/get-distribution.handler.d.ts +10 -1
  178. package/dist/service/cloudfront/command/get-distribution/get-distribution.handler.d.ts.map +1 -1
  179. package/dist/service/cloudfront/command/get-distribution/get-distribution.handler.js +10 -2
  180. package/dist/service/cloudfront/command/get-distribution/get-distribution.handler.js.map +1 -1
  181. package/dist/service/cloudfront/controller/sim-cloudfront-controller.d.ts.map +1 -1
  182. package/dist/service/cloudfront/controller/sim-cloudfront-controller.js +2 -1
  183. package/dist/service/cloudfront/controller/sim-cloudfront-controller.js.map +1 -1
  184. package/dist/service/cloudfront/distribution/configurator/sim-cff-associations-configure.d.ts.map +1 -1
  185. package/dist/service/cloudfront/distribution/configurator/sim-cff-associations-configure.js +19 -16
  186. package/dist/service/cloudfront/distribution/configurator/sim-cff-associations-configure.js.map +1 -1
  187. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.js +3 -3
  188. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-behavior-configurator.js.map +1 -1
  189. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.d.ts +2 -2
  190. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.d.ts.map +1 -1
  191. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.js +3 -3
  192. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.js.map +1 -1
  193. package/dist/service/cloudfront/origin/s3/sim-cloudfront-s3-origin.d.ts.map +1 -1
  194. package/dist/service/cloudfront/origin/s3/sim-cloudfront-s3-origin.js +3 -2
  195. package/dist/service/cloudfront/origin/s3/sim-cloudfront-s3-origin.js.map +1 -1
  196. package/dist/service/cloudfront/resolver/sim-cloud-front-behavior-resolver.d.ts.map +1 -1
  197. package/dist/service/cloudfront/resolver/sim-cloud-front-behavior-resolver.js +6 -3
  198. package/dist/service/cloudfront/resolver/sim-cloud-front-behavior-resolver.js.map +1 -1
  199. package/dist/service/cloudfront/router/alternate-domain/sim-cf-alternate-domain-router.js +3 -1
  200. package/dist/service/cloudfront/router/alternate-domain/sim-cf-alternate-domain-router.js.map +1 -1
  201. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.d.ts.map +1 -1
  202. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.js +2 -1
  203. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.js.map +1 -1
  204. package/dist/service/cloudfront/sim-cloudfront.d.ts +10 -3
  205. package/dist/service/cloudfront/sim-cloudfront.d.ts.map +1 -1
  206. package/dist/service/cloudfront/sim-cloudfront.js +14 -7
  207. package/dist/service/cloudfront/sim-cloudfront.js.map +1 -1
  208. package/dist/service/dynamodb/command/list-tables/list-tables.handler.js +1 -1
  209. package/dist/service/dynamodb/command/list-tables/list-tables.handler.js.map +1 -1
  210. package/dist/service/dynamodb/item/dynamodb-item-attribute.d.ts.map +1 -1
  211. package/dist/service/dynamodb/item/dynamodb-item-attribute.js +10 -7
  212. package/dist/service/dynamodb/item/dynamodb-item-attribute.js.map +1 -1
  213. package/dist/service/dynamodb/table/dynamodb-key-schema.d.ts +3 -6
  214. package/dist/service/dynamodb/table/dynamodb-key-schema.d.ts.map +1 -1
  215. package/dist/service/dynamodb/table/dynamodb-key-schema.js +12 -12
  216. package/dist/service/dynamodb/table/dynamodb-key-schema.js.map +1 -1
  217. package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-auth-z-id-pol-coordinator.d.ts +38 -0
  218. package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-auth-z-id-pol-coordinator.d.ts.map +1 -0
  219. package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-auth-z-id-pol-coordinator.js +41 -0
  220. package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-auth-z-id-pol-coordinator.js.map +1 -0
  221. package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-id-pol-owner-resolver.d.ts +54 -0
  222. package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-id-pol-owner-resolver.d.ts.map +1 -0
  223. package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-id-pol-owner-resolver.js +52 -0
  224. package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-id-pol-owner-resolver.js.map +1 -0
  225. package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-id-pol-owner-src-builder.d.ts +51 -0
  226. package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-id-pol-owner-src-builder.d.ts.map +1 -0
  227. package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-id-pol-owner-src-builder.js +74 -0
  228. package/dist/service/iam/authorize/context/identity-policy-source/sim-iam-id-pol-owner-src-builder.js.map +1 -0
  229. package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.d.ts +9 -27
  230. package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.d.ts.map +1 -1
  231. package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.js +12 -39
  232. package/dist/service/iam/authorize/context/sim-iam-auth-z-caller-context-builder.js.map +1 -1
  233. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts +30 -10
  234. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts.map +1 -1
  235. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js +30 -9
  236. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js.map +1 -1
  237. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.d.ts +11 -4
  238. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.d.ts.map +1 -1
  239. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.factory.d.ts +2 -2
  240. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.factory.d.ts.map +1 -1
  241. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.factory.js +12 -1
  242. package/dist/service/iam/authorize/context/sim-iam-auth-z-context.factory.js.map +1 -1
  243. package/dist/service/iam/authorize/match/condition/numeric/less-than-equals/sim-iam-num-lte.d.ts +34 -0
  244. package/dist/service/iam/authorize/match/condition/numeric/less-than-equals/sim-iam-num-lte.d.ts.map +1 -0
  245. package/dist/service/iam/authorize/match/condition/numeric/less-than-equals/sim-iam-num-lte.js +52 -0
  246. package/dist/service/iam/authorize/match/condition/numeric/less-than-equals/sim-iam-num-lte.js.map +1 -0
  247. package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator-parser.d.ts +14 -0
  248. package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator-parser.d.ts.map +1 -0
  249. package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator-parser.js +46 -0
  250. package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator-parser.js.map +1 -0
  251. package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator.d.ts +15 -0
  252. package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator.d.ts.map +1 -0
  253. package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator.js +2 -0
  254. package/dist/service/iam/authorize/match/condition/sim-iam-condition-operator.js.map +1 -0
  255. package/dist/service/iam/authorize/match/condition/sim-iam-policy-condition-matcher.d.ts +27 -0
  256. package/dist/service/iam/authorize/match/condition/sim-iam-policy-condition-matcher.d.ts.map +1 -0
  257. package/dist/service/iam/authorize/match/condition/sim-iam-policy-condition-matcher.js +52 -0
  258. package/dist/service/iam/authorize/match/condition/sim-iam-policy-condition-matcher.js.map +1 -0
  259. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-condition-operator.d.ts +13 -0
  260. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-condition-operator.d.ts.map +1 -0
  261. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-condition-operator.js +21 -0
  262. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-condition-operator.js.map +1 -0
  263. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-equals.d.ts +8 -0
  264. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-equals.d.ts.map +1 -0
  265. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-equals.js +10 -0
  266. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-equals.js.map +1 -0
  267. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-like.d.ts +8 -0
  268. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-like.d.ts.map +1 -0
  269. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-like.js +13 -0
  270. package/dist/service/iam/authorize/match/condition/string/all-values/sim-iam-for-all-values-string-like.js.map +1 -0
  271. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-condition-operator.d.ts +13 -0
  272. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-condition-operator.d.ts.map +1 -0
  273. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-condition-operator.js +21 -0
  274. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-condition-operator.js.map +1 -0
  275. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-equals.d.ts +8 -0
  276. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-equals.d.ts.map +1 -0
  277. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-equals.js +10 -0
  278. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-equals.js.map +1 -0
  279. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-like.d.ts +8 -0
  280. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-like.d.ts.map +1 -0
  281. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-like.js +13 -0
  282. package/dist/service/iam/authorize/match/condition/string/any-value/sim-iam-for-any-value-string-like.js.map +1 -0
  283. package/dist/service/iam/authorize/match/condition/string/equals/sim-iam-string-equals.d.ts +8 -0
  284. package/dist/service/iam/authorize/match/condition/string/equals/sim-iam-string-equals.d.ts.map +1 -0
  285. package/dist/service/iam/authorize/match/condition/string/equals/sim-iam-string-equals.js +10 -0
  286. package/dist/service/iam/authorize/match/condition/string/equals/sim-iam-string-equals.js.map +1 -0
  287. package/dist/service/iam/authorize/match/condition/string/like/sim-iam-string-like.d.ts +8 -0
  288. package/dist/service/iam/authorize/match/condition/string/like/sim-iam-string-like.d.ts.map +1 -0
  289. package/dist/service/iam/authorize/match/condition/string/like/sim-iam-string-like.js +13 -0
  290. package/dist/service/iam/authorize/match/condition/string/like/sim-iam-string-like.js.map +1 -0
  291. package/dist/service/iam/authorize/match/condition/string/sim-iam-scalar-string-condition-operator.d.ts +16 -0
  292. package/dist/service/iam/authorize/match/condition/string/sim-iam-scalar-string-condition-operator.d.ts.map +1 -0
  293. package/dist/service/iam/authorize/match/condition/string/sim-iam-scalar-string-condition-operator.js +20 -0
  294. package/dist/service/iam/authorize/match/condition/string/sim-iam-scalar-string-condition-operator.js.map +1 -0
  295. package/dist/service/iam/authorize/match/condition/string/sim-iam-string-values.d.ts +8 -0
  296. package/dist/service/iam/authorize/match/condition/string/sim-iam-string-values.d.ts.map +1 -0
  297. package/dist/service/iam/authorize/match/condition/string/sim-iam-string-values.js +17 -0
  298. package/dist/service/iam/authorize/match/condition/string/sim-iam-string-values.js.map +1 -0
  299. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.d.ts +59 -0
  300. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.d.ts.map +1 -0
  301. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.js +119 -0
  302. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.js.map +1 -0
  303. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.d.ts +14 -31
  304. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.d.ts.map +1 -1
  305. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.js +25 -80
  306. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.js.map +1 -1
  307. package/dist/service/iam/authorize/sim-iam-authorizer.d.ts +5 -1
  308. package/dist/service/iam/authorize/sim-iam-authorizer.d.ts.map +1 -1
  309. package/dist/service/iam/authorize/sim-iam-authorizer.js +1 -1
  310. package/dist/service/iam/authorize/sim-iam-authorizer.js.map +1 -1
  311. package/dist/service/iam/authorize/sim-iam-decision.d.ts +19 -0
  312. package/dist/service/iam/authorize/sim-iam-decision.d.ts.map +1 -1
  313. package/dist/service/iam/authorize/sim-iam-decision.js +27 -0
  314. package/dist/service/iam/authorize/sim-iam-decision.js.map +1 -1
  315. package/dist/service/iam/authorize/sim-iam-inter-service-auth-z.d.ts +53 -0
  316. package/dist/service/iam/authorize/sim-iam-inter-service-auth-z.d.ts.map +1 -0
  317. package/dist/service/iam/authorize/sim-iam-inter-service-auth-z.js +38 -0
  318. package/dist/service/iam/authorize/sim-iam-inter-service-auth-z.js.map +1 -0
  319. package/dist/service/iam/authorize/sim-iam-wildcard.d.ts +1 -1
  320. package/dist/service/iam/authorize/sim-iam-wildcard.js +7 -5
  321. package/dist/service/iam/authorize/sim-iam-wildcard.js.map +1 -1
  322. package/dist/service/iam/command/policy/list-policies/list-policies.handler.d.ts +2 -2
  323. package/dist/service/iam/command/policy/list-policies/list-policies.handler.d.ts.map +1 -1
  324. package/dist/service/iam/command/policy/list-policies/list-policies.handler.js +10 -10
  325. package/dist/service/iam/command/policy/list-policies/list-policies.handler.js.map +1 -1
  326. package/dist/service/iam/command/policy/put-role-policy/put-role-policy.handler.d.ts.map +1 -1
  327. package/dist/service/iam/command/policy/put-role-policy/put-role-policy.handler.js +2 -2
  328. package/dist/service/iam/command/policy/put-role-policy/put-role-policy.handler.js.map +1 -1
  329. package/dist/service/iam/command/policy/put-user-policy/put-user-policy.cmd.d.ts +12 -0
  330. package/dist/service/iam/command/policy/put-user-policy/put-user-policy.cmd.d.ts.map +1 -0
  331. package/dist/service/iam/command/policy/put-user-policy/put-user-policy.cmd.js +2 -0
  332. package/dist/service/iam/command/policy/put-user-policy/put-user-policy.cmd.js.map +1 -0
  333. package/dist/service/iam/command/policy/put-user-policy/put-user-policy.handler.d.ts +28 -0
  334. package/dist/service/iam/command/policy/put-user-policy/put-user-policy.handler.d.ts.map +1 -0
  335. package/dist/service/iam/command/policy/put-user-policy/put-user-policy.handler.js +43 -0
  336. package/dist/service/iam/command/policy/put-user-policy/put-user-policy.handler.js.map +1 -0
  337. package/dist/service/iam/command/role/create-role/create-role.handler.d.ts +2 -1
  338. package/dist/service/iam/command/role/create-role/create-role.handler.d.ts.map +1 -1
  339. package/dist/service/iam/command/role/create-role/create-role.handler.js +6 -3
  340. package/dist/service/iam/command/role/create-role/create-role.handler.js.map +1 -1
  341. package/dist/service/iam/command/role/get-role/get-role.cmd.d.ts +2 -1
  342. package/dist/service/iam/command/role/get-role/get-role.cmd.d.ts.map +1 -1
  343. package/dist/service/iam/command/role/list-roles/list-roles.handler.d.ts +2 -2
  344. package/dist/service/iam/command/role/list-roles/list-roles.handler.d.ts.map +1 -1
  345. package/dist/service/iam/command/role/list-roles/list-roles.handler.js +11 -11
  346. package/dist/service/iam/command/role/list-roles/list-roles.handler.js.map +1 -1
  347. package/dist/service/iam/command/user/create-access-key/create-access-key.cmd.d.ts +17 -0
  348. package/dist/service/iam/command/user/create-access-key/create-access-key.cmd.d.ts.map +1 -0
  349. package/dist/service/iam/command/user/create-access-key/create-access-key.cmd.js +2 -0
  350. package/dist/service/iam/command/user/create-access-key/create-access-key.cmd.js.map +1 -0
  351. package/dist/service/iam/command/user/create-access-key/create-access-key.handler.d.ts +28 -0
  352. package/dist/service/iam/command/user/create-access-key/create-access-key.handler.d.ts.map +1 -0
  353. package/dist/service/iam/command/user/create-access-key/create-access-key.handler.js +59 -0
  354. package/dist/service/iam/command/user/create-access-key/create-access-key.handler.js.map +1 -0
  355. package/dist/service/iam/command/user/create-user/create-user-record-factory.d.ts +25 -0
  356. package/dist/service/iam/command/user/create-user/create-user-record-factory.d.ts.map +1 -0
  357. package/dist/service/iam/command/user/create-user/create-user-record-factory.js +39 -0
  358. package/dist/service/iam/command/user/create-user/create-user-record-factory.js.map +1 -0
  359. package/dist/service/iam/command/user/create-user/create-user.cmd.d.ts +18 -0
  360. package/dist/service/iam/command/user/create-user/create-user.cmd.d.ts.map +1 -0
  361. package/dist/service/iam/command/user/create-user/create-user.cmd.js +2 -0
  362. package/dist/service/iam/command/user/create-user/create-user.cmd.js.map +1 -0
  363. package/dist/service/iam/command/user/create-user/create-user.handler.d.ts +26 -0
  364. package/dist/service/iam/command/user/create-user/create-user.handler.d.ts.map +1 -0
  365. package/dist/service/iam/command/user/create-user/create-user.handler.js +47 -0
  366. package/dist/service/iam/command/user/create-user/create-user.handler.js.map +1 -0
  367. package/dist/service/iam/credential/error/sim-iam-credential.error.d.ts +36 -0
  368. package/dist/service/iam/credential/error/sim-iam-credential.error.d.ts.map +1 -0
  369. package/dist/service/iam/credential/error/sim-iam-credential.error.js +66 -0
  370. package/dist/service/iam/credential/error/sim-iam-credential.error.js.map +1 -0
  371. package/dist/service/iam/credential/session/sim-iam-assumed-role-principal-factory.d.ts +35 -0
  372. package/dist/service/iam/credential/session/sim-iam-assumed-role-principal-factory.d.ts.map +1 -0
  373. package/dist/service/iam/credential/session/sim-iam-assumed-role-principal-factory.js +46 -0
  374. package/dist/service/iam/credential/session/sim-iam-assumed-role-principal-factory.js.map +1 -0
  375. package/dist/service/iam/credential/session/sim-iam-session-cred-gen.d.ts +21 -0
  376. package/dist/service/iam/credential/session/sim-iam-session-cred-gen.d.ts.map +1 -0
  377. package/dist/service/iam/credential/session/sim-iam-session-cred-gen.js +17 -0
  378. package/dist/service/iam/credential/session/sim-iam-session-cred-gen.js.map +1 -0
  379. package/dist/service/iam/credential/session/sim-iam-session-manager.d.ts +44 -0
  380. package/dist/service/iam/credential/session/sim-iam-session-manager.d.ts.map +1 -0
  381. package/dist/service/iam/credential/session/sim-iam-session-manager.js +62 -0
  382. package/dist/service/iam/credential/session/sim-iam-session-manager.js.map +1 -0
  383. package/dist/service/iam/credential/session/sim-iam-session.d.ts +33 -0
  384. package/dist/service/iam/credential/session/sim-iam-session.d.ts.map +1 -0
  385. package/dist/service/iam/credential/session/sim-iam-session.js +40 -0
  386. package/dist/service/iam/credential/session/sim-iam-session.js.map +1 -0
  387. package/dist/service/iam/credential/sim-aws-credentials.d.ts +21 -0
  388. package/dist/service/iam/credential/sim-aws-credentials.d.ts.map +1 -0
  389. package/dist/service/iam/credential/sim-aws-credentials.js +2 -0
  390. package/dist/service/iam/credential/sim-aws-credentials.js.map +1 -0
  391. package/dist/service/iam/credential/sim-iam-access-key.d.ts +44 -0
  392. package/dist/service/iam/credential/sim-iam-access-key.d.ts.map +1 -0
  393. package/dist/service/iam/credential/sim-iam-access-key.js +57 -0
  394. package/dist/service/iam/credential/sim-iam-access-key.js.map +1 -0
  395. package/dist/service/iam/credential/sim-iam-credential-registry.d.ts +21 -0
  396. package/dist/service/iam/credential/sim-iam-credential-registry.d.ts.map +1 -0
  397. package/dist/service/iam/credential/sim-iam-credential-registry.js +75 -0
  398. package/dist/service/iam/credential/sim-iam-credential-registry.js.map +1 -0
  399. package/dist/service/iam/credential/user/sim-iam-user-credential-generator.d.ts +20 -0
  400. package/dist/service/iam/credential/user/sim-iam-user-credential-generator.d.ts.map +1 -0
  401. package/dist/service/iam/credential/user/sim-iam-user-credential-generator.js +16 -0
  402. package/dist/service/iam/credential/user/sim-iam-user-credential-generator.js.map +1 -0
  403. package/dist/service/iam/error/sim-iam-caller-identifier.d.ts +25 -0
  404. package/dist/service/iam/error/sim-iam-caller-identifier.d.ts.map +1 -0
  405. package/dist/service/iam/error/sim-iam-caller-identifier.js +32 -0
  406. package/dist/service/iam/error/sim-iam-caller-identifier.js.map +1 -0
  407. package/dist/service/iam/error/sim-iam.error.d.ts +26 -0
  408. package/dist/service/iam/error/sim-iam.error.d.ts.map +1 -1
  409. package/dist/service/iam/error/sim-iam.error.js +25 -0
  410. package/dist/service/iam/error/sim-iam.error.js.map +1 -1
  411. package/dist/service/iam/policy/sim-iam-policy.d.ts +4 -2
  412. package/dist/service/iam/policy/sim-iam-policy.d.ts.map +1 -1
  413. package/dist/service/iam/registry/sim-iam-account-resolver.d.ts +16 -0
  414. package/dist/service/iam/registry/sim-iam-account-resolver.d.ts.map +1 -0
  415. package/dist/service/iam/registry/sim-iam-account-resolver.js +2 -0
  416. package/dist/service/iam/registry/sim-iam-account-resolver.js.map +1 -0
  417. package/dist/service/iam/registry/sim-iam-registry.d.ts +19 -73
  418. package/dist/service/iam/registry/sim-iam-registry.d.ts.map +1 -1
  419. package/dist/service/iam/registry/sim-iam-registry.js +25 -85
  420. package/dist/service/iam/registry/sim-iam-registry.js.map +1 -1
  421. package/dist/service/iam/role/arn/sim-iam-role-arn-parser.d.ts +16 -0
  422. package/dist/service/iam/role/arn/sim-iam-role-arn-parser.d.ts.map +1 -0
  423. package/dist/service/iam/role/arn/sim-iam-role-arn-parser.js +41 -0
  424. package/dist/service/iam/role/arn/sim-iam-role-arn-parser.js.map +1 -0
  425. package/dist/service/iam/role/arn/sim-iam-role-arn.d.ts +14 -0
  426. package/dist/service/iam/role/arn/sim-iam-role-arn.d.ts.map +1 -0
  427. package/dist/service/iam/role/arn/sim-iam-role-arn.js +9 -0
  428. package/dist/service/iam/role/arn/sim-iam-role-arn.js.map +1 -0
  429. package/dist/service/iam/role/sim-iam-role.factory.js +1 -1
  430. package/dist/service/iam/role/sim-iam-role.factory.js.map +1 -1
  431. package/dist/service/iam/sim-iam.d.ts +38 -5
  432. package/dist/service/iam/sim-iam.d.ts.map +1 -1
  433. package/dist/service/iam/sim-iam.js +69 -14
  434. package/dist/service/iam/sim-iam.js.map +1 -1
  435. package/dist/service/iam/user/arn/sim-iam-user-arn.d.ts +14 -0
  436. package/dist/service/iam/user/arn/sim-iam-user-arn.d.ts.map +1 -0
  437. package/dist/service/iam/user/arn/sim-iam-user-arn.js +8 -0
  438. package/dist/service/iam/user/arn/sim-iam-user-arn.js.map +1 -0
  439. package/dist/service/iam/user/sim-iam-user-id.d.ts +6 -0
  440. package/dist/service/iam/user/sim-iam-user-id.d.ts.map +1 -0
  441. package/dist/service/iam/user/sim-iam-user-id.js +10 -0
  442. package/dist/service/iam/user/sim-iam-user-id.js.map +1 -0
  443. package/dist/service/iam/user/sim-iam-user-path.d.ts +5 -0
  444. package/dist/service/iam/user/sim-iam-user-path.d.ts.map +1 -0
  445. package/dist/service/iam/user/sim-iam-user-path.js +13 -0
  446. package/dist/service/iam/user/sim-iam-user-path.js.map +1 -0
  447. package/dist/service/iam/user/sim-iam-user.d.ts +31 -0
  448. package/dist/service/iam/user/sim-iam-user.d.ts.map +1 -0
  449. package/dist/service/iam/user/sim-iam-user.js +2 -0
  450. package/dist/service/iam/user/sim-iam-user.js.map +1 -0
  451. package/dist/service/iam/validate/trust/sim-iam-trust-policy-doc-validator.d.ts +22 -0
  452. package/dist/service/iam/validate/trust/sim-iam-trust-policy-doc-validator.d.ts.map +1 -0
  453. package/dist/service/iam/validate/trust/sim-iam-trust-policy-doc-validator.js +85 -0
  454. package/dist/service/iam/validate/trust/sim-iam-trust-policy-doc-validator.js.map +1 -0
  455. package/dist/service/route53/cfn/record-set/apply/sim-cfn-r53-record-set-applicator.d.ts.map +1 -1
  456. package/dist/service/route53/cfn/record-set/apply/sim-cfn-r53-record-set-applicator.js +2 -1
  457. package/dist/service/route53/cfn/record-set/apply/sim-cfn-r53-record-set-applicator.js.map +1 -1
  458. package/dist/service/route53/cfn/record-set/build/sim-cfn-r53-record-set-builder.d.ts.map +1 -1
  459. package/dist/service/route53/cfn/record-set/build/sim-cfn-r53-record-set-builder.js +3 -2
  460. package/dist/service/route53/cfn/record-set/build/sim-cfn-r53-record-set-builder.js.map +1 -1
  461. package/dist/service/route53/cfn/record-set/resolve/sim-cfn-r53-rec-set-zone-resolver.js +3 -1
  462. package/dist/service/route53/cfn/record-set/resolve/sim-cfn-r53-rec-set-zone-resolver.js.map +1 -1
  463. package/dist/service/route53/command/create-hosted-zone/create-hosted-zone.handler.js +3 -1
  464. package/dist/service/route53/command/create-hosted-zone/create-hosted-zone.handler.js.map +1 -1
  465. package/dist/service/route53/command/list-hosted-zones-by-name/list-hosted-zones-by-name.js +1 -1
  466. package/dist/service/route53/command/list-hosted-zones-by-name/list-hosted-zones-by-name.js.map +1 -1
  467. package/dist/service/route53/hosted-zone/sim-route53-hosted-zone.js +6 -6
  468. package/dist/service/route53/hosted-zone/sim-route53-hosted-zone.js.map +1 -1
  469. package/dist/service/s3/bucket/name-availability/sim-s3-bucket-name-availability.d.ts.map +1 -1
  470. package/dist/service/s3/bucket/name-availability/sim-s3-bucket-name-availability.js +5 -4
  471. package/dist/service/s3/bucket/name-availability/sim-s3-bucket-name-availability.js.map +1 -1
  472. package/dist/service/s3/bucket/sim-s3-bucket.d.ts +11 -0
  473. package/dist/service/s3/bucket/sim-s3-bucket.d.ts.map +1 -1
  474. package/dist/service/s3/bucket/sim-s3-bucket.js +15 -1
  475. package/dist/service/s3/bucket/sim-s3-bucket.js.map +1 -1
  476. package/dist/service/s3/bucket/website/redirect/s3-bucket-website-redirects.d.ts.map +1 -1
  477. package/dist/service/s3/bucket/website/redirect/s3-bucket-website-redirects.js +6 -3
  478. package/dist/service/s3/bucket/website/redirect/s3-bucket-website-redirects.js.map +1 -1
  479. package/dist/service/s3/bucket/website/sim-s3-bucket-website.js +1 -1
  480. package/dist/service/s3/bucket/website/sim-s3-bucket-website.js.map +1 -1
  481. package/dist/service/s3/command/create-bucket/create-bucket.handler.d.ts +8 -1
  482. package/dist/service/s3/command/create-bucket/create-bucket.handler.d.ts.map +1 -1
  483. package/dist/service/s3/command/create-bucket/create-bucket.handler.js +23 -5
  484. package/dist/service/s3/command/create-bucket/create-bucket.handler.js.map +1 -1
  485. package/dist/service/s3/command/get-object/get-object-authorizer.d.ts +24 -0
  486. package/dist/service/s3/command/get-object/get-object-authorizer.d.ts.map +1 -0
  487. package/dist/service/s3/command/get-object/get-object-authorizer.js +44 -0
  488. package/dist/service/s3/command/get-object/get-object-authorizer.js.map +1 -0
  489. package/dist/service/s3/command/get-object/get-object-loader.d.ts +26 -0
  490. package/dist/service/s3/command/get-object/get-object-loader.d.ts.map +1 -0
  491. package/dist/service/s3/command/get-object/get-object-loader.js +36 -0
  492. package/dist/service/s3/command/get-object/get-object-loader.js.map +1 -0
  493. package/dist/service/s3/command/get-object/get-object.handler.d.ts +18 -2
  494. package/dist/service/s3/command/get-object/get-object.handler.d.ts.map +1 -1
  495. package/dist/service/s3/command/get-object/get-object.handler.js +21 -15
  496. package/dist/service/s3/command/get-object/get-object.handler.js.map +1 -1
  497. package/dist/service/s3/command/list-buckets/list-buckets-authorizer.d.ts +34 -0
  498. package/dist/service/s3/command/list-buckets/list-buckets-authorizer.d.ts.map +1 -0
  499. package/dist/service/s3/command/list-buckets/list-buckets-authorizer.js +44 -0
  500. package/dist/service/s3/command/list-buckets/list-buckets-authorizer.js.map +1 -0
  501. package/dist/service/s3/command/list-buckets/list-buckets-page-builder.d.ts +65 -0
  502. package/dist/service/s3/command/list-buckets/list-buckets-page-builder.d.ts.map +1 -0
  503. package/dist/service/s3/command/list-buckets/list-buckets-page-builder.js +94 -0
  504. package/dist/service/s3/command/list-buckets/list-buckets-page-builder.js.map +1 -0
  505. package/dist/service/s3/command/list-buckets/list-buckets.handler.d.ts +16 -4
  506. package/dist/service/s3/command/list-buckets/list-buckets.handler.d.ts.map +1 -1
  507. package/dist/service/s3/command/list-buckets/list-buckets.handler.js +18 -34
  508. package/dist/service/s3/command/list-buckets/list-buckets.handler.js.map +1 -1
  509. package/dist/service/s3/command/list-objects/list-objects-authorizer.d.ts +35 -0
  510. package/dist/service/s3/command/list-objects/list-objects-authorizer.d.ts.map +1 -0
  511. package/dist/service/s3/command/list-objects/list-objects-authorizer.js +53 -0
  512. package/dist/service/s3/command/list-objects/list-objects-authorizer.js.map +1 -0
  513. package/dist/service/s3/command/list-objects/list-objects-page-builder.d.ts +30 -0
  514. package/dist/service/s3/command/list-objects/list-objects-page-builder.d.ts.map +1 -0
  515. package/dist/service/s3/command/list-objects/list-objects-page-builder.js +43 -0
  516. package/dist/service/s3/command/list-objects/list-objects-page-builder.js.map +1 -0
  517. package/dist/service/s3/command/list-objects/list-objects.handler.d.ts +14 -2
  518. package/dist/service/s3/command/list-objects/list-objects.handler.d.ts.map +1 -1
  519. package/dist/service/s3/command/list-objects/list-objects.handler.js +26 -27
  520. package/dist/service/s3/command/list-objects/list-objects.handler.js.map +1 -1
  521. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy-authorizer.d.ts +20 -0
  522. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy-authorizer.d.ts.map +1 -0
  523. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy-authorizer.js +30 -0
  524. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy-authorizer.js.map +1 -0
  525. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.cmd.d.ts +21 -0
  526. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.cmd.d.ts.map +1 -0
  527. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.cmd.js +2 -0
  528. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.cmd.js.map +1 -0
  529. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.d.ts +30 -0
  530. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.d.ts.map +1 -0
  531. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.js +43 -0
  532. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.js.map +1 -0
  533. package/dist/service/s3/command/put-bucket-website/put-bucket-website-authorizer.d.ts +37 -0
  534. package/dist/service/s3/command/put-bucket-website/put-bucket-website-authorizer.d.ts.map +1 -0
  535. package/dist/service/s3/command/put-bucket-website/put-bucket-website-authorizer.js +47 -0
  536. package/dist/service/s3/command/put-bucket-website/put-bucket-website-authorizer.js.map +1 -0
  537. package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.d.ts +13 -1
  538. package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.d.ts.map +1 -1
  539. package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.js +12 -2
  540. package/dist/service/s3/command/put-bucket-website/put-bucket-website.handler.js.map +1 -1
  541. package/dist/service/s3/command/put-object/put-object-authorizer.d.ts +24 -0
  542. package/dist/service/s3/command/put-object/put-object-authorizer.d.ts.map +1 -0
  543. package/dist/service/s3/command/put-object/put-object-authorizer.js +44 -0
  544. package/dist/service/s3/command/put-object/put-object-authorizer.js.map +1 -0
  545. package/dist/service/s3/command/put-object/put-object-builder.d.ts +45 -0
  546. package/dist/service/s3/command/put-object/put-object-builder.d.ts.map +1 -0
  547. package/dist/service/s3/command/put-object/put-object-builder.js +70 -0
  548. package/dist/service/s3/command/put-object/put-object-builder.js.map +1 -0
  549. package/dist/service/s3/command/put-object/put-object.handler.d.ts +19 -4
  550. package/dist/service/s3/command/put-object/put-object.handler.d.ts.map +1 -1
  551. package/dist/service/s3/command/put-object/put-object.handler.js +19 -28
  552. package/dist/service/s3/command/put-object/put-object.handler.js.map +1 -1
  553. package/dist/service/s3/serve/sim-s3-get-obj-controller.js +1 -1
  554. package/dist/service/s3/serve/sim-s3-get-obj-controller.js.map +1 -1
  555. package/dist/service/s3/sim-s3.d.ts +18 -6
  556. package/dist/service/s3/sim-s3.d.ts.map +1 -1
  557. package/dist/service/s3/sim-s3.js +34 -13
  558. package/dist/service/s3/sim-s3.js.map +1 -1
  559. package/dist/service/s3/storage/s3-memory-storage.js +1 -1
  560. package/dist/service/s3/storage/s3-memory-storage.js.map +1 -1
  561. package/dist/service/sts/assume/sim-sts-assume-role-request-parser.d.ts +57 -0
  562. package/dist/service/sts/assume/sim-sts-assume-role-request-parser.d.ts.map +1 -0
  563. package/dist/service/sts/assume/sim-sts-assume-role-request-parser.js +79 -0
  564. package/dist/service/sts/assume/sim-sts-assume-role-request-parser.js.map +1 -0
  565. package/dist/service/sts/assume/sim-sts-assume-role-session-creator.d.ts +52 -0
  566. package/dist/service/sts/assume/sim-sts-assume-role-session-creator.d.ts.map +1 -0
  567. package/dist/service/sts/assume/sim-sts-assume-role-session-creator.js +64 -0
  568. package/dist/service/sts/assume/sim-sts-assume-role-session-creator.js.map +1 -0
  569. package/dist/service/sts/auth-z/assume-role-auth-z-coordinator.d.ts +57 -0
  570. package/dist/service/sts/auth-z/assume-role-auth-z-coordinator.d.ts.map +1 -0
  571. package/dist/service/sts/auth-z/assume-role-auth-z-coordinator.js +68 -0
  572. package/dist/service/sts/auth-z/assume-role-auth-z-coordinator.js.map +1 -0
  573. package/dist/service/sts/auth-z/assume-role-src-acc-auth-z.d.ts +45 -0
  574. package/dist/service/sts/auth-z/assume-role-src-acc-auth-z.d.ts.map +1 -0
  575. package/dist/service/sts/auth-z/assume-role-src-acc-auth-z.js +48 -0
  576. package/dist/service/sts/auth-z/assume-role-src-acc-auth-z.js.map +1 -0
  577. package/dist/service/sts/auth-z/assume-role-target-auth-z.d.ts +48 -0
  578. package/dist/service/sts/auth-z/assume-role-target-auth-z.d.ts.map +1 -0
  579. package/dist/service/sts/auth-z/assume-role-target-auth-z.js +50 -0
  580. package/dist/service/sts/auth-z/assume-role-target-auth-z.js.map +1 -0
  581. package/dist/service/sts/auth-z/assume-role-trust-grant-classifier.d.ts +57 -0
  582. package/dist/service/sts/auth-z/assume-role-trust-grant-classifier.d.ts.map +1 -0
  583. package/dist/service/sts/auth-z/assume-role-trust-grant-classifier.js +85 -0
  584. package/dist/service/sts/auth-z/assume-role-trust-grant-classifier.js.map +1 -0
  585. package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.d.ts +45 -0
  586. package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.d.ts.map +1 -0
  587. package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.js +64 -0
  588. package/dist/service/sts/auth-z/assume-role-trust-policy-authorizer.js.map +1 -0
  589. package/dist/service/sts/auth-z/resolve/assume-role-target-resolver.d.ts +44 -0
  590. package/dist/service/sts/auth-z/resolve/assume-role-target-resolver.d.ts.map +1 -0
  591. package/dist/service/sts/auth-z/resolve/assume-role-target-resolver.js +62 -0
  592. package/dist/service/sts/auth-z/resolve/assume-role-target-resolver.js.map +1 -0
  593. package/dist/service/sts/command/assume-role/assume-role.cmd.d.ts +45 -0
  594. package/dist/service/sts/command/assume-role/assume-role.cmd.d.ts.map +1 -0
  595. package/dist/service/sts/command/assume-role/assume-role.cmd.js +2 -0
  596. package/dist/service/sts/command/assume-role/assume-role.cmd.js.map +1 -0
  597. package/dist/service/sts/command/assume-role/assume-role.handler.d.ts +40 -0
  598. package/dist/service/sts/command/assume-role/assume-role.handler.d.ts.map +1 -0
  599. package/dist/service/sts/command/assume-role/assume-role.handler.js +69 -0
  600. package/dist/service/sts/command/assume-role/assume-role.handler.js.map +1 -0
  601. package/dist/service/sts/sim-sts.d.ts +31 -0
  602. package/dist/service/sts/sim-sts.d.ts.map +1 -0
  603. package/dist/service/sts/sim-sts.js +34 -0
  604. package/dist/service/sts/sim-sts.js.map +1 -0
  605. package/dist/tsconfig.tsbuildinfo +1 -1
  606. package/dist/util/background/background.d.ts.map +1 -1
  607. package/dist/util/background/background.js +2 -0
  608. package/dist/util/background/background.js.map +1 -1
  609. package/dist/util/background/non-deterministic-background.d.ts.map +1 -1
  610. package/dist/util/background/non-deterministic-background.js +1 -0
  611. package/dist/util/background/non-deterministic-background.js.map +1 -1
  612. package/package.json +23 -22
@@ -0,0 +1,70 @@
1
+ import { SimS3Object, SimS3ObjectMetadata } from "../../object/s3-object.js";
2
+ import { assertDefined } from "../../../../util/type-guard/defined.js";
3
+ /**
4
+ * Converts the supported PutObject request fields into a stored sim S3 Object.
5
+ *
6
+ * The command handler coordinates validation, Bucket lookup, authorization, and
7
+ * storage. This builder owns the separate translation between the AWS SDK request
8
+ * representation and the simulation's storage representation. Keeping that
9
+ * translation here prevents body-format and metadata-normalization rules from
10
+ * increasing the command handler's control-flow complexity.
11
+ *
12
+ * The simulation currently supports the request body forms used by its S3
13
+ * boundary: strings and Uint8Array values. Node.js Buffer values are also covered
14
+ * because Buffer extends Uint8Array. Other SDK streaming body forms should be
15
+ * added here when the simulation gains support for them.
16
+ */
17
+ export class PutObjectBuilder {
18
+ /**
19
+ * Build the Object that will be written to Bucket storage.
20
+ *
21
+ * This method performs conversion only. Callers must complete request
22
+ * validation and authorization before invoking it so failed authorization
23
+ * cannot trigger body processing or lead to storage mutation.
24
+ */
25
+ build(cmd) {
26
+ assertDefined(cmd.input.Key, "PutObjectCommand.input.Key");
27
+ return new SimS3Object({
28
+ key: cmd.input.Key,
29
+ body: this.toBuffer(cmd.input.Body),
30
+ metadata: new SimS3ObjectMetadata(this.toMetadata(cmd)),
31
+ });
32
+ }
33
+ /**
34
+ * Convert SDK metadata fields to the string map stored by SimS3ObjectMetadata.
35
+ *
36
+ * User-defined metadata is retained as supplied. ContentType is represented by
37
+ * the standard lowercase metadata key used by the existing GetObject response
38
+ * path. Omitting ContentType leaves that key absent rather than assigning an
39
+ * undefined value.
40
+ */
41
+ toMetadata(cmd) {
42
+ return {
43
+ ...cmd.input.Metadata,
44
+ ...(cmd.input.ContentType !== undefined && {
45
+ "content-type": cmd.input.ContentType,
46
+ }),
47
+ };
48
+ }
49
+ /**
50
+ * Materialize a supported SDK request body as a Buffer for Bucket storage.
51
+ *
52
+ * An omitted body represents an empty S3 Object. Strings use Node.js's default
53
+ * UTF-8 encoding. Uint8Array input is copied into a Buffer so storage receives
54
+ * one consistent binary representation and does not depend on the caller's
55
+ * mutable typed-array instance.
56
+ */
57
+ toBuffer(body) {
58
+ if (body === undefined) {
59
+ return Buffer.alloc(0);
60
+ }
61
+ if (typeof body === "string") {
62
+ return Buffer.from(body);
63
+ }
64
+ if (body instanceof Uint8Array) {
65
+ return Buffer.from(body);
66
+ }
67
+ throw new Error("PutObjectCommand.input.Body must be a string or Uint8Array");
68
+ }
69
+ }
70
+ //# sourceMappingURL=put-object-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"put-object-builder.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/put-object/put-object-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAE7E,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAEvE;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,gBAAgB;IAC3B;;;;;;OAMG;IACH,KAAK,CAAC,GAAwB;QAC5B,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC;QAC3D,OAAO,IAAI,WAAW,CAAC;YACrB,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG;YAClB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YACnC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SACxD,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACK,UAAU,CAAC,GAAwB;QACzC,OAAO;YACL,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ;YACrB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI;gBACzC,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW;aACtC,CAAC;SACH,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACK,QAAQ,CAAC,IAA0C;QACzD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IACJ,CAAC;CACF"}
@@ -1,11 +1,17 @@
1
1
  import type { CommandHandler } from "../../../../command/command-handler.js";
2
2
  import type { SimPutObjectCommand, SimPutObjectCommandOutput } from "./put-object.cmd.js";
3
- import type { SimS3BucketName, SimS3Bucket } from "../../bucket/sim-s3-bucket.js";
3
+ import type { SimS3Bucket, SimS3BucketName } from "../../bucket/sim-s3-bucket.js";
4
4
  import { type BackgroundScheduler } from "../../../../util/background/background.js";
5
+ import { type SimIamInterServiceAuthZ } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
6
+ import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
5
7
  interface PutObjectCommandHandlerProps {
6
8
  readonly buckets: Map<SimS3BucketName, SimS3Bucket>;
9
+ readonly iam?: SimIamInterServiceAuthZ;
7
10
  readonly background?: BackgroundScheduler;
8
11
  }
12
+ interface PutObjectCommandHandlerOptions {
13
+ readonly caller?: SimAwsCaller;
14
+ }
9
15
  /**
10
16
  * Simulated S3 PutObjectCommand handler.
11
17
  *
@@ -13,14 +19,23 @@ interface PutObjectCommandHandlerProps {
13
19
  */
14
20
  export declare class PutObjectCommandHandler implements CommandHandler<SimPutObjectCommand, SimPutObjectCommandOutput> {
15
21
  private readonly buckets;
22
+ private readonly authorizer;
23
+ private readonly objectBuilder;
16
24
  private readonly background;
17
25
  constructor(props: PutObjectCommandHandlerProps);
18
26
  /**
19
27
  * Simulate putting an Object into an S3 Bucket.
28
+ *
29
+ * Required-input validation and Bucket lookup happen before authorization so
30
+ * malformed requests and missing Buckets retain their S3 error behavior.
31
+ * Authorization happens before request conversion and storage mutation so a
32
+ * denied request cannot process, create, or replace an Object.
33
+ *
34
+ * Once authorization succeeds, PutObjectBuilder translates the SDK request
35
+ * into the storage model. This handler remains responsible for request-level
36
+ * sequencing while body and metadata conversion stay isolated from it.
20
37
  */
21
- handle(cmd: SimPutObjectCommand): Promise<SimPutObjectCommandOutput>;
22
- private static toMetadata;
23
- private static toBuffer;
38
+ handle(cmd: SimPutObjectCommand, opts?: PutObjectCommandHandlerOptions): Promise<SimPutObjectCommandOutput>;
24
39
  }
25
40
  export {};
26
41
  //# sourceMappingURL=put-object.handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"put-object.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/put-object/put-object.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACZ,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,2CAA2C,CAAC;AAGnD,UAAU,4BAA4B;IACpC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACpD,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED;;;;GAIG;AACH,qBAAa,uBAAwB,YAAW,cAAc,CAC5D,mBAAmB,EACnB,yBAAyB,CAC1B;IACC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IAEjD,YAAY,KAAK,EAAE,4BAA4B,EAI9C;IAED;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAyBzE;IAED,OAAO,CAAC,MAAM,CAAC,UAAU;IASzB,OAAO,CAAC,MAAM,CAAC,QAAQ;CAiBxB"}
1
+ {"version":3,"file":"put-object.handler.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/command/put-object/put-object.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAChB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,wDAAwD,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAI1E,UAAU,4BAA4B;IACpC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACpD,QAAQ,CAAC,GAAG,CAAC,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED,UAAU,8BAA8B;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;CAChC;AAED;;;;GAIG;AACH,qBAAa,uBAAwB,YAAW,cAAc,CAC5D,mBAAmB,EACnB,yBAAyB,CAC1B;IACC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0B;IACxD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IAEjD,YAAY,KAAK,EAAE,4BAA4B,EAS9C;IAED;;;;;;;;;;;OAWG;IACG,MAAM,CACV,GAAG,EAAE,mBAAmB,EACxB,IAAI,CAAC,EAAE,8BAA8B,GACpC,OAAO,CAAC,yBAAyB,CAAC,CAqBpC;CACF"}
@@ -1,7 +1,9 @@
1
- import { SimS3Object, SimS3ObjectMetadata } from "../../object/s3-object.js";
2
1
  import { assertDefined } from "../../../../util/type-guard/defined.js";
3
2
  import { BackgroundTasks, } from "../../../../util/background/background.js";
4
3
  import { SimS3NoSuchBucket } from "../../error/sim-s3.error.js";
4
+ import { SimIamAllowAllAuth, } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
5
+ import { PutObjectAuthorizer } from "./put-object-authorizer.js";
6
+ import { PutObjectBuilder } from "./put-object-builder.js";
5
7
  /**
6
8
  * Simulated S3 PutObjectCommand handler.
7
9
  *
@@ -9,16 +11,28 @@ import { SimS3NoSuchBucket } from "../../error/sim-s3.error.js";
9
11
  */
10
12
  export class PutObjectCommandHandler {
11
13
  buckets;
14
+ authorizer;
15
+ objectBuilder = new PutObjectBuilder();
12
16
  background;
13
17
  constructor(props) {
14
- const { buckets, background = new BackgroundTasks() } = props;
18
+ const { buckets, iam = new SimIamAllowAllAuth(), background = new BackgroundTasks(), } = props;
15
19
  this.buckets = buckets;
20
+ this.authorizer = new PutObjectAuthorizer({ iam });
16
21
  this.background = background;
17
22
  }
18
23
  /**
19
24
  * Simulate putting an Object into an S3 Bucket.
25
+ *
26
+ * Required-input validation and Bucket lookup happen before authorization so
27
+ * malformed requests and missing Buckets retain their S3 error behavior.
28
+ * Authorization happens before request conversion and storage mutation so a
29
+ * denied request cannot process, create, or replace an Object.
30
+ *
31
+ * Once authorization succeeds, PutObjectBuilder translates the SDK request
32
+ * into the storage model. This handler remains responsible for request-level
33
+ * sequencing while body and metadata conversion stay isolated from it.
20
34
  */
21
- async handle(cmd) {
35
+ async handle(cmd, opts) {
22
36
  assertDefined(cmd.input.Bucket, "PutObjectCommand.input.Bucket");
23
37
  assertDefined(cmd.input.Key, "PutObjectCommand.input.Key");
24
38
  const bucketName = cmd.input.Bucket;
@@ -28,35 +42,12 @@ export class PutObjectCommandHandler {
28
42
  }
29
43
  // Allow for potential non-deterministic sequencing of async events.
30
44
  await this.background.sequence();
31
- const object = new SimS3Object({
32
- key: cmd.input.Key,
33
- body: PutObjectCommandHandler.toBuffer(cmd.input.Body),
34
- metadata: new SimS3ObjectMetadata(PutObjectCommandHandler.toMetadata(cmd)),
35
- });
45
+ this.authorizer.authorize(bucket, cmd.input.Key, opts?.caller);
46
+ const object = this.objectBuilder.build(cmd);
36
47
  await bucket.putObject(object);
37
48
  return {
38
49
  $metadata: {},
39
50
  };
40
51
  }
41
- static toMetadata(cmd) {
42
- return {
43
- ...cmd.input.Metadata,
44
- ...(cmd.input.ContentType === undefined
45
- ? {}
46
- : { "content-type": cmd.input.ContentType }),
47
- };
48
- }
49
- static toBuffer(body) {
50
- if (body === undefined) {
51
- return Buffer.alloc(0);
52
- }
53
- if (typeof body === "string") {
54
- return Buffer.from(body);
55
- }
56
- if (body instanceof Uint8Array) {
57
- return Buffer.from(body);
58
- }
59
- throw new Error("PutObjectCommand.input.Body must be a string or Uint8Array");
60
- }
61
52
  }
62
53
  //# sourceMappingURL=put-object.handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"put-object.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/put-object/put-object.handler.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAEL,eAAe,GAChB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAOhE;;;;GAIG;AACH,MAAM,OAAO,uBAAuB;IAIjB,OAAO,CAAoC;IAC3C,UAAU,CAAsB;IAEjD,YAAY,KAAmC;QAC7C,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,eAAe,EAAE,EAAE,GAAG,KAAK,CAAC;QAC9D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,GAAwB;QACnC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;QACjE,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC;QAE3D,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,MAAyB,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,iBAAiB,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,oEAAoE;QACpE,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAEjC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC;YAC7B,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG;YAClB,IAAI,EAAE,uBAAuB,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YACtD,QAAQ,EAAE,IAAI,mBAAmB,CAC/B,uBAAuB,CAAC,UAAU,CAAC,GAAG,CAAC,CACxC;SACF,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAE/B,OAAO;YACL,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,GAAwB;QAChD,OAAO;YACL,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ;YACrB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS;gBACrC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;SAC/C,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,QAAQ,CAAC,IAA0C;QAChE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"put-object.handler.js","sourceRoot":"","sources":["../../../../../src/service/s3/command/put-object/put-object.handler.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAEL,eAAe,GAChB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EACL,kBAAkB,GAEnB,MAAM,wDAAwD,CAAC;AAEhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAY3D;;;;GAIG;AACH,MAAM,OAAO,uBAAuB;IAIjB,OAAO,CAAoC;IAC3C,UAAU,CAAsB;IAChC,aAAa,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACvC,UAAU,CAAsB;IAEjD,YAAY,KAAmC;QAC7C,MAAM,EACJ,OAAO,EACP,GAAG,GAAG,IAAI,kBAAkB,EAAE,EAC9B,UAAU,GAAG,IAAI,eAAe,EAAE,GACnC,GAAG,KAAK,CAAC;QACV,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,mBAAmB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,MAAM,CACV,GAAwB,EACxB,IAAqC;QAErC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;QACjE,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC;QAE3D,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,MAAyB,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,iBAAiB,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,oEAAoE;QACpE,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAEjC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAE/D,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAE/B,OAAO;YACL,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;CACF"}
@@ -48,7 +48,7 @@ export class SimS3GetObjectController {
48
48
  const contentType = object.metadata.values["content-type"];
49
49
  const headers = {
50
50
  "content-length": String(object.body.length),
51
- ...(contentType === undefined ? {} : { "content-type": contentType }),
51
+ ...(contentType !== undefined && { "content-type": contentType }),
52
52
  };
53
53
  if (request.method === "HEAD") {
54
54
  return new Response(undefined, {
@@ -1 +1 @@
1
- {"version":3,"file":"sim-s3-get-obj-controller.js","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-get-obj-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sim-s3-get-obj-controller.js","sourceRoot":"","sources":["../../../../src/service/s3/serve/sim-s3-get-obj-controller.ts"],"names":[],"mappings":"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"}
@@ -9,9 +9,16 @@ import type { SimGetObjectCommand, SimGetObjectCommandOutput } from "./command/g
9
9
  import type { SimCreateBucketCommand, SimCreateBucketCommandOutput } from "./command/create-bucket/create-bucket.cmd.js";
10
10
  import { type BackgroundScheduler } from "../../util/background/background.js";
11
11
  import type { SimCfnServiceResourceFactory } from "../cloudformation/resource/factory/sim-cfn-resource-factory.type.js";
12
+ import type { SimAwsCaller } from "../aws/caller/sim-aws-caller.js";
13
+ import { type SimIamInterServiceAuthZ } from "../iam/authorize/sim-iam-inter-service-auth-z.js";
14
+ import type { SimPutBucketPolicyCommand, SimPutBucketPolicyCommandOutput } from "./command/put-bucket-policy/put-bucket-policy.cmd.js";
15
+ export interface SimS3RequestOptions {
16
+ readonly caller?: SimAwsCaller;
17
+ }
12
18
  interface SimS3Props {
13
19
  readonly accountRegionScope?: SimAwsAccountRegionScope;
14
20
  readonly s3GlobalRegistry?: SimS3GlobalRegistry;
21
+ readonly iam?: SimIamInterServiceAuthZ;
15
22
  readonly background?: BackgroundScheduler;
16
23
  }
17
24
  /**
@@ -23,33 +30,38 @@ export declare class SimS3 {
23
30
  private readonly buckets;
24
31
  private readonly accountRegionScope;
25
32
  private readonly s3GlobalRegistry;
33
+ private readonly iam;
26
34
  private readonly background;
27
35
  private readonly cfnFactory;
28
36
  constructor(props?: SimS3Props);
29
37
  /**
30
38
  * Handle a Create Bucket Command from the SDK.
31
39
  */
32
- createBucket(cmd: SimCreateBucketCommand): Promise<SimCreateBucketCommandOutput>;
40
+ createBucket(cmd: SimCreateBucketCommand, opts?: SimS3RequestOptions): Promise<SimCreateBucketCommandOutput>;
41
+ /**
42
+ * Handle a Put Bucket Policy Command from the SDK.
43
+ */
44
+ putBucketPolicy(cmd: SimPutBucketPolicyCommand, opts?: SimS3RequestOptions): Promise<SimPutBucketPolicyCommandOutput>;
33
45
  /**
34
46
  * Handle a Put Bucket Website Command from the SDK.
35
47
  */
36
- putBucketWebsite(cmd: SimPutBucketWebsiteCommand): Promise<SimPutBucketWebsiteCommandOutput>;
48
+ putBucketWebsite(cmd: SimPutBucketWebsiteCommand, opts?: SimS3RequestOptions): Promise<SimPutBucketWebsiteCommandOutput>;
37
49
  /**
38
50
  * Handle a List Buckets Command from the SDK.
39
51
  */
40
- listBuckets(cmd: SimListBucketsCommand): Promise<SimListBucketsCommandOutput>;
52
+ listBuckets(cmd: SimListBucketsCommand, opts?: SimS3RequestOptions): Promise<SimListBucketsCommandOutput>;
41
53
  /**
42
54
  * Handle a Put Object Command from the SDK.
43
55
  */
44
- putObject(cmd: SimPutObjectCommand): Promise<SimPutObjectCommandOutput>;
56
+ putObject(cmd: SimPutObjectCommand, opts?: SimS3RequestOptions): Promise<SimPutObjectCommandOutput>;
45
57
  /**
46
58
  * Handle a Get Object Command from the SDK.
47
59
  */
48
- getObject(cmd: SimGetObjectCommand): Promise<SimGetObjectCommandOutput>;
60
+ getObject(cmd: SimGetObjectCommand, opts?: SimS3RequestOptions): Promise<SimGetObjectCommandOutput>;
49
61
  /**
50
62
  * Handle a List Objects Command from the SDK.
51
63
  */
52
- listObjects(cmd: SimListObjectsCommand): Promise<SimListObjectsCommandOutput>;
64
+ listObjects(cmd: SimListObjectsCommand, opts?: SimS3RequestOptions): Promise<SimListObjectsCommandOutput>;
53
65
  /**
54
66
  * Get a simulated S3 Bucket instance by name.
55
67
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sim-s3.d.ts","sourceRoot":"","sources":["../../../src/service/s3/sim-s3.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAM9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAIvF,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EACV,0BAA0B,EAC1B,gCAAgC,EACjC,MAAM,wDAAwD,CAAC;AAChE,OAAO,KAAK,EACV,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EACV,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EACV,sBAAsB,EACtB,4BAA4B,EAC7B,MAAM,8CAA8C,CAAC;AACtD,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,qEAAqE,CAAC;AAGxH,UAAU,UAAU;IAClB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;IACvD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED;;;;GAIG;AACH,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2C;IAEnE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA2B;IAC9D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsB;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgD;IAE3E,YAAY,KAAK,GAAE,UAAe,EAUjC;IAED;;OAEG;IACG,YAAY,CAChB,GAAG,EAAE,sBAAsB,GAC1B,OAAO,CAAC,4BAA4B,CAAC,CAQvC;IAED;;OAEG;IACG,gBAAgB,CACpB,GAAG,EAAE,0BAA0B,GAC9B,OAAO,CAAC,gCAAgC,CAAC,CAM3C;IAED;;OAEG;IACG,WAAW,CACf,GAAG,EAAE,qBAAqB,GACzB,OAAO,CAAC,2BAA2B,CAAC,CAMtC;IAED;;OAEG;IACG,SAAS,CACb,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC,yBAAyB,CAAC,CAMpC;IAED;;OAEG;IACG,SAAS,CACb,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC,yBAAyB,CAAC,CAMpC;IAED;;OAEG;IACG,WAAW,CACf,GAAG,EAAE,qBAAqB,GACzB,OAAO,CAAC,2BAA2B,CAAC,CAMtC;IAED;;OAEG;IACH,kBAAkB,CAChB,UAAU,EAAE,eAAe,GAAG,MAAM,GACnC,WAAW,GAAG,SAAS,CAEzB;IAED;;OAEG;IACH,mBAAmB,CAAC,UAAU,EAAE,eAAe,GAAG,MAAM,GAAG,GAAG,CAK7D;IAED;;OAEG;IACH,eAAe,CACb,UAAU,EAAE,eAAe,GAAG,MAAM,GACnC,wBAAwB,GAAG,SAAS,CAEtC;IAED;;OAEG;IACH,qBAAqB,CACnB,UAAU,EAAE,eAAe,GAAG,MAAM,EACpC,aAAa,EAAE,MAAM,GACpB,IAAI,CAMN;IAED;;OAEG;IACH,kBAAkB,IAAI,4BAA4B,CAEjD;CACF"}
1
+ {"version":3,"file":"sim-s3.d.ts","sourceRoot":"","sources":["../../../src/service/s3/sim-s3.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@ import { FilesystemS3BucketStorage } from "./storage/filesystem/s3-filesystem-st
10
10
  import { BackgroundTasks, } from "../../util/background/background.js";
11
11
  import { SimS3CloudFormationResourceFactory } from "./cfn/sim-cfn-s3-resource-factory.js";
12
12
  import { simAwsAccountRegionScopeFactory } from "../aws/sim-aws-account-region-scope.factory.js";
13
+ import { SimIamAllowAllAuth, } from "../iam/authorize/sim-iam-inter-service-auth-z.js";
14
+ import { PutBucketPolicyCommandHandler } from "./command/put-bucket-policy/put-bucket-policy.handler.js";
13
15
  /**
14
16
  * Simulated S3. Handles SDK commands. Emulates AWS behaviour and state.
15
17
  * Scoped to an Account and Region, but has access to a global (as in
@@ -19,75 +21,94 @@ export class SimS3 {
19
21
  buckets = new Map();
20
22
  accountRegionScope;
21
23
  s3GlobalRegistry;
24
+ iam;
22
25
  background;
23
26
  cfnFactory = new SimS3CloudFormationResourceFactory(this);
24
27
  constructor(props = {}) {
25
- const { accountRegionScope = simAwsAccountRegionScopeFactory.make(), s3GlobalRegistry = new SimS3GlobalRegistry(), background = new BackgroundTasks(), } = props;
28
+ const { accountRegionScope = simAwsAccountRegionScopeFactory.make(), s3GlobalRegistry = new SimS3GlobalRegistry(), iam = new SimIamAllowAllAuth(), background = new BackgroundTasks(), } = props;
26
29
  this.accountRegionScope = accountRegionScope;
27
30
  this.s3GlobalRegistry = s3GlobalRegistry;
31
+ this.iam = iam;
28
32
  this.background = background;
29
33
  }
30
34
  /**
31
35
  * Handle a Create Bucket Command from the SDK.
32
36
  */
33
- async createBucket(cmd) {
37
+ async createBucket(cmd, opts) {
34
38
  const handler = new CreateBucketCommandHandler({
35
39
  accountRegionScope: this.accountRegionScope,
36
40
  buckets: this.buckets,
37
41
  s3GlobalRegistry: this.s3GlobalRegistry,
42
+ iam: this.iam,
38
43
  background: this.background,
39
44
  });
40
- return await handler.handle(cmd);
45
+ return await handler.handle(cmd, opts);
46
+ }
47
+ /**
48
+ * Handle a Put Bucket Policy Command from the SDK.
49
+ */
50
+ async putBucketPolicy(cmd, opts) {
51
+ const handler = new PutBucketPolicyCommandHandler({
52
+ buckets: this.buckets,
53
+ iam: this.iam,
54
+ background: this.background,
55
+ });
56
+ return await handler.handle(cmd, opts);
41
57
  }
42
58
  /**
43
59
  * Handle a Put Bucket Website Command from the SDK.
44
60
  */
45
- async putBucketWebsite(cmd) {
61
+ async putBucketWebsite(cmd, opts) {
46
62
  const handler = new PutBucketWebsiteCommandHandler({
47
63
  buckets: this.buckets,
64
+ iam: this.iam,
48
65
  background: this.background,
49
66
  });
50
- return await handler.handle(cmd);
67
+ return await handler.handle(cmd, opts);
51
68
  }
52
69
  /**
53
70
  * Handle a List Buckets Command from the SDK.
54
71
  */
55
- async listBuckets(cmd) {
72
+ async listBuckets(cmd, opts) {
56
73
  const handler = new ListBucketsCommandHandler({
57
74
  buckets: this.buckets,
75
+ iam: this.iam,
58
76
  background: this.background,
59
77
  });
60
- return await handler.handle(cmd);
78
+ return await handler.handle(cmd, opts);
61
79
  }
62
80
  /**
63
81
  * Handle a Put Object Command from the SDK.
64
82
  */
65
- async putObject(cmd) {
83
+ async putObject(cmd, opts) {
66
84
  const handler = new PutObjectCommandHandler({
67
85
  buckets: this.buckets,
86
+ iam: this.iam,
68
87
  background: this.background,
69
88
  });
70
- return await handler.handle(cmd);
89
+ return await handler.handle(cmd, opts);
71
90
  }
72
91
  /**
73
92
  * Handle a Get Object Command from the SDK.
74
93
  */
75
- async getObject(cmd) {
94
+ async getObject(cmd, opts) {
76
95
  const handler = new GetObjectCommandHandler({
77
96
  buckets: this.buckets,
97
+ iam: this.iam,
78
98
  background: this.background,
79
99
  });
80
- return await handler.handle(cmd);
100
+ return await handler.handle(cmd, opts);
81
101
  }
82
102
  /**
83
103
  * Handle a List Objects Command from the SDK.
84
104
  */
85
- async listObjects(cmd) {
105
+ async listObjects(cmd, opts) {
86
106
  const handler = new ListObjectsCommandHandler({
87
107
  buckets: this.buckets,
108
+ iam: this.iam,
88
109
  background: this.background,
89
110
  });
90
- return await handler.handle(cmd);
111
+ return await handler.handle(cmd, opts);
91
112
  }
92
113
  /**
93
114
  * Get a simulated S3 Bucket instance by name.
@@ -1 +1 @@
1
- {"version":3,"file":"sim-s3.js","sourceRoot":"","sources":["../../../src/service/s3/sim-s3.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sim-s3.js","sourceRoot":"","sources":["../../../src/service/s3/sim-s3.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ export class MemoryS3BucketStorage {
13
13
  * List simulated Objects in in-memory storage.
14
14
  */
15
15
  listObjects(prefix) {
16
- const objects = [...this.objects.entries()]
16
+ const objects = [...this.objects]
17
17
  .filter(([key]) => prefix === undefined || key.startsWith(prefix))
18
18
  .map(([, object]) => object);
19
19
  return Promise.resolve(objects);
@@ -1 +1 @@
1
- {"version":3,"file":"s3-memory-storage.js","sourceRoot":"","sources":["../../../../src/service/s3/storage/s3-memory-storage.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,OAAO,qBAAqB;IACf,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;IAE1D;;OAEG;IACH,SAAS,CAAC,GAAW;QACnB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,MAAe;QACzB,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;aACxC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;aACjE,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;QAE/B,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,MAAmB;QAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACrC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF"}
1
+ {"version":3,"file":"s3-memory-storage.js","sourceRoot":"","sources":["../../../../src/service/s3/storage/s3-memory-storage.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,OAAO,qBAAqB;IACf,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;IAE1D;;OAEG;IACH,SAAS,CAAC,GAAW;QACnB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,MAAe;QACzB,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;aAC9B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;aACjE,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;QAE/B,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,MAAmB;QAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACrC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF"}
@@ -0,0 +1,57 @@
1
+ import type { SimIamConditionValue } from "../../iam/policy/sim-iam-policy.js";
2
+ import { IamRoleArnParser, type IamRoleArnParts } from "../../iam/role/arn/sim-iam-role-arn-parser.js";
3
+ import type { SimAssumeRoleCommand } from "../command/assume-role/assume-role.cmd.js";
4
+ export interface ParsedAssumeRoleRequest {
5
+ readonly roleArn: string;
6
+ readonly roleArnParts: IamRoleArnParts;
7
+ readonly roleSessionName: string;
8
+ readonly durationSeconds: number;
9
+ readonly conditionContext: Readonly<Record<string, SimIamConditionValue>> | undefined;
10
+ }
11
+ /**
12
+ * Validates and normalizes an STS AssumeRole command.
13
+ *
14
+ * SDK command fields are optional at the TypeScript boundary because the AWS
15
+ * SDK validates required values at runtime. The rest of the simulated STS flow
16
+ * should not need to repeat those checks or work with optional values.
17
+ *
18
+ * This parser converts the command into a request with:
19
+ *
20
+ * - required Role ARN and session name values;
21
+ * - parsed Role ARN parts used for target-account lookup;
22
+ * - a positive duration with the STS default applied when omitted;
23
+ * - IAM condition context derived from AssumeRole-specific command fields.
24
+ *
25
+ * Authorization and session creation consume the normalized request and remain
26
+ * independent of SDK input validation details.
27
+ */
28
+ export declare class SimStsAssumeRoleRequestParser {
29
+ private readonly roleArnParser;
30
+ constructor(roleArnParser?: IamRoleArnParser);
31
+ /**
32
+ * Parse one AssumeRole command into the values used by authorization and
33
+ * temporary session creation.
34
+ *
35
+ * Parsing fails before any authorization or session state changes occur. This
36
+ * keeps malformed requests from reaching policy evaluation or IAM registries.
37
+ */
38
+ parse(cmd: SimAssumeRoleCommand): ParsedAssumeRoleRequest;
39
+ /**
40
+ * Apply the default session duration and reject invalid explicit values.
41
+ *
42
+ * Session duration is represented in whole seconds. Zero, negative numbers,
43
+ * fractional values, NaN, and infinities are rejected because they cannot
44
+ * describe a valid credential lifetime.
45
+ */
46
+ private durationSeconds;
47
+ /**
48
+ * Convert AssumeRole-specific request fields into IAM condition values.
49
+ *
50
+ * ExternalId participates in trust-policy authorization through the
51
+ * `sts:ExternalId` condition key. An omitted ExternalId produces no condition
52
+ * entry, allowing the IAM matcher to treat policies requiring that key as
53
+ * non-matching.
54
+ */
55
+ private conditionContext;
56
+ }
57
+ //# sourceMappingURL=sim-sts-assume-role-request-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-sts-assume-role-request-parser.d.ts","sourceRoot":"","sources":["../../../../src/service/sts/assume/sim-sts-assume-role-request-parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EACL,gBAAgB,EAChB,KAAK,eAAe,EACrB,MAAM,+CAA+C,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAItF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;IACvC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EACvB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,GAAG,SAAS,CAAC;CAC9D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,6BAA6B;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAA1C,YAA6B,aAAa,mBAAyB,EAAI;IAEvE;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,EAAE,oBAAoB,GAAG,uBAAuB,CAmBxD;IAED;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAWvB;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;CAWzB"}
@@ -0,0 +1,79 @@
1
+ import { assertDefined } from "../../../util/type-guard/defined.js";
2
+ import { IamRoleArnParser, } from "../../iam/role/arn/sim-iam-role-arn-parser.js";
3
+ const defaultRoleSessionDurationSeconds = 3600;
4
+ /**
5
+ * Validates and normalizes an STS AssumeRole command.
6
+ *
7
+ * SDK command fields are optional at the TypeScript boundary because the AWS
8
+ * SDK validates required values at runtime. The rest of the simulated STS flow
9
+ * should not need to repeat those checks or work with optional values.
10
+ *
11
+ * This parser converts the command into a request with:
12
+ *
13
+ * - required Role ARN and session name values;
14
+ * - parsed Role ARN parts used for target-account lookup;
15
+ * - a positive duration with the STS default applied when omitted;
16
+ * - IAM condition context derived from AssumeRole-specific command fields.
17
+ *
18
+ * Authorization and session creation consume the normalized request and remain
19
+ * independent of SDK input validation details.
20
+ */
21
+ export class SimStsAssumeRoleRequestParser {
22
+ roleArnParser;
23
+ constructor(roleArnParser = new IamRoleArnParser()) {
24
+ this.roleArnParser = roleArnParser;
25
+ }
26
+ /**
27
+ * Parse one AssumeRole command into the values used by authorization and
28
+ * temporary session creation.
29
+ *
30
+ * Parsing fails before any authorization or session state changes occur. This
31
+ * keeps malformed requests from reaching policy evaluation or IAM registries.
32
+ */
33
+ parse(cmd) {
34
+ const roleArn = cmd.input.RoleArn;
35
+ assertDefined(roleArn, "STS AssumeRole RoleArn is required");
36
+ const roleSessionName = cmd.input.RoleSessionName;
37
+ assertDefined(roleSessionName, "STS AssumeRole RoleSessionName is required");
38
+ const durationSeconds = this.durationSeconds(cmd.input.DurationSeconds);
39
+ return {
40
+ roleArn,
41
+ roleArnParts: this.roleArnParser.parse(roleArn),
42
+ roleSessionName,
43
+ durationSeconds,
44
+ conditionContext: this.conditionContext(cmd.input.ExternalId),
45
+ };
46
+ }
47
+ /**
48
+ * Apply the default session duration and reject invalid explicit values.
49
+ *
50
+ * Session duration is represented in whole seconds. Zero, negative numbers,
51
+ * fractional values, NaN, and infinities are rejected because they cannot
52
+ * describe a valid credential lifetime.
53
+ */
54
+ durationSeconds(value) {
55
+ const durationSeconds = value ?? defaultRoleSessionDurationSeconds;
56
+ /* v8 ignore if */
57
+ if (!Number.isSafeInteger(durationSeconds) || durationSeconds <= 0) {
58
+ throw new Error("DurationSeconds must be a positive integer");
59
+ }
60
+ return durationSeconds;
61
+ }
62
+ /**
63
+ * Convert AssumeRole-specific request fields into IAM condition values.
64
+ *
65
+ * ExternalId participates in trust-policy authorization through the
66
+ * `sts:ExternalId` condition key. An omitted ExternalId produces no condition
67
+ * entry, allowing the IAM matcher to treat policies requiring that key as
68
+ * non-matching.
69
+ */
70
+ conditionContext(externalId) {
71
+ if (externalId === undefined) {
72
+ return undefined;
73
+ }
74
+ return {
75
+ "sts:ExternalId": externalId,
76
+ };
77
+ }
78
+ }
79
+ //# sourceMappingURL=sim-sts-assume-role-request-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-sts-assume-role-request-parser.js","sourceRoot":"","sources":["../../../../src/service/sts/assume/sim-sts-assume-role-request-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE,OAAO,EACL,gBAAgB,GAEjB,MAAM,+CAA+C,CAAC;AAGvD,MAAM,iCAAiC,GAAG,IAAI,CAAC;AAW/C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,6BAA6B;IACX,aAAa;IAA1C,YAA6B,aAAa,GAAG,IAAI,gBAAgB,EAAE;6BAAtC,aAAa;IAA4B,CAAC;IAEvE;;;;;;OAMG;IACH,KAAK,CAAC,GAAyB;QAC7B,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;QAClC,aAAa,CAAC,OAAO,EAAE,oCAAoC,CAAC,CAAC;QAE7D,MAAM,eAAe,GAAG,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC;QAClD,aAAa,CACX,eAAe,EACf,4CAA4C,CAC7C,CAAC;QAEF,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAExE,OAAO;YACL,OAAO;YACP,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;YAC/C,eAAe;YACf,eAAe;YACf,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;SAC9D,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACK,eAAe,CAAC,KAAyB;QAC/C,MAAM,eAAe,GAAG,KAAK,IAAI,iCAAiC,CAAC;QAEnE,kBAAkB;QAClB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,eAAe,IAAI,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;;;;;;OAOG;IACK,gBAAgB,CACtB,UAA8B;QAE9B,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO;YACL,gBAAgB,EAAE,UAAU;SAC7B,CAAC;IACJ,CAAC;CACF"}