@kensio/yulin 0.37.0 → 0.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (488) hide show
  1. package/dist/sdk/router/resolve-sim-sdk-command-router.d.ts.map +1 -1
  2. package/dist/sdk/router/resolve-sim-sdk-command-router.js +3 -0
  3. package/dist/sdk/router/resolve-sim-sdk-command-router.js.map +1 -1
  4. package/dist/serve/controller/sim-service-controller.d.ts +13 -0
  5. package/dist/serve/controller/sim-service-controller.d.ts.map +1 -1
  6. package/dist/serve/controller/sim-service-controller.js.map +1 -1
  7. package/dist/serve/http/url/sim-aws-local-url.d.ts.map +1 -1
  8. package/dist/serve/http/url/sim-aws-local-url.js +5 -1
  9. package/dist/serve/http/url/sim-aws-local-url.js.map +1 -1
  10. package/dist/service/aws/factory/sim-aws-service-factory.d.ts +8 -0
  11. package/dist/service/aws/factory/sim-aws-service-factory.d.ts.map +1 -1
  12. package/dist/service/aws/factory/sim-aws-service-factory.js +14 -0
  13. package/dist/service/aws/factory/sim-aws-service-factory.js.map +1 -1
  14. package/dist/service/aws/sim-aws-account-region-scope.d.ts +5 -0
  15. package/dist/service/aws/sim-aws-account-region-scope.d.ts.map +1 -1
  16. package/dist/service/aws/sim-aws-account-region-scope.js +6 -0
  17. package/dist/service/aws/sim-aws-account-region-scope.js.map +1 -1
  18. package/dist/service/aws/sim-aws-account.d.ts +5 -0
  19. package/dist/service/aws/sim-aws-account.d.ts.map +1 -1
  20. package/dist/service/aws/sim-aws-account.js +6 -0
  21. package/dist/service/aws/sim-aws-account.js.map +1 -1
  22. package/dist/service/aws/sim-aws-region.d.ts +5 -0
  23. package/dist/service/aws/sim-aws-region.d.ts.map +1 -1
  24. package/dist/service/aws/sim-aws-region.js +6 -0
  25. package/dist/service/aws/sim-aws-region.js.map +1 -1
  26. package/dist/service/aws/sim-aws-request-authentication.d.ts +35 -0
  27. package/dist/service/aws/sim-aws-request-authentication.d.ts.map +1 -0
  28. package/dist/service/aws/sim-aws-request-authentication.js +32 -0
  29. package/dist/service/aws/sim-aws-request-authentication.js.map +1 -0
  30. package/dist/service/aws/sim-aws.d.ts +7 -21
  31. package/dist/service/aws/sim-aws.d.ts.map +1 -1
  32. package/dist/service/aws/sim-aws.js +15 -26
  33. package/dist/service/aws/sim-aws.js.map +1 -1
  34. package/dist/service/cloudformation/resource/dependency/sim-cfn-resource-dependencies.d.ts.map +1 -1
  35. package/dist/service/cloudformation/resource/dependency/sim-cfn-resource-dependencies.js +1 -1
  36. package/dist/service/cloudformation/resource/dependency/sim-cfn-resource-dependencies.js.map +1 -1
  37. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.js +1 -1
  38. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.js.map +1 -1
  39. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.d.ts.map +1 -1
  40. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.js +2 -1
  41. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.js.map +1 -1
  42. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.d.ts +56 -0
  43. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.d.ts.map +1 -1
  44. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.js +66 -0
  45. package/dist/service/iam/authorize/allow/sim-iam-allow-requirement.js.map +1 -1
  46. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.d.ts +7 -1
  47. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.d.ts.map +1 -1
  48. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.js +11 -1
  49. package/dist/service/iam/authorize/allow/sim-iam-allow-statements.js.map +1 -1
  50. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.d.ts +17 -0
  51. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.d.ts.map +1 -0
  52. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.js +24 -0
  53. package/dist/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.js.map +1 -0
  54. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts +10 -0
  55. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts.map +1 -1
  56. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js +3 -1
  57. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js.map +1 -1
  58. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.d.ts +6 -1
  59. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.d.ts.map +1 -1
  60. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.js +25 -16
  61. package/dist/service/iam/authorize/match/sim-iam-policy-principal-matcher.js.map +1 -1
  62. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.d.ts +2 -1
  63. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.d.ts.map +1 -1
  64. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.js +2 -1
  65. package/dist/service/iam/authorize/match/sim-iam-policy-statement-matcher.js.map +1 -1
  66. package/dist/service/iam/authorize/match/sim-iam-principal-match.d.ts +39 -0
  67. package/dist/service/iam/authorize/match/sim-iam-principal-match.d.ts.map +1 -0
  68. package/dist/service/iam/authorize/match/sim-iam-principal-match.js +55 -0
  69. package/dist/service/iam/authorize/match/sim-iam-principal-match.js.map +1 -0
  70. package/dist/service/iam/authorize/sim-iam-decision.d.ts.map +1 -1
  71. package/dist/service/iam/authorize/sim-iam-decision.js +3 -2
  72. package/dist/service/iam/authorize/sim-iam-decision.js.map +1 -1
  73. package/dist/service/iam/index.d.ts +1 -0
  74. package/dist/service/iam/index.d.ts.map +1 -1
  75. package/dist/service/iam/index.js +1 -0
  76. package/dist/service/iam/index.js.map +1 -1
  77. package/dist/service/iam/request/sim-aws-request-caller-resolver.d.ts +21 -5
  78. package/dist/service/iam/request/sim-aws-request-caller-resolver.d.ts.map +1 -1
  79. package/dist/service/iam/request/sim-aws-request-caller-resolver.js +15 -9
  80. package/dist/service/iam/request/sim-aws-request-caller-resolver.js.map +1 -1
  81. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-request.d.ts +3 -1
  82. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-request.d.ts.map +1 -1
  83. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-request.js +6 -4
  84. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-canonical-request.js.map +1 -1
  85. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.d.ts +34 -14
  86. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.d.ts.map +1 -1
  87. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.js +56 -29
  88. package/dist/service/iam/sigv4/canonical/sim-iam-sigv4-payload-hash.js.map +1 -1
  89. package/dist/service/iam/sigv4/error/sim-iam-sigv4.error.d.ts +13 -1
  90. package/dist/service/iam/sigv4/error/sim-iam-sigv4.error.d.ts.map +1 -1
  91. package/dist/service/iam/sigv4/error/sim-iam-sigv4.error.js +14 -0
  92. package/dist/service/iam/sigv4/error/sim-iam-sigv4.error.js.map +1 -1
  93. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-credential.d.ts +25 -0
  94. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-credential.d.ts.map +1 -0
  95. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-credential.js +41 -0
  96. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-credential.js.map +1 -0
  97. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-parameters.d.ts +27 -0
  98. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-parameters.d.ts.map +1 -0
  99. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-parameters.js +41 -0
  100. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-parameters.js.map +1 -0
  101. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-query.d.ts +39 -0
  102. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-query.d.ts.map +1 -0
  103. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-query.js +59 -0
  104. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-query.js.map +1 -0
  105. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-window.d.ts +30 -0
  106. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-window.d.ts.map +1 -0
  107. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-window.js +64 -0
  108. package/dist/service/iam/sigv4/presign/sim-iam-sigv4-presigned-window.js.map +1 -0
  109. package/dist/service/iam/sigv4/sim-iam-sigv4-authorization.d.ts +2 -1
  110. package/dist/service/iam/sigv4/sim-iam-sigv4-authorization.d.ts.map +1 -1
  111. package/dist/service/iam/sigv4/sim-iam-sigv4-authorization.js.map +1 -1
  112. package/dist/service/iam/sigv4/sim-iam-sigv4-request-date.d.ts +22 -1
  113. package/dist/service/iam/sigv4/sim-iam-sigv4-request-date.d.ts.map +1 -1
  114. package/dist/service/iam/sigv4/sim-iam-sigv4-request-date.js +49 -7
  115. package/dist/service/iam/sigv4/sim-iam-sigv4-request-date.js.map +1 -1
  116. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-check.d.ts +9 -2
  117. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-check.d.ts.map +1 -1
  118. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-check.js +5 -5
  119. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-check.js.map +1 -1
  120. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-statement.d.ts +16 -0
  121. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-statement.d.ts.map +1 -0
  122. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-statement.js +2 -0
  123. package/dist/service/iam/sigv4/sim-iam-sigv4-signature-statement.js.map +1 -0
  124. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-credentials.d.ts +12 -3
  125. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-credentials.d.ts.map +1 -1
  126. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-credentials.js +9 -5
  127. package/dist/service/iam/sigv4/sim-iam-sigv4-signing-credentials.js.map +1 -1
  128. package/dist/service/iam/sigv4/sim-iam-sigv4-verifier.d.ts +20 -4
  129. package/dist/service/iam/sigv4/sim-iam-sigv4-verifier.d.ts.map +1 -1
  130. package/dist/service/iam/sigv4/sim-iam-sigv4-verifier.js +52 -6
  131. package/dist/service/iam/sigv4/sim-iam-sigv4-verifier.js.map +1 -1
  132. package/dist/service/kms/command/alias/alias.command.d.ts +43 -0
  133. package/dist/service/kms/command/alias/alias.command.d.ts.map +1 -0
  134. package/dist/service/kms/command/alias/alias.command.js +2 -0
  135. package/dist/service/kms/command/alias/alias.command.js.map +1 -0
  136. package/dist/service/kms/command/alias/sim-kms-alias-commands.d.ts +34 -0
  137. package/dist/service/kms/command/alias/sim-kms-alias-commands.d.ts.map +1 -0
  138. package/dist/service/kms/command/alias/sim-kms-alias-commands.js +56 -0
  139. package/dist/service/kms/command/alias/sim-kms-alias-commands.js.map +1 -0
  140. package/dist/service/kms/command/authorize/sim-kms-authorizer.d.ts +38 -0
  141. package/dist/service/kms/command/authorize/sim-kms-authorizer.d.ts.map +1 -0
  142. package/dist/service/kms/command/authorize/sim-kms-authorizer.js +58 -0
  143. package/dist/service/kms/command/authorize/sim-kms-authorizer.js.map +1 -0
  144. package/dist/service/kms/command/crypto/crypto.command.d.ts +68 -0
  145. package/dist/service/kms/command/crypto/crypto.command.d.ts.map +1 -0
  146. package/dist/service/kms/command/crypto/crypto.command.js +2 -0
  147. package/dist/service/kms/command/crypto/crypto.command.js.map +1 -0
  148. package/dist/service/kms/command/crypto/sim-kms-ciphertext-key.d.ts +40 -0
  149. package/dist/service/kms/command/crypto/sim-kms-ciphertext-key.d.ts.map +1 -0
  150. package/dist/service/kms/command/crypto/sim-kms-ciphertext-key.js +58 -0
  151. package/dist/service/kms/command/crypto/sim-kms-ciphertext-key.js.map +1 -0
  152. package/dist/service/kms/command/crypto/sim-kms-crypto-commands.d.ts +38 -0
  153. package/dist/service/kms/command/crypto/sim-kms-crypto-commands.d.ts.map +1 -0
  154. package/dist/service/kms/command/crypto/sim-kms-crypto-commands.js +74 -0
  155. package/dist/service/kms/command/crypto/sim-kms-crypto-commands.js.map +1 -0
  156. package/dist/service/kms/command/crypto/sim-kms-data-key-spec.d.ts +16 -0
  157. package/dist/service/kms/command/crypto/sim-kms-data-key-spec.d.ts.map +1 -0
  158. package/dist/service/kms/command/crypto/sim-kms-data-key-spec.js +50 -0
  159. package/dist/service/kms/command/crypto/sim-kms-data-key-spec.js.map +1 -0
  160. package/dist/service/kms/command/crypto/sim-kms-generate-data-key.d.ts +31 -0
  161. package/dist/service/kms/command/crypto/sim-kms-generate-data-key.d.ts.map +1 -0
  162. package/dist/service/kms/command/crypto/sim-kms-generate-data-key.js +35 -0
  163. package/dist/service/kms/command/crypto/sim-kms-generate-data-key.js.map +1 -0
  164. package/dist/service/kms/command/key/key.command.d.ts +159 -0
  165. package/dist/service/kms/command/key/key.command.d.ts.map +1 -0
  166. package/dist/service/kms/command/key/key.command.js +2 -0
  167. package/dist/service/kms/command/key/key.command.js.map +1 -0
  168. package/dist/service/kms/command/key/sim-kms-key-commands.d.ts +41 -0
  169. package/dist/service/kms/command/key/sim-kms-key-commands.d.ts.map +1 -0
  170. package/dist/service/kms/command/key/sim-kms-key-commands.js +45 -0
  171. package/dist/service/kms/command/key/sim-kms-key-commands.js.map +1 -0
  172. package/dist/service/kms/command/key/sim-kms-key-lifecycle-commands.d.ts +48 -0
  173. package/dist/service/kms/command/key/sim-kms-key-lifecycle-commands.d.ts.map +1 -0
  174. package/dist/service/kms/command/key/sim-kms-key-lifecycle-commands.js +67 -0
  175. package/dist/service/kms/command/key/sim-kms-key-lifecycle-commands.js.map +1 -0
  176. package/dist/service/kms/command/key/sim-kms-key-policy-commands.d.ts +39 -0
  177. package/dist/service/kms/command/key/sim-kms-key-policy-commands.d.ts.map +1 -0
  178. package/dist/service/kms/command/key/sim-kms-key-policy-commands.js +57 -0
  179. package/dist/service/kms/command/key/sim-kms-key-policy-commands.js.map +1 -0
  180. package/dist/service/kms/command/key/sim-kms-key-type.d.ts +14 -0
  181. package/dist/service/kms/command/key/sim-kms-key-type.d.ts.map +1 -0
  182. package/dist/service/kms/command/key/sim-kms-key-type.js +31 -0
  183. package/dist/service/kms/command/key/sim-kms-key-type.js.map +1 -0
  184. package/dist/service/kms/command/key/sim-kms-list-keys.d.ts +29 -0
  185. package/dist/service/kms/command/key/sim-kms-list-keys.d.ts.map +1 -0
  186. package/dist/service/kms/command/key/sim-kms-list-keys.js +31 -0
  187. package/dist/service/kms/command/key/sim-kms-list-keys.js.map +1 -0
  188. package/dist/service/kms/command/key/sim-kms-pending-window.d.ts +17 -0
  189. package/dist/service/kms/command/key/sim-kms-pending-window.d.ts.map +1 -0
  190. package/dist/service/kms/command/key/sim-kms-pending-window.js +37 -0
  191. package/dist/service/kms/command/key/sim-kms-pending-window.js.map +1 -0
  192. package/dist/service/kms/command/sim-kms-command.types.d.ts +10 -0
  193. package/dist/service/kms/command/sim-kms-command.types.d.ts.map +1 -0
  194. package/dist/service/kms/command/sim-kms-command.types.js +2 -0
  195. package/dist/service/kms/command/sim-kms-command.types.js.map +1 -0
  196. package/dist/service/kms/error/sim-kms.error.d.ts +88 -0
  197. package/dist/service/kms/error/sim-kms.error.d.ts.map +1 -0
  198. package/dist/service/kms/error/sim-kms.error.js +101 -0
  199. package/dist/service/kms/error/sim-kms.error.js.map +1 -0
  200. package/dist/service/kms/index.d.ts +8 -0
  201. package/dist/service/kms/index.d.ts.map +1 -0
  202. package/dist/service/kms/index.js +6 -0
  203. package/dist/service/kms/index.js.map +1 -0
  204. package/dist/service/kms/key/sim-kms-alias.d.ts +45 -0
  205. package/dist/service/kms/key/sim-kms-alias.d.ts.map +1 -0
  206. package/dist/service/kms/key/sim-kms-alias.js +59 -0
  207. package/dist/service/kms/key/sim-kms-alias.js.map +1 -0
  208. package/dist/service/kms/key/sim-kms-ciphertext-blob.d.ts +43 -0
  209. package/dist/service/kms/key/sim-kms-ciphertext-blob.d.ts.map +1 -0
  210. package/dist/service/kms/key/sim-kms-ciphertext-blob.js +89 -0
  211. package/dist/service/kms/key/sim-kms-ciphertext-blob.js.map +1 -0
  212. package/dist/service/kms/key/sim-kms-encryption-context.d.ts +34 -0
  213. package/dist/service/kms/key/sim-kms-encryption-context.d.ts.map +1 -0
  214. package/dist/service/kms/key/sim-kms-encryption-context.js +39 -0
  215. package/dist/service/kms/key/sim-kms-encryption-context.js.map +1 -0
  216. package/dist/service/kms/key/sim-kms-key-factory.d.ts +36 -0
  217. package/dist/service/kms/key/sim-kms-key-factory.d.ts.map +1 -0
  218. package/dist/service/kms/key/sim-kms-key-factory.js +47 -0
  219. package/dist/service/kms/key/sim-kms-key-factory.js.map +1 -0
  220. package/dist/service/kms/key/sim-kms-key-identifier.d.ts +44 -0
  221. package/dist/service/kms/key/sim-kms-key-identifier.d.ts.map +1 -0
  222. package/dist/service/kms/key/sim-kms-key-identifier.js +81 -0
  223. package/dist/service/kms/key/sim-kms-key-identifier.js.map +1 -0
  224. package/dist/service/kms/key/sim-kms-key-lifecycle.d.ts +71 -0
  225. package/dist/service/kms/key/sim-kms-key-lifecycle.d.ts.map +1 -0
  226. package/dist/service/kms/key/sim-kms-key-lifecycle.js +106 -0
  227. package/dist/service/kms/key/sim-kms-key-lifecycle.js.map +1 -0
  228. package/dist/service/kms/key/sim-kms-key-material.d.ts +36 -0
  229. package/dist/service/kms/key/sim-kms-key-material.d.ts.map +1 -0
  230. package/dist/service/kms/key/sim-kms-key-material.js +74 -0
  231. package/dist/service/kms/key/sim-kms-key-material.js.map +1 -0
  232. package/dist/service/kms/key/sim-kms-key-metadata.d.ts +45 -0
  233. package/dist/service/kms/key/sim-kms-key-metadata.d.ts.map +1 -0
  234. package/dist/service/kms/key/sim-kms-key-metadata.js +44 -0
  235. package/dist/service/kms/key/sim-kms-key-metadata.js.map +1 -0
  236. package/dist/service/kms/key/sim-kms-key-policy.d.ts +45 -0
  237. package/dist/service/kms/key/sim-kms-key-policy.d.ts.map +1 -0
  238. package/dist/service/kms/key/sim-kms-key-policy.js +69 -0
  239. package/dist/service/kms/key/sim-kms-key-policy.js.map +1 -0
  240. package/dist/service/kms/key/sim-kms-key-store.d.ts +58 -0
  241. package/dist/service/kms/key/sim-kms-key-store.d.ts.map +1 -0
  242. package/dist/service/kms/key/sim-kms-key-store.js +111 -0
  243. package/dist/service/kms/key/sim-kms-key-store.js.map +1 -0
  244. package/dist/service/kms/key/sim-kms-key.d.ts +88 -0
  245. package/dist/service/kms/key/sim-kms-key.d.ts.map +1 -0
  246. package/dist/service/kms/key/sim-kms-key.js +106 -0
  247. package/dist/service/kms/key/sim-kms-key.js.map +1 -0
  248. package/dist/service/kms/key/sim-kms-policy-document.d.ts +30 -0
  249. package/dist/service/kms/key/sim-kms-policy-document.d.ts.map +1 -0
  250. package/dist/service/kms/key/sim-kms-policy-document.js +54 -0
  251. package/dist/service/kms/key/sim-kms-policy-document.js.map +1 -0
  252. package/dist/service/kms/sdk/sim-kms-sdk-command-router.d.ts +18 -0
  253. package/dist/service/kms/sdk/sim-kms-sdk-command-router.d.ts.map +1 -0
  254. package/dist/service/kms/sdk/sim-kms-sdk-command-router.js +80 -0
  255. package/dist/service/kms/sdk/sim-kms-sdk-command-router.js.map +1 -0
  256. package/dist/service/kms/sim-kms.d.ts +105 -0
  257. package/dist/service/kms/sim-kms.d.ts.map +1 -0
  258. package/dist/service/kms/sim-kms.js +187 -0
  259. package/dist/service/kms/sim-kms.js.map +1 -0
  260. package/dist/service/lambda/command/create-function/create-function.handler.d.ts.map +1 -1
  261. package/dist/service/lambda/command/create-function/create-function.handler.js +3 -0
  262. package/dist/service/lambda/command/create-function/create-function.handler.js.map +1 -1
  263. package/dist/service/lambda/function/code/sim-lambda-code-resolver.d.ts +6 -0
  264. package/dist/service/lambda/function/code/sim-lambda-code-resolver.d.ts.map +1 -1
  265. package/dist/service/lambda/function/code/sim-lambda-code-resolver.js +1 -0
  266. package/dist/service/lambda/function/code/sim-lambda-code-resolver.js.map +1 -1
  267. package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts +15 -0
  268. package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts.map +1 -1
  269. package/dist/service/lambda/function/code/sim-lambda-executable-code.js +5 -0
  270. package/dist/service/lambda/function/code/sim-lambda-executable-code.js.map +1 -1
  271. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code-factory.d.ts +3 -0
  272. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code-factory.d.ts.map +1 -1
  273. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code-factory.js +3 -0
  274. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code-factory.js.map +1 -1
  275. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.d.ts +11 -0
  276. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.d.ts.map +1 -1
  277. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.js +7 -2
  278. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.js.map +1 -1
  279. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.d.ts +6 -5
  280. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.d.ts.map +1 -1
  281. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.js +10 -5
  282. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.js.map +1 -1
  283. package/dist/service/lambda/function/invoke/sim-lambda-process-clock.d.ts +53 -0
  284. package/dist/service/lambda/function/invoke/sim-lambda-process-clock.d.ts.map +1 -0
  285. package/dist/service/lambda/function/invoke/sim-lambda-process-clock.js +101 -0
  286. package/dist/service/lambda/function/invoke/sim-lambda-process-clock.js.map +1 -0
  287. package/dist/service/lambda/function/sim-lambda-function.d.ts +8 -0
  288. package/dist/service/lambda/function/sim-lambda-function.d.ts.map +1 -1
  289. package/dist/service/lambda/function/sim-lambda-function.js +15 -1
  290. package/dist/service/lambda/function/sim-lambda-function.js.map +1 -1
  291. package/dist/service/lambda/serve/sim-lambda-url-router.js +1 -1
  292. package/dist/service/lambda/serve/sim-lambda-url-router.js.map +1 -1
  293. package/dist/service/route53/resolve/sim-r53-service-target-resolver.d.ts +14 -0
  294. package/dist/service/route53/resolve/sim-r53-service-target-resolver.d.ts.map +1 -1
  295. package/dist/service/route53/resolve/sim-r53-service-target-resolver.js +38 -0
  296. package/dist/service/route53/resolve/sim-r53-service-target-resolver.js.map +1 -1
  297. package/dist/service/s3/bucket/public-access/sim-s3-pinning-condition.d.ts +7 -0
  298. package/dist/service/s3/bucket/public-access/sim-s3-pinning-condition.d.ts.map +1 -0
  299. package/dist/service/s3/bucket/public-access/sim-s3-pinning-condition.js +73 -0
  300. package/dist/service/s3/bucket/public-access/sim-s3-pinning-condition.js.map +1 -0
  301. package/dist/service/s3/bucket/public-access/sim-s3-public-access-block.d.ts +61 -0
  302. package/dist/service/s3/bucket/public-access/sim-s3-public-access-block.d.ts.map +1 -0
  303. package/dist/service/s3/bucket/public-access/sim-s3-public-access-block.js +57 -0
  304. package/dist/service/s3/bucket/public-access/sim-s3-public-access-block.js.map +1 -0
  305. package/dist/service/s3/bucket/public-access/sim-s3-public-policy-guard.d.ts +19 -0
  306. package/dist/service/s3/bucket/public-access/sim-s3-public-policy-guard.d.ts.map +1 -0
  307. package/dist/service/s3/bucket/public-access/sim-s3-public-policy-guard.js +28 -0
  308. package/dist/service/s3/bucket/public-access/sim-s3-public-policy-guard.js.map +1 -0
  309. package/dist/service/s3/bucket/public-access/sim-s3-public-policy.d.ts +18 -0
  310. package/dist/service/s3/bucket/public-access/sim-s3-public-policy.d.ts.map +1 -0
  311. package/dist/service/s3/bucket/public-access/sim-s3-public-policy.js +35 -0
  312. package/dist/service/s3/bucket/public-access/sim-s3-public-policy.js.map +1 -0
  313. package/dist/service/s3/bucket/public-access/sim-s3-public-principal.d.ts +11 -0
  314. package/dist/service/s3/bucket/public-access/sim-s3-public-principal.d.ts.map +1 -0
  315. package/dist/service/s3/bucket/public-access/sim-s3-public-principal.js +34 -0
  316. package/dist/service/s3/bucket/public-access/sim-s3-public-principal.js.map +1 -0
  317. package/dist/service/s3/bucket/sim-s3-bucket-arn.d.ts +9 -0
  318. package/dist/service/s3/bucket/sim-s3-bucket-arn.d.ts.map +1 -0
  319. package/dist/service/s3/bucket/sim-s3-bucket-arn.js +10 -0
  320. package/dist/service/s3/bucket/sim-s3-bucket-arn.js.map +1 -0
  321. package/dist/service/s3/bucket/sim-s3-bucket.d.ts +25 -0
  322. package/dist/service/s3/bucket/sim-s3-bucket.d.ts.map +1 -1
  323. package/dist/service/s3/bucket/sim-s3-bucket.js +34 -1
  324. package/dist/service/s3/bucket/sim-s3-bucket.js.map +1 -1
  325. package/dist/service/s3/bucket/sim-s3-endpoint-url.d.ts +16 -0
  326. package/dist/service/s3/bucket/sim-s3-endpoint-url.d.ts.map +1 -0
  327. package/dist/service/s3/bucket/sim-s3-endpoint-url.js +19 -0
  328. package/dist/service/s3/bucket/sim-s3-endpoint-url.js.map +1 -0
  329. package/dist/service/s3/bucket/website/sim-s3-public-website.fixture.d.ts +13 -0
  330. package/dist/service/s3/bucket/website/sim-s3-public-website.fixture.d.ts.map +1 -0
  331. package/dist/service/s3/bucket/website/sim-s3-public-website.fixture.js +36 -0
  332. package/dist/service/s3/bucket/website/sim-s3-public-website.fixture.js.map +1 -0
  333. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.d.ts +27 -0
  334. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.d.ts.map +1 -0
  335. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.js +92 -0
  336. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-creator.js.map +1 -0
  337. package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.d.ts +32 -0
  338. package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.d.ts.map +1 -0
  339. package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.js +55 -0
  340. package/dist/service/s3/cfn/bucket-policy/sim-cfn-s3-bucket-policy-creator.js.map +1 -0
  341. package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.d.ts +2 -4
  342. package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.d.ts.map +1 -1
  343. package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.js +10 -61
  344. package/dist/service/s3/cfn/sim-cfn-s3-resource-factory.js.map +1 -1
  345. package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.d.ts +11 -0
  346. package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.d.ts.map +1 -0
  347. package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.js +22 -0
  348. package/dist/service/s3/command/authorize/sim-s3-bucket-resource-policies.js.map +1 -0
  349. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy-authorizer.d.ts +23 -0
  350. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy-authorizer.d.ts.map +1 -0
  351. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy-authorizer.js +36 -0
  352. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy-authorizer.js.map +1 -0
  353. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.command.d.ts +20 -0
  354. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.command.d.ts.map +1 -0
  355. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.command.js +2 -0
  356. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.command.js.map +1 -0
  357. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.handler.d.ts +32 -0
  358. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.handler.d.ts.map +1 -0
  359. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.handler.js +37 -0
  360. package/dist/service/s3/command/delete-bucket-policy/delete-bucket-policy.handler.js.map +1 -0
  361. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.command.d.ts +20 -0
  362. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.command.d.ts.map +1 -0
  363. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.command.js +2 -0
  364. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.command.js.map +1 -0
  365. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.handler.d.ts +30 -0
  366. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.handler.d.ts.map +1 -0
  367. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.handler.js +35 -0
  368. package/dist/service/s3/command/delete-public-access-block/delete-public-access-block.handler.js.map +1 -0
  369. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy-authorizer.d.ts +20 -0
  370. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy-authorizer.d.ts.map +1 -0
  371. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy-authorizer.js +33 -0
  372. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy-authorizer.js.map +1 -0
  373. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.command.d.ts +24 -0
  374. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.command.d.ts.map +1 -0
  375. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.command.js +2 -0
  376. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.command.js.map +1 -0
  377. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.handler.d.ts +29 -0
  378. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.handler.d.ts.map +1 -0
  379. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.handler.js +40 -0
  380. package/dist/service/s3/command/get-bucket-policy/get-bucket-policy.handler.js.map +1 -0
  381. package/dist/service/s3/command/get-public-access-block/get-public-access-block.command.d.ts +22 -0
  382. package/dist/service/s3/command/get-public-access-block/get-public-access-block.command.d.ts.map +1 -0
  383. package/dist/service/s3/command/get-public-access-block/get-public-access-block.command.js +2 -0
  384. package/dist/service/s3/command/get-public-access-block/get-public-access-block.command.js.map +1 -0
  385. package/dist/service/s3/command/get-public-access-block/get-public-access-block.handler.d.ts +32 -0
  386. package/dist/service/s3/command/get-public-access-block/get-public-access-block.handler.d.ts.map +1 -0
  387. package/dist/service/s3/command/get-public-access-block/get-public-access-block.handler.js +39 -0
  388. package/dist/service/s3/command/get-public-access-block/get-public-access-block.handler.js.map +1 -0
  389. package/dist/service/s3/command/public-access-block/sim-s3-public-access-block-authorizer.d.ts +31 -0
  390. package/dist/service/s3/command/public-access-block/sim-s3-public-access-block-authorizer.d.ts.map +1 -0
  391. package/dist/service/s3/command/public-access-block/sim-s3-public-access-block-authorizer.js +48 -0
  392. package/dist/service/s3/command/public-access-block/sim-s3-public-access-block-authorizer.js.map +1 -0
  393. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.d.ts +1 -0
  394. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.d.ts.map +1 -1
  395. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.js +7 -6
  396. package/dist/service/s3/command/put-bucket-policy/put-bucket-policy.handler.js.map +1 -1
  397. package/dist/service/s3/command/put-public-access-block/put-public-access-block.command.d.ts +22 -0
  398. package/dist/service/s3/command/put-public-access-block/put-public-access-block.command.d.ts.map +1 -0
  399. package/dist/service/s3/command/put-public-access-block/put-public-access-block.command.js +2 -0
  400. package/dist/service/s3/command/put-public-access-block/put-public-access-block.command.js.map +1 -0
  401. package/dist/service/s3/command/put-public-access-block/put-public-access-block.handler.d.ts +33 -0
  402. package/dist/service/s3/command/put-public-access-block/put-public-access-block.handler.d.ts.map +1 -0
  403. package/dist/service/s3/command/put-public-access-block/put-public-access-block.handler.js +40 -0
  404. package/dist/service/s3/command/put-public-access-block/put-public-access-block.handler.js.map +1 -0
  405. package/dist/service/s3/command/require-sim-s3-bucket.d.ts +10 -0
  406. package/dist/service/s3/command/require-sim-s3-bucket.d.ts.map +1 -0
  407. package/dist/service/s3/command/require-sim-s3-bucket.js +16 -0
  408. package/dist/service/s3/command/require-sim-s3-bucket.js.map +1 -0
  409. package/dist/service/s3/command/sim-s3-command-handlers.d.ts +91 -0
  410. package/dist/service/s3/command/sim-s3-command-handlers.d.ts.map +1 -0
  411. package/dist/service/s3/command/sim-s3-command-handlers.js +115 -0
  412. package/dist/service/s3/command/sim-s3-command-handlers.js.map +1 -0
  413. package/dist/service/s3/command/sim-s3-command.types.d.ts +19 -0
  414. package/dist/service/s3/command/sim-s3-command.types.d.ts.map +1 -0
  415. package/dist/service/s3/command/sim-s3-command.types.js +8 -0
  416. package/dist/service/s3/command/sim-s3-command.types.js.map +1 -0
  417. package/dist/service/s3/error/sim-s3-checksum.error.d.ts +28 -0
  418. package/dist/service/s3/error/sim-s3-checksum.error.d.ts.map +1 -0
  419. package/dist/service/s3/error/sim-s3-checksum.error.js +32 -0
  420. package/dist/service/s3/error/sim-s3-checksum.error.js.map +1 -0
  421. package/dist/service/s3/error/sim-s3.error.d.ts +20 -0
  422. package/dist/service/s3/error/sim-s3.error.d.ts.map +1 -1
  423. package/dist/service/s3/error/sim-s3.error.js +24 -0
  424. package/dist/service/s3/error/sim-s3.error.js.map +1 -1
  425. package/dist/service/s3/sdk/sim-s3-sdk-command-router.d.ts.map +1 -1
  426. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +20 -0
  427. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js.map +1 -1
  428. package/dist/service/s3/serve/sim-s3-bucket-locator.d.ts +40 -0
  429. package/dist/service/s3/serve/sim-s3-bucket-locator.d.ts.map +1 -0
  430. package/dist/service/s3/serve/sim-s3-bucket-locator.js +59 -0
  431. package/dist/service/s3/serve/sim-s3-bucket-locator.js.map +1 -0
  432. package/dist/service/s3/serve/sim-s3-controller.d.ts +7 -0
  433. package/dist/service/s3/serve/sim-s3-controller.d.ts.map +1 -1
  434. package/dist/service/s3/serve/sim-s3-controller.js +14 -2
  435. package/dist/service/s3/serve/sim-s3-controller.js.map +1 -1
  436. package/dist/service/s3/serve/sim-s3-get-object-controller.d.ts +40 -6
  437. package/dist/service/s3/serve/sim-s3-get-object-controller.d.ts.map +1 -1
  438. package/dist/service/s3/serve/sim-s3-get-object-controller.js +80 -49
  439. package/dist/service/s3/serve/sim-s3-get-object-controller.js.map +1 -1
  440. package/dist/service/s3/serve/sim-s3-object-address.d.ts +42 -0
  441. package/dist/service/s3/serve/sim-s3-object-address.d.ts.map +1 -0
  442. package/dist/service/s3/serve/sim-s3-object-address.js +66 -0
  443. package/dist/service/s3/serve/sim-s3-object-address.js.map +1 -0
  444. package/dist/service/s3/serve/sim-s3-request-router.d.ts +18 -13
  445. package/dist/service/s3/serve/sim-s3-request-router.d.ts.map +1 -1
  446. package/dist/service/s3/serve/sim-s3-request-router.js +72 -48
  447. package/dist/service/s3/serve/sim-s3-request-router.js.map +1 -1
  448. package/dist/service/s3/serve/sim-s3-rest-controller.d.ts +36 -0
  449. package/dist/service/s3/serve/sim-s3-rest-controller.d.ts.map +1 -0
  450. package/dist/service/s3/serve/sim-s3-rest-controller.js +92 -0
  451. package/dist/service/s3/serve/sim-s3-rest-controller.js.map +1 -0
  452. package/dist/service/s3/serve/sim-s3-rest-error-response.d.ts +28 -0
  453. package/dist/service/s3/serve/sim-s3-rest-error-response.d.ts.map +1 -0
  454. package/dist/service/s3/serve/sim-s3-rest-error-response.js +63 -0
  455. package/dist/service/s3/serve/sim-s3-rest-error-response.js.map +1 -0
  456. package/dist/service/s3/serve/sim-s3-rest-refusal.d.ts +7 -0
  457. package/dist/service/s3/serve/sim-s3-rest-refusal.d.ts.map +1 -0
  458. package/dist/service/s3/serve/sim-s3-rest-refusal.js +18 -0
  459. package/dist/service/s3/serve/sim-s3-rest-refusal.js.map +1 -0
  460. package/dist/service/s3/serve/sim-s3-route.d.ts +40 -0
  461. package/dist/service/s3/serve/sim-s3-route.d.ts.map +1 -0
  462. package/dist/service/s3/serve/sim-s3-route.js +7 -0
  463. package/dist/service/s3/serve/sim-s3-route.js.map +1 -0
  464. package/dist/service/s3/serve/sim-s3-upload-checksum.d.ts +27 -0
  465. package/dist/service/s3/serve/sim-s3-upload-checksum.d.ts.map +1 -0
  466. package/dist/service/s3/serve/sim-s3-upload-checksum.js +86 -0
  467. package/dist/service/s3/serve/sim-s3-upload-checksum.js.map +1 -0
  468. package/dist/service/s3/serve/website/sim-s3-website-object-loader.d.ts +51 -0
  469. package/dist/service/s3/serve/website/sim-s3-website-object-loader.d.ts.map +1 -0
  470. package/dist/service/s3/serve/website/sim-s3-website-object-loader.js +75 -0
  471. package/dist/service/s3/serve/website/sim-s3-website-object-loader.js.map +1 -0
  472. package/dist/service/s3/serve/website/sim-s3-website-object.d.ts +18 -0
  473. package/dist/service/s3/serve/website/sim-s3-website-object.d.ts.map +1 -0
  474. package/dist/service/s3/serve/website/sim-s3-website-object.js +28 -0
  475. package/dist/service/s3/serve/website/sim-s3-website-object.js.map +1 -0
  476. package/dist/service/s3/serve/website/sim-s3-website-responses.d.ts +27 -0
  477. package/dist/service/s3/serve/website/sim-s3-website-responses.d.ts.map +1 -0
  478. package/dist/service/s3/serve/website/sim-s3-website-responses.js +44 -0
  479. package/dist/service/s3/serve/website/sim-s3-website-responses.js.map +1 -0
  480. package/dist/service/s3/sim-s3.d.ts +34 -9
  481. package/dist/service/s3/sim-s3.d.ts.map +1 -1
  482. package/dist/service/s3/sim-s3.js +65 -55
  483. package/dist/service/s3/sim-s3.js.map +1 -1
  484. package/dist/util/clock/sim-clock-date.d.ts +20 -0
  485. package/dist/util/clock/sim-clock-date.d.ts.map +1 -0
  486. package/dist/util/clock/sim-clock-date.js +43 -0
  487. package/dist/util/clock/sim-clock-date.js.map +1 -0
  488. package/package.json +17 -11
