@kensio/yulin 0.40.0 → 0.42.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 (483) hide show
  1. package/README.md +2 -0
  2. package/dist/sdk/router/resolve-sim-sdk-command-router.d.ts.map +1 -1
  3. package/dist/sdk/router/resolve-sim-sdk-command-router.js +6 -0
  4. package/dist/sdk/router/resolve-sim-sdk-command-router.js.map +1 -1
  5. package/dist/service/aws/factory/sim-aws-service-factory.d.ts +23 -24
  6. package/dist/service/aws/factory/sim-aws-service-factory.d.ts.map +1 -1
  7. package/dist/service/aws/factory/sim-aws-service-factory.js +37 -24
  8. package/dist/service/aws/factory/sim-aws-service-factory.js.map +1 -1
  9. package/dist/service/aws/sim-aws-account-region-scope.d.ts +10 -0
  10. package/dist/service/aws/sim-aws-account-region-scope.d.ts.map +1 -1
  11. package/dist/service/aws/sim-aws-account-region-scope.js +12 -0
  12. package/dist/service/aws/sim-aws-account-region-scope.js.map +1 -1
  13. package/dist/service/aws/sim-aws.d.ts +17 -33
  14. package/dist/service/aws/sim-aws.d.ts.map +1 -1
  15. package/dist/service/aws/sim-aws.js +19 -33
  16. package/dist/service/aws/sim-aws.js.map +1 -1
  17. package/dist/service/cloudformation/resource/cfn/sim-cfn-resource-value-adapter.d.ts.map +1 -1
  18. package/dist/service/cloudformation/resource/cfn/sim-cfn-resource-value-adapter.js +2 -0
  19. package/dist/service/cloudformation/resource/cfn/sim-cfn-resource-value-adapter.js.map +1 -1
  20. package/dist/service/cloudformation/resource/cfn/ssm/sim-ssm-cfn-value-adapter.d.ts +6 -0
  21. package/dist/service/cloudformation/resource/cfn/ssm/sim-ssm-cfn-value-adapter.d.ts.map +1 -0
  22. package/dist/service/cloudformation/resource/cfn/ssm/sim-ssm-cfn-value-adapter.js +13 -0
  23. package/dist/service/cloudformation/resource/cfn/ssm/sim-ssm-cfn-value-adapter.js.map +1 -0
  24. package/dist/service/cloudformation/resource/cfn/ssm/sim-ssm-parameter-cfn.d.ts +27 -0
  25. package/dist/service/cloudformation/resource/cfn/ssm/sim-ssm-parameter-cfn.d.ts.map +1 -0
  26. package/dist/service/cloudformation/resource/cfn/ssm/sim-ssm-parameter-cfn.js +36 -0
  27. package/dist/service/cloudformation/resource/cfn/ssm/sim-ssm-parameter-cfn.js.map +1 -0
  28. package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-resolver.d.ts.map +1 -1
  29. package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-resolver.js +3 -0
  30. package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-resolver.js.map +1 -1
  31. package/dist/service/cognito/command/authorize/sim-cognito-authorizer.d.ts +36 -0
  32. package/dist/service/cognito/command/authorize/sim-cognito-authorizer.d.ts.map +1 -0
  33. package/dist/service/cognito/command/authorize/sim-cognito-authorizer.js +54 -0
  34. package/dist/service/cognito/command/authorize/sim-cognito-authorizer.js.map +1 -0
  35. package/dist/service/cognito/command/client/list-user-pool-clients.command.d.ts +29 -0
  36. package/dist/service/cognito/command/client/list-user-pool-clients.command.d.ts.map +1 -0
  37. package/dist/service/cognito/command/client/list-user-pool-clients.command.js +2 -0
  38. package/dist/service/cognito/command/client/list-user-pool-clients.command.js.map +1 -0
  39. package/dist/service/cognito/command/client/sim-cognito-list-user-pool-clients.d.ts +30 -0
  40. package/dist/service/cognito/command/client/sim-cognito-list-user-pool-clients.d.ts.map +1 -0
  41. package/dist/service/cognito/command/client/sim-cognito-list-user-pool-clients.js +44 -0
  42. package/dist/service/cognito/command/client/sim-cognito-list-user-pool-clients.js.map +1 -0
  43. package/dist/service/cognito/command/client/sim-cognito-unsimulated-client-options.d.ts +16 -0
  44. package/dist/service/cognito/command/client/sim-cognito-unsimulated-client-options.d.ts.map +1 -0
  45. package/dist/service/cognito/command/client/sim-cognito-unsimulated-client-options.js +28 -0
  46. package/dist/service/cognito/command/client/sim-cognito-unsimulated-client-options.js.map +1 -0
  47. package/dist/service/cognito/command/client/sim-cognito-unsimulated-managed-login.d.ts +23 -0
  48. package/dist/service/cognito/command/client/sim-cognito-unsimulated-managed-login.d.ts.map +1 -0
  49. package/dist/service/cognito/command/client/sim-cognito-unsimulated-managed-login.js +51 -0
  50. package/dist/service/cognito/command/client/sim-cognito-unsimulated-managed-login.js.map +1 -0
  51. package/dist/service/cognito/command/client/sim-cognito-user-pool-client-commands.d.ts +50 -0
  52. package/dist/service/cognito/command/client/sim-cognito-user-pool-client-commands.d.ts.map +1 -0
  53. package/dist/service/cognito/command/client/sim-cognito-user-pool-client-commands.js +75 -0
  54. package/dist/service/cognito/command/client/sim-cognito-user-pool-client-commands.js.map +1 -0
  55. package/dist/service/cognito/command/client/sim-cognito-user-pool-client-view.d.ts +27 -0
  56. package/dist/service/cognito/command/client/sim-cognito-user-pool-client-view.d.ts.map +1 -0
  57. package/dist/service/cognito/command/client/sim-cognito-user-pool-client-view.js +45 -0
  58. package/dist/service/cognito/command/client/sim-cognito-user-pool-client-view.js.map +1 -0
  59. package/dist/service/cognito/command/client/user-pool-client.command.d.ts +97 -0
  60. package/dist/service/cognito/command/client/user-pool-client.command.d.ts.map +1 -0
  61. package/dist/service/cognito/command/client/user-pool-client.command.js +2 -0
  62. package/dist/service/cognito/command/client/user-pool-client.command.js.map +1 -0
  63. package/dist/service/cognito/command/sim-cognito-command.types.d.ts +8 -0
  64. package/dist/service/cognito/command/sim-cognito-command.types.d.ts.map +1 -0
  65. package/dist/service/cognito/command/sim-cognito-command.types.js +2 -0
  66. package/dist/service/cognito/command/sim-cognito-command.types.js.map +1 -0
  67. package/dist/service/cognito/command/sim-cognito-page.d.ts +29 -0
  68. package/dist/service/cognito/command/sim-cognito-page.d.ts.map +1 -0
  69. package/dist/service/cognito/command/sim-cognito-page.js +59 -0
  70. package/dist/service/cognito/command/sim-cognito-page.js.map +1 -0
  71. package/dist/service/cognito/command/sim-cognito-unsimulated-input.d.ts +21 -0
  72. package/dist/service/cognito/command/sim-cognito-unsimulated-input.d.ts.map +1 -0
  73. package/dist/service/cognito/command/sim-cognito-unsimulated-input.js +37 -0
  74. package/dist/service/cognito/command/sim-cognito-unsimulated-input.js.map +1 -0
  75. package/dist/service/cognito/command/user-pool/list-user-pools.command.d.ts +29 -0
  76. package/dist/service/cognito/command/user-pool/list-user-pools.command.d.ts.map +1 -0
  77. package/dist/service/cognito/command/user-pool/list-user-pools.command.js +2 -0
  78. package/dist/service/cognito/command/user-pool/list-user-pools.command.js.map +1 -0
  79. package/dist/service/cognito/command/user-pool/sim-cognito-list-user-pools.d.ts +37 -0
  80. package/dist/service/cognito/command/user-pool/sim-cognito-list-user-pools.d.ts.map +1 -0
  81. package/dist/service/cognito/command/user-pool/sim-cognito-list-user-pools.js +48 -0
  82. package/dist/service/cognito/command/user-pool/sim-cognito-list-user-pools.js.map +1 -0
  83. package/dist/service/cognito/command/user-pool/sim-cognito-unsimulated-pool-features.d.ts +16 -0
  84. package/dist/service/cognito/command/user-pool/sim-cognito-unsimulated-pool-features.d.ts.map +1 -0
  85. package/dist/service/cognito/command/user-pool/sim-cognito-unsimulated-pool-features.js +30 -0
  86. package/dist/service/cognito/command/user-pool/sim-cognito-unsimulated-pool-features.js.map +1 -0
  87. package/dist/service/cognito/command/user-pool/sim-cognito-unsimulated-pool-messaging.d.ts +16 -0
  88. package/dist/service/cognito/command/user-pool/sim-cognito-unsimulated-pool-messaging.d.ts.map +1 -0
  89. package/dist/service/cognito/command/user-pool/sim-cognito-unsimulated-pool-messaging.js +24 -0
  90. package/dist/service/cognito/command/user-pool/sim-cognito-unsimulated-pool-messaging.js.map +1 -0
  91. package/dist/service/cognito/command/user-pool/sim-cognito-unsimulated-pool-options.d.ts +28 -0
  92. package/dist/service/cognito/command/user-pool/sim-cognito-unsimulated-pool-options.d.ts.map +1 -0
  93. package/dist/service/cognito/command/user-pool/sim-cognito-unsimulated-pool-options.js +47 -0
  94. package/dist/service/cognito/command/user-pool/sim-cognito-unsimulated-pool-options.js.map +1 -0
  95. package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-commands.d.ts +41 -0
  96. package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-commands.d.ts.map +1 -0
  97. package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-commands.js +65 -0
  98. package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-commands.js.map +1 -0
  99. package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-view.d.ts +25 -0
  100. package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-view.d.ts.map +1 -0
  101. package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-view.js +41 -0
  102. package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-view.js.map +1 -0
  103. package/dist/service/cognito/command/user-pool/user-pool.command.d.ts +94 -0
  104. package/dist/service/cognito/command/user-pool/user-pool.command.d.ts.map +1 -0
  105. package/dist/service/cognito/command/user-pool/user-pool.command.js +2 -0
  106. package/dist/service/cognito/command/user-pool/user-pool.command.js.map +1 -0
  107. package/dist/service/cognito/error/sim-cognito.error.d.ts +34 -0
  108. package/dist/service/cognito/error/sim-cognito.error.d.ts.map +1 -0
  109. package/dist/service/cognito/error/sim-cognito.error.js +35 -0
  110. package/dist/service/cognito/error/sim-cognito.error.js.map +1 -0
  111. package/dist/service/cognito/index.d.ts +13 -0
  112. package/dist/service/cognito/index.d.ts.map +1 -0
  113. package/dist/service/cognito/index.js +11 -0
  114. package/dist/service/cognito/index.js.map +1 -0
  115. package/dist/service/cognito/sdk/sim-cognito-sdk-command-router.d.ts +18 -0
  116. package/dist/service/cognito/sdk/sim-cognito-sdk-command-router.d.ts.map +1 -0
  117. package/dist/service/cognito/sdk/sim-cognito-sdk-command-router.js +56 -0
  118. package/dist/service/cognito/sdk/sim-cognito-sdk-command-router.js.map +1 -0
  119. package/dist/service/cognito/sim-cognito-identity-provider.d.ts +81 -0
  120. package/dist/service/cognito/sim-cognito-identity-provider.d.ts.map +1 -0
  121. package/dist/service/cognito/sim-cognito-identity-provider.js +132 -0
  122. package/dist/service/cognito/sim-cognito-identity-provider.js.map +1 -0
  123. package/dist/service/cognito/user-pool/client/sim-cognito-client-secret.d.ts +10 -0
  124. package/dist/service/cognito/user-pool/client/sim-cognito-client-secret.d.ts.map +1 -0
  125. package/dist/service/cognito/user-pool/client/sim-cognito-client-secret.js +22 -0
  126. package/dist/service/cognito/user-pool/client/sim-cognito-client-secret.js.map +1 -0
  127. package/dist/service/cognito/user-pool/client/sim-cognito-explicit-auth-flows.d.ts +23 -0
  128. package/dist/service/cognito/user-pool/client/sim-cognito-explicit-auth-flows.d.ts.map +1 -0
  129. package/dist/service/cognito/user-pool/client/sim-cognito-explicit-auth-flows.js +77 -0
  130. package/dist/service/cognito/user-pool/client/sim-cognito-explicit-auth-flows.js.map +1 -0
  131. package/dist/service/cognito/user-pool/client/sim-cognito-refresh-token-lifetime.d.ts +13 -0
  132. package/dist/service/cognito/user-pool/client/sim-cognito-refresh-token-lifetime.d.ts.map +1 -0
  133. package/dist/service/cognito/user-pool/client/sim-cognito-refresh-token-lifetime.js +28 -0
  134. package/dist/service/cognito/user-pool/client/sim-cognito-refresh-token-lifetime.js.map +1 -0
  135. package/dist/service/cognito/user-pool/client/sim-cognito-token-lifetime-specs.d.ts +29 -0
  136. package/dist/service/cognito/user-pool/client/sim-cognito-token-lifetime-specs.d.ts.map +1 -0
  137. package/dist/service/cognito/user-pool/client/sim-cognito-token-lifetime-specs.js +41 -0
  138. package/dist/service/cognito/user-pool/client/sim-cognito-token-lifetime-specs.js.map +1 -0
  139. package/dist/service/cognito/user-pool/client/sim-cognito-token-lifetime.d.ts +49 -0
  140. package/dist/service/cognito/user-pool/client/sim-cognito-token-lifetime.d.ts.map +1 -0
  141. package/dist/service/cognito/user-pool/client/sim-cognito-token-lifetime.js +66 -0
  142. package/dist/service/cognito/user-pool/client/sim-cognito-token-lifetime.js.map +1 -0
  143. package/dist/service/cognito/user-pool/client/sim-cognito-token-validity.d.ts +41 -0
  144. package/dist/service/cognito/user-pool/client/sim-cognito-token-validity.d.ts.map +1 -0
  145. package/dist/service/cognito/user-pool/client/sim-cognito-token-validity.js +40 -0
  146. package/dist/service/cognito/user-pool/client/sim-cognito-token-validity.js.map +1 -0
  147. package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-factory.d.ts +32 -0
  148. package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-factory.d.ts.map +1 -0
  149. package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-factory.js +44 -0
  150. package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-factory.js.map +1 -0
  151. package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-id.d.ts +11 -0
  152. package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-id.d.ts.map +1 -0
  153. package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-id.js +39 -0
  154. package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-id.js.map +1 -0
  155. package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-store.d.ts +37 -0
  156. package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-store.d.ts.map +1 -0
  157. package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-store.js +52 -0
  158. package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-store.js.map +1 -0
  159. package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client.d.ts +50 -0
  160. package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client.d.ts.map +1 -0
  161. package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client.js +47 -0
  162. package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client.js.map +1 -0
  163. package/dist/service/cognito/user-pool/sim-cognito-deletion-protection.d.ts +18 -0
  164. package/dist/service/cognito/user-pool/sim-cognito-deletion-protection.d.ts.map +1 -0
  165. package/dist/service/cognito/user-pool/sim-cognito-deletion-protection.js +31 -0
  166. package/dist/service/cognito/user-pool/sim-cognito-deletion-protection.js.map +1 -0
  167. package/dist/service/cognito/user-pool/sim-cognito-name.d.ts +22 -0
  168. package/dist/service/cognito/user-pool/sim-cognito-name.d.ts.map +1 -0
  169. package/dist/service/cognito/user-pool/sim-cognito-name.js +29 -0
  170. package/dist/service/cognito/user-pool/sim-cognito-name.js.map +1 -0
  171. package/dist/service/cognito/user-pool/sim-cognito-password-policy.d.ts +56 -0
  172. package/dist/service/cognito/user-pool/sim-cognito-password-policy.d.ts.map +1 -0
  173. package/dist/service/cognito/user-pool/sim-cognito-password-policy.js +51 -0
  174. package/dist/service/cognito/user-pool/sim-cognito-password-policy.js.map +1 -0
  175. package/dist/service/cognito/user-pool/sim-cognito-user-pool-arn.d.ts +26 -0
  176. package/dist/service/cognito/user-pool/sim-cognito-user-pool-arn.d.ts.map +1 -0
  177. package/dist/service/cognito/user-pool/sim-cognito-user-pool-arn.js +26 -0
  178. package/dist/service/cognito/user-pool/sim-cognito-user-pool-arn.js.map +1 -0
  179. package/dist/service/cognito/user-pool/sim-cognito-user-pool-factory.d.ts +34 -0
  180. package/dist/service/cognito/user-pool/sim-cognito-user-pool-factory.d.ts.map +1 -0
  181. package/dist/service/cognito/user-pool/sim-cognito-user-pool-factory.js +44 -0
  182. package/dist/service/cognito/user-pool/sim-cognito-user-pool-factory.js.map +1 -0
  183. package/dist/service/cognito/user-pool/sim-cognito-user-pool-id.d.ts +20 -0
  184. package/dist/service/cognito/user-pool/sim-cognito-user-pool-id.d.ts.map +1 -0
  185. package/dist/service/cognito/user-pool/sim-cognito-user-pool-id.js +48 -0
  186. package/dist/service/cognito/user-pool/sim-cognito-user-pool-id.js.map +1 -0
  187. package/dist/service/cognito/user-pool/sim-cognito-user-pool-store.d.ts +36 -0
  188. package/dist/service/cognito/user-pool/sim-cognito-user-pool-store.d.ts.map +1 -0
  189. package/dist/service/cognito/user-pool/sim-cognito-user-pool-store.js +51 -0
  190. package/dist/service/cognito/user-pool/sim-cognito-user-pool-store.js.map +1 -0
  191. package/dist/service/cognito/user-pool/sim-cognito-user-pool.d.ts +65 -0
  192. package/dist/service/cognito/user-pool/sim-cognito-user-pool.d.ts.map +1 -0
  193. package/dist/service/cognito/user-pool/sim-cognito-user-pool.js +71 -0
  194. package/dist/service/cognito/user-pool/sim-cognito-user-pool.js.map +1 -0
  195. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts +23 -4
  196. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.d.ts.map +1 -1
  197. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js +22 -9
  198. package/dist/service/iam/authorize/context/sim-iam-auth-z-context-builder.js.map +1 -1
  199. package/dist/service/iam/authorize/context/sim-iam-caller-condition-source.d.ts +21 -0
  200. package/dist/service/iam/authorize/context/sim-iam-caller-condition-source.d.ts.map +1 -0
  201. package/dist/service/iam/authorize/context/sim-iam-caller-condition-source.js +2 -0
  202. package/dist/service/iam/authorize/context/sim-iam-caller-condition-source.js.map +1 -0
  203. package/dist/service/kms/command/alias/sim-kms-alias-commands.d.ts +3 -6
  204. package/dist/service/kms/command/alias/sim-kms-alias-commands.d.ts.map +1 -1
  205. package/dist/service/kms/command/alias/sim-kms-alias-commands.js +2 -2
  206. package/dist/service/kms/command/alias/sim-kms-alias-commands.js.map +1 -1
  207. package/dist/service/kms/command/authorize/sim-kms-authorizer.d.ts +16 -3
  208. package/dist/service/kms/command/authorize/sim-kms-authorizer.d.ts.map +1 -1
  209. package/dist/service/kms/command/authorize/sim-kms-authorizer.js +32 -4
  210. package/dist/service/kms/command/authorize/sim-kms-authorizer.js.map +1 -1
  211. package/dist/service/kms/command/crypto/sim-kms-crypto-commands.d.ts +3 -6
  212. package/dist/service/kms/command/crypto/sim-kms-crypto-commands.d.ts.map +1 -1
  213. package/dist/service/kms/command/crypto/sim-kms-crypto-commands.js +2 -2
  214. package/dist/service/kms/command/crypto/sim-kms-crypto-commands.js.map +1 -1
  215. package/dist/service/kms/command/crypto/sim-kms-generate-data-key.d.ts +2 -5
  216. package/dist/service/kms/command/crypto/sim-kms-generate-data-key.d.ts.map +1 -1
  217. package/dist/service/kms/command/crypto/sim-kms-generate-data-key.js +1 -1
  218. package/dist/service/kms/command/crypto/sim-kms-generate-data-key.js.map +1 -1
  219. package/dist/service/kms/command/key/sim-kms-key-commands.d.ts +3 -6
  220. package/dist/service/kms/command/key/sim-kms-key-commands.d.ts.map +1 -1
  221. package/dist/service/kms/command/key/sim-kms-key-commands.js +2 -2
  222. package/dist/service/kms/command/key/sim-kms-key-commands.js.map +1 -1
  223. package/dist/service/kms/command/key/sim-kms-key-lifecycle-commands.d.ts +5 -8
  224. package/dist/service/kms/command/key/sim-kms-key-lifecycle-commands.d.ts.map +1 -1
  225. package/dist/service/kms/command/key/sim-kms-key-lifecycle-commands.js +4 -4
  226. package/dist/service/kms/command/key/sim-kms-key-lifecycle-commands.js.map +1 -1
  227. package/dist/service/kms/command/key/sim-kms-key-policy-commands.d.ts +3 -6
  228. package/dist/service/kms/command/key/sim-kms-key-policy-commands.d.ts.map +1 -1
  229. package/dist/service/kms/command/key/sim-kms-key-policy-commands.js +2 -2
  230. package/dist/service/kms/command/key/sim-kms-key-policy-commands.js.map +1 -1
  231. package/dist/service/kms/command/key/sim-kms-list-keys.d.ts +2 -5
  232. package/dist/service/kms/command/key/sim-kms-list-keys.d.ts.map +1 -1
  233. package/dist/service/kms/command/key/sim-kms-list-keys.js +1 -1
  234. package/dist/service/kms/command/key/sim-kms-list-keys.js.map +1 -1
  235. package/dist/service/kms/command/sim-kms-request-options.d.ts +24 -0
  236. package/dist/service/kms/command/sim-kms-request-options.d.ts.map +1 -0
  237. package/dist/service/kms/command/sim-kms-request-options.js +2 -0
  238. package/dist/service/kms/command/sim-kms-request-options.js.map +1 -0
  239. package/dist/service/kms/index.d.ts +2 -1
  240. package/dist/service/kms/index.d.ts.map +1 -1
  241. package/dist/service/kms/index.js.map +1 -1
  242. package/dist/service/kms/key/sim-kms-caller-account.d.ts +25 -0
  243. package/dist/service/kms/key/sim-kms-caller-account.d.ts.map +1 -0
  244. package/dist/service/kms/key/sim-kms-caller-account.js +27 -0
  245. package/dist/service/kms/key/sim-kms-caller-account.js.map +1 -0
  246. package/dist/service/kms/key/sim-kms-key-factory.d.ts +17 -2
  247. package/dist/service/kms/key/sim-kms-key-factory.d.ts.map +1 -1
  248. package/dist/service/kms/key/sim-kms-key-factory.js +25 -7
  249. package/dist/service/kms/key/sim-kms-key-factory.js.map +1 -1
  250. package/dist/service/kms/key/sim-kms-key-policy.d.ts +14 -0
  251. package/dist/service/kms/key/sim-kms-key-policy.d.ts.map +1 -1
  252. package/dist/service/kms/key/sim-kms-key-policy.js +49 -0
  253. package/dist/service/kms/key/sim-kms-key-policy.js.map +1 -1
  254. package/dist/service/kms/key/sim-kms-key-store.d.ts +5 -1
  255. package/dist/service/kms/key/sim-kms-key-store.d.ts.map +1 -1
  256. package/dist/service/kms/key/sim-kms-key-store.js +7 -3
  257. package/dist/service/kms/key/sim-kms-key-store.js.map +1 -1
  258. package/dist/service/kms/key/sim-kms-via-service.d.ts +37 -0
  259. package/dist/service/kms/key/sim-kms-via-service.d.ts.map +1 -0
  260. package/dist/service/kms/key/sim-kms-via-service.js +50 -0
  261. package/dist/service/kms/key/sim-kms-via-service.js.map +1 -0
  262. package/dist/service/kms/sim-kms.d.ts +1 -4
  263. package/dist/service/kms/sim-kms.d.ts.map +1 -1
  264. package/dist/service/kms/sim-kms.js.map +1 -1
  265. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-metadata-update.d.ts +24 -0
  266. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-metadata-update.d.ts.map +1 -0
  267. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-metadata-update.js +27 -0
  268. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-metadata-update.js.map +1 -0
  269. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-commands.d.ts +1 -1
  270. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-commands.d.ts.map +1 -1
  271. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-commands.js +26 -10
  272. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-secret-commands.js.map +1 -1
  273. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-update-secret.d.ts +6 -6
  274. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-update-secret.d.ts.map +1 -1
  275. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-update-secret.js +21 -19
  276. package/dist/service/secretsmanager/command/secret/sim-secrets-manager-update-secret.js.map +1 -1
  277. package/dist/service/secretsmanager/command/value/sim-secrets-manager-value-commands.d.ts +10 -2
  278. package/dist/service/secretsmanager/command/value/sim-secrets-manager-value-commands.d.ts.map +1 -1
  279. package/dist/service/secretsmanager/command/value/sim-secrets-manager-value-commands.js +19 -5
  280. package/dist/service/secretsmanager/command/value/sim-secrets-manager-value-commands.js.map +1 -1
  281. package/dist/service/secretsmanager/error/sim-secrets-manager.error.d.ts +22 -0
  282. package/dist/service/secretsmanager/error/sim-secrets-manager.error.d.ts.map +1 -1
  283. package/dist/service/secretsmanager/error/sim-secrets-manager.error.js +26 -0
  284. package/dist/service/secretsmanager/error/sim-secrets-manager.error.js.map +1 -1
  285. package/dist/service/secretsmanager/index.d.ts +2 -1
  286. package/dist/service/secretsmanager/index.d.ts.map +1 -1
  287. package/dist/service/secretsmanager/index.js +2 -1
  288. package/dist/service/secretsmanager/index.js.map +1 -1
  289. package/dist/service/secretsmanager/secret/sim-secrets-manager-encrypted-value.d.ts +35 -0
  290. package/dist/service/secretsmanager/secret/sim-secrets-manager-encrypted-value.d.ts.map +1 -0
  291. package/dist/service/secretsmanager/secret/sim-secrets-manager-encrypted-value.js +34 -0
  292. package/dist/service/secretsmanager/secret/sim-secrets-manager-encrypted-value.js.map +1 -0
  293. package/dist/service/secretsmanager/secret/sim-secrets-manager-kms-crypto.d.ts +63 -0
  294. package/dist/service/secretsmanager/secret/sim-secrets-manager-kms-crypto.d.ts.map +1 -0
  295. package/dist/service/secretsmanager/secret/sim-secrets-manager-kms-crypto.js +24 -0
  296. package/dist/service/secretsmanager/secret/sim-secrets-manager-kms-crypto.js.map +1 -0
  297. package/dist/service/secretsmanager/secret/sim-secrets-manager-kms-key-problems.d.ts +17 -0
  298. package/dist/service/secretsmanager/secret/sim-secrets-manager-kms-key-problems.d.ts.map +1 -0
  299. package/dist/service/secretsmanager/secret/sim-secrets-manager-kms-key-problems.js +30 -0
  300. package/dist/service/secretsmanager/secret/sim-secrets-manager-kms-key-problems.js.map +1 -0
  301. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-store.d.ts +21 -0
  302. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-store.d.ts.map +1 -1
  303. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-store.js +29 -0
  304. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-store.js.map +1 -1
  305. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-value.d.ts +16 -4
  306. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-value.d.ts.map +1 -1
  307. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-value.js +40 -11
  308. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-value.js.map +1 -1
  309. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-version.d.ts +7 -3
  310. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-version.d.ts.map +1 -1
  311. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-version.js +4 -0
  312. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret-version.js.map +1 -1
  313. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret.d.ts +5 -5
  314. package/dist/service/secretsmanager/secret/sim-secrets-manager-secret.js +5 -5
  315. package/dist/service/secretsmanager/secret/sim-secrets-manager-value-cipher.d.ts +20 -0
  316. package/dist/service/secretsmanager/secret/sim-secrets-manager-value-cipher.d.ts.map +1 -0
  317. package/dist/service/secretsmanager/secret/sim-secrets-manager-value-cipher.js +53 -0
  318. package/dist/service/secretsmanager/secret/sim-secrets-manager-value-cipher.js.map +1 -0
  319. package/dist/service/secretsmanager/secret/sim-secrets-manager-value-encryption.d.ts +45 -0
  320. package/dist/service/secretsmanager/secret/sim-secrets-manager-value-encryption.d.ts.map +1 -0
  321. package/dist/service/secretsmanager/secret/sim-secrets-manager-value-encryption.js +56 -0
  322. package/dist/service/secretsmanager/secret/sim-secrets-manager-value-encryption.js.map +1 -0
  323. package/dist/service/secretsmanager/secret/sim-secrets-manager-version-write.d.ts +37 -0
  324. package/dist/service/secretsmanager/secret/sim-secrets-manager-version-write.d.ts.map +1 -0
  325. package/dist/service/secretsmanager/secret/sim-secrets-manager-version-write.js +2 -0
  326. package/dist/service/secretsmanager/secret/sim-secrets-manager-version-write.js.map +1 -0
  327. package/dist/service/secretsmanager/secret/sim-secrets-manager-version-writer.d.ts +13 -14
  328. package/dist/service/secretsmanager/secret/sim-secrets-manager-version-writer.d.ts.map +1 -1
  329. package/dist/service/secretsmanager/secret/sim-secrets-manager-version-writer.js +14 -7
  330. package/dist/service/secretsmanager/secret/sim-secrets-manager-version-writer.js.map +1 -1
  331. package/dist/service/secretsmanager/sim-secrets-manager.d.ts +7 -0
  332. package/dist/service/secretsmanager/sim-secrets-manager.d.ts.map +1 -1
  333. package/dist/service/secretsmanager/sim-secrets-manager.js +10 -4
  334. package/dist/service/secretsmanager/sim-secrets-manager.js.map +1 -1
  335. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-creator.d.ts +30 -0
  336. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-creator.d.ts.map +1 -0
  337. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-creator.js +48 -0
  338. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-creator.js.map +1 -0
  339. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-properties.d.ts +77 -0
  340. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-properties.d.ts.map +1 -0
  341. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-properties.js +125 -0
  342. package/dist/service/ssm/cfn/parameter/sim-cfn-ssm-parameter-properties.js.map +1 -0
  343. package/dist/service/ssm/cfn/sim-cfn-ssm-resource-factory.d.ts +23 -0
  344. package/dist/service/ssm/cfn/sim-cfn-ssm-resource-factory.d.ts.map +1 -0
  345. package/dist/service/ssm/cfn/sim-cfn-ssm-resource-factory.js +30 -0
  346. package/dist/service/ssm/cfn/sim-cfn-ssm-resource-factory.js.map +1 -0
  347. package/dist/service/ssm/command/authorize/sim-ssm-authorizer.d.ts +44 -0
  348. package/dist/service/ssm/command/authorize/sim-ssm-authorizer.d.ts.map +1 -0
  349. package/dist/service/ssm/command/authorize/sim-ssm-authorizer.js +65 -0
  350. package/dist/service/ssm/command/authorize/sim-ssm-authorizer.js.map +1 -0
  351. package/dist/service/ssm/command/parameter/parameter.command.d.ts +99 -0
  352. package/dist/service/ssm/command/parameter/parameter.command.d.ts.map +1 -0
  353. package/dist/service/ssm/command/parameter/parameter.command.js +2 -0
  354. package/dist/service/ssm/command/parameter/parameter.command.js.map +1 -0
  355. package/dist/service/ssm/command/parameter/query.command.d.ts +85 -0
  356. package/dist/service/ssm/command/parameter/query.command.d.ts.map +1 -0
  357. package/dist/service/ssm/command/parameter/query.command.js +2 -0
  358. package/dist/service/ssm/command/parameter/query.command.js.map +1 -0
  359. package/dist/service/ssm/command/parameter/sim-ssm-delete-parameter-commands.d.ts +38 -0
  360. package/dist/service/ssm/command/parameter/sim-ssm-delete-parameter-commands.d.ts.map +1 -0
  361. package/dist/service/ssm/command/parameter/sim-ssm-delete-parameter-commands.js +62 -0
  362. package/dist/service/ssm/command/parameter/sim-ssm-delete-parameter-commands.js.map +1 -0
  363. package/dist/service/ssm/command/parameter/sim-ssm-describe-parameters.d.ts +43 -0
  364. package/dist/service/ssm/command/parameter/sim-ssm-describe-parameters.d.ts.map +1 -0
  365. package/dist/service/ssm/command/parameter/sim-ssm-describe-parameters.js +63 -0
  366. package/dist/service/ssm/command/parameter/sim-ssm-describe-parameters.js.map +1 -0
  367. package/dist/service/ssm/command/parameter/sim-ssm-get-parameter-commands.d.ts +39 -0
  368. package/dist/service/ssm/command/parameter/sim-ssm-get-parameter-commands.d.ts.map +1 -0
  369. package/dist/service/ssm/command/parameter/sim-ssm-get-parameter-commands.js +70 -0
  370. package/dist/service/ssm/command/parameter/sim-ssm-get-parameter-commands.js.map +1 -0
  371. package/dist/service/ssm/command/parameter/sim-ssm-get-parameters-by-path.d.ts +41 -0
  372. package/dist/service/ssm/command/parameter/sim-ssm-get-parameters-by-path.d.ts.map +1 -0
  373. package/dist/service/ssm/command/parameter/sim-ssm-get-parameters-by-path.js +60 -0
  374. package/dist/service/ssm/command/parameter/sim-ssm-get-parameters-by-path.js.map +1 -0
  375. package/dist/service/ssm/command/parameter/sim-ssm-parameter-names.d.ts +5 -0
  376. package/dist/service/ssm/command/parameter/sim-ssm-parameter-names.d.ts.map +1 -0
  377. package/dist/service/ssm/command/parameter/sim-ssm-parameter-names.js +22 -0
  378. package/dist/service/ssm/command/parameter/sim-ssm-parameter-names.js.map +1 -0
  379. package/dist/service/ssm/command/parameter/sim-ssm-parameter-page.d.ts +35 -0
  380. package/dist/service/ssm/command/parameter/sim-ssm-parameter-page.d.ts.map +1 -0
  381. package/dist/service/ssm/command/parameter/sim-ssm-parameter-page.js +51 -0
  382. package/dist/service/ssm/command/parameter/sim-ssm-parameter-page.js.map +1 -0
  383. package/dist/service/ssm/command/parameter/sim-ssm-parameter-read.d.ts +23 -0
  384. package/dist/service/ssm/command/parameter/sim-ssm-parameter-read.d.ts.map +1 -0
  385. package/dist/service/ssm/command/parameter/sim-ssm-parameter-read.js +2 -0
  386. package/dist/service/ssm/command/parameter/sim-ssm-parameter-read.js.map +1 -0
  387. package/dist/service/ssm/command/parameter/sim-ssm-parameter-reader.d.ts +41 -0
  388. package/dist/service/ssm/command/parameter/sim-ssm-parameter-reader.d.ts.map +1 -0
  389. package/dist/service/ssm/command/parameter/sim-ssm-parameter-reader.js +60 -0
  390. package/dist/service/ssm/command/parameter/sim-ssm-parameter-reader.js.map +1 -0
  391. package/dist/service/ssm/command/parameter/sim-ssm-parameter-view.d.ts +37 -0
  392. package/dist/service/ssm/command/parameter/sim-ssm-parameter-view.d.ts.map +1 -0
  393. package/dist/service/ssm/command/parameter/sim-ssm-parameter-view.js +60 -0
  394. package/dist/service/ssm/command/parameter/sim-ssm-parameter-view.js.map +1 -0
  395. package/dist/service/ssm/command/parameter/sim-ssm-put-parameter.d.ts +34 -0
  396. package/dist/service/ssm/command/parameter/sim-ssm-put-parameter.d.ts.map +1 -0
  397. package/dist/service/ssm/command/parameter/sim-ssm-put-parameter.js +51 -0
  398. package/dist/service/ssm/command/parameter/sim-ssm-put-parameter.js.map +1 -0
  399. package/dist/service/ssm/command/parameter/sim-ssm-unsimulated-put-options.d.ts +19 -0
  400. package/dist/service/ssm/command/parameter/sim-ssm-unsimulated-put-options.d.ts.map +1 -0
  401. package/dist/service/ssm/command/parameter/sim-ssm-unsimulated-put-options.js +47 -0
  402. package/dist/service/ssm/command/parameter/sim-ssm-unsimulated-put-options.js.map +1 -0
  403. package/dist/service/ssm/command/sim-ssm-command.types.d.ts +6 -0
  404. package/dist/service/ssm/command/sim-ssm-command.types.d.ts.map +1 -0
  405. package/dist/service/ssm/command/sim-ssm-command.types.js +2 -0
  406. package/dist/service/ssm/command/sim-ssm-command.types.js.map +1 -0
  407. package/dist/service/ssm/error/sim-ssm.error.d.ts +99 -0
  408. package/dist/service/ssm/error/sim-ssm.error.d.ts.map +1 -0
  409. package/dist/service/ssm/error/sim-ssm.error.js +114 -0
  410. package/dist/service/ssm/error/sim-ssm.error.js.map +1 -0
  411. package/dist/service/ssm/index.d.ts +12 -0
  412. package/dist/service/ssm/index.d.ts.map +1 -0
  413. package/dist/service/ssm/index.js +12 -0
  414. package/dist/service/ssm/index.js.map +1 -0
  415. package/dist/service/ssm/parameter/sim-ssm-kms-crypto.d.ts +55 -0
  416. package/dist/service/ssm/parameter/sim-ssm-kms-crypto.d.ts.map +1 -0
  417. package/dist/service/ssm/parameter/sim-ssm-kms-crypto.js +20 -0
  418. package/dist/service/ssm/parameter/sim-ssm-kms-crypto.js.map +1 -0
  419. package/dist/service/ssm/parameter/sim-ssm-kms-key-problems.d.ts +12 -0
  420. package/dist/service/ssm/parameter/sim-ssm-kms-key-problems.d.ts.map +1 -0
  421. package/dist/service/ssm/parameter/sim-ssm-kms-key-problems.js +24 -0
  422. package/dist/service/ssm/parameter/sim-ssm-kms-key-problems.js.map +1 -0
  423. package/dist/service/ssm/parameter/sim-ssm-parameter-arn.d.ts +33 -0
  424. package/dist/service/ssm/parameter/sim-ssm-parameter-arn.d.ts.map +1 -0
  425. package/dist/service/ssm/parameter/sim-ssm-parameter-arn.js +34 -0
  426. package/dist/service/ssm/parameter/sim-ssm-parameter-arn.js.map +1 -0
  427. package/dist/service/ssm/parameter/sim-ssm-parameter-encryption.d.ts +42 -0
  428. package/dist/service/ssm/parameter/sim-ssm-parameter-encryption.d.ts.map +1 -0
  429. package/dist/service/ssm/parameter/sim-ssm-parameter-encryption.js +52 -0
  430. package/dist/service/ssm/parameter/sim-ssm-parameter-encryption.js.map +1 -0
  431. package/dist/service/ssm/parameter/sim-ssm-parameter-kms.d.ts +43 -0
  432. package/dist/service/ssm/parameter/sim-ssm-parameter-kms.d.ts.map +1 -0
  433. package/dist/service/ssm/parameter/sim-ssm-parameter-kms.js +68 -0
  434. package/dist/service/ssm/parameter/sim-ssm-parameter-kms.js.map +1 -0
  435. package/dist/service/ssm/parameter/sim-ssm-parameter-name.d.ts +48 -0
  436. package/dist/service/ssm/parameter/sim-ssm-parameter-name.d.ts.map +1 -0
  437. package/dist/service/ssm/parameter/sim-ssm-parameter-name.js +117 -0
  438. package/dist/service/ssm/parameter/sim-ssm-parameter-name.js.map +1 -0
  439. package/dist/service/ssm/parameter/sim-ssm-parameter-overwrite.d.ts +34 -0
  440. package/dist/service/ssm/parameter/sim-ssm-parameter-overwrite.d.ts.map +1 -0
  441. package/dist/service/ssm/parameter/sim-ssm-parameter-overwrite.js +48 -0
  442. package/dist/service/ssm/parameter/sim-ssm-parameter-overwrite.js.map +1 -0
  443. package/dist/service/ssm/parameter/sim-ssm-parameter-path.d.ts +36 -0
  444. package/dist/service/ssm/parameter/sim-ssm-parameter-path.d.ts.map +1 -0
  445. package/dist/service/ssm/parameter/sim-ssm-parameter-path.js +56 -0
  446. package/dist/service/ssm/parameter/sim-ssm-parameter-path.js.map +1 -0
  447. package/dist/service/ssm/parameter/sim-ssm-parameter-selector.d.ts +34 -0
  448. package/dist/service/ssm/parameter/sim-ssm-parameter-selector.d.ts.map +1 -0
  449. package/dist/service/ssm/parameter/sim-ssm-parameter-selector.js +63 -0
  450. package/dist/service/ssm/parameter/sim-ssm-parameter-selector.js.map +1 -0
  451. package/dist/service/ssm/parameter/sim-ssm-parameter-store.d.ts +46 -0
  452. package/dist/service/ssm/parameter/sim-ssm-parameter-store.d.ts.map +1 -0
  453. package/dist/service/ssm/parameter/sim-ssm-parameter-store.js +66 -0
  454. package/dist/service/ssm/parameter/sim-ssm-parameter-store.js.map +1 -0
  455. package/dist/service/ssm/parameter/sim-ssm-parameter-type.d.ts +29 -0
  456. package/dist/service/ssm/parameter/sim-ssm-parameter-type.d.ts.map +1 -0
  457. package/dist/service/ssm/parameter/sim-ssm-parameter-type.js +46 -0
  458. package/dist/service/ssm/parameter/sim-ssm-parameter-type.js.map +1 -0
  459. package/dist/service/ssm/parameter/sim-ssm-parameter-value.d.ts +30 -0
  460. package/dist/service/ssm/parameter/sim-ssm-parameter-value.d.ts.map +1 -0
  461. package/dist/service/ssm/parameter/sim-ssm-parameter-value.js +54 -0
  462. package/dist/service/ssm/parameter/sim-ssm-parameter-value.js.map +1 -0
  463. package/dist/service/ssm/parameter/sim-ssm-parameter-version.d.ts +46 -0
  464. package/dist/service/ssm/parameter/sim-ssm-parameter-version.d.ts.map +1 -0
  465. package/dist/service/ssm/parameter/sim-ssm-parameter-version.js +34 -0
  466. package/dist/service/ssm/parameter/sim-ssm-parameter-version.js.map +1 -0
  467. package/dist/service/ssm/parameter/sim-ssm-parameter-writer.d.ts +72 -0
  468. package/dist/service/ssm/parameter/sim-ssm-parameter-writer.d.ts.map +1 -0
  469. package/dist/service/ssm/parameter/sim-ssm-parameter-writer.js +65 -0
  470. package/dist/service/ssm/parameter/sim-ssm-parameter-writer.js.map +1 -0
  471. package/dist/service/ssm/parameter/sim-ssm-parameter.d.ts +41 -0
  472. package/dist/service/ssm/parameter/sim-ssm-parameter.d.ts.map +1 -0
  473. package/dist/service/ssm/parameter/sim-ssm-parameter.js +57 -0
  474. package/dist/service/ssm/parameter/sim-ssm-parameter.js.map +1 -0
  475. package/dist/service/ssm/sdk/sim-ssm-sdk-command-router.d.ts +18 -0
  476. package/dist/service/ssm/sdk/sim-ssm-sdk-command-router.d.ts.map +1 -0
  477. package/dist/service/ssm/sdk/sim-ssm-sdk-command-router.js +52 -0
  478. package/dist/service/ssm/sdk/sim-ssm-sdk-command-router.js.map +1 -0
  479. package/dist/service/ssm/sim-ssm.d.ts +90 -0
  480. package/dist/service/ssm/sim-ssm.d.ts.map +1 -0
  481. package/dist/service/ssm/sim-ssm.js +144 -0
  482. package/dist/service/ssm/sim-ssm.js.map +1 -0
  483. package/package.json +11 -1
