@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,52 @@
1
+ import type { SimArnPrincipal } from "../../aws/caller/sim-aws-caller.js";
2
+ import type { SimGetRoleCommandOutput } from "../../iam/command/role/get-role/get-role.cmd.js";
3
+ import type { SimIamAccountResolver } from "../../iam/registry/sim-iam-account-resolver.js";
4
+ import type { IamRoleArnParts } from "../../iam/role/arn/sim-iam-role-arn-parser.js";
5
+ import type { SimAssumeRoleCommandOutput } from "../command/assume-role/assume-role.cmd.js";
6
+ interface AssumeRoleSessionCreatorProps {
7
+ readonly iamResolver: SimIamAccountResolver;
8
+ }
9
+ interface CreateAssumeRoleSessionInput {
10
+ readonly roleArnParts: IamRoleArnParts;
11
+ readonly role: SimGetRoleCommandOutput["Role"];
12
+ readonly roleSessionName: string;
13
+ readonly sourcePrincipal: SimArnPrincipal;
14
+ readonly durationSeconds: number;
15
+ }
16
+ /**
17
+ * Creates the temporary IAM Role session returned by STS AssumeRole.
18
+ *
19
+ * Authorization must be completed before this class is called. This class does
20
+ * not inspect policies or decide whether the caller may assume the Role. Its
21
+ * responsibility starts after authorization and covers:
22
+ *
23
+ * - resolving the target account's IAM session manager;
24
+ * - calculating the session creation and expiration timestamps;
25
+ * - creating the temporary Role session and its credentials;
26
+ * - mapping internal session data to the public AssumeRole response shape.
27
+ *
28
+ * Keeping these operations together ensures the same expiration timestamp is
29
+ * stored in the session and returned to the SDK caller.
30
+ */
31
+ export declare class SimStsAssumeRoleSessionCreator {
32
+ private readonly iamResolver;
33
+ constructor(props: AssumeRoleSessionCreatorProps);
34
+ /**
35
+ * Create a temporary session for an authorized AssumeRole request.
36
+ *
37
+ * `roleArnParts.accountId` selects the IAM facade that owns the target Role.
38
+ * The Role name and ID come from the resolved Role, while the session name and
39
+ * source principal come from the original request context.
40
+ */
41
+ create(input: CreateAssumeRoleSessionInput): SimAssumeRoleCommandOutput;
42
+ /**
43
+ * Calculate the credential expiration from the session creation time.
44
+ *
45
+ * STS durations are expressed in seconds, while JavaScript Date arithmetic
46
+ * uses milliseconds. Using the supplied creation timestamp as the base keeps
47
+ * session metadata and returned credential metadata on the same timeline.
48
+ */
49
+ private expiration;
50
+ }
51
+ export {};
52
+ //# sourceMappingURL=sim-sts-assume-role-session-creator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-sts-assume-role-session-creator.d.ts","sourceRoot":"","sources":["../../../../src/service/sts/assume/sim-sts-assume-role-session-creator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iDAAiD,CAAC;AAC/F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAC5F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AACrF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AAE5F,UAAU,6BAA6B;IACrC,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;CAC7C;AAED,UAAU,4BAA4B;IACpC,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,8BAA8B;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwB;IAEpD,YAAY,KAAK,EAAE,6BAA6B,EAE/C;IAED;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,EAAE,4BAA4B,GAAG,0BAA0B,CA4BtE;IAED;;;;;;OAMG;IACH,OAAO,CAAC,UAAU;CAGnB"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Creates the temporary IAM Role session returned by STS AssumeRole.
3
+ *
4
+ * Authorization must be completed before this class is called. This class does
5
+ * not inspect policies or decide whether the caller may assume the Role. Its
6
+ * responsibility starts after authorization and covers:
7
+ *
8
+ * - resolving the target account's IAM session manager;
9
+ * - calculating the session creation and expiration timestamps;
10
+ * - creating the temporary Role session and its credentials;
11
+ * - mapping internal session data to the public AssumeRole response shape.
12
+ *
13
+ * Keeping these operations together ensures the same expiration timestamp is
14
+ * stored in the session and returned to the SDK caller.
15
+ */
16
+ export class SimStsAssumeRoleSessionCreator {
17
+ iamResolver;
18
+ constructor(props) {
19
+ this.iamResolver = props.iamResolver;
20
+ }
21
+ /**
22
+ * Create a temporary session for an authorized AssumeRole request.
23
+ *
24
+ * `roleArnParts.accountId` selects the IAM facade that owns the target Role.
25
+ * The Role name and ID come from the resolved Role, while the session name and
26
+ * source principal come from the original request context.
27
+ */
28
+ create(input) {
29
+ const createDate = new Date();
30
+ const expiration = this.expiration(createDate, input.durationSeconds);
31
+ const targetIam = this.iamResolver.iamForAccount(input.roleArnParts.accountId);
32
+ const createdSession = targetIam.sessionManager.createRoleSession({
33
+ roleName: input.role.RoleName,
34
+ sessionName: input.roleSessionName,
35
+ sourcePrincipal: input.sourcePrincipal,
36
+ createDate,
37
+ expiration,
38
+ });
39
+ return {
40
+ Credentials: {
41
+ AccessKeyId: createdSession.credentials.accessKeyId,
42
+ SecretAccessKey: createdSession.credentials.secretAccessKey,
43
+ SessionToken: createdSession.credentials.sessionToken,
44
+ Expiration: expiration,
45
+ },
46
+ AssumedRoleUser: {
47
+ AssumedRoleId: `${input.role.RoleId}:${input.roleSessionName}`,
48
+ Arn: createdSession.session.principal.arn,
49
+ },
50
+ $metadata: {},
51
+ };
52
+ }
53
+ /**
54
+ * Calculate the credential expiration from the session creation time.
55
+ *
56
+ * STS durations are expressed in seconds, while JavaScript Date arithmetic
57
+ * uses milliseconds. Using the supplied creation timestamp as the base keeps
58
+ * session metadata and returned credential metadata on the same timeline.
59
+ */
60
+ expiration(createDate, durationSeconds) {
61
+ return new Date(createDate.getTime() + durationSeconds * 1000);
62
+ }
63
+ }
64
+ //# sourceMappingURL=sim-sts-assume-role-session-creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-sts-assume-role-session-creator.js","sourceRoot":"","sources":["../../../../src/service/sts/assume/sim-sts-assume-role-session-creator.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,8BAA8B;IACxB,WAAW,CAAwB;IAEpD,YAAY,KAAoC;QAC9C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;IACvC,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,KAAmC;QACxC,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;QACtE,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAC9C,KAAK,CAAC,YAAY,CAAC,SAAS,CAC7B,CAAC;QAEF,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC,iBAAiB,CAAC;YAChE,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ;YAC7B,WAAW,EAAE,KAAK,CAAC,eAAe;YAClC,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,UAAU;YACV,UAAU;SACX,CAAC,CAAC;QAEH,OAAO;YACL,WAAW,EAAE;gBACX,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC,WAAW;gBACnD,eAAe,EAAE,cAAc,CAAC,WAAW,CAAC,eAAe;gBAC3D,YAAY,EAAE,cAAc,CAAC,WAAW,CAAC,YAAY;gBACrD,UAAU,EAAE,UAAU;aACvB;YACD,eAAe,EAAE;gBACf,aAAa,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,eAAe,EAAE;gBAC9D,GAAG,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG;aAC1C;YACD,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACK,UAAU,CAAC,UAAgB,EAAE,eAAuB;QAC1D,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,eAAe,GAAG,IAAI,CAAC,CAAC;IACjE,CAAC;CACF"}
@@ -0,0 +1,57 @@
1
+ import type { SimArnPrincipal } from "../../aws/caller/sim-aws-caller.js";
2
+ import type { SimAwsAccountId } from "../../aws/sim-aws-account.js";
3
+ import type { SimGetRoleCommandOutput } from "../../iam/command/role/get-role/get-role.cmd.js";
4
+ import type { SimIamConditionValue } from "../../iam/policy/sim-iam-policy.js";
5
+ import type { SimIamAccountResolver } from "../../iam/registry/sim-iam-account-resolver.js";
6
+ import type { IamRoleArnParts } from "../../iam/role/arn/sim-iam-role-arn-parser.js";
7
+ interface AssumeRoleAuthorizationCoordinatorProps {
8
+ readonly sourceAccountId: SimAwsAccountId;
9
+ readonly iamResolver: SimIamAccountResolver;
10
+ }
11
+ interface AssumeRoleAuthorizationInput {
12
+ readonly roleArn: string;
13
+ readonly roleArnParts: IamRoleArnParts;
14
+ readonly caller: SimArnPrincipal;
15
+ readonly conditionContext?: Readonly<Record<string, SimIamConditionValue>> | undefined;
16
+ }
17
+ type AssumeRoleAuthorizedRole = SimGetRoleCommandOutput["Role"];
18
+ /**
19
+ * Coordinates source identity authorization and target Role trust authorization
20
+ * for an STS AssumeRole request.
21
+ *
22
+ * AssumeRole normally requires both an identity-policy Allow in the caller's
23
+ * Account and a matching trust-policy Allow in the target Role's Account.
24
+ * A directly trusted IAM User in the same Account is an exception: the Role
25
+ * trust policy can grant that User access without a separate identity-policy
26
+ * Allow. Matching explicit identity-policy Deny statements still reject the
27
+ * request.
28
+ *
29
+ * The target trust policy is evaluated first because its matching grant must be
30
+ * classified before the source authorization requirement can be selected.
31
+ */
32
+ export declare class AssumeRoleAuthorizationCoordinator {
33
+ private readonly sourceAccountId;
34
+ private readonly sourcePrincipalAuthorizer;
35
+ private readonly targetRoleAuthorizer;
36
+ constructor(props: AssumeRoleAuthorizationCoordinatorProps);
37
+ /**
38
+ * Require the applicable source identity and target trust permissions.
39
+ *
40
+ * The returned Role has passed target lookup and trust authorization and can
41
+ * therefore be used to create the assumed-role session.
42
+ */
43
+ authorize(input: AssumeRoleAuthorizationInput): Promise<AssumeRoleAuthorizedRole>;
44
+ /**
45
+ * Whether the target trust policy is sufficient without an identity Allow.
46
+ *
47
+ * All three conditions are required:
48
+ *
49
+ * - the caller and target Role belong to the same Account;
50
+ * - the caller is an IAM User rather than a Role, session, or root principal;
51
+ * - a matching trust statement grants access directly rather than delegating
52
+ * authorization to the caller's Account.
53
+ */
54
+ private hasDirectSameAccountUserGrant;
55
+ }
56
+ export {};
57
+ //# sourceMappingURL=assume-role-auth-z-coordinator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assume-role-auth-z-coordinator.d.ts","sourceRoot":"","sources":["../../../../src/service/sts/auth-z/assume-role-auth-z-coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EAEhB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iDAAiD,CAAC;AAC/F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAC5F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AAIrF,UAAU,uCAAuC;IAC/C,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;CAC7C;AAED,UAAU,4BAA4B;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,gBAAgB,CAAC,EACxB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,GAAG,SAAS,CAAC;CAC9D;AAED,KAAK,wBAAwB,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;AAEhE;;;;;;;;;;;;;GAaG;AACH,qBAAa,kCAAkC;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAsC;IAChF,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAiC;IAEtE,YAAY,KAAK,EAAE,uCAAuC,EASzD;IAED;;;;;OAKG;IACG,SAAS,CACb,KAAK,EAAE,4BAA4B,GAClC,OAAO,CAAC,wBAAwB,CAAC,CAmBnC;IAED;;;;;;;;;OASG;IACH,OAAO,CAAC,6BAA6B;CAYtC"}
@@ -0,0 +1,68 @@
1
+ import { AssumeRoleSourcePrincipalAuthorizer } from "./assume-role-src-acc-auth-z.js";
2
+ import { AssumeRoleTargetRoleAuthorizer } from "./assume-role-target-auth-z.js";
3
+ /**
4
+ * Coordinates source identity authorization and target Role trust authorization
5
+ * for an STS AssumeRole request.
6
+ *
7
+ * AssumeRole normally requires both an identity-policy Allow in the caller's
8
+ * Account and a matching trust-policy Allow in the target Role's Account.
9
+ * A directly trusted IAM User in the same Account is an exception: the Role
10
+ * trust policy can grant that User access without a separate identity-policy
11
+ * Allow. Matching explicit identity-policy Deny statements still reject the
12
+ * request.
13
+ *
14
+ * The target trust policy is evaluated first because its matching grant must be
15
+ * classified before the source authorization requirement can be selected.
16
+ */
17
+ export class AssumeRoleAuthorizationCoordinator {
18
+ sourceAccountId;
19
+ sourcePrincipalAuthorizer;
20
+ targetRoleAuthorizer;
21
+ constructor(props) {
22
+ this.sourceAccountId = props.sourceAccountId;
23
+ this.sourcePrincipalAuthorizer = new AssumeRoleSourcePrincipalAuthorizer({
24
+ sourceAccountId: props.sourceAccountId,
25
+ iamResolver: props.iamResolver,
26
+ });
27
+ this.targetRoleAuthorizer = new AssumeRoleTargetRoleAuthorizer({
28
+ iamResolver: props.iamResolver,
29
+ });
30
+ }
31
+ /**
32
+ * Require the applicable source identity and target trust permissions.
33
+ *
34
+ * The returned Role has passed target lookup and trust authorization and can
35
+ * therefore be used to create the assumed-role session.
36
+ */
37
+ async authorize(input) {
38
+ const targetAuthorization = await this.targetRoleAuthorizer.authorize({
39
+ roleArn: input.roleArn,
40
+ target: input.roleArnParts,
41
+ caller: input.caller,
42
+ conditionContext: input.conditionContext,
43
+ });
44
+ this.sourcePrincipalAuthorizer.authorize({
45
+ roleArn: input.roleArn,
46
+ callerPrincipal: input.caller,
47
+ identityPolicyAllowRequired: !this.hasDirectSameAccountUserGrant(input.caller, input.roleArnParts.accountId, targetAuthorization.trust.isDirectPrincipalGrant),
48
+ });
49
+ return targetAuthorization.role;
50
+ }
51
+ /**
52
+ * Whether the target trust policy is sufficient without an identity Allow.
53
+ *
54
+ * All three conditions are required:
55
+ *
56
+ * - the caller and target Role belong to the same Account;
57
+ * - the caller is an IAM User rather than a Role, session, or root principal;
58
+ * - a matching trust statement grants access directly rather than delegating
59
+ * authorization to the caller's Account.
60
+ */
61
+ hasDirectSameAccountUserGrant(caller, targetAccountId, isDirectPrincipalGrant) {
62
+ return (targetAccountId === this.sourceAccountId &&
63
+ caller.kind === "arn" &&
64
+ caller.arn.startsWith(`arn:aws:iam::${this.sourceAccountId}:user/`) &&
65
+ isDirectPrincipalGrant);
66
+ }
67
+ }
68
+ //# sourceMappingURL=assume-role-auth-z-coordinator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assume-role-auth-z-coordinator.js","sourceRoot":"","sources":["../../../../src/service/sts/auth-z/assume-role-auth-z-coordinator.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,mCAAmC,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAiBhF;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,kCAAkC;IAC5B,eAAe,CAAkB;IACjC,yBAAyB,CAAsC;IAC/D,oBAAoB,CAAiC;IAEtE,YAAY,KAA8C;QACxD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;QAC7C,IAAI,CAAC,yBAAyB,GAAG,IAAI,mCAAmC,CAAC;YACvE,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B,CAAC,CAAC;QACH,IAAI,CAAC,oBAAoB,GAAG,IAAI,8BAA8B,CAAC;YAC7D,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CACb,KAAmC;QAEnC,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;YACpE,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,YAAY;YAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;SACzC,CAAC,CAAC;QAEH,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC;YACvC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,eAAe,EAAE,KAAK,CAAC,MAAM;YAC7B,2BAA2B,EAAE,CAAC,IAAI,CAAC,6BAA6B,CAC9D,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,YAAY,CAAC,SAAS,EAC5B,mBAAmB,CAAC,KAAK,CAAC,sBAAsB,CACjD;SACF,CAAC,CAAC;QAEH,OAAO,mBAAmB,CAAC,IAAI,CAAC;IAClC,CAAC;IAED;;;;;;;;;OASG;IACK,6BAA6B,CACnC,MAAuB,EACvB,eAAgC,EAChC,sBAA+B;QAE/B,OAAO,CACL,eAAe,KAAK,IAAI,CAAC,eAAe;YACxC,MAAM,CAAC,IAAI,KAAK,KAAK;YACrB,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,IAAI,CAAC,eAAe,QAAQ,CAAC;YACnE,sBAAsB,CACvB,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,45 @@
1
+ import type { SimIamAccountResolver } from "../../iam/registry/sim-iam-account-resolver.js";
2
+ import type { SimAwsAccountId } from "../../aws/sim-aws-account.js";
3
+ import type { SimAwsPrincipal } from "../../aws/caller/sim-aws-caller.js";
4
+ interface AssumeRoleSourceAccountAuthorizerProps {
5
+ readonly sourceAccountId: SimAwsAccountId;
6
+ readonly iamResolver: SimIamAccountResolver;
7
+ }
8
+ export interface AssumeRoleSourceAuthorizationInput {
9
+ readonly roleArn: string;
10
+ readonly callerPrincipal?: SimAwsPrincipal | undefined;
11
+ /**
12
+ * Whether the caller must have an identity-policy Allow for sts:AssumeRole.
13
+ *
14
+ * This is false when a same-account Role trust policy grants permission
15
+ * directly to an IAM User. Explicit identity-policy denies always apply.
16
+ */
17
+ readonly identityPolicyAllowRequired?: boolean | undefined;
18
+ }
19
+ /**
20
+ * Authorizes the caller's request to assume a role against IAM in the source
21
+ * Account.
22
+ *
23
+ * This class owns only the identity-side authorization performed by the
24
+ * caller's Account. It resolves that Account's simulated IAM facade and
25
+ * evaluates `sts:AssumeRole` against the target role ARN. Target-account role
26
+ * trust authorization is a separate responsibility and must be performed even
27
+ * when the source and target Account are the same.
28
+ *
29
+ * When no caller principal is supplied, Sim IAM applies its normal default
30
+ * caller behavior for the source Account.
31
+ */
32
+ export declare class AssumeRoleSourcePrincipalAuthorizer {
33
+ private readonly sourceAccountId;
34
+ private readonly iamResolver;
35
+ constructor(props: AssumeRoleSourceAccountAuthorizerProps);
36
+ /**
37
+ * Require the source Account to allow the caller to assume the target role.
38
+ *
39
+ * Throws when source IAM is unavailable or its policy decision denies the
40
+ * request.
41
+ */
42
+ authorize(input: AssumeRoleSourceAuthorizationInput): void;
43
+ }
44
+ export {};
45
+ //# sourceMappingURL=assume-role-src-acc-auth-z.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assume-role-src-acc-auth-z.d.ts","sourceRoot":"","sources":["../../../../src/service/sts/auth-z/assume-role-src-acc-auth-z.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAC5F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAI1E,UAAU,sCAAsC;IAC9C,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;CAC7C;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAEvD;;;;;OAKG;IACH,QAAQ,CAAC,2BAA2B,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC5D;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,mCAAmC;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwB;IAEpD,YAAY,KAAK,EAAE,sCAAsC,EAGxD;IAED;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,kCAAkC,GAAG,IAAI,CAsBzD;CACF"}
@@ -0,0 +1,48 @@
1
+ import { makeSimAwsAccountRootPrincipal } from "../../aws/caller/sim-aws-account-root-principal.js";
2
+ import { SimIamAccessDenied } from "../../iam/error/sim-iam.error.js";
3
+ /**
4
+ * Authorizes the caller's request to assume a role against IAM in the source
5
+ * Account.
6
+ *
7
+ * This class owns only the identity-side authorization performed by the
8
+ * caller's Account. It resolves that Account's simulated IAM facade and
9
+ * evaluates `sts:AssumeRole` against the target role ARN. Target-account role
10
+ * trust authorization is a separate responsibility and must be performed even
11
+ * when the source and target Account are the same.
12
+ *
13
+ * When no caller principal is supplied, Sim IAM applies its normal default
14
+ * caller behavior for the source Account.
15
+ */
16
+ export class AssumeRoleSourcePrincipalAuthorizer {
17
+ sourceAccountId;
18
+ iamResolver;
19
+ constructor(props) {
20
+ this.sourceAccountId = props.sourceAccountId;
21
+ this.iamResolver = props.iamResolver;
22
+ }
23
+ /**
24
+ * Require the source Account to allow the caller to assume the target role.
25
+ *
26
+ * Throws when source IAM is unavailable or its policy decision denies the
27
+ * request.
28
+ */
29
+ authorize(input) {
30
+ const sourceIam = this.iamResolver.iamForAccount(this.sourceAccountId);
31
+ const callerPrincipal = input.callerPrincipal ??
32
+ makeSimAwsAccountRootPrincipal(this.sourceAccountId);
33
+ const decision = sourceIam.authorize({
34
+ action: "sts:AssumeRole",
35
+ resource: input.roleArn,
36
+ caller: callerPrincipal,
37
+ });
38
+ if (decision.isExplicitDeny ||
39
+ (decision.isImplicitDeny && Boolean(input.identityPolicyAllowRequired))) {
40
+ throw new SimIamAccessDenied({
41
+ principal: callerPrincipal,
42
+ action: "sts:AssumeRole",
43
+ resource: input.roleArn,
44
+ });
45
+ }
46
+ }
47
+ }
48
+ //# sourceMappingURL=assume-role-src-acc-auth-z.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assume-role-src-acc-auth-z.js","sourceRoot":"","sources":["../../../../src/service/sts/auth-z/assume-role-src-acc-auth-z.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,8BAA8B,EAAE,MAAM,oDAAoD,CAAC;AACpG,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAoBtE;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,mCAAmC;IAC7B,eAAe,CAAkB;IACjC,WAAW,CAAwB;IAEpD,YAAY,KAA6C;QACvD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,KAAyC;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACvE,MAAM,eAAe,GACnB,KAAK,CAAC,eAAe;YACrB,8BAA8B,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAEvD,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC;YACnC,MAAM,EAAE,gBAAgB;YACxB,QAAQ,EAAE,KAAK,CAAC,OAAO;YACvB,MAAM,EAAE,eAAe;SACxB,CAAC,CAAC;QAEH,IACE,QAAQ,CAAC,cAAc;YACvB,CAAC,QAAQ,CAAC,cAAc,IAAI,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,EACvE,CAAC;YACD,MAAM,IAAI,kBAAkB,CAAC;gBAC3B,SAAS,EAAE,eAAe;gBAC1B,MAAM,EAAE,gBAAgB;gBACxB,QAAQ,EAAE,KAAK,CAAC,OAAO;aACxB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,48 @@
1
+ import type { SimAwsPrincipal } from "../../aws/caller/sim-aws-caller.js";
2
+ import type { SimAwsAccountId } from "../../aws/sim-aws-account.js";
3
+ import type { SimIamAccountResolver } from "../../iam/registry/sim-iam-account-resolver.js";
4
+ import type { IamRoleArnParts } from "../../iam/role/arn/sim-iam-role-arn-parser.js";
5
+ import type { SimGetRoleCommandOutput } from "../../iam/command/role/get-role/get-role.cmd.js";
6
+ import type { SimIamConditionValue } from "../../iam/policy/sim-iam-policy.js";
7
+ import { type AssumeRoleTrustPolicyAuthorization } from "./assume-role-trust-policy-authorizer.js";
8
+ interface AssumeRoleTargetRoleAuthorizerProps {
9
+ readonly iamResolver: SimIamAccountResolver;
10
+ }
11
+ type AssumeRoleTargetRole = SimGetRoleCommandOutput["Role"];
12
+ interface AssumeRoleTargetAuthorizationInput {
13
+ readonly roleArn: string;
14
+ readonly target: IamRoleArnParts | SimAwsAccountId;
15
+ readonly caller: SimAwsPrincipal;
16
+ readonly conditionContext?: Readonly<Record<string, SimIamConditionValue>> | undefined;
17
+ }
18
+ interface AssumeRoleTargetAuthorization {
19
+ readonly role: AssumeRoleTargetRole;
20
+ readonly trust: AssumeRoleTrustPolicyAuthorization;
21
+ }
22
+ /**
23
+ * Resolves the target of an AssumeRole request and coordinates authorization.
24
+ *
25
+ * This class owns the account and Role lookup workflow. Target ARN parsing and
26
+ * consistency checks belong to `AssumeRoleTargetResolver`, while trust-policy
27
+ * parsing and evaluation belong to `AssumeRoleTrustPolicyAuthorizer`.
28
+ *
29
+ * Separating these steps prevents target lookup rules from becoming coupled to
30
+ * IAM policy evaluation rules.
31
+ */
32
+ export declare class AssumeRoleTargetRoleAuthorizer {
33
+ private readonly iamResolver;
34
+ private readonly targetResolver;
35
+ private readonly trustPolicyAuthorizer;
36
+ constructor(props: AssumeRoleTargetRoleAuthorizerProps);
37
+ /**
38
+ * Resolve the requested Role, load it from the target account, and require its
39
+ * trust policy to allow the caller.
40
+ *
41
+ * Resolution happens before IAM lookup so the account and Role name used to load
42
+ * the resource are guaranteed to agree with the ARN being authorized. The loaded
43
+ * Role is returned for the session-creation stage after authorization succeeds.
44
+ */
45
+ authorize(input: AssumeRoleTargetAuthorizationInput): Promise<AssumeRoleTargetAuthorization>;
46
+ }
47
+ export {};
48
+ //# sourceMappingURL=assume-role-target-auth-z.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assume-role-target-auth-z.d.ts","sourceRoot":"","sources":["../../../../src/service/sts/auth-z/assume-role-target-auth-z.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAC5F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AACrF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iDAAiD,CAAC;AAC/F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,OAAO,EACL,KAAK,kCAAkC,EAExC,MAAM,0CAA0C,CAAC;AAElD,UAAU,mCAAmC;IAC3C,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;CAC7C;AAED,KAAK,oBAAoB,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;AAE5D,UAAU,kCAAkC;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,gBAAgB,CAAC,EACxB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,GAAG,SAAS,CAAC;CAC9D;AAED,UAAU,6BAA6B;IACrC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,kCAAkC,CAAC;CACpD;AAED;;;;;;;;;GASG;AACH,qBAAa,8BAA8B;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwB;IACpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkC;IACjE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CACE;IAExC,YAAY,KAAK,EAAE,mCAAmC,EAErD;IAED;;;;;;;OAOG;IACG,SAAS,CACb,KAAK,EAAE,kCAAkC,GACxC,OAAO,CAAC,6BAA6B,CAAC,CAyBxC;CACF"}
@@ -0,0 +1,50 @@
1
+ import { AssumeRoleTargetResolver } from "./resolve/assume-role-target-resolver.js";
2
+ import { AssumeRoleTrustPolicyAuthorizer, } from "./assume-role-trust-policy-authorizer.js";
3
+ /**
4
+ * Resolves the target of an AssumeRole request and coordinates authorization.
5
+ *
6
+ * This class owns the account and Role lookup workflow. Target ARN parsing and
7
+ * consistency checks belong to `AssumeRoleTargetResolver`, while trust-policy
8
+ * parsing and evaluation belong to `AssumeRoleTrustPolicyAuthorizer`.
9
+ *
10
+ * Separating these steps prevents target lookup rules from becoming coupled to
11
+ * IAM policy evaluation rules.
12
+ */
13
+ export class AssumeRoleTargetRoleAuthorizer {
14
+ iamResolver;
15
+ targetResolver = new AssumeRoleTargetResolver();
16
+ trustPolicyAuthorizer = new AssumeRoleTrustPolicyAuthorizer();
17
+ constructor(props) {
18
+ this.iamResolver = props.iamResolver;
19
+ }
20
+ /**
21
+ * Resolve the requested Role, load it from the target account, and require its
22
+ * trust policy to allow the caller.
23
+ *
24
+ * Resolution happens before IAM lookup so the account and Role name used to load
25
+ * the resource are guaranteed to agree with the ARN being authorized. The loaded
26
+ * Role is returned for the session-creation stage after authorization succeeds.
27
+ */
28
+ async authorize(input) {
29
+ const roleArnParts = this.targetResolver.resolve(input.roleArn, input.target);
30
+ const targetIam = this.iamResolver.iamForAccount(roleArnParts.accountId);
31
+ const getRoleOutput = await targetIam.getRole({
32
+ input: {
33
+ RoleName: roleArnParts.roleName,
34
+ },
35
+ });
36
+ const role = getRoleOutput.Role;
37
+ const trust = this.trustPolicyAuthorizer.authorize({
38
+ roleArn: input.roleArn,
39
+ role,
40
+ targetIam,
41
+ caller: input.caller,
42
+ conditionContext: input.conditionContext,
43
+ });
44
+ return {
45
+ role,
46
+ trust,
47
+ };
48
+ }
49
+ }
50
+ //# sourceMappingURL=assume-role-target-auth-z.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assume-role-target-auth-z.js","sourceRoot":"","sources":["../../../../src/service/sts/auth-z/assume-role-target-auth-z.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,EAEL,+BAA+B,GAChC,MAAM,0CAA0C,CAAC;AAqBlD;;;;;;;;;GASG;AACH,MAAM,OAAO,8BAA8B;IACxB,WAAW,CAAwB;IACnC,cAAc,GAAG,IAAI,wBAAwB,EAAE,CAAC;IAChD,qBAAqB,GACpC,IAAI,+BAA+B,EAAE,CAAC;IAExC,YAAY,KAA0C;QACpD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;IACvC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,SAAS,CACb,KAAyC;QAEzC,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAC9C,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,CACb,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACzE,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC;YAC5C,KAAK,EAAE;gBACL,QAAQ,EAAE,YAAY,CAAC,QAAQ;aAChC;SACF,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;QAEhC,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC;YACjD,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI;YACJ,SAAS;YACT,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;SACzC,CAAC,CAAC;QAEH,OAAO;YACL,IAAI;YACJ,KAAK;SACN,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,57 @@
1
+ import type { SimIamPolicyDocumentStatement } from "../../iam/policy/sim-iam-policy.js";
2
+ /**
3
+ * Classifies matching Role trust-policy grants as direct principal grants or
4
+ * AWS Account delegation.
5
+ *
6
+ * This distinction affects whether an IAM User needs a separate identity-policy
7
+ * Allow for sts:AssumeRole:
8
+ *
9
+ * - a trust statement naming a principal directly grants that principal access;
10
+ * - a bare Account ID or Account root ARN delegates authorization to that Account,
11
+ * so the caller must also have an identity-policy Allow.
12
+ *
13
+ * Statements supplied to this class have already matched the caller, action,
14
+ * resource, and conditions during IAM policy evaluation. This class therefore
15
+ * examines only the Principal representation that produced the matching grant.
16
+ */
17
+ export declare class AssumeRoleTrustGrantClassifier {
18
+ /**
19
+ * Whether any matching trust-policy statement grants access directly.
20
+ *
21
+ * Multiple statements use union semantics. One direct grant is sufficient even
22
+ * when another matching statement delegates authorization to an Account.
23
+ */
24
+ hasDirectPrincipalGrant(statements: readonly SimIamPolicyDocumentStatement[]): boolean;
25
+ /**
26
+ * Classify one matching trust-policy Allow statement.
27
+ *
28
+ * A matching NotPrincipal statement applies directly to every principal it did
29
+ * not exclude. A Principal statement is direct when at least one matching AWS
30
+ * principal value is not an Account delegation form.
31
+ */
32
+ private statementGrantsPrincipalDirectly;
33
+ /**
34
+ * Normalize the AWS values from each supported Principal representation.
35
+ *
36
+ * String and array forms represent AWS principals directly. Principal objects
37
+ * group values by principal type, so only their AWS entry is relevant when
38
+ * classifying an ARN-based caller.
39
+ */
40
+ private awsPrincipalValues;
41
+ /**
42
+ * Distinguish a principal-type object from a readonly principal array.
43
+ *
44
+ * Array.isArray alone does not narrow readonly arrays correctly in this union,
45
+ * so this predicate records the object branch explicitly for TypeScript.
46
+ */
47
+ private isPrincipalObject;
48
+ /**
49
+ * Recognize the two Principal forms that delegate trust to an AWS Account.
50
+ *
51
+ * A bare 12-digit Account ID and its Account root ARN have equivalent
52
+ * delegation semantics. Other values, including a specific IAM User ARN and
53
+ * the wildcard principal, are classified as direct grants.
54
+ */
55
+ private isAccountDelegation;
56
+ }
57
+ //# sourceMappingURL=assume-role-trust-grant-classifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assume-role-trust-grant-classifier.d.ts","sourceRoot":"","sources":["../../../../src/service/sts/auth-z/assume-role-trust-grant-classifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,6BAA6B,EAC9B,MAAM,oCAAoC,CAAC;AAE5C;;;;;;;;;;;;;;GAcG;AACH,qBAAa,8BAA8B;IACzC;;;;;OAKG;IACH,uBAAuB,CACrB,UAAU,EAAE,SAAS,6BAA6B,EAAE,GACnD,OAAO,CAIT;IAED;;;;;;OAMG;IACH,OAAO,CAAC,gCAAgC;IAgBxC;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;CAM5B"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Classifies matching Role trust-policy grants as direct principal grants or
3
+ * AWS Account delegation.
4
+ *
5
+ * This distinction affects whether an IAM User needs a separate identity-policy
6
+ * Allow for sts:AssumeRole:
7
+ *
8
+ * - a trust statement naming a principal directly grants that principal access;
9
+ * - a bare Account ID or Account root ARN delegates authorization to that Account,
10
+ * so the caller must also have an identity-policy Allow.
11
+ *
12
+ * Statements supplied to this class have already matched the caller, action,
13
+ * resource, and conditions during IAM policy evaluation. This class therefore
14
+ * examines only the Principal representation that produced the matching grant.
15
+ */
16
+ export class AssumeRoleTrustGrantClassifier {
17
+ /**
18
+ * Whether any matching trust-policy statement grants access directly.
19
+ *
20
+ * Multiple statements use union semantics. One direct grant is sufficient even
21
+ * when another matching statement delegates authorization to an Account.
22
+ */
23
+ hasDirectPrincipalGrant(statements) {
24
+ return statements.some((statement) => this.statementGrantsPrincipalDirectly(statement));
25
+ }
26
+ /**
27
+ * Classify one matching trust-policy Allow statement.
28
+ *
29
+ * A matching NotPrincipal statement applies directly to every principal it did
30
+ * not exclude. A Principal statement is direct when at least one matching AWS
31
+ * principal value is not an Account delegation form.
32
+ */
33
+ statementGrantsPrincipalDirectly(statement) {
34
+ if (statement.NotPrincipal !== undefined) {
35
+ return true;
36
+ }
37
+ if (statement.Principal === undefined) {
38
+ return false;
39
+ }
40
+ return this.awsPrincipalValues(statement.Principal).some((principal) => !this.isAccountDelegation(principal));
41
+ }
42
+ /**
43
+ * Normalize the AWS values from each supported Principal representation.
44
+ *
45
+ * String and array forms represent AWS principals directly. Principal objects
46
+ * group values by principal type, so only their AWS entry is relevant when
47
+ * classifying an ARN-based caller.
48
+ */
49
+ awsPrincipalValues(principal) {
50
+ if (typeof principal === "string") {
51
+ return [principal];
52
+ }
53
+ /* v8 ignore if */
54
+ if (!this.isPrincipalObject(principal)) {
55
+ return principal;
56
+ }
57
+ const awsPrincipal = principal["AWS"];
58
+ /* v8 ignore if */
59
+ if (awsPrincipal === undefined) {
60
+ return [];
61
+ }
62
+ return typeof awsPrincipal === "string" ? [awsPrincipal] : awsPrincipal;
63
+ }
64
+ /**
65
+ * Distinguish a principal-type object from a readonly principal array.
66
+ *
67
+ * Array.isArray alone does not narrow readonly arrays correctly in this union,
68
+ * so this predicate records the object branch explicitly for TypeScript.
69
+ */
70
+ isPrincipalObject(principal) {
71
+ return typeof principal === "object" && !Array.isArray(principal);
72
+ }
73
+ /**
74
+ * Recognize the two Principal forms that delegate trust to an AWS Account.
75
+ *
76
+ * A bare 12-digit Account ID and its Account root ARN have equivalent
77
+ * delegation semantics. Other values, including a specific IAM User ARN and
78
+ * the wildcard principal, are classified as direct grants.
79
+ */
80
+ isAccountDelegation(principal) {
81
+ return (/^\d{12}$/u.test(principal) ||
82
+ /^arn:aws:iam::\d{12}:root$/u.test(principal));
83
+ }
84
+ }
85
+ //# sourceMappingURL=assume-role-trust-grant-classifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assume-role-trust-grant-classifier.js","sourceRoot":"","sources":["../../../../src/service/sts/auth-z/assume-role-trust-grant-classifier.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,8BAA8B;IACzC;;;;;OAKG;IACH,uBAAuB,CACrB,UAAoD;QAEpD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CACnC,IAAI,CAAC,gCAAgC,CAAC,SAAS,CAAC,CACjD,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACK,gCAAgC,CACtC,SAAwC;QAExC,IAAI,SAAS,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CACtD,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CACpD,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACK,kBAAkB,CACxB,SAAwC;QAExC,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrB,CAAC;QAED,kBAAkB;QAClB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QACtC,kBAAkB;QAClB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IAC1E,CAAC;IAED;;;;;OAKG;IACK,iBAAiB,CACvB,SAAwC;QAExC,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpE,CAAC;IAED;;;;;;OAMG;IACK,mBAAmB,CAAC,SAAiB;QAC3C,OAAO,CACL,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;YAC3B,6BAA6B,CAAC,IAAI,CAAC,SAAS,CAAC,CAC9C,CAAC;IACJ,CAAC;CACF"}