@@ -4,7 +4,7 @@ import { SimAwsServiceFactory } from "./factory/sim-aws-service-factory.js";
4
4
  import { SimAwsScopeRegistry } from "./scope/sim-aws-scope-registry.js";
5
5
  import { simAwsRunAsContext } from "./caller/sim-aws-run-as-context.js";
6
6
  import { SimAwsTimekeeping } from "./sim-aws-timekeeping.js";
7
- import { simIamSigV4SignedRequest } from "../iam/sigv4/sim-iam-sigv4-signed-request.js";
7
+ import { SimAwsRequestAuthentication } from "./sim-aws-request-authentication.js";
8
8
  /**
9
9
  * Top-level container for simulated AWS.
10
10
  * Contains Account scopes, Region scopes, Account/Region scopes, and built-in
@@ -25,6 +25,7 @@ export class SimAws {
25
25
  background;
26
26
  scopes;
27
27
  timekeeping;
28
+ requestAuthentication;
28
29
  constructor(properties = {}) {
29
30
  const { defaultAccountId = DEFAULT_SIM_AWS_ACCOUNT_ID, defaultRegionName = DEFAULT_SIM_AWS_REGION_NAME, clock, background: suppliedBackground, } = properties;
30
31
  const timekeeping = new SimAwsTimekeeping({
@@ -42,6 +43,10 @@ export class SimAws {
42
43
  });
43
44
  this.iamRegistry = this.serviceFactory.iamRegistry;
44
45
  this.scopes = new SimAwsScopeRegistry({ simAws: this });
46
+ this.requestAuthentication = new SimAwsRequestAuthentication({
47
+ serviceFactory: this.serviceFactory,
48
+ clock: background,
49
+ });
45
50
  }
46
51
  /**
47
52
  * Get the current time in this simulated AWS environment.
@@ -86,7 +91,7 @@ export class SimAws {
86
91
  * Throws a SimIamSigV4Error carrying the AWS error code real AWS would use.
87
92
  */