@@ -0,0 +1,55 @@
1
+ import type { SimAwsCaller } from "../../aws/caller/sim-aws-caller.js";
2
+ /**
3
+ * The alias of the AWS managed key Parameter Store encrypts with when a
4
+ * request names no key of its own.
5
+ *
6
+ * Simulated KMS creates the key behind a reserved `alias/aws/` name the first
7
+ * time something asks for it, which is how such a key comes into existence on
8
+ * real AWS too: nobody creates it, the service that needs it does.
9
+ */
10
+ export declare const ssmDefaultKeyAlias = "alias/aws/ssm";
11
+ /**
12
+ * The service Parameter Store's KMS calls are made through, as
13
+ * `kms:ViaService` names it.
14
+ *
15
+ * Supplying it is what lets a caller read a `SecureString` under the
16
+ * `aws/ssm` managed key with no KMS permission of its own: that key's policy
17
+ * admits the Account's principals only when the request reached KMS through
18
+ * Systems Manager.
19
+ */
20
+ export declare const ssmKmsViaService = "ssm";
21
+ /**
22
+ * The narrow slice of simulated KMS that SecureString parameters need.
23
+ *
24
+ * Standard tier Parameter Store encrypts under the key directly rather than
25
+ * through a data key, so Encrypt and Decrypt are the whole of it.
26
+ * SimKms structurally implements this interface.
27
+ */
28
+ export interface SimSsmKmsCrypto {
29
+ encrypt(command: {
30
+ input: {
31
+ KeyId?: string | undefined;
32
+ Plaintext?: Uint8Array | undefined;
33
+ EncryptionContext?: Readonly<Record<string, string>> | undefined;
34
+ };
35
+ }, options?: {
36
+ caller?: SimAwsCaller | undefined;
37
+ viaService?: string | undefined;
38
+ }): Promise<{
39
+ CiphertextBlob?: Uint8Array | undefined;
40
+ KeyId?: string | undefined;
41
+ }>;
42
+ decrypt(command: {
43
+ input: {
44
+ CiphertextBlob?: Uint8Array | undefined;
45
+ EncryptionContext?: Readonly<Record<string, string>> | undefined;
46
+ };
47
+ }, options?: {
48
+ caller?: SimAwsCaller | undefined;
49
+ viaService?: string | undefined;
50
+ }): Promise<{
51
+ Plaintext?: Uint8Array | undefined;
52
+ KeyId?: string | undefined;
53
+ }>;
54
+ }
55
+ //# sourceMappingURL=sim-ssm-kms-crypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-ssm-kms-crypto.d.ts","sourceRoot":"","sources":["../../../../src/service/ssm/parameter/sim-ssm-kms-crypto.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAEvE;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAElD;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AAEtC;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,CACL,OAAO,EAAE;QACP,KAAK,EAAE;YACL,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC3B,SAAS,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;YACnC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;SAClE,CAAC;KACH,EACD,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;QAClC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KACjC,GACA,OAAO,CAAC;QACT,cAAc,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;QACxC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAC5B,CAAC,CAAC;IAEH,OAAO,CACL,OAAO,EAAE;QACP,KAAK,EAAE;YACL,cAAc,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;YACxC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;SAClE,CAAC;KACH,EACD,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;QAClC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KACjC,GACA,OAAO,CAAC;QACT,SAAS,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;QACnC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAC5B,CAAC,CAAC;CACJ"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * The alias of the AWS managed key Parameter Store encrypts with when a
3
+ * request names no key of its own.
4
+ *
5
+ * Simulated KMS creates the key behind a reserved `alias/aws/` name the first
6
+ * time something asks for it, which is how such a key comes into existence on
7
+ * real AWS too: nobody creates it, the service that needs it does.
8
+ */
9
+ export const ssmDefaultKeyAlias = "alias/aws/ssm";
10
+ /**
11
+ * The service Parameter Store's KMS calls are made through, as
12
+ * `kms:ViaService` names it.
13
+ *
14
+ * Supplying it is what lets a caller read a `SecureString` under the
15
+ * `aws/ssm` managed key with no KMS permission of its own: that key's policy
16
+ * admits the Account's principals only when the request reached KMS through
17
+ * Systems Manager.
18
+ */
19
+ export const ssmKmsViaService = "ssm";
20
+ //# sourceMappingURL=sim-ssm-kms-crypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-ssm-kms-crypto.js","sourceRoot":"","sources":["../../../../src/service/ssm/parameter/sim-ssm-kms-crypto.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAElD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Run a KMS call, reporting a refusal about the key the way Parameter Store
3
+ * reports it.
4
+ *
5
+ * Every key problem KMS raises becomes InvalidKeyId carrying the KMS message,
6
+ * which is what real Parameter Store does for a key that is missing, disabled
7
+ * or pending deletion. An access denial is not a KMS error and passes through
8
+ * untouched, so a missing `kms:Decrypt` still reads as a denial rather than a
9
+ * bad key.
10
+ */
11
+ export declare function reportingKeyProblems<TResult>(call: () => Promise<TResult>): Promise<TResult>;
12
+ //# sourceMappingURL=sim-ssm-kms-key-problems.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-ssm-kms-key-problems.d.ts","sourceRoot":"","sources":["../../../../src/service/ssm/parameter/sim-ssm-kms-key-problems.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAChD,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAC3B,OAAO,CAAC,OAAO,CAAC,CAYlB"}
@@ -0,0 +1,24 @@
1
+ import { SimKmsError } from "../../kms/error/sim-kms.error.js";
2
+ import { SimSsmInvalidKeyId } from "../error/sim-ssm.error.js";
3
+ /**
4
+ * Run a KMS call, reporting a refusal about the key the way Parameter Store
5
+ * reports it.
6
+ *
7
+ * Every key problem KMS raises becomes InvalidKeyId carrying the KMS message,
8
+ * which is what real Parameter Store does for a key that is missing, disabled
9
+ * or pending deletion. An access denial is not a KMS error and passes through
10
+ * untouched, so a missing `kms:Decrypt` still reads as a denial rather than a
11
+ * bad key.
12
+ */
13
+ export async function reportingKeyProblems(call) {
14
+ try {
15
+ return await call();
16
+ }
17
+ catch (error) {
18
+ if (error instanceof SimKmsError) {
19
+ throw new SimSsmInvalidKeyId(`The KMS key cannot be used for this parameter: ${error.message}`);
20
+ }
21
+ throw error;
22
+ }
23
+ }
24
+ //# sourceMappingURL=sim-ssm-kms-key-problems.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-ssm-kms-key-problems.js","sourceRoot":"","sources":["../../../../src/service/ssm/parameter/sim-ssm-kms-key-problems.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAA4B;IAE5B,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,MAAM,IAAI,kBAAkB,CAC1B,kDAAkD,KAAK,CAAC,OAAO,EAAE,CAClE,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { SimAwsAccountRegionScope } from "../../aws/sim-aws-account-region-scope.js";
2
+ /**
3
+ * The part of a parameter ARN that comes before the parameter's own name.
4
+ *
5
+ * It ends in a slash, and the name follows it with its own leading slash
6
+ * dropped, so `/myapp/prod/db-host` becomes `...:parameter/myapp/prod/db-host`
7
+ * rather than `...:parameter//myapp/prod/db-host`.
8
+ */
9
+ export declare function ssmParameterArnPrefix(accountRegionScope: SimAwsAccountRegionScope): string;
10
+ interface SimSsmParameterArnProperties {
11
+ readonly resource: string;
12
+ readonly accountRegionScope: SimAwsAccountRegionScope;
13
+ }
14
+ /**
15
+ * The ARN of one simulated parameter.
16
+ *
17
+ * The single detail worth getting right here is the leading slash. A
18
+ * hierarchical parameter name starts with one and its ARN does not repeat it,
19
+ * so an IAM policy written as `...:parameter//myapp/prod/db-host` matches
20
+ * nothing. Building the ARN in one place is what makes a policy that works
21
+ * here one that would work on real AWS.
22
+ */
23
+ export declare class SimSsmParameterArn {
24
+ /**
25
+ * The parameter name with its leading slash dropped, which is the part of
26
+ * the ARN after `parameter/`.
27
+ */
28
+ readonly resource: string;
29
+ readonly value: string;
30
+ constructor(properties: SimSsmParameterArnProperties);
31
+ }
32
+ export {};
33
+ //# sourceMappingURL=sim-ssm-parameter-arn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-ssm-parameter-arn.d.ts","sourceRoot":"","sources":["../../../../src/service/ssm/parameter/sim-ssm-parameter-arn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAE1F;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,kBAAkB,EAAE,wBAAwB,GAC3C,MAAM,CAIR;AAED,UAAU,4BAA4B;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;CACvD;AAED;;;;;;;;GAQG;AACH,qBAAa,kBAAkB;IAC7B;;;OAGG;IACH,SAAgB,QAAQ,EAAE,MAAM,CAAC;IAEjC,SAAgB,KAAK,EAAE,MAAM,CAAC;IAE9B,YAAY,UAAU,EAAE,4BAA4B,EAInD;CACF"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * The part of a parameter ARN that comes before the parameter's own name.
3
+ *
4
+ * It ends in a slash, and the name follows it with its own leading slash
5
+ * dropped, so `/myapp/prod/db-host` becomes `...:parameter/myapp/prod/db-host`
6
+ * rather than `...:parameter//myapp/prod/db-host`.
7
+ */
8
+ export function ssmParameterArnPrefix(accountRegionScope) {
9
+ const { regionName, accountId } = accountRegionScope;
10
+ return `arn:aws:ssm:${regionName}:${accountId}:parameter/`;
11
+ }
12
+ /**
13
+ * The ARN of one simulated parameter.
14
+ *
15
+ * The single detail worth getting right here is the leading slash. A
16
+ * hierarchical parameter name starts with one and its ARN does not repeat it,
17
+ * so an IAM policy written as `...:parameter//myapp/prod/db-host` matches
18
+ * nothing. Building the ARN in one place is what makes a policy that works
19
+ * here one that would work on real AWS.
20
+ */
21
+ export class SimSsmParameterArn {
22
+ /**
23
+ * The parameter name with its leading slash dropped, which is the part of
24
+ * the ARN after `parameter/`.
25
+ */
26
+ resource;
27
+ value;
28
+ constructor(properties) {
29
+ this.resource = properties.resource;
30
+ this.value =
31
+ ssmParameterArnPrefix(properties.accountRegionScope) + this.resource;
32
+ }
33
+ }
34
+ //# sourceMappingURL=sim-ssm-parameter-arn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-ssm-parameter-arn.js","sourceRoot":"","sources":["../../../../src/service/ssm/parameter/sim-ssm-parameter-arn.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,kBAA4C;IAE5C,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAAC;IAErD,OAAO,eAAe,UAAU,IAAI,SAAS,aAAa,CAAC;AAC7D,CAAC;AAOD;;;;;;;;GAQG;AACH,MAAM,OAAO,kBAAkB;IAC7B;;;OAGG;IACa,QAAQ,CAAS;IAEjB,KAAK,CAAS;IAE9B,YAAY,UAAwC;QAClD,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;QACpC,IAAI,CAAC,KAAK;YACR,qBAAqB,CAAC,UAAU,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;IACzE,CAAC;CACF"}
@@ -0,0 +1,42 @@
1
+ import type { SimAwsCaller } from "../../aws/caller/sim-aws-caller.js";
2
+ import type { SimSsmParameter } from "./sim-ssm-parameter.js";
3
+ import type { SimSsmKmsCrypto } from "./sim-ssm-kms-crypto.js";
4
+ import type { SimSsmParameterType } from "./sim-ssm-parameter-type.js";
5
+ import { SimSsmParameterValue } from "./sim-ssm-parameter-value.js";
6
+ import type { SimSsmParameterVersion } from "./sim-ssm-parameter-version.js";
7
+ interface SimSsmParameterEncryptionProperties {
8
+ readonly kms: SimSsmKmsCrypto;
9
+ }
10
+ /**
11
+ * What a SecureString value is stored as, and which key protects it.
12
+ */
13
+ export interface SimSsmEncryptedValue {
14
+ readonly value: SimSsmParameterValue;
15
+ readonly keyId: string | undefined;
16
+ }
17
+ /**
18
+ * Decides when a parameter value is encrypted and when it is decrypted.
19
+ *
20
+ * These rules are worth keeping apart from the KMS calls themselves, because
21
+ * they are what a caller actually trips over: a value stored in the clear
22
+ * because the type said so, and a read that gets a ciphertext back because it
23
+ * did not ask for decryption.
24
+ */
25
+ export declare class SimSsmParameterEncryption {
26
+ private readonly kms;
27
+ constructor(properties: SimSsmParameterEncryptionProperties);
28
+ /**
29
+ * The stored form of a submitted value, encrypted if the type calls for it.
30
+ */
31
+ stored(type: SimSsmParameterType, parameterArn: string, submitted: SimSsmParameterValue, keyId: string | undefined, caller: SimAwsCaller | undefined): Promise<SimSsmEncryptedValue>;
32
+ /**
33
+ * The value a read reports, decrypted only when it was asked for.
34
+ *
35
+ * `WithDecryption` on a parameter that is not encrypted is ignored rather
36
+ * than refused, as real Parameter Store ignores it.
37
+ */
38
+ reported(parameter: SimSsmParameter, version: SimSsmParameterVersion, withDecryption: boolean | undefined, caller: SimAwsCaller | undefined): Promise<string>;
39
+ private refuseKeyIdWithoutSecureString;
40
+ }
41
+ export {};
42
+ //# sourceMappingURL=sim-ssm-parameter-encryption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-ssm-parameter-encryption.d.ts","sourceRoot":"","sources":["../../../../src/service/ssm/parameter/sim-ssm-parameter-encryption.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE7E,UAAU,mCAAmC;IAC3C,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED;;;;;;;GAOG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAqB;IAEzC,YAAY,UAAU,EAAE,mCAAmC,EAE1D;IAED;;OAEG;IACG,MAAM,CACV,IAAI,EAAE,mBAAmB,EACzB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,oBAAoB,EAC/B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,EAAE,YAAY,GAAG,SAAS,GAC/B,OAAO,CAAC,oBAAoB,CAAC,CAkB/B;IAED;;;;;OAKG;IACG,QAAQ,CACZ,SAAS,EAAE,eAAe,EAC1B,OAAO,EAAE,sBAAsB,EAC/B,cAAc,EAAE,OAAO,GAAG,SAAS,EACnC,MAAM,EAAE,YAAY,GAAG,SAAS,GAC/B,OAAO,CAAC,MAAM,CAAC,CAUjB;IAED,OAAO,CAAC,8BAA8B;CAcvC"}
@@ -0,0 +1,52 @@
1
+ import { SimSsmValidationException } from "../error/sim-ssm.error.js";
2
+ import { SimSsmParameterKms } from "./sim-ssm-parameter-kms.js";
3
+ import { SimSsmParameterValue } from "./sim-ssm-parameter-value.js";
4
+ /**
5
+ * Decides when a parameter value is encrypted and when it is decrypted.
6
+ *
7
+ * These rules are worth keeping apart from the KMS calls themselves, because
8
+ * they are what a caller actually trips over: a value stored in the clear
9
+ * because the type said so, and a read that gets a ciphertext back because it
10
+ * did not ask for decryption.
11
+ */
12
+ export class SimSsmParameterEncryption {
13
+ kms;
14
+ constructor(properties) {
15
+ this.kms = new SimSsmParameterKms(properties);
16
+ }
17
+ /**
18
+ * The stored form of a submitted value, encrypted if the type calls for it.
19
+ */
20
+ async stored(type, parameterArn, submitted, keyId, caller) {
21
+ if (!type.isSecure) {
22
+ this.refuseKeyIdWithoutSecureString(type, keyId);
23
+ return { value: submitted, keyId: undefined };
24
+ }
25
+ const encrypted = await this.kms.encrypt(parameterArn, submitted.value, keyId, caller);
26
+ return {
27
+ value: SimSsmParameterValue.encrypted(encrypted.ciphertext),
28
+ keyId: encrypted.keyId,
29
+ };
30
+ }
31
+ /**
32
+ * The value a read reports, decrypted only when it was asked for.
33
+ *
34
+ * `WithDecryption` on a parameter that is not encrypted is ignored rather
35
+ * than refused, as real Parameter Store ignores it.
36
+ */
37
+ async reported(parameter, version, withDecryption, caller) {
38
+ if (!parameter.type.isSecure || withDecryption !== true) {
39
+ return version.value.value;
40
+ }
41
+ return await this.kms.decrypt(parameter.arn.value, version.value.value, caller);
42
+ }
43
+ refuseKeyIdWithoutSecureString(type, keyId) {
44
+ if (keyId === undefined) {
45
+ return;
46
+ }
47
+ throw new SimSsmValidationException(`KeyId applies to a SecureString parameter, and this one is a ` +
48
+ `${type.value} parameter. A value stored in the clear is not ` +
49
+ `encrypted with anything.`);
50
+ }
51
+ }
52
+ //# sourceMappingURL=sim-ssm-parameter-encryption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-ssm-parameter-encryption.js","sourceRoot":"","sources":["../../../../src/service/ssm/parameter/sim-ssm-parameter-encryption.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAGtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAepE;;;;;;;GAOG;AACH,MAAM,OAAO,yBAAyB;IACnB,GAAG,CAAqB;IAEzC,YAAY,UAA+C;QACzD,IAAI,CAAC,GAAG,GAAG,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,IAAyB,EACzB,YAAoB,EACpB,SAA+B,EAC/B,KAAyB,EACzB,MAAgC;QAEhC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,8BAA8B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAEjD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAChD,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CACtC,YAAY,EACZ,SAAS,CAAC,KAAK,EACf,KAAK,EACL,MAAM,CACP,CAAC;QAEF,OAAO;YACL,KAAK,EAAE,oBAAoB,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC;YAC3D,KAAK,EAAE,SAAS,CAAC,KAAK;SACvB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CACZ,SAA0B,EAC1B,OAA+B,EAC/B,cAAmC,EACnC,MAAgC;QAEhC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YACxD,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;QAC7B,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAC3B,SAAS,CAAC,GAAG,CAAC,KAAK,EACnB,OAAO,CAAC,KAAK,CAAC,KAAK,EACnB,MAAM,CACP,CAAC;IACJ,CAAC;IAEO,8BAA8B,CACpC,IAAyB,EACzB,KAAyB;QAEzB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,MAAM,IAAI,yBAAyB,CACjC,+DAA+D;YAC7D,GAAG,IAAI,CAAC,KAAK,iDAAiD;YAC9D,0BAA0B,CAC7B,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,43 @@
1
+ import type { SimAwsCaller } from "../../aws/caller/sim-aws-caller.js";
2
+ import { type SimSsmKmsCrypto } from "./sim-ssm-kms-crypto.js";
3
+ /**
4
+ * What KMS produced for one parameter value.
5
+ */
6
+ export interface SimSsmParameterCiphertext {
7
+ readonly ciphertext: string;
8
+ readonly keyId: string | undefined;
9
+ }
10
+ interface SimSsmParameterKmsProperties {
11
+ readonly kms: SimSsmKmsCrypto;
12
+ }
13
+ /**
14
+ * The KMS calls a SecureString parameter makes.
15
+ *
16
+ * The calls are made as the caller rather than as the service, which is the
17
+ * point: under a customer managed key a standard tier write needs
18
+ * `kms:Encrypt` on the key and a decrypting read needs `kms:Decrypt`, each on
19
+ * top of the SSM permission for the parameter itself.
20
+ *
21
+ * They are also made through the service, which is why the `aws/ssm` managed
22
+ * key needs no KMS permission at all: its policy admits the Account's
23
+ * principals when `kms:ViaService` names Systems Manager, and Parameter Store
24
+ * is what supplies that.
25
+ *
26
+ * Standard tier Parameter Store encrypts under the key directly rather than
27
+ * through a data key, so this is one Encrypt and one Decrypt and nothing more.
28
+ */
29
+ export declare class SimSsmParameterKms {
30
+ private readonly kms;
31
+ constructor(properties: SimSsmParameterKmsProperties);
32
+ /**
33
+ * Encrypt a parameter value, bound to the ARN of the parameter holding it.
34
+ */
35
+ encrypt(parameterArn: string, plaintext: string, keyId: string | undefined, caller: SimAwsCaller | undefined): Promise<SimSsmParameterCiphertext>;
36
+ /**
37
+ * Decrypt a parameter value, which needs the same binding it was made with.
38
+ */
39
+ decrypt(parameterArn: string, ciphertext: string, caller: SimAwsCaller | undefined): Promise<string>;
40
+ private contextFor;
41
+ }
42
+ export {};
43
+ //# sourceMappingURL=sim-ssm-parameter-kms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-ssm-parameter-kms.d.ts","sourceRoot":"","sources":["../../../../src/service/ssm/parameter/sim-ssm-parameter-kms.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,yBAAyB,CAAC;AAYjC;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED,UAAU,4BAA4B;IACpC,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IAEtC,YAAY,UAAU,EAAE,4BAA4B,EAEnD;IAED;;OAEG;IACG,OAAO,CACX,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,EAAE,YAAY,GAAG,SAAS,GAC/B,OAAO,CAAC,yBAAyB,CAAC,CAwBpC;IAED;;OAEG;IACG,OAAO,CACX,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,YAAY,GAAG,SAAS,GAC/B,OAAO,CAAC,MAAM,CAAC,CAoBjB;IAED,OAAO,CAAC,UAAU;CAGnB"}
@@ -0,0 +1,68 @@
1
+ import { assertDefined } from "../../../util/type-guard/defined.js";
2
+ import { reportingKeyProblems } from "./sim-ssm-kms-key-problems.js";
3
+ import { ssmDefaultKeyAlias, ssmKmsViaService, } from "./sim-ssm-kms-crypto.js";
4
+ /**
5
+ * The encryption context key Parameter Store binds every SecureString value
6
+ * to, holding the ARN of the parameter being encrypted.
7
+ *
8
+ * Binding it means a ciphertext lifted out of one parameter cannot be
9
+ * decrypted as another, and it is what a `kms:EncryptionContext:PARAMETER_ARN`
10
+ * policy condition matches on real AWS.
11
+ */
12
+ const parameterArnContextKey = "PARAMETER_ARN";
13
+ /**
14
+ * The KMS calls a SecureString parameter makes.
15
+ *
16
+ * The calls are made as the caller rather than as the service, which is the
17
+ * point: under a customer managed key a standard tier write needs
18
+ * `kms:Encrypt` on the key and a decrypting read needs `kms:Decrypt`, each on
19
+ * top of the SSM permission for the parameter itself.
20
+ *
21
+ * They are also made through the service, which is why the `aws/ssm` managed
22
+ * key needs no KMS permission at all: its policy admits the Account's
23
+ * principals when `kms:ViaService` names Systems Manager, and Parameter Store
24
+ * is what supplies that.
25
+ *
26
+ * Standard tier Parameter Store encrypts under the key directly rather than
27
+ * through a data key, so this is one Encrypt and one Decrypt and nothing more.
28
+ */
29
+ export class SimSsmParameterKms {
30
+ kms;
31
+ constructor(properties) {
32
+ this.kms = properties.kms;
33
+ }
34
+ /**
35
+ * Encrypt a parameter value, bound to the ARN of the parameter holding it.
36
+ */
37
+ async encrypt(parameterArn, plaintext, keyId, caller) {
38
+ const encrypted = await reportingKeyProblems(async () => await this.kms.encrypt({
39
+ input: {
40
+ KeyId: keyId ?? ssmDefaultKeyAlias,
41
+ Plaintext: Buffer.from(plaintext, "utf8"),
42
+ EncryptionContext: this.contextFor(parameterArn),
43
+ },
44
+ }, { caller, viaService: ssmKmsViaService }));
45
+ assertDefined(encrypted.CiphertextBlob, `Simulated KMS encrypted ${parameterArn} to nothing`);
46
+ return {
47
+ ciphertext: Buffer.from(encrypted.CiphertextBlob).toString("base64"),
48
+ keyId: encrypted.KeyId,
49
+ };
50
+ }
51
+ /**
52
+ * Decrypt a parameter value, which needs the same binding it was made with.
53
+ */
54
+ async decrypt(parameterArn, ciphertext, caller) {
55
+ const decrypted = await reportingKeyProblems(async () => await this.kms.decrypt({
56
+ input: {
57
+ CiphertextBlob: Buffer.from(ciphertext, "base64"),
58
+ EncryptionContext: this.contextFor(parameterArn),
59
+ },
60
+ }, { caller, viaService: ssmKmsViaService }));
61
+ assertDefined(decrypted.Plaintext, `Simulated KMS decrypted ${parameterArn} to nothing`);
62
+ return Buffer.from(decrypted.Plaintext).toString("utf8");
63
+ }
64
+ contextFor(parameterArn) {
65
+ return { [parameterArnContextKey]: parameterArn };
66
+ }
67
+ }
68
+ //# sourceMappingURL=sim-ssm-parameter-kms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-ssm-parameter-kms.js","sourceRoot":"","sources":["../../../../src/service/ssm/parameter/sim-ssm-parameter-kms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EACL,kBAAkB,EAClB,gBAAgB,GAEjB,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;GAOG;AACH,MAAM,sBAAsB,GAAG,eAAe,CAAC;AAc/C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,kBAAkB;IACZ,GAAG,CAAkB;IAEtC,YAAY,UAAwC;QAClD,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CACX,YAAoB,EACpB,SAAiB,EACjB,KAAyB,EACzB,MAAgC;QAEhC,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAC1C,KAAK,IAAI,EAAE,CACT,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CACpB;YACE,KAAK,EAAE;gBACL,KAAK,EAAE,KAAK,IAAI,kBAAkB;gBAClC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;gBACzC,iBAAiB,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;aACjD;SACF,EACD,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,CACzC,CACJ,CAAC;QAEF,aAAa,CACX,SAAS,CAAC,cAAc,EACxB,2BAA2B,YAAY,aAAa,CACrD,CAAC;QAEF,OAAO;YACL,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACpE,KAAK,EAAE,SAAS,CAAC,KAAK;SACvB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CACX,YAAoB,EACpB,UAAkB,EAClB,MAAgC;QAEhC,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAC1C,KAAK,IAAI,EAAE,CACT,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CACpB;YACE,KAAK,EAAE;gBACL,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC;gBACjD,iBAAiB,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;aACjD;SACF,EACD,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,CACzC,CACJ,CAAC;QAEF,aAAa,CACX,SAAS,CAAC,SAAS,EACnB,2BAA2B,YAAY,aAAa,CACrD,CAAC;QAEF,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;IAEO,UAAU,CAAC,YAAoB;QACrC,OAAO,EAAE,CAAC,sBAAsB,CAAC,EAAE,YAAY,EAAE,CAAC;IACpD,CAAC;CACF"}
@@ -0,0 +1,48 @@
1
+ import type { SimAwsAccountRegionScope } from "../../aws/sim-aws-account-region-scope.js";
2
+ interface SimSsmParameterNameProperties {
3
+ readonly name: string | undefined;
4
+ readonly accountRegionScope: SimAwsAccountRegionScope;
5
+ }
6
+ /**
7
+ * The name of one simulated parameter, validated as real Parameter Store
8
+ * validates it.
9
+ *
10
+ * The rules are worth applying in one place because they are a common
11
+ * deploy-time failure rather than an obscure edge: a hierarchy missing its
12
+ * leading slash, a name under the reserved `/aws` prefix, or a hierarchy
13
+ * sixteen levels deep all fail at PutParameter on real AWS.
14
+ */
15
+ export declare class SimSsmParameterName {
16
+ /**
17
+ * The name as Parameter Store stores and reports it, leading slash and all.
18
+ */
19
+ readonly value: string;
20
+ /**
21
+ * The name with any leading slash dropped, which is how it appears in the
22
+ * parameter's ARN and how this simulation keys it.
23
+ */
24
+ readonly resource: string;
25
+ constructor(properties: SimSsmParameterNameProperties);
26
+ /**
27
+ * Normalize a name to the resource part of its ARN.
28
+ *
29
+ * A parameter put as `db-host` and one read as `/db-host` are the same
30
+ * parameter, because both name the same ARN. Keying on this form is what
31
+ * makes the two interchangeable.
32
+ */
33
+ static resourceFor(name: string): string;
34
+ private static trimmed;
35
+ private requireAllowedCharacters;
36
+ /**
37
+ * Refuse a hierarchy that Parameter Store would refuse.
38
+ *
39
+ * The leading slash is the one people actually get wrong: a name written as
40
+ * `myapp/prod/db-host` looks fine and is rejected on real AWS, because a
41
+ * name containing a hierarchy has to be fully qualified.
42
+ */
43
+ private requireWellFormedHierarchy;
44
+ private requireUnreservedPrefix;
45
+ private requireWithinArnLength;
46
+ }
47
+ export {};
48
+ //# sourceMappingURL=sim-ssm-parameter-name.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-ssm-parameter-name.d.ts","sourceRoot":"","sources":["../../../../src/service/ssm/parameter/sim-ssm-parameter-name.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAsB1F,UAAU,6BAA6B;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;CACvD;AAED;;;;;;;;GAQG;AACH,qBAAa,mBAAmB;IAC9B;;OAEG;IACH,SAAgB,KAAK,EAAE,MAAM,CAAC;IAE9B;;;OAGG;IACH,SAAgB,QAAQ,EAAE,MAAM,CAAC;IAEjC,YAAY,UAAU,EAAE,6BAA6B,EAUpD;IAED;;;;;;OAMG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvC;IAED,OAAO,CAAC,MAAM,CAAC,OAAO;IAoBtB,OAAO,CAAC,wBAAwB;IAYhC;;;;;;OAMG;IACH,OAAO,CAAC,0BAA0B;IA6BlC,OAAO,CAAC,uBAAuB;IAgB/B,OAAO,CAAC,sBAAsB;CAgB/B"}
@@ -0,0 +1,117 @@
1
+ import { SimSsmHierarchyLevelLimitExceededException, SimSsmParameterPatternMismatchException, SimSsmValidationException, } from "../error/sim-ssm.error.js";
2
+ import { ssmParameterArnPrefix } from "./sim-ssm-parameter-arn.js";
3
+ const allowedCharacters = /^[\w./-]+$/;
4
+ const maxHierarchyLevels = 15;
5
+ const reservedPrefixes = ["aws", "ssm"];
6
+ /**
7
+ * The longest a parameter name may be, counting the ARN that precedes it.
8
+ *
9
+ * Real Parameter Store reserves the rest of the 2048 character ARN for its own
10
+ * use, and counts the ARN prefix towards the 1011 characters left. That is why
11
+ * this limit needs the Account and Region: the same name is legal in one
12
+ * Region and too long in another.
13
+ */
14
+ const maxArnLength = 1011;
15
+ /**
16
+ * The name of one simulated parameter, validated as real Parameter Store
17
+ * validates it.
18
+ *
19
+ * The rules are worth applying in one place because they are a common
20
+ * deploy-time failure rather than an obscure edge: a hierarchy missing its
21
+ * leading slash, a name under the reserved `/aws` prefix, or a hierarchy
22
+ * sixteen levels deep all fail at PutParameter on real AWS.
23
+ */
24
+ export class SimSsmParameterName {
25
+ /**
26
+ * The name as Parameter Store stores and reports it, leading slash and all.
27
+ */
28
+ value;
29
+ /**
30
+ * The name with any leading slash dropped, which is how it appears in the
31
+ * parameter's ARN and how this simulation keys it.
32
+ */
33
+ resource;
34
+ constructor(properties) {
35
+ const name = SimSsmParameterName.trimmed(properties.name);
36
+ this.value = name;
37
+ this.resource = SimSsmParameterName.resourceFor(name);
38
+ this.requireAllowedCharacters(name);
39
+ this.requireWellFormedHierarchy(name);
40
+ this.requireUnreservedPrefix();
41
+ this.requireWithinArnLength(properties.accountRegionScope);
42
+ }
43
+ /**
44
+ * Normalize a name to the resource part of its ARN.
45
+ *
46
+ * A parameter put as `db-host` and one read as `/db-host` are the same
47
+ * parameter, because both name the same ARN. Keying on this form is what
48
+ * makes the two interchangeable.
49
+ */
50
+ static resourceFor(name) {
51
+ return name.trim().replace(/^\//, "");
52
+ }
53
+ static trimmed(name) {
54
+ if (name === undefined || name.trim() === "") {
55
+ throw new SimSsmValidationException("A parameter name is required and cannot be empty");
56
+ }
57
+ // Real Parameter Store strips surrounding spaces and refuses inner ones.
58
+ const trimmed = name.trim();
59
+ if (trimmed.includes(" ")) {
60
+ throw new SimSsmValidationException(`Parameter name '${trimmed}' contains spaces, which Parameter Store ` +
61
+ `does not allow between characters`);
62
+ }
63
+ return trimmed;
64
+ }
65
+ requireAllowedCharacters(name) {
66
+ if (allowedCharacters.test(name)) {
67
+ return;
68
+ }
69
+ throw new SimSsmParameterPatternMismatchException(`Parameter name '${name}' contains characters Parameter Store does not ` +
70
+ `allow: only letters, digits, the characters _.- and the / hierarchy ` +
71
+ `separator are permitted`);
72
+ }
73
+ /**
74
+ * Refuse a hierarchy that Parameter Store would refuse.
75
+ *
76
+ * The leading slash is the one people actually get wrong: a name written as
77
+ * `myapp/prod/db-host` looks fine and is rejected on real AWS, because a
78
+ * name containing a hierarchy has to be fully qualified.
79
+ */
80
+ requireWellFormedHierarchy(name) {
81
+ if (!name.includes("/")) {
82
+ return;
83
+ }
84
+ if (!name.startsWith("/")) {
85
+ throw new SimSsmParameterPatternMismatchException(`Parameter name '${name}' is hierarchical, so it must start with a ` +
86
+ `forward slash: '/${name}'`);
87
+ }
88
+ const levels = this.resource.split("/");
89
+ if (levels.includes("")) {
90
+ throw new SimSsmParameterPatternMismatchException(`Parameter name '${name}' has an empty hierarchy level`);
91
+ }
92
+ if (levels.length > maxHierarchyLevels) {
93
+ throw new SimSsmHierarchyLevelLimitExceededException(`Parameter name '${name}' has ${String(levels.length)} hierarchy ` +
94
+ `levels; a hierarchy can have a maximum of ` +
95
+ `${String(maxHierarchyLevels)} levels`);
96
+ }
97
+ }
98
+ requireUnreservedPrefix() {
99
+ const lowerCased = this.resource.toLowerCase();
100
+ const reserved = reservedPrefixes.find((prefix) => lowerCased.startsWith(prefix));
101
+ if (reserved === undefined) {
102
+ return;
103
+ }
104
+ throw new SimSsmParameterPatternMismatchException(`Parameter name '${this.value}' starts with '${reserved}', which ` +
105
+ `Parameter Store reserves for its own parameters`);
106
+ }
107
+ requireWithinArnLength(accountRegionScope) {
108
+ const arnLength = ssmParameterArnPrefix(accountRegionScope).length + this.resource.length;
109
+ if (arnLength <= maxArnLength) {
110
+ return;
111
+ }
112
+ throw new SimSsmValidationException(`Parameter name '${this.value}' makes an ARN of ${String(arnLength)} ` +
113
+ `characters; Parameter Store allows ${String(maxArnLength)} ` +
114
+ `including the ARN prefix for this Account and Region`);
115
+ }
116
+ }
117
+ //# sourceMappingURL=sim-ssm-parameter-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-ssm-parameter-name.js","sourceRoot":"","sources":["../../../../src/service/ssm/parameter/sim-ssm-parameter-name.ts"],"names":[],"mappings":"AACA,OAAO,EACL,0CAA0C,EAC1C,uCAAuC,EACvC,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,iBAAiB,GAAG,YAAY,CAAC;AACvC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAExC;;;;;;;GAOG;AACH,MAAM,YAAY,GAAG,IAAI,CAAC;AAO1B;;;;;;;;GAQG;AACH,MAAM,OAAO,mBAAmB;IAC9B;;OAEG;IACa,KAAK,CAAS;IAE9B;;;OAGG;IACa,QAAQ,CAAS;IAEjC,YAAY,UAAyC;QACnD,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE1D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,mBAAmB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAEtD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,WAAW,CAAC,IAAY;QAC7B,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IAEO,MAAM,CAAC,OAAO,CAAC,IAAwB;QAC7C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC7C,MAAM,IAAI,yBAAyB,CACjC,kDAAkD,CACnD,CAAC;QACJ,CAAC;QAED,yEAAyE;QACzE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE5B,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,yBAAyB,CACjC,mBAAmB,OAAO,2CAA2C;gBACnE,mCAAmC,CACtC,CAAC;QACJ,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,wBAAwB,CAAC,IAAY;QAC3C,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QAED,MAAM,IAAI,uCAAuC,CAC/C,mBAAmB,IAAI,iDAAiD;YACtE,sEAAsE;YACtE,yBAAyB,CAC5B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACK,0BAA0B,CAAC,IAAY;QAC7C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,uCAAuC,CAC/C,mBAAmB,IAAI,6CAA6C;gBAClE,oBAAoB,IAAI,GAAG,CAC9B,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAExC,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,uCAAuC,CAC/C,mBAAmB,IAAI,gCAAgC,CACxD,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;YACvC,MAAM,IAAI,0CAA0C,CAClD,mBAAmB,IAAI,SAAS,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa;gBAChE,4CAA4C;gBAC5C,GAAG,MAAM,CAAC,kBAAkB,CAAC,SAAS,CACzC,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,uBAAuB;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAChD,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAC9B,CAAC;QAEF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,MAAM,IAAI,uCAAuC,CAC/C,mBAAmB,IAAI,CAAC,KAAK,kBAAkB,QAAQ,WAAW;YAChE,iDAAiD,CACpD,CAAC;IACJ,CAAC;IAEO,sBAAsB,CAC5B,kBAA4C;QAE5C,MAAM,SAAS,GACb,qBAAqB,CAAC,kBAAkB,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAE1E,IAAI,SAAS,IAAI,YAAY,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,MAAM,IAAI,yBAAyB,CACjC,mBAAmB,IAAI,CAAC,KAAK,qBAAqB,MAAM,CAAC,SAAS,CAAC,GAAG;YACpE,sCAAsC,MAAM,CAAC,YAAY,CAAC,GAAG;YAC7D,sDAAsD,CACzD,CAAC;IACJ,CAAC;CACF"}