@kensio/yulin 1.17.0 → 1.17.1

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 (302) hide show
  1. package/dist/service/acm/certificate/register-sim-acm-certificate.d.ts +41 -0
  2. package/dist/service/acm/certificate/register-sim-acm-certificate.d.ts.map +1 -0
  3. package/dist/service/acm/certificate/register-sim-acm-certificate.js +60 -0
  4. package/dist/service/acm/certificate/register-sim-acm-certificate.js.map +1 -0
  5. package/dist/service/acm/command/request-certificate/request-certificate.handler.d.ts +9 -0
  6. package/dist/service/acm/command/request-certificate/request-certificate.handler.d.ts.map +1 -1
  7. package/dist/service/acm/command/request-certificate/request-certificate.handler.js +18 -1
  8. package/dist/service/acm/command/request-certificate/request-certificate.handler.js.map +1 -1
  9. package/dist/service/acm/sim-acm.d.ts +15 -0
  10. package/dist/service/acm/sim-acm.d.ts.map +1 -1
  11. package/dist/service/acm/sim-acm.js +21 -0
  12. package/dist/service/acm/sim-acm.js.map +1 -1
  13. package/dist/service/cloudformation/cdk/sim-cdk-assembly-selection.d.ts +4 -0
  14. package/dist/service/cloudformation/cdk/sim-cdk-assembly-selection.d.ts.map +1 -1
  15. package/dist/service/cloudformation/cdk/sim-cdk-assembly-selection.js +7 -2
  16. package/dist/service/cloudformation/cdk/sim-cdk-assembly-selection.js.map +1 -1
  17. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.d.ts +1 -1
  18. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.d.ts.map +1 -1
  19. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js +6 -4
  20. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js.map +1 -1
  21. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.d.ts +4 -0
  22. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.d.ts.map +1 -1
  23. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.js.map +1 -1
  24. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts +25 -2
  25. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts.map +1 -1
  26. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.js +13 -0
  27. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.js.map +1 -1
  28. package/dist/service/cloudformation/index.d.ts +1 -1
  29. package/dist/service/cloudformation/index.d.ts.map +1 -1
  30. package/dist/service/cloudformation/resource/cfn/iam/sim-iam-cfn-value-adapter.d.ts.map +1 -1
  31. package/dist/service/cloudformation/resource/cfn/iam/sim-iam-cfn-value-adapter.js +4 -0
  32. package/dist/service/cloudformation/resource/cfn/iam/sim-iam-cfn-value-adapter.js.map +1 -1
  33. package/dist/service/cloudformation/resource/cfn/iam/sim-iam-user-cfn.d.ts +28 -0
  34. package/dist/service/cloudformation/resource/cfn/iam/sim-iam-user-cfn.d.ts.map +1 -0
  35. package/dist/service/cloudformation/resource/cfn/iam/sim-iam-user-cfn.js +33 -0
  36. package/dist/service/cloudformation/resource/cfn/iam/sim-iam-user-cfn.js.map +1 -0
  37. package/dist/service/cloudformation/resource/resolve/property/sim-cfn-resource-property-resolver.d.ts +6 -0
  38. package/dist/service/cloudformation/resource/resolve/property/sim-cfn-resource-property-resolver.d.ts.map +1 -1
  39. package/dist/service/cloudformation/resource/resolve/property/sim-cfn-resource-property-resolver.js +3 -0
  40. package/dist/service/cloudformation/resource/resolve/property/sim-cfn-resource-property-resolver.js.map +1 -1
  41. package/dist/service/cloudformation/resource/sim-cfn-resource-record.d.ts.map +1 -1
  42. package/dist/service/cloudformation/resource/sim-cfn-resource-record.js +1 -0
  43. package/dist/service/cloudformation/resource/sim-cfn-resource-record.js.map +1 -1
  44. package/dist/service/cloudformation/template/dynamic/make-sim-cfn-dynamic-references.d.ts +1 -0
  45. package/dist/service/cloudformation/template/dynamic/make-sim-cfn-dynamic-references.d.ts.map +1 -1
  46. package/dist/service/cloudformation/template/dynamic/make-sim-cfn-dynamic-references.js +2 -1
  47. package/dist/service/cloudformation/template/dynamic/make-sim-cfn-dynamic-references.js.map +1 -1
  48. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-reference-resolvers.d.ts.map +1 -1
  49. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-reference-resolvers.js +4 -0
  50. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-reference-resolvers.js.map +1 -1
  51. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-reference.type.d.ts +19 -1
  52. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-reference.type.d.ts.map +1 -1
  53. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-references.d.ts +6 -0
  54. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-references.d.ts.map +1 -1
  55. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-references.js +9 -3
  56. package/dist/service/cloudformation/template/dynamic/sim-cfn-dynamic-references.js.map +1 -1
  57. package/dist/service/cloudfront/command/create-function/create-function-code-size.d.ts +23 -0
  58. package/dist/service/cloudfront/command/create-function/create-function-code-size.d.ts.map +1 -0
  59. package/dist/service/cloudfront/command/create-function/create-function-code-size.js +33 -0
  60. package/dist/service/cloudfront/command/create-function/create-function-code-size.js.map +1 -0
  61. package/dist/service/cloudfront/command/create-function/create-function.handler.d.ts.map +1 -1
  62. package/dist/service/cloudfront/command/create-function/create-function.handler.js +2 -0
  63. package/dist/service/cloudfront/command/create-function/create-function.handler.js.map +1 -1
  64. package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts +11 -0
  65. package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts.map +1 -1
  66. package/dist/service/cloudfront/error/sim-cloudfront.error.js +13 -0
  67. package/dist/service/cloudfront/error/sim-cloudfront.error.js.map +1 -1
  68. package/dist/service/cloudfront/index.d.ts +1 -1
  69. package/dist/service/cloudfront/index.d.ts.map +1 -1
  70. package/dist/service/cloudfront/index.js +1 -1
  71. package/dist/service/cloudfront/index.js.map +1 -1
  72. package/dist/service/cognito/command/sim-cognito-commands.d.ts +6 -0
  73. package/dist/service/cognito/command/sim-cognito-commands.d.ts.map +1 -1
  74. package/dist/service/cognito/command/sim-cognito-commands.js +22 -6
  75. package/dist/service/cognito/command/sim-cognito-commands.js.map +1 -1
  76. package/dist/service/cognito/error/sim-cognito.error.d.ts +22 -0
  77. package/dist/service/cognito/error/sim-cognito.error.d.ts.map +1 -1
  78. package/dist/service/cognito/error/sim-cognito.error.js +26 -0
  79. package/dist/service/cognito/error/sim-cognito.error.js.map +1 -1
  80. package/dist/service/cognito/index.d.ts +2 -1
  81. package/dist/service/cognito/index.d.ts.map +1 -1
  82. package/dist/service/cognito/index.js +1 -1
  83. package/dist/service/cognito/index.js.map +1 -1
  84. package/dist/service/cognito/sim-cognito-identity-provider.d.ts +24 -0
  85. package/dist/service/cognito/sim-cognito-identity-provider.d.ts.map +1 -1
  86. package/dist/service/cognito/sim-cognito-identity-provider.js +26 -0
  87. package/dist/service/cognito/sim-cognito-identity-provider.js.map +1 -1
  88. package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-factory.d.ts +9 -0
  89. package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-factory.d.ts.map +1 -1
  90. package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-factory.js +2 -2
  91. package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-factory.js.map +1 -1
  92. package/dist/service/cognito/user-pool/register-sim-cognito-user-pool-client.d.ts +22 -0
  93. package/dist/service/cognito/user-pool/register-sim-cognito-user-pool-client.d.ts.map +1 -0
  94. package/dist/service/cognito/user-pool/register-sim-cognito-user-pool-client.js +36 -0
  95. package/dist/service/cognito/user-pool/register-sim-cognito-user-pool-client.js.map +1 -0
  96. package/dist/service/cognito/user-pool/register-sim-cognito-user-pool.d.ts +25 -0
  97. package/dist/service/cognito/user-pool/register-sim-cognito-user-pool.d.ts.map +1 -0
  98. package/dist/service/cognito/user-pool/register-sim-cognito-user-pool.js +30 -0
  99. package/dist/service/cognito/user-pool/register-sim-cognito-user-pool.js.map +1 -0
  100. package/dist/service/cognito/user-pool/sim-cognito-registration.types.d.ts +40 -0
  101. package/dist/service/cognito/user-pool/sim-cognito-registration.types.d.ts.map +1 -0
  102. package/dist/service/cognito/user-pool/sim-cognito-registration.types.js +2 -0
  103. package/dist/service/cognito/user-pool/sim-cognito-registration.types.js.map +1 -0
  104. package/dist/service/cognito/user-pool/sim-cognito-registrations.d.ts +34 -0
  105. package/dist/service/cognito/user-pool/sim-cognito-registrations.d.ts.map +1 -0
  106. package/dist/service/cognito/user-pool/sim-cognito-registrations.js +28 -0
  107. package/dist/service/cognito/user-pool/sim-cognito-registrations.js.map +1 -0
  108. package/dist/service/cognito/user-pool/sim-cognito-user-pool-factory.d.ts +9 -0
  109. package/dist/service/cognito/user-pool/sim-cognito-user-pool-factory.d.ts.map +1 -1
  110. package/dist/service/cognito/user-pool/sim-cognito-user-pool-factory.js +3 -2
  111. package/dist/service/cognito/user-pool/sim-cognito-user-pool-factory.js.map +1 -1
  112. package/dist/service/cognito/user-pool/sim-cognito-user-pool-id.d.ts +9 -0
  113. package/dist/service/cognito/user-pool/sim-cognito-user-pool-id.d.ts.map +1 -1
  114. package/dist/service/cognito/user-pool/sim-cognito-user-pool-id.js +18 -0
  115. package/dist/service/cognito/user-pool/sim-cognito-user-pool-id.js.map +1 -1
  116. package/dist/service/cognito/user-pool/sim-cognito-user-pool-store.d.ts +8 -0
  117. package/dist/service/cognito/user-pool/sim-cognito-user-pool-store.d.ts.map +1 -1
  118. package/dist/service/cognito/user-pool/sim-cognito-user-pool-store.js +15 -1
  119. package/dist/service/cognito/user-pool/sim-cognito-user-pool-store.js.map +1 -1
  120. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-attacher.d.ts +40 -0
  121. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-attacher.d.ts.map +1 -0
  122. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-attacher.js +65 -0
  123. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-attacher.js.map +1 -0
  124. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.d.ts +1 -0
  125. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.d.ts.map +1 -1
  126. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.js +5 -0
  127. package/dist/service/iam/cfn/managed-policy/sim-cfn-iam-managed-policy-creator.js.map +1 -1
  128. package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-creator.d.ts +11 -20
  129. package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-creator.d.ts.map +1 -1
  130. package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-creator.js +29 -61
  131. package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-creator.js.map +1 -1
  132. package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-properties-parser.d.ts +38 -0
  133. package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-properties-parser.d.ts.map +1 -0
  134. package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-properties-parser.js +79 -0
  135. package/dist/service/iam/cfn/policy/sim-cfn-iam-policy-properties-parser.js.map +1 -0
  136. package/dist/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.d.ts +2 -2
  137. package/dist/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.d.ts.map +1 -1
  138. package/dist/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.js +4 -2
  139. package/dist/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.js.map +1 -1
  140. package/dist/service/iam/cfn/sim-cfn-iam-policies-parser.d.ts +35 -0
  141. package/dist/service/iam/cfn/sim-cfn-iam-policies-parser.d.ts.map +1 -0
  142. package/dist/service/iam/cfn/{role/sim-cfn-iam-role-policies-parser.js → sim-cfn-iam-policies-parser.js} +17 -12
  143. package/dist/service/iam/cfn/sim-cfn-iam-policies-parser.js.map +1 -0
  144. package/dist/service/iam/cfn/sim-cfn-iam-resource-deleter.d.ts +11 -0
  145. package/dist/service/iam/cfn/sim-cfn-iam-resource-deleter.d.ts.map +1 -1
  146. package/dist/service/iam/cfn/sim-cfn-iam-resource-deleter.js +25 -0
  147. package/dist/service/iam/cfn/sim-cfn-iam-resource-deleter.js.map +1 -1
  148. package/dist/service/iam/cfn/sim-cfn-iam-resource-factory.d.ts +1 -0
  149. package/dist/service/iam/cfn/sim-cfn-iam-resource-factory.d.ts.map +1 -1
  150. package/dist/service/iam/cfn/sim-cfn-iam-resource-factory.js +6 -0
  151. package/dist/service/iam/cfn/sim-cfn-iam-resource-factory.js.map +1 -1
  152. package/dist/service/iam/cfn/user/sim-cfn-iam-user-creator.d.ts +28 -0
  153. package/dist/service/iam/cfn/user/sim-cfn-iam-user-creator.d.ts.map +1 -0
  154. package/dist/service/iam/cfn/user/sim-cfn-iam-user-creator.js +67 -0
  155. package/dist/service/iam/cfn/user/sim-cfn-iam-user-creator.js.map +1 -0
  156. package/dist/service/iam/cfn/user/sim-cfn-iam-user-deleter.d.ts +26 -0
  157. package/dist/service/iam/cfn/user/sim-cfn-iam-user-deleter.d.ts.map +1 -0
  158. package/dist/service/iam/cfn/user/sim-cfn-iam-user-deleter.js +29 -0
  159. package/dist/service/iam/cfn/user/sim-cfn-iam-user-deleter.js.map +1 -0
  160. package/dist/service/iam/cfn/user/sim-cfn-iam-user-properties-parser.d.ts +38 -0
  161. package/dist/service/iam/cfn/user/sim-cfn-iam-user-properties-parser.d.ts.map +1 -0
  162. package/dist/service/iam/cfn/user/sim-cfn-iam-user-properties-parser.js +80 -0
  163. package/dist/service/iam/cfn/user/sim-cfn-iam-user-properties-parser.js.map +1 -0
  164. package/dist/service/iam/command/sim-iam-command.types.d.ts +3 -0
  165. package/dist/service/iam/command/sim-iam-command.types.d.ts.map +1 -1
  166. package/dist/service/iam/command/user/attach-user-policy/attach-user-policy.command.d.ts +9 -0
  167. package/dist/service/iam/command/user/attach-user-policy/attach-user-policy.command.d.ts.map +1 -0
  168. package/dist/service/iam/command/user/attach-user-policy/attach-user-policy.command.js +2 -0
  169. package/dist/service/iam/command/user/attach-user-policy/attach-user-policy.command.js.map +1 -0
  170. package/dist/service/iam/command/user/attach-user-policy/attach-user-policy.handler.d.ts +30 -0
  171. package/dist/service/iam/command/user/attach-user-policy/attach-user-policy.handler.d.ts.map +1 -0
  172. package/dist/service/iam/command/user/attach-user-policy/attach-user-policy.handler.js +44 -0
  173. package/dist/service/iam/command/user/attach-user-policy/attach-user-policy.handler.js.map +1 -0
  174. package/dist/service/iam/command/user/create-login-profile/create-login-profile.command.d.ts +16 -0
  175. package/dist/service/iam/command/user/create-login-profile/create-login-profile.command.d.ts.map +1 -0
  176. package/dist/service/iam/command/user/create-login-profile/create-login-profile.command.js +2 -0
  177. package/dist/service/iam/command/user/create-login-profile/create-login-profile.command.js.map +1 -0
  178. package/dist/service/iam/command/user/create-login-profile/create-login-profile.handler.d.ts +32 -0
  179. package/dist/service/iam/command/user/create-login-profile/create-login-profile.handler.d.ts.map +1 -0
  180. package/dist/service/iam/command/user/create-login-profile/create-login-profile.handler.js +59 -0
  181. package/dist/service/iam/command/user/create-login-profile/create-login-profile.handler.js.map +1 -0
  182. package/dist/service/iam/command/user/create-user/create-user-record-factory.d.ts.map +1 -1
  183. package/dist/service/iam/command/user/create-user/create-user-record-factory.js +1 -0
  184. package/dist/service/iam/command/user/create-user/create-user-record-factory.js.map +1 -1
  185. package/dist/service/iam/command/user/delete-user/delete-user.command.d.ts +19 -0
  186. package/dist/service/iam/command/user/delete-user/delete-user.command.d.ts.map +1 -0
  187. package/dist/service/iam/command/user/delete-user/delete-user.command.js +2 -0
  188. package/dist/service/iam/command/user/delete-user/delete-user.command.js.map +1 -0
  189. package/dist/service/iam/command/user/delete-user/delete-user.handler.d.ts +34 -0
  190. package/dist/service/iam/command/user/delete-user/delete-user.handler.d.ts.map +1 -0
  191. package/dist/service/iam/command/user/delete-user/delete-user.handler.js +51 -0
  192. package/dist/service/iam/command/user/delete-user/delete-user.handler.js.map +1 -0
  193. package/dist/service/iam/command/user/sim-iam-user-command-handlers.d.ts +15 -0
  194. package/dist/service/iam/command/user/sim-iam-user-command-handlers.d.ts.map +1 -1
  195. package/dist/service/iam/command/user/sim-iam-user-command-handlers.js +36 -0
  196. package/dist/service/iam/command/user/sim-iam-user-command-handlers.js.map +1 -1
  197. package/dist/service/iam/sdk/sim-iam-sdk-command-router.d.ts.map +1 -1
  198. package/dist/service/iam/sdk/sim-iam-sdk-command-router.js +12 -0
  199. package/dist/service/iam/sdk/sim-iam-sdk-command-router.js.map +1 -1
  200. package/dist/service/iam/sim-iam.d.ts +12 -0
  201. package/dist/service/iam/sim-iam.d.ts.map +1 -1
  202. package/dist/service/iam/sim-iam.js +18 -0
  203. package/dist/service/iam/sim-iam.js.map +1 -1
  204. package/dist/service/iam/user/sim-iam-user-login-profile.d.ts +14 -0
  205. package/dist/service/iam/user/sim-iam-user-login-profile.d.ts.map +1 -0
  206. package/dist/service/iam/user/sim-iam-user-login-profile.js +2 -0
  207. package/dist/service/iam/user/sim-iam-user-login-profile.js.map +1 -0
  208. package/dist/service/iam/user/sim-iam-user.d.ts +8 -0
  209. package/dist/service/iam/user/sim-iam-user.d.ts.map +1 -1
  210. package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts +6 -5
  211. package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts.map +1 -1
  212. package/dist/service/lambda/function/code/sim-lambda-executable-code.js +7 -6
  213. package/dist/service/lambda/function/code/sim-lambda-executable-code.js.map +1 -1
  214. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.d.ts +11 -3
  215. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.d.ts.map +1 -1
  216. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.js +13 -7
  217. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.js.map +1 -1
  218. package/dist/service/lambda/function/invoke/sim-lambda-process-output.d.ts +104 -0
  219. package/dist/service/lambda/function/invoke/sim-lambda-process-output.d.ts.map +1 -0
  220. package/dist/service/lambda/function/invoke/sim-lambda-process-output.js +133 -0
  221. package/dist/service/lambda/function/invoke/sim-lambda-process-output.js.map +1 -0
  222. package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts +10 -0
  223. package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts.map +1 -1
  224. package/dist/service/lambda/function/logging/sim-lambda-function-logging.js +11 -0
  225. package/dist/service/lambda/function/logging/sim-lambda-function-logging.js.map +1 -1
  226. package/dist/service/lambda/function/sim-lambda-function.d.ts +2 -1
  227. package/dist/service/lambda/function/sim-lambda-function.d.ts.map +1 -1
  228. package/dist/service/lambda/function/sim-lambda-function.js +5 -2
  229. package/dist/service/lambda/function/sim-lambda-function.js.map +1 -1
  230. package/dist/service/s3/command/get-object/get-object-loader.d.ts +5 -3
  231. package/dist/service/s3/command/get-object/get-object-loader.d.ts.map +1 -1
  232. package/dist/service/s3/command/get-object/get-object-loader.js +19 -4
  233. package/dist/service/s3/command/get-object/get-object-loader.js.map +1 -1
  234. package/dist/service/s3/command/get-object/get-object.command.d.ts +13 -0
  235. package/dist/service/s3/command/get-object/get-object.command.d.ts.map +1 -1
  236. package/dist/service/s3/command/get-object/get-object.handler.d.ts +3 -0
  237. package/dist/service/s3/command/get-object/get-object.handler.d.ts.map +1 -1
  238. package/dist/service/s3/command/get-object/get-object.handler.js +4 -1
  239. package/dist/service/s3/command/get-object/get-object.handler.js.map +1 -1
  240. package/dist/service/s3/error/sim-s3.error.d.ts +13 -0
  241. package/dist/service/s3/error/sim-s3.error.d.ts.map +1 -1
  242. package/dist/service/s3/error/sim-s3.error.js +15 -0
  243. package/dist/service/s3/error/sim-s3.error.js.map +1 -1
  244. package/dist/service/s3/object/s3-object-range.d.ts +26 -0
  245. package/dist/service/s3/object/s3-object-range.d.ts.map +1 -0
  246. package/dist/service/s3/object/s3-object-range.js +89 -0
  247. package/dist/service/s3/object/s3-object-range.js.map +1 -0
  248. package/dist/service/s3/object/s3-object-response-headers.d.ts +7 -1
  249. package/dist/service/s3/object/s3-object-response-headers.d.ts.map +1 -1
  250. package/dist/service/s3/object/s3-object-response-headers.js +5 -1
  251. package/dist/service/s3/object/s3-object-response-headers.js.map +1 -1
  252. package/dist/service/s3/serve/api/sim-s3-api-input.d.ts +0 -14
  253. package/dist/service/s3/serve/api/sim-s3-api-input.d.ts.map +1 -1
  254. package/dist/service/s3/serve/api/sim-s3-api-input.js +0 -29
  255. package/dist/service/s3/serve/api/sim-s3-api-input.js.map +1 -1
  256. package/dist/service/s3/serve/api/sim-s3-api-object-input.d.ts +27 -0
  257. package/dist/service/s3/serve/api/sim-s3-api-object-input.d.ts.map +1 -0
  258. package/dist/service/s3/serve/api/sim-s3-api-object-input.js +47 -0
  259. package/dist/service/s3/serve/api/sim-s3-api-object-input.js.map +1 -0
  260. package/dist/service/s3/serve/api/sim-s3-api-object-output.d.ts +5 -0
  261. package/dist/service/s3/serve/api/sim-s3-api-object-output.d.ts.map +1 -1
  262. package/dist/service/s3/serve/api/sim-s3-api-object-output.js +8 -1
  263. package/dist/service/s3/serve/api/sim-s3-api-object-output.js.map +1 -1
  264. package/dist/service/s3/serve/api/sim-s3-api-object-routes.d.ts.map +1 -1
  265. package/dist/service/s3/serve/api/sim-s3-api-object-routes.js +2 -2
  266. package/dist/service/s3/serve/api/sim-s3-api-object-routes.js.map +1 -1
  267. package/dist/service/s3/serve/sim-s3-rest-object-reader.d.ts +5 -0
  268. package/dist/service/s3/serve/sim-s3-rest-object-reader.d.ts.map +1 -1
  269. package/dist/service/s3/serve/sim-s3-rest-object-reader.js +20 -3
  270. package/dist/service/s3/serve/sim-s3-rest-object-reader.js.map +1 -1
  271. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-dynamic-reference-resolver.d.ts +0 -7
  272. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-dynamic-reference-resolver.d.ts.map +1 -1
  273. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-dynamic-reference-resolver.js +7 -41
  274. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-dynamic-reference-resolver.js.map +1 -1
  275. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-reference-body.d.ts +14 -0
  276. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-reference-body.d.ts.map +1 -0
  277. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-reference-body.js +26 -0
  278. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-reference-body.js.map +1 -0
  279. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-reference-stand-in.d.ts +11 -0
  280. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-reference-stand-in.d.ts.map +1 -0
  281. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-reference-stand-in.js +16 -0
  282. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-reference-stand-in.js.map +1 -0
  283. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-dynamic-reference-resolver.d.ts +40 -0
  284. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-dynamic-reference-resolver.d.ts.map +1 -0
  285. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-dynamic-reference-resolver.js +67 -0
  286. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-dynamic-reference-resolver.js.map +1 -0
  287. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-reference-properties.d.ts +8 -0
  288. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-reference-properties.d.ts.map +1 -0
  289. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-reference-properties.js +61 -0
  290. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-reference-properties.js.map +1 -0
  291. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-refusals.d.ts +19 -0
  292. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-refusals.d.ts.map +1 -0
  293. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-refusals.js +37 -0
  294. package/dist/service/ssm/cfn/dynamic/sim-cfn-ssm-secure-refusals.js.map +1 -0
  295. package/dist/service/ssm/sim-ssm.d.ts +5 -0
  296. package/dist/service/ssm/sim-ssm.d.ts.map +1 -1
  297. package/dist/service/ssm/sim-ssm.js +7 -0
  298. package/dist/service/ssm/sim-ssm.js.map +1 -1
  299. package/package.json +1 -1
  300. package/dist/service/iam/cfn/role/sim-cfn-iam-role-policies-parser.d.ts +0 -25
  301. package/dist/service/iam/cfn/role/sim-cfn-iam-role-policies-parser.d.ts.map +0 -1
  302. package/dist/service/iam/cfn/role/sim-cfn-iam-role-policies-parser.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-iam-policy-creator.js","sourceRoot":"","sources":["../../../../../src/service/iam/cfn/policy/sim-cfn-iam-policy-creator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sim-cfn-iam-policy-creator.js","sourceRoot":"","sources":["../../../../../src/service/iam/cfn/policy/sim-cfn-iam-policy-creator.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,+BAA+B,GAEhC,MAAM,2CAA2C,CAAC;AAMnD;;;;;;;;;;GAUG;AACH,MAAM,OAAO,sBAAsB;IAChB,GAAG,CAAS;IACZ,WAAW,GAAG,IAAI,+BAA+B,EAAE,CAAC;IAErE,YAAY,UAA4C;QACtD,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,QAAwB,EACxB,UAAqC;QAErC,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAEtE,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;SACvC,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,gBAA2C;QAE3C,MAAM,OAAO,CAAC,GAAG,CACf,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAChD,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;YACrB,KAAK,EAAE;gBACL,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,gBAAgB,CAAC,UAAU;gBACvC,cAAc,EAAE,gBAAgB,CAAC,cAAc;aAChD;SACF,CAAC,CACH,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,gBAA2C;QAE3C,MAAM,OAAO,CAAC,GAAG,CACf,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAChD,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;YACrB,KAAK,EAAE;gBACL,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,gBAAgB,CAAC,UAAU;gBACvC,cAAc,EAAE,gBAAgB,CAAC,cAAc;aAChD;SACF,CAAC,CACH,CACF,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,38 @@