88
93
  verifySignedRequest(request, body) {
89
- return this.serviceFactory.signedRequests.verify(simIamSigV4SignedRequest(request, body));
94
+ return this.requestAuthentication.verifySignature(request, body);
90
95
  }
91
96
  /**
92
97
  * Work out which simulated principal an HTTP request is made by.
@@ -97,11 +102,10 @@ export class SimAws {
97
102
  * a request offering neither is anonymous rather than the Account root.
98
103
  *
99
104
  * The body is passed separately for the same reason it is on
100
- * `verifySignedRequest`: a request body can only be read once, and whoever
101
- * serves the request needs the same bytes.
105
+ * `verifySignedRequest`: a request body can only be read once.
102
106
  */
103
107
  resolveRequestCaller(request, options = {}) {
104
- return this.serviceFactory.requestCallers.resolve(simIamSigV4SignedRequest(request, options.body), options.expectedScope);
108
+ return this.requestAuthentication.resolveCaller(request, options);
105
109
  }
106
110
  /**
107
111
  * Get a simulated AWS Account.
@@ -151,6 +155,12 @@ export class SimAws {
151
155
  iam() {
152
156
  return this.accountRegionScope().iam();
153
157
  }
158
+ /**
159
+ * Get simulated KMS in the default Account Region scope.
160
+ */
161
+ kms() {
162
+ return this.accountRegionScope().kms();
163
+ }
154
164
  /**
155
165
  * Get simulated Lambda in the default Account Region scope.
156
166
  */