1
+ import type { SimCfnResource } from "../../../cloudformation/resource/sim-cfn-resource.js";
2
+ import type { SimCfnTemplateValueRecord } from "../../../cloudformation/template/value/sim-cfn-template-value.js";
3
+ export interface SimCfnIamPolicyProperties {
4
+ readonly policyName: string;
5
+ readonly policyDocument: string;
6
+ readonly roleNames: readonly string[];
7
+ readonly usernames: readonly string[];
8
+ }
9
+ /**
10
+ * Parses and validates AWS::IAM::Policy CloudFormation properties into the
11
+ * shape the sim IAM inline policy creator needs.
12
+ *
13
+ * Keeping the property-shape validation here keeps the creator focused on
14
+ * orchestrating IAM command calls.
15
+ */
16
+ export declare class SimCfnIamPolicyPropertiesParser {
17
+ /**
18
+ * Parse the resolved CloudFormation properties for an AWS::IAM::Policy.
19
+ */
20
+ parse(resource: SimCfnResource, properties: SimCfnTemplateValueRecord): SimCfnIamPolicyProperties;
21
+ private policyName;
22
+ private policyDocument;
23
+ /**
24
+ * The principal names one property attaches the policy to. Role and User
25
+ * Refs are resolved to names before creation, so entries arrive as plain
26
+ * strings. An absent property is not an error on its own, because a policy
27
+ * naming only the other kind of principal is the usual CDK shape.
28
+ */
29
+ private principalNames;
30
+ /**
31
+ * IAM Groups are not simulated as CloudFormation policy principals, and
32
+ * silently dropping a grant would be misleading, so their presence fails
33
+ * creation.
34
+ */
35
+ private rejectGroups;
36
+ private invalid;
37
+ }
38
+ //# sourceMappingURL=sim-cfn-iam-policy-properties-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-iam-policy-properties-parser.d.ts","sourceRoot":"","sources":["../../../../../src/service/iam/cfn/policy/sim-cfn-iam-policy-properties-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kEAAkE,CAAC;AAElH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAMD;;;;;;GAMG;AACH,qBAAa,+BAA+B;IAC1C;;OAEG;IACH,KAAK,CACH,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,yBAAyB,GACpC,yBAAyB,CAmB3B;IAED,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,cAAc;IAiBtB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAwBtB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,OAAO;CAKhB"}
@@ -0,0 +1,79 @@
1
+ const resourceType = "AWS::IAM::Policy";
2
+ /**
3
+ * Parses and validates AWS::IAM::Policy CloudFormation properties into the
4
+ * shape the sim IAM inline policy creator needs.
5
+ *
6
+ * Keeping the property-shape validation here keeps the creator focused on
7
+ * orchestrating IAM command calls.
8
+ */
9
+ export class SimCfnIamPolicyPropertiesParser {
10
+ /**
11
+ * Parse the resolved CloudFormation properties for an AWS::IAM::Policy.
12
+ */
13
+ parse(resource, properties) {
14
+ this.rejectGroups(resource, properties);
15
+ const roleNames = this.principalNames(resource, properties, "Roles");
16
+ const usernames = this.principalNames(resource, properties, "Users");
17
+ if (roleNames.length === 0 && usernames.length === 0) {
18
+ throw this.invalid(resource, "Roles or Users must name at least one principal");
19
+ }
20
+ return {
21
+ policyName: this.policyName(resource, properties),
22
+ policyDocument: this.policyDocument(resource, properties),
23
+ roleNames,
24
+ usernames,
25
+ };
26
+ }
27
+ policyName(resource, properties) {
28
+ const policyName = properties["PolicyName"];
29
+ if (typeof policyName !== "string") {
30
+ throw this.invalid(resource, "PolicyName must be a string");
31
+ }
32
+ return policyName;
33
+ }
34
+ policyDocument(resource, properties) {
35
+ const policyDocument = properties["PolicyDocument"];
36
+ if (typeof policyDocument !== "object" ||
37
+ policyDocument === null ||
38
+ Array.isArray(policyDocument)) {
39
+ throw this.invalid(resource, "PolicyDocument must be an object");
40
+ }
41
+ return JSON.stringify(policyDocument);
42
+ }
43
+ /**
44
+ * The principal names one property attaches the policy to. Role and User
45
+ * Refs are resolved to names before creation, so entries arrive as plain
46
+ * strings. An absent property is not an error on its own, because a policy
47
+ * naming only the other kind of principal is the usual CDK shape.
48
+ */
49
+ principalNames(resource, properties, property) {
50
+ // oxlint-disable-next-line security/detect-object-injection -- fixed property names.
51
+ const principals = properties[property];
52
+ if (principals === undefined) {
53
+ return [];
54
+ }
55
+ if (!Array.isArray(principals)) {
56
+ throw this.invalid(resource, `${property} must be an array`);
57
+ }
58
+ return principals.map((name) => {
59
+ if (typeof name !== "string") {
60
+ throw this.invalid(resource, `${property} entries must be strings`);
61
+ }
62
+ return name;
63
+ });
64
+ }
65
+ /**
66
+ * IAM Groups are not simulated as CloudFormation policy principals, and
67
+ * silently dropping a grant would be misleading, so their presence fails
68
+ * creation.
69
+ */
70
+ rejectGroups(resource, properties) {
71
+ if (properties["Groups"] !== undefined) {
72
+ throw this.invalid(resource, "Groups are not simulated");
73
+ }
74
+ }
75
+ invalid(resource, reason) {
76
+ return new TypeError(`Invalid ${resourceType} ${resource.logicalId}: ${reason}`);
77
+ }
78
+ }
79
+ //# sourceMappingURL=sim-cfn-iam-policy-properties-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-iam-policy-properties-parser.js","sourceRoot":"","sources":["../../../../../src/service/iam/cfn/policy/sim-cfn-iam-policy-properties-parser.ts"],"names":[],"mappings":"AAYA,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAExC;;;;;;GAMG;AACH,MAAM,OAAO,+BAA+B;IAC1C;;OAEG;IACH,KAAK,CACH,QAAwB,EACxB,UAAqC;QAErC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAExC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACrE,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAErE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,CAAC,OAAO,CAChB,QAAQ,EACR,iDAAiD,CAClD,CAAC;QACJ,CAAC;QAED,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC;YACjD,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC;YACzD,SAAS;YACT,SAAS;SACV,CAAC;IACJ,CAAC;IAEO,UAAU,CAChB,QAAwB,EACxB,UAAqC;QAErC,MAAM,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;QAE5C,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,cAAc,CACpB,QAAwB,EACxB,UAAqC;QAErC,MAAM,cAAc,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAEpD,IACE,OAAO,cAAc,KAAK,QAAQ;YAClC,cAAc,KAAK,IAAI;YACvB,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAC7B,CAAC;YACD,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,kCAAkC,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IACxC,CAAC;IAED;;;;;OAKG;IACK,cAAc,CACpB,QAAwB,EACxB,UAAqC,EACrC,QAA0C;QAE1C,qFAAqF;QACrF,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAExC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,QAAQ,mBAAmB,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC7B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,QAAQ,0BAA0B,CAAC,CAAC;YACtE,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,YAAY,CAClB,QAAwB,EACxB,UAAqC;QAErC,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAEO,OAAO,CAAC,QAAwB,EAAE,MAAc;QACtD,OAAO,IAAI,SAAS,CAClB,WAAW,YAAY,IAAI,QAAQ,CAAC,SAAS,KAAK,MAAM,EAAE,CAC3D,CAAC;IACJ,CAAC;CACF"}
@@ -1,12 +1,12 @@
1
1
  import type { SimCfnResource } from "../../../cloudformation/resource/sim-cfn-resource.js";