@@ -175,27 +185,6 @@ export class SimAws {
175
185
  sts() {
176
186
  return this.accountRegionScope().sts();
177
187
  }
178
- /**
179
- * Get the shared simulated CloudFront registry.
180
- *
181
- * This is intended for CloudFront service/controller wiring so request routing
182
- * uses the same registry as CloudFront SDK command handling.
183
- * @internal
184
- */
185
- cloudFrontRegistry() {
186
- return this.serviceFactory.cloudFrontRegistry;
187
- }
188
- /**
189
- * Get the shared simulated Lambda Function URL registry.
190
- *
191
- * This is intended for Lambda controller wiring, so serving a Function URL
192
- * request resolves the owning Account from the same registry the Function
193
- * URL commands register ids in.
194
- * @internal
195
- */
196
- lambdaUrlRegistry() {
197
- return this.serviceFactory.lambdaUrlRegistry;
198
- }
199
188
  /**
200
189
  * Run a function with an ambient simulated caller for this SimAws instance.
201
190
  *
@@ -1 +1 @@
1
- {"version":3,"file":"sim-aws.js","sourceRoot":"","sources":["../../../src/service/aws/sim-aws.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sim-aws.js","sourceRoot":"","sources":["../../../src/service/aws/sim-aws.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-resource-dependencies.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudformation/resource/dependency/sim-cfn-resource-dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAGhG;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,EAAE,CAY5E;AAED;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,yBAAyB,EACnC,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAC,GACtC,MAAM,EAAE,CAMV"}
1
+ {"version":3,"file":"sim-cfn-resource-dependencies.d.ts","sourceRoot":"","sources":["../../../../../src/service/cloudformation/resource/dependency/sim-cfn-resource-dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAGhG;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,EAAE,CAY5E;AAED;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,yBAAyB,EACnC,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAC,GACtC,MAAM,EAAE,CAIV"}
@@ -22,6 +22,6 @@ export function parseSimCfnResourceDependencies(dependsOn) {
22
22
  */
23
23
  export function parseSimCfnResourceRefDependencies(template, resourceLogicalIds) {
24
24
  const referencedNames = parseSimCfnNode(template).referencedNames();
25
- return [...new Set(referencedNames)].filter((name) => resourceLogicalIds.has(name));
25
+ return [...new Set(referencedNames).intersection(resourceLogicalIds)];
26
26
  }
27
27
  //# sourceMappingURL=sim-cfn-resource-dependencies.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-resource-dependencies.js","sourceRoot":"","sources":["../../../../../src/service/cloudformation/resource/dependency/sim-cfn-resource-dependencies.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAC;AAEnF;;GAEG;AACH,MAAM,UAAU,+BAA+B,CAAC,SAAkB;IAChE,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,CAAC,SAAS,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,UAAU,EAAwB,EAAE;YAC3D,OAAO,OAAO,UAAU,KAAK,QAAQ,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kCAAkC,CAChD,QAAmC,EACnC,kBAAuC;IAEvC,MAAM,eAAe,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC,eAAe,EAAE,CAAC;IAEpE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACnD,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAC7B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"sim-cfn-resource-dependencies.js","sourceRoot":"","sources":["../../../../../src/service/cloudformation/resource/dependency/sim-cfn-resource-dependencies.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAC;AAEnF;;GAEG;AACH,MAAM,UAAU,+BAA+B,CAAC,SAAkB;IAChE,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,CAAC,SAAS,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,UAAU,EAAwB,EAAE;YAC3D,OAAO,OAAO,UAAU,KAAK,QAAQ,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kCAAkC,CAChD,QAAmC,EACnC,kBAAuC;IAEvC,MAAM,eAAe,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC,eAAe,EAAE,CAAC;IAEpE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACxE,CAAC"}
@@ -12,7 +12,7 @@ export class SimCloudFrontControllerDependenciesFactory {
12
12
  */
13
13
  make(properties = {}) {
14
14
  const simAws = properties.simAws ?? new SimAws();
15
- const cloudFrontRegistry = properties.cloudFrontRegistry ?? simAws.cloudFrontRegistry();
15
+ const cloudFrontRegistry = properties.cloudFrontRegistry ?? simAws.serviceFactory.cloudFrontRegistry;
16
16
  return {
17
17
  distroRouter: properties.distroRouter ??
18
18
  new DefaultSimCloudFrontDistroRouter({
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cf-controller-dependency.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/controller/dependency/sim-cf-controller-dependency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAGjD,OAAO,EAAE,yBAAyB,IAAI,gCAAgC,EAAE,MAAM,+CAA+C,CAAC;AAE9H,OAAO,EAAE,6BAA6B,IAAI,oCAAoC,EAAE,MAAM,qDAAqD,CAAC;AAC5I,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AAkBxF;;GAEG;AACH,MAAM,OAAO,0CAA0C;IACrD;;OAEG;IACH,IAAI,CACF,UAAU,GAA6C,EAAE;QAEzD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QACjD,MAAM,kBAAkB,GACtB,UAAU,CAAC,kBAAkB,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAE/D,OAAO;YACL,YAAY,EACV,UAAU,CAAC,YAAY;gBACvB,IAAI,gCAAgC,CAAC;oBACnC,MAAM;oBACN,kBAAkB;iBACnB,CAAC;YACJ,iBAAiB,EACf,UAAU,CAAC,iBAAiB;gBAC5B,IAAI,oCAAoC,EAAE;YAC5C,aAAa,EAAE,UAAU,CAAC,aAAa,IAAI,IAAI,gBAAgB,EAAE;YACjE,aAAa,EACX,UAAU,CAAC,aAAa,IAAI,IAAI,0BAA0B,EAAE;SAC/D,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"sim-cf-controller-dependency.js","sourceRoot":"","sources":["../../../../../src/service/cloudfront/controller/dependency/sim-cf-controller-dependency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAGjD,OAAO,EAAE,yBAAyB,IAAI,gCAAgC,EAAE,MAAM,+CAA+C,CAAC;AAE9H,OAAO,EAAE,6BAA6B,IAAI,oCAAoC,EAAE,MAAM,qDAAqD,CAAC;AAC5I,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AAkBxF;;GAEG;AACH,MAAM,OAAO,0CAA0C;IACrD;;OAEG;IACH,IAAI,CACF,UAAU,GAA6C,EAAE;QAEzD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QACjD,MAAM,kBAAkB,GACtB,UAAU,CAAC,kBAAkB,IAAI,MAAM,CAAC,cAAc,CAAC,kBAAkB,CAAC;QAE5E,OAAO;YACL,YAAY,EACV,UAAU,CAAC,YAAY;gBACvB,IAAI,gCAAgC,CAAC;oBACnC,MAAM;oBACN,kBAAkB;iBACnB,CAAC;YACJ,iBAAiB,EACf,UAAU,CAAC,iBAAiB;gBAC5B,IAAI,oCAAoC,EAAE;YAC5C,aAAa,EAAE,UAAU,CAAC,aAAa,IAAI,IAAI,gBAAgB,EAAE;YACjE,aAAa,EACX,UAAU,CAAC,aAAa,IAAI,IAAI,0BAA0B,EAAE;SAC/D,CAAC;IACJ,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cloud-front-distro-router.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/router/sim-cloud-front-distro-router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,2BAA2B,EAC5B,MAAM,gDAAgD,CAAC;AAGxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAK9C,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC;CAClD;AAED,UAAU,mCAAmC;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,qBAAqB,CAAC;IACpD,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,CAClC,2BAA2B,EAC3B,yBAAyB,CAC1B,CAAC;CACH;AAED;;;;;;;GAOG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAqC;IAC3E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA8B;IAE7D,YAAY,UAAU,GAAE,mCAAwC,EAkB/D;IAED;;OAEG;IACH,MAAM,CAAC,iBAAiB,CACtB,aAAa,EAAE,yBAAyB,EAAE,GACzC,yBAAyB,CAM3B;IAED;;;;;;OAMG;IACH,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,wBAAwB,GAAG,SAAS,CAatE;IAED;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,yBAAyB,GAAG,SAAS,CAExE;CACF"}
1
+ {"version":3,"file":"sim-cloud-front-distro-router.d.ts","sourceRoot":"","sources":["../../../../src/service/cloudfront/router/sim-cloud-front-distro-router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,2BAA2B,EAC5B,MAAM,gDAAgD,CAAC;AAGxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAK9C,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC;CAClD;AAED,UAAU,mCAAmC;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,qBAAqB,CAAC;IACpD,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,CAClC,2BAA2B,EAC3B,yBAAyB,CAC1B,CAAC;CACH;AAED;;;;;;;GAOG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAqC;IAC3E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA8B;IAE7D,YAAY,UAAU,GAAE,mCAAwC,EAmB/D;IAED;;OAEG;IACH,MAAM,CAAC,iBAAiB,CACtB,aAAa,EAAE,yBAAyB,EAAE,GACzC,yBAAyB,CAM3B;IAED;;;;;;OAMG;IACH,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,wBAAwB,GAAG,SAAS,CAatE;IAED;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,yBAAyB,GAAG,SAAS,CAExE;CACF"}
@@ -18,7 +18,8 @@ export class SimCloudFrontDistroRouter {
18
18
  distroIdRouter;
19
19
  constructor(properties = {}) {
20
20
  this.simAws = properties.simAws ?? new SimAws();
21
- const cloudFrontRegistry = properties.cloudFrontRegistry ?? this.simAws.cloudFrontRegistry();
21
+ const cloudFrontRegistry = properties.cloudFrontRegistry ??
22
+ this.simAws.serviceFactory.cloudFrontRegistry;
22
23
  const distributions = properties.distributions ?? new Map();
23
24
  // Both sub-routers share the same SimAws, Registry and Distributions
24
25
  // snapshot so their lookups stay consistent within a single request.
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cloud-front-distro-router.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/router/sim-cloud-front-distro-router.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAG9E,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AACzF,OAAO,EAAE,kCAAkC,EAAE,MAAM,sDAAsD,CAAC;AAC1G,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAgBrF;;;;;;;GAOG;AACH,MAAM,OAAO,yBAAyB;IACnB,MAAM,CAAS;IACf,qBAAqB,CAAqC;IAC1D,cAAc,CAA8B;IAE7D,YAAY,UAAU,GAAwC,EAAE;QAC9D,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAChD,MAAM,kBAAkB,GACtB,UAAU,CAAC,kBAAkB,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QACpE,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,IAAI,IAAI,GAAG,EAAE,CAAC;QAE5D,qEAAqE;QACrE,qEAAqE;QACrE,IAAI,CAAC,qBAAqB,GAAG,IAAI,kCAAkC,CAAC;YAClE,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,kBAAkB;YAClB,aAAa;SACd,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,IAAI,2BAA2B,CAAC;YACpD,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,kBAAkB;YAClB,aAAa;SACd,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,iBAAiB,CACtB,aAA0C;QAE1C,OAAO,IAAI,yBAAyB,CAAC;YACnC,aAAa,EAAE,IAAI,GAAG,CACpB,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAC/D;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,eAAe,CAAC,OAAgB;QAC9B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC;QAC7D,aAAa,CAAC,QAAQ,EAAE,mCAAmC,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,EAAE,KAAK,EAAE,UAAU,QAAQ,GAAG,EAAE,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG,MAAM,CAAC,sBAAsB,EAAE,CAAC,QAAQ,CAAC;QAE9D,MAAM,cAAc,GAAG,6BAA6B,CAAC,YAAY,CAAC,CAAC;QACnE,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,IAAI,CAAC,qBAAqB,CAAC,2BAA2B,CAAC,YAAY,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,OAAgB;QAC/B,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IACrD,CAAC;CACF"}
1
+ {"version":3,"file":"sim-cloud-front-distro-router.js","sourceRoot":"","sources":["../../../../src/service/cloudfront/router/sim-cloud-front-distro-router.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAG9E,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AACzF,OAAO,EAAE,kCAAkC,EAAE,MAAM,sDAAsD,CAAC;AAC1G,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAgBrF;;;;;;;GAOG;AACH,MAAM,OAAO,yBAAyB;IACnB,MAAM,CAAS;IACf,qBAAqB,CAAqC;IAC1D,cAAc,CAA8B;IAE7D,YAAY,UAAU,GAAwC,EAAE;QAC9D,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAChD,MAAM,kBAAkB,GACtB,UAAU,CAAC,kBAAkB;YAC7B,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,kBAAkB,CAAC;QAChD,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,IAAI,IAAI,GAAG,EAAE,CAAC;QAE5D,qEAAqE;QACrE,qEAAqE;QACrE,IAAI,CAAC,qBAAqB,GAAG,IAAI,kCAAkC,CAAC;YAClE,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,kBAAkB;YAClB,aAAa;SACd,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,IAAI,2BAA2B,CAAC;YACpD,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,kBAAkB;YAClB,aAAa;SACd,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,iBAAiB,CACtB,aAA0C;QAE1C,OAAO,IAAI,yBAAyB,CAAC;YACnC,aAAa,EAAE,IAAI,GAAG,CACpB,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAC/D;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,eAAe,CAAC,OAAgB;QAC9B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC;QAC7D,aAAa,CAAC,QAAQ,EAAE,mCAAmC,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,EAAE,KAAK,EAAE,UAAU,QAAQ,GAAG,EAAE,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG,MAAM,CAAC,sBAAsB,EAAE,CAAC,QAAQ,CAAC;QAE9D,MAAM,cAAc,GAAG,6BAA6B,CAAC,YAAY,CAAC,CAAC;QACnE,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,IAAI,CAAC,qBAAqB,CAAC,2BAA2B,CAAC,YAAY,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,OAAgB;QAC/B,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IACrD,CAAC;CACF"}
@@ -1,6 +1,11 @@
1
1
  interface SimIamAllowSidesProperties {
2
2
  readonly identity: boolean;
3
3
  readonly resource: boolean;
4
+ /**
5
+ * Whether a resource-policy Allow named the caller rather than its Account.
6
+ * Defaults to the resource side, for callers with no reason to distinguish.
7
+ */
8
+ readonly resourceDirect?: boolean | undefined;
4
9
  }
5
10
  /**
6
11
  * Which sides of a policy evaluation produced a matching Allow.
@@ -13,6 +18,7 @@ interface SimIamAllowSidesProperties {
13
18
  export declare class SimIamAllowSides {
14
19
  private readonly identityAllowed;
15
20
  private readonly resourceAllowed;
21
+ private readonly resourceDirectAllowed;
16
22
  constructor(properties: SimIamAllowSidesProperties);
17
23
  /**
18
24
  * Whether an identity-based policy allowed the request.
@@ -22,6 +28,16 @@ export declare class SimIamAllowSides {
22
28
  * Whether a resource-based policy allowed the request.
23
29
  */
24
30
  get resource(): boolean;
31
+ /**
32
+ * Whether a resource-based policy allowed the request by naming the caller,
33
+ * rather than by delegating to the caller's Account.
34
+ */
35
+ get resourceDirect(): boolean;
36
+ /**
37
+ * Whether the resource's policy admitted the caller only by delegating to
38
+ * its Account, which grants nothing on its own.
39
+ */
40
+ get resourceDelegated(): boolean;
25
41
  }
26
42
  /**
27
43
  * Which sides of an authorization must allow a request for it to be allowed.
@@ -56,5 +72,45 @@ export declare class SimIamBothSidesAllowRequirement implements SimIamAllowRequi
56
72
  */
57
73
  isSatisfiedBy(allows: SimIamAllowSides): boolean;
58
74
  }
75
+ /**
76
+ * The rule for a resource whose policy is mandatory: it must admit the caller.
77
+ *
78
+ * Most AWS resources have no resource policy until someone writes one, and its
79
+ * absence simply leaves the decision to IAM. A KMS key is not like that: it
80
+ * always has a key policy, and an identity policy cannot reach the key unless
81
+ * that policy admits the caller. Services holding such a resource ask for this
82
+ * rule rather than IAM inferring it, because only the service knows its
83
+ * resource works that way.
84
+ *
85
+ * How the policy admits the caller decides what else is needed. A statement
86
+ * naming the caller grants access outright, which is why a KMS key policy can
87
+ * make a key usable by a Role with no permissions of its own. A statement
88
+ * naming the Account only delegates to that Account's IAM, so an identity
89
+ * policy still has to allow the action. That second case is the one the
90
+ * default key policy creates, and getting it wrong would make every key in the
91
+ * simulation usable by every principal in its Account.
92
+ */
93
+ export declare class SimIamMandatoryResourcePolicyRequirement implements SimIamAllowRequirement {
94
+ /**
95
+ * Whether the resource's own policy admitted the caller, and whether
96
+ * anything further is needed for the way it did so.
97
+ */
98
+ isSatisfiedBy(allows: SimIamAllowSides): boolean;
99
+ }
100
+ /**
101
+ * Every applicable rule at once.
102
+ *
103
+ * A request can be subject to more than one: a cross-Account call against a
104
+ * KMS key has to satisfy both the cross-Account rule and the key's own
105
+ * mandatory-policy rule, and the stricter answer is the right one.
106
+ */
107
+ export declare class SimIamEveryAllowRequirement implements SimIamAllowRequirement {
108
+ private readonly requirements;
109
+ constructor(requirements: readonly SimIamAllowRequirement[]);
110
+ /**
111
+ * Whether every rule is satisfied.
112
+ */
113
+ isSatisfiedBy(allows: SimIamAllowSides): boolean;
114
+ }
59
115
  export {};
60
116
  //# sourceMappingURL=sim-iam-allow-requirement.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-iam-allow-requirement.d.ts","sourceRoot":"","sources":["../../../../../src/service/iam/authorize/allow/sim-iam-allow-requirement.ts"],"names":[],"mappings":"AAAA,UAAU,0BAA0B;IAClC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;IAC1C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;IAE1C,YAAY,UAAU,EAAE,0BAA0B,EAGjD;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAEtB;CACF;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC;CAClD;AAED;;;;;;GAMG;AACH,qBAAa,gCAAiC,YAAW,sBAAsB;IAC7E;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAE/C;CACF;AAED;;;;;;;GAOG;AACH,qBAAa,+BAAgC,YAAW,sBAAsB;IAC5E;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAE/C;CACF"}
1
+ {"version":3,"file":"sim-iam-allow-requirement.d.ts","sourceRoot":"","sources":["../../../../../src/service/iam/authorize/allow/sim-iam-allow-requirement.ts"],"names":[],"mappings":"AAAA,UAAU,0BAA0B;IAClC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE3B;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/C;AAED;;;;;;;GAOG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;IAC1C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;IAC1C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAU;IAEhD,YAAY,UAAU,EAAE,0BAA0B,EAKjD;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;;OAGG;IACH,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED;;;OAGG;IACH,IAAI,iBAAiB,IAAI,OAAO,CAE/B;CACF;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC;CAClD;AAED;;;;;;GAMG;AACH,qBAAa,gCAAiC,YAAW,sBAAsB;IAC7E;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAE/C;CACF;AAED;;;;;;;GAOG;AACH,qBAAa,+BAAgC,YAAW,sBAAsB;IAC5E;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAE/C;CACF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,wCAAyC,YAAW,sBAAsB;IACrF;;;OAGG;IACH,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAM/C;CACF;AAED;;;;;;GAMG;AACH,qBAAa,2BAA4B,YAAW,sBAAsB;IACxE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoC;IAEjE,YAAY,YAAY,EAAE,SAAS,sBAAsB,EAAE,EAE1D;IAED;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAI/C;CACF"}
@@ -9,9 +9,12 @@
9
9
  export class SimIamAllowSides {
10
10
  identityAllowed;
11
11
  resourceAllowed;
12
+ resourceDirectAllowed;
12
13
  constructor(properties) {
13
14
  this.identityAllowed = properties.identity;
14
15
  this.resourceAllowed = properties.resource;
16
+ this.resourceDirectAllowed =
17
+ properties.resourceDirect ?? properties.resource;
15
18
  }
16
19
  /**
17
20
  * Whether an identity-based policy allowed the request.
@@ -25,6 +28,20 @@ export class SimIamAllowSides {
25
28
  get resource() {
26
29
  return this.resourceAllowed;
27
30
  }
31
+ /**
32
+ * Whether a resource-based policy allowed the request by naming the caller,
33
+ * rather than by delegating to the caller's Account.
34
+ */
35
+ get resourceDirect() {
36
+ return this.resourceDirectAllowed;
37
+ }
38
+ /**
39
+ * Whether the resource's policy admitted the caller only by delegating to
40
+ * its Account, which grants nothing on its own.
41
+ */
42
+ get resourceDelegated() {
43
+ return this.resourceAllowed && !this.resourceDirectAllowed;
44
+ }
28
45
  }
29
46
  /**
30
47
  * The same-Account rule: an Allow from either side is enough.
@@ -57,4 +74,53 @@ export class SimIamBothSidesAllowRequirement {
57
74
  return allows.identity && allows.resource;
58
75
  }
59
76
  }
77
+ /**
78
+ * The rule for a resource whose policy is mandatory: it must admit the caller.
79
+ *
80
+ * Most AWS resources have no resource policy until someone writes one, and its
81
+ * absence simply leaves the decision to IAM. A KMS key is not like that: it
82
+ * always has a key policy, and an identity policy cannot reach the key unless
83
+ * that policy admits the caller. Services holding such a resource ask for this
84
+ * rule rather than IAM inferring it, because only the service knows its
85
+ * resource works that way.
86
+ *
87
+ * How the policy admits the caller decides what else is needed. A statement
88
+ * naming the caller grants access outright, which is why a KMS key policy can
89
+ * make a key usable by a Role with no permissions of its own. A statement
90
+ * naming the Account only delegates to that Account's IAM, so an identity
91
+ * policy still has to allow the action. That second case is the one the
92
+ * default key policy creates, and getting it wrong would make every key in the
93
+ * simulation usable by every principal in its Account.
94
+ */
95
+ export class SimIamMandatoryResourcePolicyRequirement {
96
+ /**
97
+ * Whether the resource's own policy admitted the caller, and whether
98
+ * anything further is needed for the way it did so.
99
+ */
100
+ isSatisfiedBy(allows) {
101
+ if (allows.resourceDirect) {
102
+ return true;
103
+ }
104
+ return allows.resourceDelegated && allows.identity;
105
+ }
106
+ }
107
+ /**
108
+ * Every applicable rule at once.
109
+ *
110
+ * A request can be subject to more than one: a cross-Account call against a
111
+ * KMS key has to satisfy both the cross-Account rule and the key's own
112
+ * mandatory-policy rule, and the stricter answer is the right one.
113
+ */
114
+ export class SimIamEveryAllowRequirement {
115
+ requirements;
116
+ constructor(requirements) {
117
+ this.requirements = requirements;
118
+ }
119
+ /**
120
+ * Whether every rule is satisfied.
121
+ */
122
+ isSatisfiedBy(allows) {
123
+ return this.requirements.every((requirement) => requirement.isSatisfiedBy(allows));
124
+ }
125
+ }
60
126
  //# sourceMappingURL=sim-iam-allow-requirement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-iam-allow-requirement.js","sourceRoot":"","sources":["../../../../../src/service/iam/authorize/allow/sim-iam-allow-requirement.ts"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AACH,MAAM,OAAO,gBAAgB;IACV,eAAe,CAAU;IACzB,eAAe,CAAU;IAE1C,YAAY,UAAsC;QAChD,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,QAAQ,CAAC;QAC3C,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,QAAQ,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;CACF;AASD;;;;;;GAMG;AACH,MAAM,OAAO,gCAAgC;IAC3C;;OAEG;IACH,aAAa,CAAC,MAAwB;QACpC,OAAO,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;IAC5C,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,+BAA+B;IAC1C;;OAEG;IACH,aAAa,CAAC,MAAwB;QACpC,OAAO,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;IAC5C,CAAC;CACF"}
1
+ {"version":3,"file":"sim-iam-allow-requirement.js","sourceRoot":"","sources":["../../../../../src/service/iam/authorize/allow/sim-iam-allow-requirement.ts"],"names":[],"mappings":"AAWA;;;;;;;GAOG;AACH,MAAM,OAAO,gBAAgB;IACV,eAAe,CAAU;IACzB,eAAe,CAAU;IACzB,qBAAqB,CAAU;IAEhD,YAAY,UAAsC;QAChD,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,QAAQ,CAAC;QAC3C,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,QAAQ,CAAC;QAC3C,IAAI,CAAC,qBAAqB;YACxB,UAAU,CAAC,cAAc,IAAI,UAAU,CAAC,QAAQ,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC;IAC7D,CAAC;CACF;AASD;;;;;;GAMG;AACH,MAAM,OAAO,gCAAgC;IAC3C;;OAEG;IACH,aAAa,CAAC,MAAwB;QACpC,OAAO,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;IAC5C,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,+BAA+B;IAC1C;;OAEG;IACH,aAAa,CAAC,MAAwB;QACpC,OAAO,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;IAC5C,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,wCAAwC;IACnD;;;OAGG;IACH,aAAa,CAAC,MAAwB;QACpC,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,QAAQ,CAAC;IACrD,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,2BAA2B;IACrB,YAAY,CAAoC;IAEjE,YAAY,YAA+C;QACzD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,MAAwB;QACpC,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,CAC7C,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAClC,CAAC;IACJ,CAAC;CACF"}
@@ -1,6 +1,7 @@
1
1
  import type { SimIamPolicyDocumentStatement } from "../../policy/sim-iam-policy.js";
2
2
  import type { SimIamAuthZPolicySource } from "../context/sim-iam-auth-z-context.js";
3
3
  import { SimIamAllowSides } from "./sim-iam-allow-requirement.js";
4
+ import type { SimIamPrincipalMatch } from "../match/sim-iam-principal-match.js";
4
5
  /**
5
6
  * The matching Allow statements found for one authorization, kept per side.
6
7
  *
@@ -14,10 +15,15 @@ export declare class SimIamAllowStatements {
14
15
  private readonly identityStatements;
15
16
  private readonly resourceStatements;
16
17
  private readonly trustStatements;
18
+ private readonly delegatedStatements;
17
19
  /**
18
20
  * Record a matching Allow against the policy side it came from.
21
+ *
22
+ * A resource-policy Allow that matched by way of the caller's Account rather
23
+ * than the caller itself is kept apart as well, so a rule that cares about
24
+ * the difference can ask for it.
19
25
  */
20
- record(policy: SimIamAuthZPolicySource, statement: SimIamPolicyDocumentStatement): void;
26
+ record(policy: SimIamAuthZPolicySource, statement: SimIamPolicyDocumentStatement, principal: SimIamPrincipalMatch): void;
21
27
  /**
22
28
  * Every matching Allow statement, identity side first.
23
29
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sim-iam-allow-statements.d.ts","sourceRoot":"","sources":["../../../../../src/service/iam/authorize/allow/sim-iam-allow-statements.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AACpF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE;;;;;;;;GAQG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuC;IAC1E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuC;IAC1E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuC;IAEvE;;OAEG;IACH,MAAM,CACJ,MAAM,EAAE,uBAAuB,EAC/B,SAAS,EAAE,6BAA6B,GACvC,IAAI,CAMN;IAED;;OAEG;IACH,IAAI,GAAG,IAAI,SAAS,6BAA6B,EAAE,CAElD;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,SAAS,6BAA6B,EAAE,CAEvD;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,SAAS,6BAA6B,EAAE,CAEvD;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,SAAS,6BAA6B,EAAE,CAEpD;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,gBAAgB,CAK5B;IAED;;OAEG;IACH,OAAO,CAAC,cAAc;CASvB"}
1
+ {"version":3,"file":"sim-iam-allow-statements.d.ts","sourceRoot":"","sources":["../../../../../src/service/iam/authorize/allow/sim-iam-allow-statements.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AACpF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAEhF;;;;;;;;GAQG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuC;IAC1E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuC;IAC1E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuC;IACvE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAuC;IAE3E;;;;;;OAMG;IACH,MAAM,CACJ,MAAM,EAAE,uBAAuB,EAC/B,SAAS,EAAE,6BAA6B,EACxC,SAAS,EAAE,oBAAoB,GAC9B,IAAI,CAUN;IAED;;OAEG;IACH,IAAI,GAAG,IAAI,SAAS,6BAA6B,EAAE,CAElD;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,SAAS,6BAA6B,EAAE,CAEvD;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,SAAS,6BAA6B,EAAE,CAEvD;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,SAAS,6BAA6B,EAAE,CAEpD;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,gBAAgB,CAU5B;IAED;;OAEG;IACH,OAAO,CAAC,cAAc;CASvB"}
@@ -12,13 +12,21 @@ export class SimIamAllowStatements {
12
12
  identityStatements = [];
13
13
  resourceStatements = [];
14
14
  trustStatements = [];
15
+ delegatedStatements = [];
15
16
  /**
16
17
  * Record a matching Allow against the policy side it came from.
18
+ *
19
+ * A resource-policy Allow that matched by way of the caller's Account rather
20
+ * than the caller itself is kept apart as well, so a rule that cares about
21
+ * the difference can ask for it.
17
22
  */
18
- record(policy, statement) {
23
+ record(policy, statement, principal) {
19
24
  if (policy.sourceType === "trust") {
20
25
  this.trustStatements.push(statement);
21
26
  }
27
+ if (principal.isAccountDelegation) {
28
+ this.delegatedStatements.push(statement);
29
+ }
22
30
  this.sideStatements(policy).push(statement);
23
31
  }
24
32
  /**
@@ -49,9 +57,11 @@ export class SimIamAllowStatements {
49
57
  * Which sides produced a matching Allow.
50
58
  */
51
59
  get sides() {
60
+ const delegated = new Set(this.delegatedStatements);
52
61
  return new SimIamAllowSides({
53
62
  identity: this.identityStatements.length > 0,
54
63
  resource: this.resourceStatements.length > 0,
64
+ resourceDirect: this.resourceStatements.some((statement) => !delegated.has(statement)),
55
65
  });
56
66
  }
57
67
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"sim-iam-allow-statements.js","sourceRoot":"","sources":["../../../../../src/service/iam/authorize/allow/sim-iam-allow-statements.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE;;;;;;;;GAQG;AACH,MAAM,OAAO,qBAAqB;IACf,kBAAkB,GAAoC,EAAE,CAAC;IACzD,kBAAkB,GAAoC,EAAE,CAAC;IACzD,eAAe,GAAoC,EAAE,CAAC;IAEvE;;OAEG;IACH,MAAM,CACJ,MAA+B,EAC/B,SAAwC;QAExC,IAAI,MAAM,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,IAAI,GAAG;QACL,OAAO,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,gBAAgB,CAAC;YAC1B,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC;YAC5C,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC;SAC7C,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,cAAc,CACpB,MAA+B;QAE/B,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,IAAI,MAAM,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;YACtE,OAAO,IAAI,CAAC,kBAAkB,CAAC;QACjC,CAAC;QAED,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;CACF"}
1
+ {"version":3,"file":"sim-iam-allow-statements.js","sourceRoot":"","sources":["../../../../../src/service/iam/authorize/allow/sim-iam-allow-statements.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGlE;;;;;;;;GAQG;AACH,MAAM,OAAO,qBAAqB;IACf,kBAAkB,GAAoC,EAAE,CAAC;IACzD,kBAAkB,GAAoC,EAAE,CAAC;IACzD,eAAe,GAAoC,EAAE,CAAC;IACtD,mBAAmB,GAAoC,EAAE,CAAC;IAE3E;;;;;;OAMG;IACH,MAAM,CACJ,MAA+B,EAC/B,SAAwC,EACxC,SAA+B;QAE/B,IAAI,MAAM,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,SAAS,CAAC,mBAAmB,EAAE,CAAC;YAClC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,IAAI,GAAG;QACL,OAAO,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAEpD,OAAO,IAAI,gBAAgB,CAAC;YAC1B,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC;YAC5C,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC;YAC5C,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAC1C,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CACzC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,cAAc,CACpB,MAA+B;QAE/B,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,IAAI,MAAM,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;YACtE,OAAO,IAAI,CAAC,kBAAkB,CAAC;QACjC,CAAC;QAED,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ import { type SimIamAllowRequirement } from "../allow/sim-iam-allow-requirement.js";
2
+ import type { SimIamCallerAccount } from "../caller-account/sim-iam-caller-account.js";
3
+ /**
4
+ * Works out which allow rules apply to one authorization request.
5
+ *
6
+ * Two things decide it, and both have to hold. The caller's Account says whose
7
+ * Allow counts: either side within one Account, both sides across Accounts.
8
+ * The resource-owning service says whether its resource insists on allowing,
9
+ * which is true of a KMS key and of nothing else so far.
10
+ */
11
+ export declare class SimIamAuthZAllowRequirement {
12
+ /**
13
+ * The rule a request is subject to.
14
+ */
15
+ resolve(callerAccount: SimIamCallerAccount, requiresResourcePolicyAllow: boolean | undefined): SimIamAllowRequirement;
16
+ }
17
+ //# sourceMappingURL=sim-iam-auth-z-allow-requirement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-iam-auth-z-allow-requirement.d.ts","sourceRoot":"","sources":["../../../../../src/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,sBAAsB,EAG5B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAEvF;;;;;;;GAOG;AACH,qBAAa,2BAA2B;IACtC;;OAEG;IACH,OAAO,CACL,aAAa,EAAE,mBAAmB,EAClC,2BAA2B,EAAE,OAAO,GAAG,SAAS,GAC/C,sBAAsB,CASxB;CACF"}
@@ -0,0 +1,24 @@
1
+ import { SimIamEveryAllowRequirement, SimIamMandatoryResourcePolicyRequirement, } from "../allow/sim-iam-allow-requirement.js";
2
+ /**
3
+ * Works out which allow rules apply to one authorization request.
4
+ *
5
+ * Two things decide it, and both have to hold. The caller's Account says whose
6
+ * Allow counts: either side within one Account, both sides across Accounts.
7
+ * The resource-owning service says whether its resource insists on allowing,
8
+ * which is true of a KMS key and of nothing else so far.
9
+ */
10
+ export class SimIamAuthZAllowRequirement {
11
+ /**
12
+ * The rule a request is subject to.
13
+ */
14
+ resolve(callerAccount, requiresResourcePolicyAllow) {
15
+ if (requiresResourcePolicyAllow !== true) {
16
+ return callerAccount.allowRequirement;
17
+ }
18
+ return new SimIamEveryAllowRequirement([
19
+ callerAccount.allowRequirement,
20
+ new SimIamMandatoryResourcePolicyRequirement(),
21
+ ]);
22
+ }
23
+ }
24
+ //# sourceMappingURL=sim-iam-auth-z-allow-requirement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-iam-auth-z-allow-requirement.js","sourceRoot":"","sources":["../../../../../src/service/iam/authorize/context/sim-iam-auth-z-allow-requirement.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,2BAA2B,EAC3B,wCAAwC,GACzC,MAAM,uCAAuC,CAAC;AAG/C;;;;;;;GAOG;AACH,MAAM,OAAO,2BAA2B;IACtC;;OAEG;IACH,OAAO,CACL,aAAkC,EAClC,2BAAgD;QAEhD,IAAI,2BAA2B,KAAK,IAAI,EAAE,CAAC;YACzC,OAAO,aAAa,CAAC,gBAAgB,CAAC;QACxC,CAAC;QAED,OAAO,IAAI,2BAA2B,CAAC;YACrC,aAAa,CAAC,gBAAgB;YAC9B,IAAI,wCAAwC,EAAE;SAC/C,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -44,6 +44,15 @@ export interface SimIamAuthorizationInput {
44
44
  * service-level resource policy.
45
45
  */
46
46
  readonly resourcePolicies?: readonly SimIamResourcePolicyInput[] | undefined;
47
+ /**
48
+ * Whether the resource's own policy must allow the request.
49
+ *
50
+ * Off by default, which is the ordinary AWS rule: a resource with no policy
51
+ * leaves the decision to the caller's identity policies. A service sets it
52
+ * for a resource whose policy is mandatory and is the root of trust for
53
+ * reaching it, which in AWS means a KMS key policy.
54
+ */
55
+ readonly requiresResourcePolicyAllow?: boolean | undefined;
47
56
  }
48
57
  interface SimIamAuthZContextBuilderProperties {
49
58
  /**
@@ -90,6 +99,7 @@ export declare class SimIamAuthZContextBuilder {
90
99
  private readonly callerContextBuilder;
91
100
  private readonly identityPolicyCoordinator;
92
101
  private readonly callerAccountResolver;
102
+ private readonly allowRequirement;
93
103
  constructor(properties: SimIamAuthZContextBuilderProperties);
94
104
  /**
95
105
  * Build the context consumed by SimIamAuthorizer.
@@ -1 +1 @@
1
- {"version":3,"file":"sim-iam-auth-z-context-builder.d.ts","sourceRoot":"","sources":["../../../../../src/service/iam/authorize/context/sim-iam-auth-z-context-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EAChB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,KAAK,EACV,oBAAoB,EACpB,YAAY,EACZ,oBAAoB,EACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,KAAK,EACV,kBAAkB,EAClB,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,6BAA6B,CAAC;AAMrC,OAAO,KAAK,EACV,gCAAgC,EAEjC,MAAM,gDAAgD,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE7E,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAC3B,2BAA2B,EAC3B,UAAU,GAAG,OAAO,CACrB,CAAC;IACF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;;;;;;;OAQG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EACxB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,GAAG,SAAS,CAAC;IAE7D;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAE3C;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,yBAAyB,EAAE,GAAG,SAAS,CAAC;CAC9E;AAED,UAAU,mCAAmC;IAC3C;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IAEpC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACrD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IACxD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IACxD,QAAQ,CAAC,0BAA0B,EAAE,gCAAgC,CAAC;IAEtE;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;CAC1D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAkC;IACvE,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAuC;IACjF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA8B;IAEpE,YAAY,UAAU,EAAE,mCAAmC,EAc1D;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,wBAAwB,GAAG,kBAAkB,CAkBzD;IAED;;;;;;OAMG;IACH,wBAAwB,CACtB,SAAS,EAAE,eAAe,GACzB,SAAS,uBAAuB,EAAE,CAIpC;IAED;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAWhC;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;;;;;;;OAQG;IACH,OAAO,CAAC,qBAAqB;CAU9B"}
1
+ {"version":3,"file":"sim-iam-auth-z-context-builder.d.ts","sourceRoot":"","sources":["../../../../../src/service/iam/authorize/context/sim-iam-auth-z-context-builder.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { makeSimAwsAccountRootPrincipal } from "../../../aws/caller/sim-aws-account-root-principal.js";
2
2
  import { SimIamCallerAccountResolver } from "../caller-account/sim-iam-caller-account-resolver.js";
3
+ import { SimIamAuthZAllowRequirement } from "./sim-iam-auth-z-allow-requirement.js";
3
4
  import { SimIamAuthZIdentityPolicyCoordinator } from "./identity-policy-source/sim-iam-auth-z-id-pol-coordinator.js";
4
5
  import { SimIamAuthZCallerContextBuilder, } from "./sim-iam-auth-z-caller-context-builder.js";
5
6
  /**
@@ -32,6 +33,7 @@ export class SimIamAuthZContextBuilder {
32
33
  callerContextBuilder;
33
34
  identityPolicyCoordinator;
34
35
  callerAccountResolver;
36
+ allowRequirement = new SimIamAuthZAllowRequirement();
35
37
  constructor(properties) {
36
38
  this.callerContextBuilder = new SimIamAuthZCallerContextBuilder(makeSimAwsAccountRootPrincipal(properties.accountId), properties.credentialIdentityResolver);
37
39
  this.identityPolicyCoordinator = new SimIamAuthZIdentityPolicyCoordinator({
@@ -56,7 +58,7 @@ export class SimIamAuthZContextBuilder {
56
58
  ...callerAccount.identityPolicies,
57
59
  ],
58
60
  resourcePolicies: this.resourcePolicySources(input),
59
- allowRequirement: callerAccount.allowRequirement,
61
+ allowRequirement: this.allowRequirement.resolve(callerAccount, input.requiresResourcePolicyAllow),
60
62
  action: input.action,
61
63
  resource: input.resource,
62
64
  conditionContext: this.conditionContext(input, callerContext.caller),
@@ -1 +1 @@
1
- {"version":3,"file":"sim-iam-auth-z-context-builder.js","sourceRoot":"","sources":["../../../../../src/service/iam/authorize/context/sim-iam-auth-z-context-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sim-iam-auth-z-context-builder.js","sourceRoot":"","sources":["../../../../../src/service/iam/authorize/context/sim-iam-auth-z-context-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,8BAA8B,EAAE,MAAM,uDAAuD,CAAC;AAMvG,OAAO,EAAE,2BAA2B,EAAE,MAAM,sDAAsD,CAAC;AACnG,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AAapF,OAAO,EAAE,oCAAoC,EAAE,MAAM,+DAA+D,CAAC;AACrH,OAAO,EACL,+BAA+B,GAEhC,MAAM,4CAA4C,CAAC;AAkFpD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAO,yBAAyB;IACnB,oBAAoB,CAAkC;IACtD,yBAAyB,CAAuC;IAChE,qBAAqB,CAA8B;IACnD,gBAAgB,GAAG,IAAI,2BAA2B,EAAE,CAAC;IAEtE,YAAY,UAA+C;QACzD,IAAI,CAAC,oBAAoB,GAAG,IAAI,+BAA+B,CAC7D,8BAA8B,CAAC,UAAU,CAAC,SAAS,CAAC,EACpD,UAAU,CAAC,0BAA0B,CACtC,CAAC;QACF,IAAI,CAAC,yBAAyB,GAAG,IAAI,oCAAoC,CAAC;YACxE,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,KAAK,EAAE,UAAU,CAAC,KAAK;SACxB,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,GAAG,IAAI,2BAA2B,CAAC;YAC3D,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,WAAW,EAAE,UAAU,CAAC,WAAW;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAA+B;QACnC,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpE,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CACtD,aAAa,CAAC,MAAM,CACrB,CAAC;QAEF,OAAO;YACL,gBAAgB,EAAE;gBAChB,GAAG,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC;gBAC/C,GAAG,aAAa,CAAC,gBAAgB;aAClC;YACD,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;YACnD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAC7C,aAAa,EACb,KAAK,CAAC,2BAA2B,CAClC;YACD,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC;YACpE,MAAM,EAAE,aAAa,CAAC,MAAM;SAC7B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,wBAAwB,CACtB,SAA0B;QAE1B,OAAO,IAAI,CAAC,wBAAwB,CAClC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,SAAS,CAAC,CAC3C,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,wBAAwB,CAC9B,aAAuC;QAEvC,OAAO;YACL,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,CACrC,aAAa,CAAC,MAAM,CAAC,iBAAiB,CACvC;YACD,GAAG,aAAa,CAAC,iBAAiB;SACnC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACK,gBAAgB,CACtB,KAA+B,EAC/B,MAA4B;QAE5B,MAAM,YAAY,GAAG,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,GAAG,CAAC;QAE5D,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC;QACtC,CAAC;QAED,OAAO;YACL,GAAG,KAAK,CAAC,gBAAgB;YACzB,kBAAkB,EAAE,YAAY;SACjC,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACK,qBAAqB,CAC3B,KAA+B;QAE/B,OAAO,CAAC,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACrD,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,UAAU;YAC3C,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC,CAAC,CAAC;IACN,CAAC;CACF"}
@@ -1,5 +1,6 @@
1
1
  import type { SimIamParsedPolicyStatement } from "../../policy/parse/sim-iam-document-parser.js";
2
2
  import type { SimIamAuthZContext, SimIamAuthZPolicySource } from "../context/sim-iam-auth-z-context.js";
3
+ import { SimIamPrincipalMatch } from "./sim-iam-principal-match.js";
3
4
  /**
4
5
  * Matches the principal portion of an IAM policy statement.
5
6
  *
@@ -27,7 +28,7 @@ export declare class SimIamPolicyPrincipalMatcher {
27
28
  * Resource and trust policies require Principal or NotPrincipal because the
28
29
  * policy must state which callers it applies to.
29
30
  */
30
- matches(policy: SimIamAuthZPolicySource, statement: SimIamParsedPolicyStatement): boolean;
31
+ matches(policy: SimIamAuthZPolicySource, statement: SimIamParsedPolicyStatement): SimIamPrincipalMatch;
31
32
  /**
32
33
  * Check each Principal representation supported by the parsed policy model.
33
34
  *
@@ -36,6 +37,10 @@ export declare class SimIamPolicyPrincipalMatcher {
36
37
  * delegation, while Service values match service principals.
37
38
  */
38
39
  private valueMatches;
40
+ /**
41
+ * The winning match among alternatives, since Principal lists are an OR.
42
+ */
43
+ private firstMatch;
39
44
  /**
40
45
  * Compare an AWS principal pattern with the resolved caller.
41
46
  *
@@ -1 +1 @@
1
- {"version":3,"file":"sim-iam-policy-principal-matcher.d.ts","sourceRoot":"","sources":["../../../../../src/service/iam/authorize/match/sim-iam-policy-principal-matcher.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AACjG,OAAO,KAAK,EACV,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,sCAAsC,CAAC;AAG9C;;;;;;;;;;;;;;GAcG;AACH,qBAAa,4BAA4B;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAApC,YAA6B,OAAO,EAAE,kBAAkB,EAAI;IAE5D;;;;;;;;OAQG;IACH,OAAO,CACL,MAAM,EAAE,uBAAuB,EAC/B,SAAS,EAAE,2BAA2B,GACrC,OAAO,CAiBT;IAED;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IA2BpB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAqBzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAa7B;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;CAQ3B"}
1
+ {"version":3,"file":"sim-iam-policy-principal-matcher.d.ts","sourceRoot":"","sources":["../../../../../src/service/iam/authorize/match/sim-iam-policy-principal-matcher.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AACjG,OAAO,KAAK,EACV,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE;;;;;;;;;;;;;;GAcG;AACH,qBAAa,4BAA4B;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAApC,YAA6B,OAAO,EAAE,kBAAkB,EAAI;IAE5D;;;;;;;;OAQG;IACH,OAAO,CACL,MAAM,EAAE,uBAAuB,EAC/B,SAAS,EAAE,2BAA2B,GACrC,oBAAoB,CAqBtB;IAED;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAiCpB;;OAEG;IACH,OAAO,CAAC,UAAU;IAOlB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAyBzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAa7B;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;CAQ3B"}