2
2
  import type { SimCfnTemplateValueRecord } from "../../../cloudformation/template/value/sim-cfn-template-value.js";
3
- import { type SimCfnIamRoleInlinePolicy } from "./sim-cfn-iam-role-policies-parser.js";
3
+ import { type SimCfnIamInlinePolicy } from "../sim-cfn-iam-policies-parser.js";
4
4
  export interface SimCfnIamRoleProperties {
5
5
  readonly roleName: string;
6
6
  readonly path: string | undefined;
7
7
  readonly description: string | undefined;
8
8
  readonly assumeRolePolicyDocument: string;
9
- readonly inlinePolicies: readonly SimCfnIamRoleInlinePolicy[];
9
+ readonly inlinePolicies: readonly SimCfnIamInlinePolicy[];
10
10
  readonly managedPolicyArns: readonly string[];
11
11
  }
12
12
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-iam-role-properties-parser.d.ts","sourceRoot":"","sources":["../../../../../src/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kEAAkE,CAAC;AAClH,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,uCAAuC,CAAC;AAE/C,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC9D,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/C;AAED;;;;;;GAMG;AACH,qBAAa,6BAA6B;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqC;IAEpE;;OAEG;IACH,KAAK,CACH,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,yBAAyB,GACpC,uBAAuB,CAsBzB;IAED,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,UAAU;CAanB"}
1
+ {"version":3,"file":"sim-cfn-iam-role-properties-parser.d.ts","sourceRoot":"","sources":["../../../../../src/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kEAAkE,CAAC;AAClH,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,mCAAmC,CAAC;AAE3C,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC1D,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/C;AAED;;;;;;GAMG;AACH,qBAAa,6BAA6B;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAE5B;IAEH;;OAEG;IACH,KAAK,CACH,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,yBAAyB,GACpC,uBAAuB,CAsBzB;IAED,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,UAAU;CAanB"}
@@ -1,4 +1,4 @@
1
- import { SimCfnIamRolePoliciesParser, } from "./sim-cfn-iam-role-policies-parser.js";
1
+ import { SimCfnIamPoliciesParser, } from "../sim-cfn-iam-policies-parser.js";
2
2
  /**
3
3
  * Parses and validates AWS::IAM::Role CloudFormation properties into the shape
4
4
  * the sim IAM Role creator needs.
@@ -7,7 +7,9 @@ import { SimCfnIamRolePoliciesParser, } from "./sim-cfn-iam-role-policies-parser
7
7
  * orchestrating IAM command calls.
8
8
  */
9
9
  export class SimCfnIamRolePropertiesParser {
10
- policiesParser = new SimCfnIamRolePoliciesParser();
10
+ policiesParser = new SimCfnIamPoliciesParser({
11
+ resourceType: "AWS::IAM::Role",
12
+ });
11
13
  /**
12
14
  * Parse the resolved CloudFormation properties for an AWS::IAM::Role.
13
15
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-iam-role-properties-parser.js","sourceRoot":"","sources":["../../../../../src/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,2BAA2B,GAE5B,MAAM,uCAAuC,CAAC;AAW/C;;;;;;GAMG;AACH,MAAM,OAAO,6BAA6B;IACvB,cAAc,GAAG,IAAI,2BAA2B,EAAE,CAAC;IAEpE;;OAEG;IACH,KAAK,CACH,QAAwB,EACxB,UAAqC;QAErC,OAAO;YACL,QAAQ,EACN,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;gBACjE,QAAQ,CAAC,SAAS;YACpB,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;YAC/D,WAAW,EAAE,IAAI,CAAC,cAAc,CAC9B,QAAQ,EACR,UAAU,CAAC,aAAa,CAAC,EACzB,aAAa,CACd;YACD,wBAAwB,EAAE,IAAI,CAAC,UAAU,CACvC,QAAQ,EACR,UAAU,CAAC,0BAA0B,CAAC,EACtC,0BAA0B,CAC3B;YACD,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC;YACxE,iBAAiB,EAAE,IAAI,CAAC,cAAc,CAAC,iBAAiB,CACtD,QAAQ,EACR,UAAU,CACX;SACF,CAAC;IACJ,CAAC;IAEO,cAAc,CACpB,QAAwB,EACxB,KAAoD,EACpD,KAAa;QAEb,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,SAAS,CACjB,0BAA0B,QAAQ,CAAC,SAAS,KAAK,KAAK,mBAAmB,CAC1E,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,UAAU,CAChB,QAAwB,EACxB,KAAoD,EACpD,KAAa;QAEb,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACxE,MAAM,IAAI,SAAS,CACjB,0BAA0B,QAAQ,CAAC,SAAS,KAAK,KAAK,oBAAoB,CAC3E,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;CACF"}
1
+ {"version":3,"file":"sim-cfn-iam-role-properties-parser.js","sourceRoot":"","sources":["../../../../../src/service/iam/cfn/role/sim-cfn-iam-role-properties-parser.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,uBAAuB,GAExB,MAAM,mCAAmC,CAAC;AAW3C;;;;;;GAMG;AACH,MAAM,OAAO,6BAA6B;IACvB,cAAc,GAAG,IAAI,uBAAuB,CAAC;QAC5D,YAAY,EAAE,gBAAgB;KAC/B,CAAC,CAAC;IAEH;;OAEG;IACH,KAAK,CACH,QAAwB,EACxB,UAAqC;QAErC,OAAO;YACL,QAAQ,EACN,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;gBACjE,QAAQ,CAAC,SAAS;YACpB,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;YAC/D,WAAW,EAAE,IAAI,CAAC,cAAc,CAC9B,QAAQ,EACR,UAAU,CAAC,aAAa,CAAC,EACzB,aAAa,CACd;YACD,wBAAwB,EAAE,IAAI,CAAC,UAAU,CACvC,QAAQ,EACR,UAAU,CAAC,0BAA0B,CAAC,EACtC,0BAA0B,CAC3B;YACD,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC;YACxE,iBAAiB,EAAE,IAAI,CAAC,cAAc,CAAC,iBAAiB,CACtD,QAAQ,EACR,UAAU,CACX;SACF,CAAC;IACJ,CAAC;IAEO,cAAc,CACpB,QAAwB,EACxB,KAAoD,EACpD,KAAa;QAEb,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,SAAS,CACjB,0BAA0B,QAAQ,CAAC,SAAS,KAAK,KAAK,mBAAmB,CAC1E,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,UAAU,CAChB,QAAwB,EACxB,KAAoD,EACpD,KAAa;QAEb,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACxE,MAAM,IAAI,SAAS,CACjB,0BAA0B,QAAQ,CAAC,SAAS,KAAK,KAAK,oBAAoB,CAC3E,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;CACF"}
@@ -0,0 +1,35 @@
1
+ import type { SimCfnResource } from "../../cloudformation/resource/sim-cfn-resource.js";
2
+ import type { SimCfnTemplateValueRecord } from "../../cloudformation/template/value/sim-cfn-template-value.js";
3
+ export interface SimCfnIamInlinePolicy {
4
+ readonly policyName: string;
5
+ readonly policyDocument: string;
6
+ }
7
+ interface SimCfnIamPoliciesParserProperties {
8
+ /**
9
+ * The Resource type being parsed, for error messages.
10
+ */
11
+ readonly resourceType: string;
12
+ }
13
+ /**
14
+ * Parses the policy collection properties an IAM identity Resource carries:
15
+ * the inline `Policies` list and the attached `ManagedPolicyArns` list.
16
+ *
17
+ * AWS::IAM::Role and AWS::IAM::User declare both in the same shape, and these
18
+ * list-shaped properties carry the bulk of the property validation, so
19
+ * grouping them here keeps each identity's own props parser small.
20
+ */
21
+ export declare class SimCfnIamPoliciesParser {
22
+ private readonly resourceType;
23
+ constructor(properties: SimCfnIamPoliciesParserProperties);
24
+ /**
25
+ * Parse the inline `Policies` property into normalised inline policies.
26
+ */
27
+ inlinePolicies(resource: SimCfnResource, properties: SimCfnTemplateValueRecord): readonly SimCfnIamInlinePolicy[];
28
+ /**
29
+ * Parse the attached `ManagedPolicyArns` property into policy ARN strings.
30
+ */
31
+ managedPolicyArns(resource: SimCfnResource, properties: SimCfnTemplateValueRecord): readonly string[];
32
+ private inlinePolicy;
33
+ }
34
+ export {};
35
+ //# sourceMappingURL=sim-cfn-iam-policies-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-iam-policies-parser.d.ts","sourceRoot":"","sources":["../../../../src/service/iam/cfn/sim-cfn-iam-policies-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AACxF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+DAA+D,CAAC;AAE/G,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,UAAU,iCAAiC;IACzC;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;GAOG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC,YAAY,UAAU,EAAE,iCAAiC,EAExD;IAED;;OAEG;IACH,cAAc,CACZ,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,yBAAyB,GACpC,SAAS,qBAAqB,EAAE,CAclC;IAED;;OAEG;IACH,iBAAiB,CACf,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,yBAAyB,GACpC,SAAS,MAAM,EAAE,CAsBnB;IAED,OAAO,CAAC,YAAY;CAuCrB"}
@@ -1,11 +1,16 @@
1
1
  /**
2
- * Parses the AWS::IAM::Role policy collection properties: the inline `Policies`
3
- * list and the attached `ManagedPolicyArns` list.
2
+ * Parses the policy collection properties an IAM identity Resource carries:
3
+ * the inline `Policies` list and the attached `ManagedPolicyArns` list.
4
4
  *
5
- * These list-shaped properties carry the bulk of the Role property validation,
6
- * so grouping them here keeps the main Role props parser small.
5
+ * AWS::IAM::Role and AWS::IAM::User declare both in the same shape, and these
6
+ * list-shaped properties carry the bulk of the property validation, so
7
+ * grouping them here keeps each identity's own props parser small.
7
8
  */
8
- export class SimCfnIamRolePoliciesParser {
9
+ export class SimCfnIamPoliciesParser {
10
+ resourceType;
11
+ constructor(properties) {
12
+ this.resourceType = properties.resourceType;
13
+ }
9
14
  /**
10
15
  * Parse the inline `Policies` property into normalised inline policies.
11
16
  */
@@ -15,7 +20,7 @@ export class SimCfnIamRolePoliciesParser {
15
20
  return [];
16
21
  }
17
22
  if (!Array.isArray(policies)) {
18
- throw new TypeError(`Invalid AWS::IAM::Role ${resource.logicalId}: Policies must be an array`);
23
+ throw new TypeError(`Invalid ${this.resourceType} ${resource.logicalId}: Policies must be an array`);
19
24
  }
20
25
  return policies.map((policy) => this.inlinePolicy(resource, policy));
21
26
  }
@@ -28,11 +33,11 @@ export class SimCfnIamRolePoliciesParser {
28
33
  return [];
29
34
  }
30
35
  if (!Array.isArray(managedPolicyArns)) {
31
- throw new TypeError(`Invalid AWS::IAM::Role ${resource.logicalId}: ManagedPolicyArns must be an array`);
36
+ throw new TypeError(`Invalid ${this.resourceType} ${resource.logicalId}: ManagedPolicyArns must be an array`);
32
37
  }
33
38
  return managedPolicyArns.map((arn) => {
34
39
  if (typeof arn !== "string") {
35
- throw new TypeError(`Invalid AWS::IAM::Role ${resource.logicalId}: each ManagedPolicyArns entry must be a string`);
40
+ throw new TypeError(`Invalid ${this.resourceType} ${resource.logicalId}: each ManagedPolicyArns entry must be a string`);
36
41
  }
37
42
  return arn;
38
43
  });
@@ -41,17 +46,17 @@ export class SimCfnIamRolePoliciesParser {
41
46
  if (typeof policy !== "object" ||
42
47
  policy === null ||
43
48
  Array.isArray(policy)) {
44
- throw new TypeError(`Invalid AWS::IAM::Role ${resource.logicalId}: each Policies entry must be an object`);
49
+ throw new TypeError(`Invalid ${this.resourceType} ${resource.logicalId}: each Policies entry must be an object`);
45
50
  }
46
51
  const policyName = policy["PolicyName"];
47
52
  if (typeof policyName !== "string") {
48
- throw new TypeError(`Invalid AWS::IAM::Role ${resource.logicalId}: Policies entry PolicyName must be a string`);
53
+ throw new TypeError(`Invalid ${this.resourceType} ${resource.logicalId}: Policies entry PolicyName must be a string`);
49
54
  }
50
55
  const policyDocument = policy["PolicyDocument"];
51
56
  if (typeof policyDocument !== "object" ||
52
57
  policyDocument === null ||
53
58
  Array.isArray(policyDocument)) {
54
- throw new TypeError(`Invalid AWS::IAM::Role ${resource.logicalId}: Policies entry PolicyDocument must be an object`);
59
+ throw new TypeError(`Invalid ${this.resourceType} ${resource.logicalId}: Policies entry PolicyDocument must be an object`);
55
60
  }
56
61
  return {
57
62
  policyName,
@@ -59,4 +64,4 @@ export class SimCfnIamRolePoliciesParser {
59
64
  };
60
65
  }
61
66
  }
62
- //# sourceMappingURL=sim-cfn-iam-role-policies-parser.js.map
67
+ //# sourceMappingURL=sim-cfn-iam-policies-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-iam-policies-parser.js","sourceRoot":"","sources":["../../../../src/service/iam/cfn/sim-cfn-iam-policies-parser.ts"],"names":[],"mappings":"AAeA;;;;;;;GAOG;AACH,MAAM,OAAO,uBAAuB;IACjB,YAAY,CAAS;IAEtC,YAAY,UAA6C;QACvD,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,cAAc,CACZ,QAAwB,EACxB,UAAqC;QAErC,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QAExC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,SAAS,CACjB,WAAW,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,SAAS,6BAA6B,CAChF,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,iBAAiB,CACf,QAAwB,EACxB,UAAqC;QAErC,MAAM,iBAAiB,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;QAE1D,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,SAAS,CACjB,WAAW,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,SAAS,sCAAsC,CACzF,CAAC;QACJ,CAAC;QAED,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACnC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,IAAI,SAAS,CACjB,WAAW,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,SAAS,iDAAiD,CACpG,CAAC;YACJ,CAAC;YAED,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,YAAY,CAClB,QAAwB,EACxB,MAAqD;QAErD,IACE,OAAO,MAAM,KAAK,QAAQ;YAC1B,MAAM,KAAK,IAAI;YACf,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EACrB,CAAC;YACD,MAAM,IAAI,SAAS,CACjB,WAAW,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,SAAS,yCAAyC,CAC5F,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QAExC,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,IAAI,SAAS,CACjB,WAAW,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,SAAS,8CAA8C,CACjG,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAEhD,IACE,OAAO,cAAc,KAAK,QAAQ;YAClC,cAAc,KAAK,IAAI;YACvB,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAC7B,CAAC;YACD,MAAM,IAAI,SAAS,CACjB,WAAW,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,SAAS,mDAAmD,CACtG,CAAC;QACJ,CAAC;QAED,OAAO;YACL,UAAU;YACV,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;SAC/C,CAAC;IACJ,CAAC;CACF"}
@@ -10,12 +10,23 @@ interface SimCfnIamResourceDeleterProperties {
10
10
  export declare class SimCfnIamResourceDeleter {
11
11
  private readonly iam;
12
12
  private readonly roleDeleter;
13
+ private readonly userDeleter;
13
14
  constructor(properties: SimCfnIamResourceDeleterProperties);
14
15
  /**
15
16
  * Delete a simulated IAM resource created from a CloudFormation Resource.
16
17
  */
17
18
  delete(resourceTypeName: string, resource: SimCfnResource, properties: SimCfnTemplateValueRecord): Promise<void>;
18
19
  private deleteManagedPolicy;
20
+ /**
21
+ * Take the Managed Policy off every Role still carrying it.
22
+ *
23
+ * DeletePolicy refuses a policy anything is attached to, and an
24
+ * AWS::IAM::ManagedPolicy attaches itself to the Roles its `Roles` property
25
+ * names. A Role the same Stack created gives the policy up as its own
26
+ * Resource is deleted. A Role declared outside the Stack keeps it. This
27
+ * clears whatever attachments are left either way.
28
+ */
29
+ private detachManagedPolicy;
19
30
  /**
20
31
  * Take an AWS::IAM::Policy back off the Roles it was put on.
21
32
  *
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-iam-resource-deleter.d.ts","sourceRoot":"","sources":["../../../../src/service/iam/cfn/sim-cfn-iam-resource-deleter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AACxF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+DAA+D,CAAC;AAC/G,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAK5C,UAAU,kCAAkC;IAC1C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IAEnD,YAAY,UAAU,EAAE,kCAAkC,EAGzD;IAED;;OAEG;IACG,MAAM,CACV,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,yBAAyB,GACpC,OAAO,CAAC,IAAI,CAAC,CAoBf;YAEa,mBAAmB;IAUjC;;;;;;OAMG;YACW,kBAAkB;CAqBjC"}
1
+ {"version":3,"file":"sim-cfn-iam-resource-deleter.d.ts","sourceRoot":"","sources":["../../../../src/service/iam/cfn/sim-cfn-iam-resource-deleter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AACxF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+DAA+D,CAAC;AAC/G,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAM5C,UAAU,kCAAkC;IAC1C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IAEnD,YAAY,UAAU,EAAE,kCAAkC,EAIzD;IAED;;OAEG;IACG,MAAM,CACV,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,yBAAyB,GACpC,OAAO,CAAC,IAAI,CAAC,CAwBf;YAEa,mBAAmB;IAWjC;;;;;;;;OAQG;YACW,mBAAmB;IAajC;;;;;;OAMG;YACW,kBAAkB;CAqBjC"}
@@ -1,4 +1,5 @@
1
1
  import { SimCfnIamRoleDeleter } from "./role/sim-cfn-iam-role-deleter.js";
2
+ import { SimCfnIamUserDeleter } from "./user/sim-cfn-iam-user-deleter.js";
2
3
  import { assertDefined } from "../../../util/type-guard/defined.js";
3
4
  /**
4
5
  * Deletes the simulated IAM resources a CloudFormation Stack created.
@@ -6,9 +7,11 @@ import { assertDefined } from "../../../util/type-guard/defined.js";
6
7
  export class SimCfnIamResourceDeleter {
7
8
  iam;
8
9
  roleDeleter;
10
+ userDeleter;
9
11
  constructor(properties) {
10
12
  this.iam = properties.iam;
11
13
  this.roleDeleter = new SimCfnIamRoleDeleter({ iam: properties.iam });
14
+ this.userDeleter = new SimCfnIamUserDeleter({ iam: properties.iam });
12
15
  }
13
16
  /**
14
17
  * Delete a simulated IAM resource created from a CloudFormation Resource.
@@ -27,6 +30,10 @@ export class SimCfnIamResourceDeleter {
27
30
  await this.roleDeleter.delete(resource);
28
31
  return;
29
32
  }
33
+ case "User": {
34
+ await this.userDeleter.delete(resource);
35
+ return;
36
+ }
30
37
  default: {
31
38
  throw new Error(`Unsupported sim IAM CloudFormation Resource ${resourceTypeName} deletion`);
32
39
  }
@@ -35,8 +42,26 @@ export class SimCfnIamResourceDeleter {
35
42
  async deleteManagedPolicy(resource) {
36
43
  const policy = resource.simResource;
37
44
  assertDefined(policy, `sim IAM Managed Policy for CloudFormation Resource ${resource.logicalId}`);
45
+ await this.detachManagedPolicy(policy.arn);
38
46
  await this.iam.deletePolicy({ input: { PolicyArn: policy.arn } });
39
47
  }
48
+ /**
49
+ * Take the Managed Policy off every Role still carrying it.
50
+ *
51
+ * DeletePolicy refuses a policy anything is attached to, and an
52
+ * AWS::IAM::ManagedPolicy attaches itself to the Roles its `Roles` property
53
+ * names. A Role the same Stack created gives the policy up as its own
54
+ * Resource is deleted. A Role declared outside the Stack keeps it. This
55
+ * clears whatever attachments are left either way.
56
+ */
57
+ async detachManagedPolicy(policyArn) {
58
+ await Promise.all(this.iam.roles
59
+ .values()
60
+ .filter((role) => role.attachedPolicyArns.has(policyArn))
61
+ .map(async (role) => this.iam.detachRolePolicy({
62
+ input: { RoleName: role.roleName, PolicyArn: policyArn },
63
+ })));
64
+ }
40
65
  /**
41
66
  * Take an AWS::IAM::Policy back off the Roles it was put on.
42
67
  *
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-iam-resource-deleter.js","sourceRoot":"","sources":["../../../../src/service/iam/cfn/sim-cfn-iam-resource-deleter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAMpE;;GAEG;AACH,MAAM,OAAO,wBAAwB;IAClB,GAAG,CAAS;IACZ,WAAW,CAAuB;IAEnD,YAAY,UAA8C;QACxD,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,oBAAoB,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,gBAAwB,EACxB,QAAwB,EACxB,UAAqC;QAErC,QAAQ,gBAAgB,EAAE,CAAC;YACzB,KAAK,eAAe,EAAE,CAAC;gBACrB,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;gBACzC,OAAO;YACT,CAAC;YACD,KAAK,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBAC1C,OAAO;YACT,CAAC;YACD,KAAK,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACxC,OAAO;YACT,CAAC;YACD,SAAS,CAAC;gBACR,MAAM,IAAI,KAAK,CACb,+CAA+C,gBAAgB,WAAW,CAC3E,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,QAAwB;QACxD,MAAM,MAAM,GAAG,QAAQ,CAAC,WAA8C,CAAC;QACvE,aAAa,CACX,MAAM,EACN,sDAAsD,QAAQ,CAAC,SAAS,EAAE,CAC3E,CAAC;QAEF,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,kBAAkB,CAC9B,UAAqC;QAErC,MAAM,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QAElC,yEAAyE;QACzE,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,MAAM,OAAO,CAAC,GAAG,CACf,KAAK;aACF,MAAM,CAAC,CAAC,QAAQ,EAAsB,EAAE,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC;aACtE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CACtB,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC;YACxB,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE;SACtD,CAAC,CACH,CACJ,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"sim-cfn-iam-resource-deleter.js","sourceRoot":"","sources":["../../../../src/service/iam/cfn/sim-cfn-iam-resource-deleter.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ export declare class SimIamCloudFormationResourceFactory implements SimCfnServic
9
9
  private readonly managedPolicyCreator;
10
10
  private readonly policyCreator;
11
11
  private readonly roleCreator;
12
+ private readonly userCreator;
12
13
  private readonly deleter;
13
14
  constructor(iam: SimIam);
14
15
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-iam-resource-factory.d.ts","sourceRoot":"","sources":["../../../../src/service/iam/cfn/sim-cfn-iam-resource-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,sCAAsC,EACvC,MAAM,mDAAmD,CAAC;AAC3D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wEAAwE,CAAC;AAC3H,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAK5C,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAErH;;GAEG;AACH,qBAAa,mCAAoC,YAAW,4BAA4B;IACtF,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAgC;IACrE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;IACvD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IAEnD,YAAY,GAAG,EAAE,MAAM,EAKtB;IAED;;OAEG;IACG,MAAM,CACV,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,sCAAsC,GAC9C,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA2B7B;IAED;;OAEG;IACG,MAAM,CACV,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,sCAAsC,GAC9C,OAAO,CAAC,IAAI,CAAC,CAMf;CACF"}
1
+ {"version":3,"file":"sim-cfn-iam-resource-factory.d.ts","sourceRoot":"","sources":["../../../../src/service/iam/cfn/sim-cfn-iam-resource-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,sCAAsC,EACvC,MAAM,mDAAmD,CAAC;AAC3D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wEAAwE,CAAC;AAC3H,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAM5C,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAErH;;GAEG;AACH,qBAAa,mCAAoC,YAAW,4BAA4B;IACtF,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAgC;IACrE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;IACvD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IAEnD,YAAY,GAAG,EAAE,MAAM,EAMtB;IAED;;OAEG;IACG,MAAM,CACV,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,sCAAsC,GAC9C,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAiC7B;IAED;;OAEG;IACG,MAAM,CACV,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,sCAAsC,GAC9C,OAAO,CAAC,IAAI,CAAC,CAMf;CACF"}
@@ -1,6 +1,7 @@
1
1
  import { SimCfnIamManagedPolicyCreator } from "./managed-policy/sim-cfn-iam-managed-policy-creator.js";
2
2
  import { SimCfnIamPolicyCreator } from "./policy/sim-cfn-iam-policy-creator.js";
3
3
  import { SimCfnIamRoleCreator } from "./role/sim-cfn-iam-role-creator.js";
4
+ import { SimCfnIamUserCreator } from "./user/sim-cfn-iam-user-creator.js";
4
5
  import { SimCfnIamResourceDeleter } from "./sim-cfn-iam-resource-deleter.js";
5
6
  /**
6
7
  * CloudFormation Resource factory for simulated IAM resources.
@@ -9,11 +10,13 @@ export class SimIamCloudFormationResourceFactory {
9
10
  managedPolicyCreator;
10
11
  policyCreator;
11
12
  roleCreator;
13
+ userCreator;
12
14
  deleter;
13
15
  constructor(iam) {
14
16
  this.managedPolicyCreator = new SimCfnIamManagedPolicyCreator({ iam });
15
17
  this.policyCreator = new SimCfnIamPolicyCreator({ iam });
16
18
  this.roleCreator = new SimCfnIamRoleCreator({ iam });
19
+ this.userCreator = new SimCfnIamUserCreator({ iam });
17
20
  this.deleter = new SimCfnIamResourceDeleter({ iam });
18
21
  }
19
22
  /**
@@ -31,6 +34,9 @@ export class SimIamCloudFormationResourceFactory {
31
34
  case "Role": {
32
35
  return await this.roleCreator.create(resource, context.resolvedProperties ?? resource.properties);
33
36
  }
37
+ case "User": {
38
+ return await this.userCreator.create(resource, context.resolvedProperties ?? resource.properties);
39
+ }
34
40
  default: {
35
41
  throw new Error(`Unsupported sim IAM CloudFormation Resource ${resourceTypeName}`);
36
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-iam-resource-factory.js","sourceRoot":"","sources":["../../../../src/service/iam/cfn/sim-cfn-iam-resource-factory.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,6BAA6B,EAAE,MAAM,wDAAwD,CAAC;AACvG,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAG7E;;GAEG;AACH,MAAM,OAAO,mCAAmC;IAC7B,oBAAoB,CAAgC;IACpD,aAAa,CAAyB;IACtC,WAAW,CAAuB;IAClC,OAAO,CAA2B;IAEnD,YAAY,GAAW;QACrB,IAAI,CAAC,oBAAoB,GAAG,IAAI,6BAA6B,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,IAAI,sBAAsB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,GAAG,IAAI,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,GAAG,IAAI,wBAAwB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,gBAAwB,EACxB,QAAwB,EACxB,OAA+C;QAE/C,QAAQ,gBAAgB,EAAE,CAAC;YACzB,KAAK,eAAe,EAAE,CAAC;gBACrB,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAC3C,QAAQ,EACR,OAAO,CAAC,kBAAkB,IAAI,QAAQ,CAAC,UAAU,CAClD,CAAC;YACJ,CAAC;YACD,KAAK,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAC7B,QAAQ,EACR,OAAO,CAAC,kBAAkB,IAAI,QAAQ,CAAC,UAAU,CAClD,CAAC;gBACF,OAAO;YACT,CAAC;YACD,KAAK,MAAM,EAAE,CAAC;gBACZ,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAClC,QAAQ,EACR,OAAO,CAAC,kBAAkB,IAAI,QAAQ,CAAC,UAAU,CAClD,CAAC;YACJ,CAAC;YACD,SAAS,CAAC;gBACR,MAAM,IAAI,KAAK,CACb,+CAA+C,gBAAgB,EAAE,CAClE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,gBAAwB,EACxB,QAAwB,EACxB,OAA+C;QAE/C,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CACvB,gBAAgB,EAChB,QAAQ,EACR,OAAO,CAAC,kBAAkB,IAAI,QAAQ,CAAC,UAAU,CAClD,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"sim-cfn-iam-resource-factory.js","sourceRoot":"","sources":["../../../../src/service/iam/cfn/sim-cfn-iam-resource-factory.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,6BAA6B,EAAE,MAAM,wDAAwD,CAAC;AACvG,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAG7E;;GAEG;AACH,MAAM,OAAO,mCAAmC;IAC7B,oBAAoB,CAAgC;IACpD,aAAa,CAAyB;IACtC,WAAW,CAAuB;IAClC,WAAW,CAAuB;IAClC,OAAO,CAA2B;IAEnD,YAAY,GAAW;QACrB,IAAI,CAAC,oBAAoB,GAAG,IAAI,6BAA6B,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,IAAI,sBAAsB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,GAAG,IAAI,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,IAAI,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,GAAG,IAAI,wBAAwB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,gBAAwB,EACxB,QAAwB,EACxB,OAA+C;QAE/C,QAAQ,gBAAgB,EAAE,CAAC;YACzB,KAAK,eAAe,EAAE,CAAC;gBACrB,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAC3C,QAAQ,EACR,OAAO,CAAC,kBAAkB,IAAI,QAAQ,CAAC,UAAU,CAClD,CAAC;YACJ,CAAC;YACD,KAAK,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAC7B,QAAQ,EACR,OAAO,CAAC,kBAAkB,IAAI,QAAQ,CAAC,UAAU,CAClD,CAAC;gBACF,OAAO;YACT,CAAC;YACD,KAAK,MAAM,EAAE,CAAC;gBACZ,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAClC,QAAQ,EACR,OAAO,CAAC,kBAAkB,IAAI,QAAQ,CAAC,UAAU,CAClD,CAAC;YACJ,CAAC;YACD,KAAK,MAAM,EAAE,CAAC;gBACZ,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAClC,QAAQ,EACR,OAAO,CAAC,kBAAkB,IAAI,QAAQ,CAAC,UAAU,CAClD,CAAC;YACJ,CAAC;YACD,SAAS,CAAC;gBACR,MAAM,IAAI,KAAK,CACb,+CAA+C,gBAAgB,EAAE,CAClE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,gBAAwB,EACxB,QAAwB,EACxB,OAA+C;QAE/C,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CACvB,gBAAgB,EAChB,QAAQ,EACR,OAAO,CAAC,kBAAkB,IAAI,QAAQ,CAAC,UAAU,CAClD,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,28 @@
1
+ import type { SimCfnResource } from "../../../cloudformation/resource/sim-cfn-resource.js";
2
+ import type { SimCfnTemplateValueRecord } from "../../../cloudformation/template/value/sim-cfn-template-value.js";
3
+ import type { SimIam } from "../../sim-iam.js";
4
+ import type { SimIamUser } from "../../user/sim-iam-user.js";
5
+ interface SimCfnIamUserCreatorProperties {
6
+ readonly iam: SimIam;
7
+ }
8
+ /**
9
+ * Creates simulated IAM Users from CloudFormation Resources.
10
+ */
11
+ export declare class SimCfnIamUserCreator {
12
+ private readonly iam;
13
+ private readonly propsParser;
14
+ constructor(properties: SimCfnIamUserCreatorProperties);
15
+ /**
16
+ * Create a simulated User from an AWS::IAM::User Resource.
17
+ */
18
+ create(resource: SimCfnResource, properties: SimCfnTemplateValueRecord): Promise<SimIamUser>;
19
+ private putInlinePolicies;
20
+ private attachManagedPolicies;
21
+ /**
22
+ * Give the User a console password, the way real CloudFormation calls
23
+ * CreateLoginProfile for a `LoginProfile` property.
24
+ */
25
+ private createLoginProfile;
26
+ }
27
+ export {};
28
+ //# sourceMappingURL=sim-cfn-iam-user-creator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-iam-user-creator.d.ts","sourceRoot":"","sources":["../../../../../src/service/iam/cfn/user/sim-cfn-iam-user-creator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kEAAkE,CAAC;AAClH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,4BAA4B,CAAC;AAO7E,UAAU,8BAA8B;IACtC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuC;IAEnE,YAAY,UAAU,EAAE,8BAA8B,EAErD;IAED;;OAEG;IACG,MAAM,CACV,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,yBAAyB,GACpC,OAAO,CAAC,UAAU,CAAC,CAuBrB;YAEa,iBAAiB;YAgBjB,qBAAqB;IAenC;;;OAGG;YACW,kBAAkB;CAiBjC"}
@@ -0,0 +1,67 @@
1
+ import { assertDefined } from "../../../../util/type-guard/defined.js";
2
+ import { SimCfnIamUserPropertiesParser, } from "./sim-cfn-iam-user-properties-parser.js";
3
+ /**
4
+ * Creates simulated IAM Users from CloudFormation Resources.
5
+ */
6
+ export class SimCfnIamUserCreator {
7
+ iam;
8
+ propsParser = new SimCfnIamUserPropertiesParser();
9
+ constructor(properties) {
10
+ this.iam = properties.iam;
11
+ }
12
+ /**
13
+ * Create a simulated User from an AWS::IAM::User Resource.
14
+ */
15
+ async create(resource, properties) {
16
+ const userProperties = this.propsParser.parse(resource, properties);
17
+ await this.iam.createUser({
18
+ input: {
19
+ UserName: userProperties.userName,
20
+ Path: userProperties.path,
21
+ },
22
+ });
23
+ await Promise.all([
24
+ this.putInlinePolicies(userProperties),
25
+ this.attachManagedPolicies(userProperties),
26
+ this.createLoginProfile(userProperties),
27
+ ]);
28
+ const user = this.iam.users.get(userProperties.userName);
29
+ assertDefined(user, `Sim IAM User ${userProperties.userName} after CloudFormation creation`);
30
+ return user;
31
+ }
32
+ async putInlinePolicies(userProperties) {
33
+ await Promise.all(userProperties.inlinePolicies.map(async (inlinePolicy) => this.iam.putUserPolicy({
34
+ input: {
35
+ UserName: userProperties.userName,
36
+ PolicyName: inlinePolicy.policyName,
37
+ PolicyDocument: inlinePolicy.policyDocument,
38
+ },
39
+ })));
40
+ }
41
+ async attachManagedPolicies(userProperties) {
42
+ await Promise.all(userProperties.managedPolicyArns.map(async (policyArn) => this.iam.attachUserPolicy({
43
+ input: {
44
+ UserName: userProperties.userName,
45
+ PolicyArn: policyArn,
46
+ },
47
+ })));
48
+ }
49
+ /**
50
+ * Give the User a console password, the way real CloudFormation calls
51
+ * CreateLoginProfile for a `LoginProfile` property.
52
+ */
53
+ async createLoginProfile(userProperties) {
54
+ const { loginProfile } = userProperties;
55
+ if (loginProfile === undefined) {
56
+ return;
57
+ }
58
+ await this.iam.createLoginProfile({
59
+ input: {
60
+ UserName: userProperties.userName,
61
+ Password: loginProfile.password,
62
+ PasswordResetRequired: loginProfile.passwordResetRequired,
63
+ },
64
+ });
65
+ }
66
+ }
67
+ //# sourceMappingURL=sim-cfn-iam-user-creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-iam-user-creator.js","sourceRoot":"","sources":["../../../../../src/service/iam/cfn/user/sim-cfn-iam-user-creator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EACL,6BAA6B,GAE9B,MAAM,yCAAyC,CAAC;AAMjD;;GAEG;AACH,MAAM,OAAO,oBAAoB;IACd,GAAG,CAAS;IACZ,WAAW,GAAG,IAAI,6BAA6B,EAAE,CAAC;IAEnE,YAAY,UAA0C;QACpD,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,QAAwB,EACxB,UAAqC;QAErC,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAEpE,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;YACxB,KAAK,EAAE;gBACL,QAAQ,EAAE,cAAc,CAAC,QAAQ;gBACjC,IAAI,EAAE,cAAc,CAAC,IAAI;aAC1B;SACF,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC;YACtC,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC;YAC1C,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC;SACxC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,QAA0B,CAAC,CAAC;QAC3E,aAAa,CACX,IAAI,EACJ,gBAAgB,cAAc,CAAC,QAAQ,gCAAgC,CACxE,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,cAAuC;QAEvC,MAAM,OAAO,CAAC,GAAG,CACf,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,CACvD,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;YACrB,KAAK,EAAE;gBACL,QAAQ,EAAE,cAAc,CAAC,QAAQ;gBACjC,UAAU,EAAE,YAAY,CAAC,UAAU;gBACnC,cAAc,EAAE,YAAY,CAAC,cAAc;aAC5C;SACF,CAAC,CACH,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,cAAuC;QAEvC,MAAM,OAAO,CAAC,GAAG,CACf,cAAc,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CACvD,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC;YACxB,KAAK,EAAE;gBACL,QAAQ,EAAE,cAAc,CAAC,QAAQ;gBACjC,SAAS,EAAE,SAAS;aACrB;SACF,CAAC,CACH,CACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,kBAAkB,CAC9B,cAAuC;QAEvC,MAAM,EAAE,YAAY,EAAE,GAAG,cAAc,CAAC;QAExC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC;YAChC,KAAK,EAAE;gBACL,QAAQ,EAAE,cAAc,CAAC,QAAQ;gBACjC,QAAQ,EAAE,YAAY,CAAC,QAAQ;gBAC/B,qBAAqB,EAAE,YAAY,CAAC,qBAAqB;aAC1D;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,26 @@
1
+ import type { SimCfnResource } from "../../../cloudformation/resource/sim-cfn-resource.js";
2
+ import type { SimIam } from "../../sim-iam.js";
3
+ interface SimCfnIamUserDeleterProperties {
4
+ readonly iam: SimIam;
5
+ }
6
+ /**
7
+ * Deletes simulated Users created from AWS::IAM::User Resources.
8
+ *
9
+ * DeleteUser refuses a User that still has policies on it, the way DeleteRole
10
+ * refuses a Role, so the User's policies come off first. Real CloudFormation
11
+ * does the same for the ones it put there itself: a `ManagedPolicyArns` entry
12
+ * is detached and a `Policies` entry removed as part of deleting the User.
13
+ *
14
+ * Sim IAM serves no DeleteUserPolicy or DetachUserPolicy, so both come off the
15
+ * User record here rather than through a command.
16
+ */
17
+ export declare class SimCfnIamUserDeleter {
18
+ private readonly iam;
19
+ constructor(properties: SimCfnIamUserDeleterProperties);
20
+ /**
21
+ * Delete the User a CloudFormation Resource created.
22
+ */
23
+ delete(resource: SimCfnResource): Promise<void>;
24
+ }
25
+ export {};
26
+ //# sourceMappingURL=sim-cfn-iam-user-deleter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-iam-user-deleter.d.ts","sourceRoot":"","sources":["../../../../../src/service/iam/cfn/user/sim-cfn-iam-user-deleter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI/C,UAAU,8BAA8B;IACtC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,YAAY,UAAU,EAAE,8BAA8B,EAErD;IAED;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAWpD;CACF"}