@kensio/yulin 1.19.2 → 1.19.3

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 (705) hide show
  1. package/README.md +12 -0
  2. package/dist/serve/http/local-server/sim-aws-local-server.d.ts +31 -0
  3. package/dist/serve/http/local-server/sim-aws-local-server.d.ts.map +1 -1
  4. package/dist/serve/http/local-server/sim-aws-local-server.js +15 -1
  5. package/dist/serve/http/local-server/sim-aws-local-server.js.map +1 -1
  6. package/dist/serve/index.d.ts +1 -0
  7. package/dist/serve/index.d.ts.map +1 -1
  8. package/dist/serve/index.js.map +1 -1
  9. package/dist/serve/message/sim-local-message-logging.d.ts +39 -0
  10. package/dist/serve/message/sim-local-message-logging.d.ts.map +1 -0
  11. package/dist/serve/message/sim-local-message-logging.js +45 -0
  12. package/dist/serve/message/sim-local-message-logging.js.map +1 -0
  13. package/dist/serve/message/sim-message-log-console.d.ts +43 -0
  14. package/dist/serve/message/sim-message-log-console.d.ts.map +1 -0
  15. package/dist/serve/message/sim-message-log-console.js +71 -0
  16. package/dist/serve/message/sim-message-log-console.js.map +1 -0
  17. package/dist/serve/message/sim-message-logging.d.ts +42 -0
  18. package/dist/serve/message/sim-message-logging.d.ts.map +1 -0
  19. package/dist/serve/message/sim-message-logging.js +31 -0
  20. package/dist/serve/message/sim-message-logging.js.map +1 -0
  21. package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts +3 -0
  22. package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts.map +1 -1
  23. package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +12 -1
  24. package/dist/service/aws/factory/sim-aws-account-region-service-builder.js.map +1 -1
  25. package/dist/service/aws/factory/sim-aws-service-factory.d.ts +9 -0
  26. package/dist/service/aws/factory/sim-aws-service-factory.d.ts.map +1 -1
  27. package/dist/service/aws/factory/sim-aws-service-factory.js +10 -0
  28. package/dist/service/aws/factory/sim-aws-service-factory.js.map +1 -1
  29. package/dist/service/aws/message/sim-aws-logged-message.d.ts +46 -0
  30. package/dist/service/aws/message/sim-aws-logged-message.d.ts.map +1 -0
  31. package/dist/service/aws/message/sim-aws-logged-message.js +2 -0
  32. package/dist/service/aws/message/sim-aws-logged-message.js.map +1 -0
  33. package/dist/service/aws/message/sim-aws-message-log.d.ts +40 -0
  34. package/dist/service/aws/message/sim-aws-message-log.d.ts.map +1 -0
  35. package/dist/service/aws/message/sim-aws-message-log.js +40 -0
  36. package/dist/service/aws/message/sim-aws-message-log.js.map +1 -0
  37. package/dist/service/cloudformation/cdk/s3/bucket-notifications/property/sim-cdk-bucket-notification-properties.d.ts +4 -3
  38. package/dist/service/cloudformation/cdk/s3/bucket-notifications/property/sim-cdk-bucket-notification-properties.d.ts.map +1 -1
  39. package/dist/service/cloudformation/cdk/s3/bucket-notifications/property/sim-cdk-bucket-notification-properties.js +4 -3
  40. package/dist/service/cloudformation/cdk/s3/bucket-notifications/property/sim-cdk-bucket-notification-properties.js.map +1 -1
  41. package/dist/service/cloudformation/cdk/s3/bucket-notifications/sim-cdk-bucket-notifications.d.ts +5 -0
  42. package/dist/service/cloudformation/cdk/s3/bucket-notifications/sim-cdk-bucket-notifications.d.ts.map +1 -1
  43. package/dist/service/cloudformation/cdk/s3/bucket-notifications/sim-cdk-bucket-notifications.js +5 -0
  44. package/dist/service/cloudformation/cdk/s3/bucket-notifications/sim-cdk-bucket-notifications.js.map +1 -1
  45. package/dist/service/cloudformation/resource/cfn/ses/sim-ses-cfn-value-adapter.d.ts.map +1 -1
  46. package/dist/service/cloudformation/resource/cfn/ses/sim-ses-cfn-value-adapter.js +8 -0
  47. package/dist/service/cloudformation/resource/cfn/ses/sim-ses-cfn-value-adapter.js.map +1 -1
  48. package/dist/service/cloudformation/resource/cfn/ses/sim-ses-configuration-set-cfn.d.ts +30 -0
  49. package/dist/service/cloudformation/resource/cfn/ses/sim-ses-configuration-set-cfn.d.ts.map +1 -0
  50. package/dist/service/cloudformation/resource/cfn/ses/sim-ses-configuration-set-cfn.js +29 -0
  51. package/dist/service/cloudformation/resource/cfn/ses/sim-ses-configuration-set-cfn.js.map +1 -0
  52. package/dist/service/cloudformation/resource/cfn/ses/sim-ses-identity-cfn.js +1 -1
  53. package/dist/service/cloudformation/resource/cfn/ses/sim-ses-identity-cfn.js.map +1 -1
  54. package/dist/service/cognito/cfn/client/sim-cfn-cognito-client-properties.d.ts.map +1 -1
  55. package/dist/service/cognito/cfn/client/sim-cfn-cognito-client-properties.js +2 -0
  56. package/dist/service/cognito/cfn/client/sim-cfn-cognito-client-properties.js.map +1 -1
  57. package/dist/service/cognito/cfn/sim-cfn-cognito-property-parser.d.ts +7 -0
  58. package/dist/service/cognito/cfn/sim-cfn-cognito-property-parser.d.ts.map +1 -1
  59. package/dist/service/cognito/cfn/sim-cfn-cognito-property-parser.js +14 -0
  60. package/dist/service/cognito/cfn/sim-cfn-cognito-property-parser.js.map +1 -1
  61. package/dist/service/cognito/cfn/user-pool/sim-cfn-cognito-user-pool-properties.d.ts.map +1 -1
  62. package/dist/service/cognito/cfn/user-pool/sim-cfn-cognito-user-pool-properties.js +10 -0
  63. package/dist/service/cognito/cfn/user-pool/sim-cfn-cognito-user-pool-properties.js.map +1 -1
  64. package/dist/service/cognito/command/auth/sim-cognito-available-challenges.d.ts.map +1 -1
  65. package/dist/service/cognito/command/auth/sim-cognito-available-challenges.js +7 -6
  66. package/dist/service/cognito/command/auth/sim-cognito-available-challenges.js.map +1 -1
  67. package/dist/service/cognito/command/client/sim-cognito-unsimulated-client-options.d.ts +20 -0
  68. package/dist/service/cognito/command/client/sim-cognito-unsimulated-client-options.d.ts.map +1 -1
  69. package/dist/service/cognito/command/client/sim-cognito-unsimulated-client-options.js +24 -4
  70. package/dist/service/cognito/command/client/sim-cognito-unsimulated-client-options.js.map +1 -1
  71. package/dist/service/cognito/command/sim-cognito-commands.d.ts +4 -0
  72. package/dist/service/cognito/command/sim-cognito-commands.d.ts.map +1 -1
  73. package/dist/service/cognito/command/sim-cognito-commands.js +8 -2
  74. package/dist/service/cognito/command/sim-cognito-commands.js.map +1 -1
  75. package/dist/service/cognito/command/sim-cognito-unsimulated-input.d.ts +9 -0
  76. package/dist/service/cognito/command/sim-cognito-unsimulated-input.d.ts.map +1 -1
  77. package/dist/service/cognito/command/sim-cognito-unsimulated-input.js +13 -3
  78. package/dist/service/cognito/command/sim-cognito-unsimulated-input.js.map +1 -1
  79. package/dist/service/cognito/command/user/sim-cognito-user-mfa-commands.d.ts.map +1 -1
  80. package/dist/service/cognito/command/user/sim-cognito-user-mfa-commands.js +2 -1
  81. package/dist/service/cognito/command/user/sim-cognito-user-mfa-commands.js.map +1 -1
  82. package/dist/service/cognito/command/user/user-mfa.command.d.ts +4 -3
  83. package/dist/service/cognito/command/user/user-mfa.command.d.ts.map +1 -1
  84. package/dist/service/cognito/command/user-pool/sim-cognito-unsimulated-pool-messaging.d.ts +22 -8
  85. package/dist/service/cognito/command/user-pool/sim-cognito-unsimulated-pool-messaging.d.ts.map +1 -1
  86. package/dist/service/cognito/command/user-pool/sim-cognito-unsimulated-pool-messaging.js +24 -11
  87. package/dist/service/cognito/command/user-pool/sim-cognito-unsimulated-pool-messaging.js.map +1 -1
  88. package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-mfa-commands.d.ts +3 -3
  89. package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-mfa-commands.d.ts.map +1 -1
  90. package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-mfa-commands.js +5 -4
  91. package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-mfa-commands.js.map +1 -1
  92. package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-view.d.ts +6 -0
  93. package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-view.d.ts.map +1 -1
  94. package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-view.js +7 -0
  95. package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-view.js.map +1 -1
  96. package/dist/service/cognito/command/user-pool/user-pool-mfa.command.d.ts +7 -6
  97. package/dist/service/cognito/command/user-pool/user-pool-mfa.command.d.ts.map +1 -1
  98. package/dist/service/cognito/command/user-pool/user-pool.command.d.ts +4 -2
  99. package/dist/service/cognito/command/user-pool/user-pool.command.d.ts.map +1 -1
  100. package/dist/service/cognito/error/sim-cognito.error.d.ts +23 -0
  101. package/dist/service/cognito/error/sim-cognito.error.d.ts.map +1 -1
  102. package/dist/service/cognito/error/sim-cognito.error.js +27 -0
  103. package/dist/service/cognito/error/sim-cognito.error.js.map +1 -1
  104. package/dist/service/cognito/index.d.ts +4 -0
  105. package/dist/service/cognito/index.d.ts.map +1 -1
  106. package/dist/service/cognito/index.js +4 -0
  107. package/dist/service/cognito/index.js.map +1 -1
  108. package/dist/service/cognito/sim-cognito-identity-provider.d.ts +14 -0
  109. package/dist/service/cognito/sim-cognito-identity-provider.d.ts.map +1 -1
  110. package/dist/service/cognito/sim-cognito-identity-provider.js +5 -1
  111. package/dist/service/cognito/sim-cognito-identity-provider.js.map +1 -1
  112. package/dist/service/cognito/user-pool/message/sim-aws-cognito-email-senders.d.ts +42 -0
  113. package/dist/service/cognito/user-pool/message/sim-aws-cognito-email-senders.d.ts.map +1 -0
  114. package/dist/service/cognito/user-pool/message/sim-aws-cognito-email-senders.js +84 -0
  115. package/dist/service/cognito/user-pool/message/sim-aws-cognito-email-senders.js.map +1 -0
  116. package/dist/service/cognito/user-pool/message/sim-cognito-email-configuration-reader.d.ts +31 -0
  117. package/dist/service/cognito/user-pool/message/sim-cognito-email-configuration-reader.d.ts.map +1 -0
  118. package/dist/service/cognito/user-pool/message/sim-cognito-email-configuration-reader.js +72 -0
  119. package/dist/service/cognito/user-pool/message/sim-cognito-email-configuration-reader.js.map +1 -0
  120. package/dist/service/cognito/user-pool/message/sim-cognito-email-configuration.d.ts +85 -0
  121. package/dist/service/cognito/user-pool/message/sim-cognito-email-configuration.d.ts.map +1 -0
  122. package/dist/service/cognito/user-pool/message/sim-cognito-email-configuration.js +117 -0
  123. package/dist/service/cognito/user-pool/message/sim-cognito-email-configuration.js.map +1 -0
  124. package/dist/service/cognito/user-pool/message/sim-cognito-email-senders.d.ts +73 -0
  125. package/dist/service/cognito/user-pool/message/sim-cognito-email-senders.d.ts.map +1 -0
  126. package/dist/service/cognito/user-pool/message/sim-cognito-email-senders.js +23 -0
  127. package/dist/service/cognito/user-pool/message/sim-cognito-email-senders.js.map +1 -0
  128. package/dist/service/cognito/user-pool/message/sim-cognito-email-source-arn.d.ts +39 -0
  129. package/dist/service/cognito/user-pool/message/sim-cognito-email-source-arn.d.ts.map +1 -0
  130. package/dist/service/cognito/user-pool/message/sim-cognito-email-source-arn.js +33 -0
  131. package/dist/service/cognito/user-pool/message/sim-cognito-email-source-arn.js.map +1 -0
  132. package/dist/service/cognito/user-pool/message/sim-cognito-pool-email-delivery.d.ts +41 -0
  133. package/dist/service/cognito/user-pool/message/sim-cognito-pool-email-delivery.d.ts.map +1 -0
  134. package/dist/service/cognito/user-pool/message/sim-cognito-pool-email-delivery.js +66 -0
  135. package/dist/service/cognito/user-pool/message/sim-cognito-pool-email-delivery.js.map +1 -0
  136. package/dist/service/cognito/user-pool/message/sim-cognito-pool-messenger.d.ts +19 -4
  137. package/dist/service/cognito/user-pool/message/sim-cognito-pool-messenger.d.ts.map +1 -1
  138. package/dist/service/cognito/user-pool/message/sim-cognito-pool-messenger.js +30 -8
  139. package/dist/service/cognito/user-pool/message/sim-cognito-pool-messenger.js.map +1 -1
  140. package/dist/service/cognito/user-pool/message/sim-cognito-sent-message.d.ts +9 -3
  141. package/dist/service/cognito/user-pool/message/sim-cognito-sent-message.d.ts.map +1 -1
  142. package/dist/service/cognito/user-pool/message/sim-cognito-sent-message.js +9 -3
  143. package/dist/service/cognito/user-pool/message/sim-cognito-sent-message.js.map +1 -1
  144. package/dist/service/cognito/user-pool/mfa/sim-cognito-user-pool-mfa.d.ts +2 -3
  145. package/dist/service/cognito/user-pool/mfa/sim-cognito-user-pool-mfa.d.ts.map +1 -1
  146. package/dist/service/cognito/user-pool/mfa/sim-cognito-user-pool-mfa.js.map +1 -1
  147. package/dist/service/cognito/user-pool/sim-cognito-user-pool-arn.d.ts +4 -2
  148. package/dist/service/cognito/user-pool/sim-cognito-user-pool-arn.d.ts.map +1 -1
  149. package/dist/service/cognito/user-pool/sim-cognito-user-pool-arn.js +2 -1
  150. package/dist/service/cognito/user-pool/sim-cognito-user-pool-arn.js.map +1 -1
  151. package/dist/service/cognito/user-pool/sim-cognito-user-pool-settings.d.ts +13 -0
  152. package/dist/service/cognito/user-pool/sim-cognito-user-pool-settings.d.ts.map +1 -1
  153. package/dist/service/cognito/user-pool/sim-cognito-user-pool-settings.js +7 -0
  154. package/dist/service/cognito/user-pool/sim-cognito-user-pool-settings.js.map +1 -1
  155. package/dist/service/iam/index.d.ts +1 -0
  156. package/dist/service/iam/index.d.ts.map +1 -1
  157. package/dist/service/iam/index.js.map +1 -1
  158. package/dist/service/ses/account/sim-ses-account.d.ts +22 -0
  159. package/dist/service/ses/account/sim-ses-account.d.ts.map +1 -1
  160. package/dist/service/ses/account/sim-ses-account.js +31 -0
  161. package/dist/service/ses/account/sim-ses-account.js.map +1 -1
  162. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-creator.d.ts +30 -0
  163. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-creator.d.ts.map +1 -0
  164. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-creator.js +47 -0
  165. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-creator.js.map +1 -0
  166. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-option-groups.d.ts +23 -0
  167. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-option-groups.d.ts.map +1 -0
  168. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-option-groups.js +52 -0
  169. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-option-groups.js.map +1 -0
  170. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-properties.d.ts +39 -0
  171. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-properties.d.ts.map +1 -0
  172. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-properties.js +71 -0
  173. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-properties.js.map +1 -0
  174. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-unsimulated-properties.d.ts +17 -0
  175. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-unsimulated-properties.d.ts.map +1 -0
  176. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-unsimulated-properties.js +34 -0
  177. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-unsimulated-properties.js.map +1 -0
  178. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-creator.d.ts +5 -0
  179. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-creator.d.ts.map +1 -1
  180. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-creator.js +7 -0
  181. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-creator.js.map +1 -1
  182. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-properties.d.ts +13 -8
  183. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-properties.d.ts.map +1 -1
  184. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-properties.js +29 -14
  185. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-properties.js.map +1 -1
  186. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-settings.d.ts +18 -0
  187. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-settings.d.ts.map +1 -0
  188. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-settings.js +77 -0
  189. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-settings.js.map +1 -0
  190. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-values.d.ts +25 -0
  191. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-values.d.ts.map +1 -0
  192. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-values.js +49 -0
  193. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-values.js.map +1 -0
  194. package/dist/service/ses/cfn/sim-cfn-ses-property-scalars.d.ts +25 -0
  195. package/dist/service/ses/cfn/sim-cfn-ses-property-scalars.d.ts.map +1 -0
  196. package/dist/service/ses/cfn/sim-cfn-ses-property-scalars.js +69 -0
  197. package/dist/service/ses/cfn/sim-cfn-ses-property-scalars.js.map +1 -0
  198. package/dist/service/ses/cfn/sim-cfn-ses-resource-types.d.ts +2 -0
  199. package/dist/service/ses/cfn/sim-cfn-ses-resource-types.d.ts.map +1 -1
  200. package/dist/service/ses/cfn/sim-cfn-ses-resource-types.js +2 -0
  201. package/dist/service/ses/cfn/sim-cfn-ses-resource-types.js.map +1 -1
  202. package/dist/service/ses/cfn/sim-ses-cfn-resource-factory.d.ts +3 -2
  203. package/dist/service/ses/cfn/sim-ses-cfn-resource-factory.d.ts.map +1 -1
  204. package/dist/service/ses/cfn/sim-ses-cfn-resource-factory.js +43 -40
  205. package/dist/service/ses/cfn/sim-ses-cfn-resource-factory.js.map +1 -1
  206. package/dist/service/ses/command/account/account.command.d.ts +22 -0
  207. package/dist/service/ses/command/account/account.command.d.ts.map +1 -1
  208. package/dist/service/ses/command/account/sim-ses-account-commands.d.ts +12 -4
  209. package/dist/service/ses/command/account/sim-ses-account-commands.d.ts.map +1 -1
  210. package/dist/service/ses/command/account/sim-ses-account-commands.js +16 -3
  211. package/dist/service/ses/command/account/sim-ses-account-commands.js.map +1 -1
  212. package/dist/service/ses/command/account/sim-ses-account-report.d.ts +3 -0
  213. package/dist/service/ses/command/account/sim-ses-account-report.d.ts.map +1 -1
  214. package/dist/service/ses/command/account/sim-ses-account-report.js +4 -0
  215. package/dist/service/ses/command/account/sim-ses-account-report.js.map +1 -1
  216. package/dist/service/ses/command/authorize/sim-ses-authorizer.d.ts +8 -0
  217. package/dist/service/ses/command/authorize/sim-ses-authorizer.d.ts.map +1 -1
  218. package/dist/service/ses/command/authorize/sim-ses-authorizer.js +11 -1
  219. package/dist/service/ses/command/authorize/sim-ses-authorizer.js.map +1 -1
  220. package/dist/service/ses/command/configuration-set/configuration-set.command.d.ts +100 -0
  221. package/dist/service/ses/command/configuration-set/configuration-set.command.d.ts.map +1 -0
  222. package/dist/service/ses/command/configuration-set/configuration-set.command.js +2 -0
  223. package/dist/service/ses/command/configuration-set/configuration-set.command.js.map +1 -0
  224. package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-commands.d.ts +55 -0
  225. package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-commands.d.ts.map +1 -0
  226. package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-commands.js +105 -0
  227. package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-commands.js.map +1 -0
  228. package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-options.d.ts +11 -0
  229. package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-options.d.ts.map +1 -0
  230. package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-options.js +83 -0
  231. package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-options.js.map +1 -0
  232. package/dist/service/ses/command/configuration-set/sim-ses-unsimulated-configuration-set-input.d.ts +12 -0
  233. package/dist/service/ses/command/configuration-set/sim-ses-unsimulated-configuration-set-input.d.ts.map +1 -0
  234. package/dist/service/ses/command/configuration-set/sim-ses-unsimulated-configuration-set-input.js +27 -0
  235. package/dist/service/ses/command/configuration-set/sim-ses-unsimulated-configuration-set-input.js.map +1 -0
  236. package/dist/service/ses/command/identity/identity.command.d.ts +55 -2
  237. package/dist/service/ses/command/identity/identity.command.d.ts.map +1 -1
  238. package/dist/service/ses/command/identity/sim-ses-identity-attributes.d.ts +29 -0
  239. package/dist/service/ses/command/identity/sim-ses-identity-attributes.d.ts.map +1 -0
  240. package/dist/service/ses/command/identity/sim-ses-identity-attributes.js +60 -0
  241. package/dist/service/ses/command/identity/sim-ses-identity-attributes.js.map +1 -0
  242. package/dist/service/ses/command/identity/sim-ses-identity-commands.d.ts +6 -1
  243. package/dist/service/ses/command/identity/sim-ses-identity-commands.d.ts.map +1 -1
  244. package/dist/service/ses/command/identity/sim-ses-identity-commands.js +12 -12
  245. package/dist/service/ses/command/identity/sim-ses-identity-commands.js.map +1 -1
  246. package/dist/service/ses/command/identity/sim-ses-identity-input-settings.d.ts +16 -0
  247. package/dist/service/ses/command/identity/sim-ses-identity-input-settings.d.ts.map +1 -0
  248. package/dist/service/ses/command/identity/sim-ses-identity-input-settings.js +57 -0
  249. package/dist/service/ses/command/identity/sim-ses-identity-input-settings.js.map +1 -0
  250. package/dist/service/ses/command/send/sim-ses-send-email.d.ts +6 -0
  251. package/dist/service/ses/command/send/sim-ses-send-email.d.ts.map +1 -1
  252. package/dist/service/ses/command/send/sim-ses-send-email.js +7 -0
  253. package/dist/service/ses/command/send/sim-ses-send-email.js.map +1 -1
  254. package/dist/service/ses/command/send/sim-ses-service-send.d.ts +68 -0
  255. package/dist/service/ses/command/send/sim-ses-service-send.d.ts.map +1 -0
  256. package/dist/service/ses/command/send/sim-ses-service-send.js +69 -0
  257. package/dist/service/ses/command/send/sim-ses-service-send.js.map +1 -0
  258. package/dist/service/ses/command/send/sim-ses-suppression-check.d.ts +31 -0
  259. package/dist/service/ses/command/send/sim-ses-suppression-check.d.ts.map +1 -0
  260. package/dist/service/ses/command/send/sim-ses-suppression-check.js +37 -0
  261. package/dist/service/ses/command/send/sim-ses-suppression-check.js.map +1 -0
  262. package/dist/service/ses/command/send/sim-ses-verified-identities.d.ts +8 -0
  263. package/dist/service/ses/command/send/sim-ses-verified-identities.d.ts.map +1 -1
  264. package/dist/service/ses/command/send/sim-ses-verified-identities.js +15 -2
  265. package/dist/service/ses/command/send/sim-ses-verified-identities.js.map +1 -1
  266. package/dist/service/ses/command/sim-ses-command.types.d.ts +4 -2
  267. package/dist/service/ses/command/sim-ses-command.types.d.ts.map +1 -1
  268. package/dist/service/ses/command/suppression/sim-ses-suppression-commands.d.ts +44 -0
  269. package/dist/service/ses/command/suppression/sim-ses-suppression-commands.d.ts.map +1 -0
  270. package/dist/service/ses/command/suppression/sim-ses-suppression-commands.js +79 -0
  271. package/dist/service/ses/command/suppression/sim-ses-suppression-commands.js.map +1 -0
  272. package/dist/service/ses/command/suppression/sim-ses-suppression-listing.d.ts +15 -0
  273. package/dist/service/ses/command/suppression/sim-ses-suppression-listing.d.ts.map +1 -0
  274. package/dist/service/ses/command/suppression/sim-ses-suppression-listing.js +29 -0
  275. package/dist/service/ses/command/suppression/sim-ses-suppression-listing.js.map +1 -0
  276. package/dist/service/ses/command/suppression/sim-ses-unsimulated-suppression-input.d.ts +9 -0
  277. package/dist/service/ses/command/suppression/sim-ses-unsimulated-suppression-input.d.ts.map +1 -0
  278. package/dist/service/ses/command/suppression/sim-ses-unsimulated-suppression-input.js +16 -0
  279. package/dist/service/ses/command/suppression/sim-ses-unsimulated-suppression-input.js.map +1 -0
  280. package/dist/service/ses/command/suppression/suppression.command.d.ts +90 -0
  281. package/dist/service/ses/command/suppression/suppression.command.d.ts.map +1 -0
  282. package/dist/service/ses/command/suppression/suppression.command.js +2 -0
  283. package/dist/service/ses/command/suppression/suppression.command.js.map +1 -0
  284. package/dist/service/ses/configuration-set/sim-ses-configuration-set-store.d.ts +44 -0
  285. package/dist/service/ses/configuration-set/sim-ses-configuration-set-store.d.ts.map +1 -0
  286. package/dist/service/ses/configuration-set/sim-ses-configuration-set-store.js +91 -0
  287. package/dist/service/ses/configuration-set/sim-ses-configuration-set-store.js.map +1 -0
  288. package/dist/service/ses/configuration-set/sim-ses-configuration-set.d.ts +75 -0
  289. package/dist/service/ses/configuration-set/sim-ses-configuration-set.d.ts.map +1 -0
  290. package/dist/service/ses/configuration-set/sim-ses-configuration-set.js +44 -0
  291. package/dist/service/ses/configuration-set/sim-ses-configuration-set.js.map +1 -0
  292. package/dist/service/ses/email/sim-ses-sent-email.d.ts +29 -0
  293. package/dist/service/ses/email/sim-ses-sent-email.d.ts.map +1 -1
  294. package/dist/service/ses/email/sim-ses-sent-email.js +21 -0
  295. package/dist/service/ses/email/sim-ses-sent-email.js.map +1 -1
  296. package/dist/service/ses/identity/sim-ses-dkim-tokens.d.ts.map +1 -0
  297. package/dist/service/ses/identity/sim-ses-dkim-tokens.js.map +1 -0
  298. package/dist/service/ses/identity/sim-ses-identity-name.d.ts +5 -0
  299. package/dist/service/ses/identity/sim-ses-identity-name.d.ts.map +1 -1
  300. package/dist/service/ses/identity/sim-ses-identity-name.js +5 -1
  301. package/dist/service/ses/identity/sim-ses-identity-name.js.map +1 -1
  302. package/dist/service/ses/identity/sim-ses-identity-settings.d.ts +64 -0
  303. package/dist/service/ses/identity/sim-ses-identity-settings.d.ts.map +1 -0
  304. package/dist/service/ses/identity/sim-ses-identity-settings.js +21 -0
  305. package/dist/service/ses/identity/sim-ses-identity-settings.js.map +1 -0
  306. package/dist/service/ses/identity/sim-ses-identity-store.d.ts +2 -1
  307. package/dist/service/ses/identity/sim-ses-identity-store.d.ts.map +1 -1
  308. package/dist/service/ses/identity/sim-ses-identity-store.js +2 -1
  309. package/dist/service/ses/identity/sim-ses-identity-store.js.map +1 -1
  310. package/dist/service/ses/identity/sim-ses-identity.d.ts +38 -0
  311. package/dist/service/ses/identity/sim-ses-identity.d.ts.map +1 -1
  312. package/dist/service/ses/identity/sim-ses-identity.js +54 -0
  313. package/dist/service/ses/identity/sim-ses-identity.js.map +1 -1
  314. package/dist/service/ses/index.d.ts +10 -3
  315. package/dist/service/ses/index.d.ts.map +1 -1
  316. package/dist/service/ses/index.js +7 -1
  317. package/dist/service/ses/index.js.map +1 -1
  318. package/dist/service/ses/sdk/sim-ses-sdk-command-router.d.ts.map +1 -1
  319. package/dist/service/ses/sdk/sim-ses-sdk-command-router.js +36 -0
  320. package/dist/service/ses/sdk/sim-ses-sdk-command-router.js.map +1 -1
  321. package/dist/service/ses/sim-ses-arn.d.ts +7 -0
  322. package/dist/service/ses/sim-ses-arn.d.ts.map +1 -1
  323. package/dist/service/ses/sim-ses-arn.js +9 -0
  324. package/dist/service/ses/sim-ses-arn.js.map +1 -1
  325. package/dist/service/ses/sim-ses-commands.d.ts +14 -0
  326. package/dist/service/ses/sim-ses-commands.d.ts.map +1 -1
  327. package/dist/service/ses/sim-ses-commands.js +47 -5
  328. package/dist/service/ses/sim-ses-commands.js.map +1 -1
  329. package/dist/service/ses/sim-ses-configuration-sets.d.ts +47 -0
  330. package/dist/service/ses/sim-ses-configuration-sets.d.ts.map +1 -0
  331. package/dist/service/ses/sim-ses-configuration-sets.js +60 -0
  332. package/dist/service/ses/sim-ses-configuration-sets.js.map +1 -0
  333. package/dist/service/ses/sim-ses-suppression.d.ts +52 -0
  334. package/dist/service/ses/sim-ses-suppression.d.ts.map +1 -0
  335. package/dist/service/ses/sim-ses-suppression.js +63 -0
  336. package/dist/service/ses/sim-ses-suppression.js.map +1 -0
  337. package/dist/service/ses/sim-ses-v2.d.ts +14 -1
  338. package/dist/service/ses/sim-ses-v2.d.ts.map +1 -1
  339. package/dist/service/ses/sim-ses-v2.js +48 -35
  340. package/dist/service/ses/sim-ses-v2.js.map +1 -1
  341. package/dist/service/ses/suppression/sim-ses-suppressed-destination.d.ts +24 -0
  342. package/dist/service/ses/suppression/sim-ses-suppressed-destination.d.ts.map +1 -0
  343. package/dist/service/ses/suppression/sim-ses-suppressed-destination.js +21 -0
  344. package/dist/service/ses/suppression/sim-ses-suppressed-destination.js.map +1 -0
  345. package/dist/service/ses/suppression/sim-ses-suppression-address.d.ts +9 -0
  346. package/dist/service/ses/suppression/sim-ses-suppression-address.d.ts.map +1 -0
  347. package/dist/service/ses/suppression/sim-ses-suppression-address.js +21 -0
  348. package/dist/service/ses/suppression/sim-ses-suppression-address.js.map +1 -0
  349. package/dist/service/ses/suppression/sim-ses-suppression-list.d.ts +57 -0
  350. package/dist/service/ses/suppression/sim-ses-suppression-list.d.ts.map +1 -0
  351. package/dist/service/ses/suppression/sim-ses-suppression-list.js +82 -0
  352. package/dist/service/ses/suppression/sim-ses-suppression-list.js.map +1 -0
  353. package/dist/service/ses/suppression/sim-ses-suppression-reason.d.ts +20 -0
  354. package/dist/service/ses/suppression/sim-ses-suppression-reason.d.ts.map +1 -0
  355. package/dist/service/ses/suppression/sim-ses-suppression-reason.js +24 -0
  356. package/dist/service/ses/suppression/sim-ses-suppression-reason.js.map +1 -0
  357. package/dist/service/sns/command/sim-sns-commands.d.ts +2 -0
  358. package/dist/service/sns/command/sim-sns-commands.d.ts.map +1 -1
  359. package/dist/service/sns/command/sim-sns-commands.js +4 -1
  360. package/dist/service/sns/command/sim-sns-commands.js.map +1 -1
  361. package/dist/service/sns/sim-sns.d.ts +7 -0
  362. package/dist/service/sns/sim-sns.d.ts.map +1 -1
  363. package/dist/service/sns/sim-sns.js +3 -1
  364. package/dist/service/sns/sim-sns.js.map +1 -1
  365. package/dist/service/sns/sms/sim-sns-sent-sms-store.d.ts +13 -0
  366. package/dist/service/sns/sms/sim-sns-sent-sms-store.d.ts.map +1 -1
  367. package/dist/service/sns/sms/sim-sns-sent-sms-store.js +15 -0
  368. package/dist/service/sns/sms/sim-sns-sent-sms-store.js.map +1 -1
  369. package/dist/terraform/index.d.ts +6 -0
  370. package/dist/terraform/index.d.ts.map +1 -0
  371. package/dist/terraform/index.js +2 -0
  372. package/dist/terraform/index.js.map +1 -0
  373. package/dist/terraform/map/sim-tf-map-cloudwatch-dimensions.d.ts +20 -0
  374. package/dist/terraform/map/sim-tf-map-cloudwatch-dimensions.d.ts.map +1 -0
  375. package/dist/terraform/map/sim-tf-map-cloudwatch-dimensions.js +36 -0
  376. package/dist/terraform/map/sim-tf-map-cloudwatch-dimensions.js.map +1 -0
  377. package/dist/terraform/map/sim-tf-map-cloudwatch.d.ts +12 -0
  378. package/dist/terraform/map/sim-tf-map-cloudwatch.d.ts.map +1 -0
  379. package/dist/terraform/map/sim-tf-map-cloudwatch.js +69 -0
  380. package/dist/terraform/map/sim-tf-map-cloudwatch.js.map +1 -0
  381. package/dist/terraform/map/sim-tf-map-cognito-client.d.ts +15 -0
  382. package/dist/terraform/map/sim-tf-map-cognito-client.d.ts.map +1 -0
  383. package/dist/terraform/map/sim-tf-map-cognito-client.js +37 -0
  384. package/dist/terraform/map/sim-tf-map-cognito-client.js.map +1 -0
  385. package/dist/terraform/map/sim-tf-map-cognito-pool.d.ts +26 -0
  386. package/dist/terraform/map/sim-tf-map-cognito-pool.d.ts.map +1 -0
  387. package/dist/terraform/map/sim-tf-map-cognito-pool.js +70 -0
  388. package/dist/terraform/map/sim-tf-map-cognito-pool.js.map +1 -0
  389. package/dist/terraform/map/sim-tf-map-cognito.d.ts +13 -0
  390. package/dist/terraform/map/sim-tf-map-cognito.d.ts.map +1 -0
  391. package/dist/terraform/map/sim-tf-map-cognito.js +39 -0
  392. package/dist/terraform/map/sim-tf-map-cognito.js.map +1 -0
  393. package/dist/terraform/map/sim-tf-map-dynamodb-keys.d.ts +31 -0
  394. package/dist/terraform/map/sim-tf-map-dynamodb-keys.d.ts.map +1 -0
  395. package/dist/{service/cloudformation/terraform/sim-tf-map-dynamodb.js → terraform/map/sim-tf-map-dynamodb-keys.js} +27 -30
  396. package/dist/terraform/map/sim-tf-map-dynamodb-keys.js.map +1 -0
  397. package/dist/terraform/map/sim-tf-map-dynamodb.d.ts +5 -0
  398. package/dist/terraform/map/sim-tf-map-dynamodb.d.ts.map +1 -0
  399. package/dist/terraform/map/sim-tf-map-dynamodb.js +31 -0
  400. package/dist/terraform/map/sim-tf-map-dynamodb.js.map +1 -0
  401. package/dist/terraform/map/sim-tf-map-ecr.d.ts +12 -0
  402. package/dist/terraform/map/sim-tf-map-ecr.d.ts.map +1 -0
  403. package/dist/terraform/map/sim-tf-map-ecr.js +34 -0
  404. package/dist/terraform/map/sim-tf-map-ecr.js.map +1 -0
  405. package/dist/terraform/map/sim-tf-map-events.d.ts +24 -0
  406. package/dist/terraform/map/sim-tf-map-events.d.ts.map +1 -0
  407. package/dist/terraform/map/sim-tf-map-events.js +151 -0
  408. package/dist/terraform/map/sim-tf-map-events.js.map +1 -0
  409. package/dist/terraform/map/sim-tf-map-http-api-routes.d.ts +10 -0
  410. package/dist/terraform/map/sim-tf-map-http-api-routes.d.ts.map +1 -0
  411. package/dist/{service/cloudformation/terraform/sim-tf-map-http-api-route.js → terraform/map/sim-tf-map-http-api-routes.js} +19 -3
  412. package/dist/terraform/map/sim-tf-map-http-api-routes.js.map +1 -0
  413. package/dist/terraform/map/sim-tf-map-http-api.d.ts +7 -0
  414. package/dist/terraform/map/sim-tf-map-http-api.d.ts.map +1 -0
  415. package/dist/{service/cloudformation/terraform → terraform/map}/sim-tf-map-http-api.js +3 -17
  416. package/dist/terraform/map/sim-tf-map-http-api.js.map +1 -0
  417. package/dist/terraform/map/sim-tf-map-iam-policy.d.ts +32 -0
  418. package/dist/terraform/map/sim-tf-map-iam-policy.d.ts.map +1 -0
  419. package/dist/terraform/map/sim-tf-map-iam-policy.js +85 -0
  420. package/dist/terraform/map/sim-tf-map-iam-policy.js.map +1 -0
  421. package/dist/{service/cloudformation/terraform → terraform/map}/sim-tf-map-iam.d.ts +2 -4
  422. package/dist/terraform/map/sim-tf-map-iam.d.ts.map +1 -0
  423. package/dist/terraform/map/sim-tf-map-iam.js +37 -0
  424. package/dist/terraform/map/sim-tf-map-iam.js.map +1 -0
  425. package/dist/terraform/map/sim-tf-map-kms.d.ts +25 -0
  426. package/dist/terraform/map/sim-tf-map-kms.d.ts.map +1 -0
  427. package/dist/terraform/map/sim-tf-map-kms.js +75 -0
  428. package/dist/terraform/map/sim-tf-map-kms.js.map +1 -0
  429. package/dist/terraform/map/sim-tf-map-lambda-environment.d.ts +20 -0
  430. package/dist/terraform/map/sim-tf-map-lambda-environment.d.ts.map +1 -0
  431. package/dist/terraform/map/sim-tf-map-lambda-environment.js +52 -0
  432. package/dist/terraform/map/sim-tf-map-lambda-environment.js.map +1 -0
  433. package/dist/{service/cloudformation/terraform → terraform/map}/sim-tf-map-lambda.d.ts +2 -2
  434. package/dist/terraform/map/sim-tf-map-lambda.d.ts.map +1 -0
  435. package/dist/{service/cloudformation/terraform → terraform/map}/sim-tf-map-lambda.js +19 -36
  436. package/dist/terraform/map/sim-tf-map-lambda.js.map +1 -0
  437. package/dist/terraform/map/sim-tf-map-logs.d.ts +12 -0
  438. package/dist/terraform/map/sim-tf-map-logs.d.ts.map +1 -0
  439. package/dist/terraform/map/sim-tf-map-logs.js +22 -0
  440. package/dist/terraform/map/sim-tf-map-logs.js.map +1 -0
  441. package/dist/{service/cloudformation/terraform → terraform/map}/sim-tf-map-s3-folds.d.ts +1 -1
  442. package/dist/terraform/map/sim-tf-map-s3-folds.d.ts.map +1 -0
  443. package/dist/{service/cloudformation/terraform → terraform/map}/sim-tf-map-s3-folds.js +2 -3
  444. package/dist/terraform/map/sim-tf-map-s3-folds.js.map +1 -0
  445. package/dist/terraform/map/sim-tf-map-s3-lifecycle.d.ts +4 -0
  446. package/dist/terraform/map/sim-tf-map-s3-lifecycle.d.ts.map +1 -0
  447. package/dist/terraform/map/sim-tf-map-s3-lifecycle.js +92 -0
  448. package/dist/terraform/map/sim-tf-map-s3-lifecycle.js.map +1 -0
  449. package/dist/terraform/map/sim-tf-map-s3-notification-destinations.d.ts +5 -0
  450. package/dist/terraform/map/sim-tf-map-s3-notification-destinations.d.ts.map +1 -0
  451. package/dist/terraform/map/sim-tf-map-s3-notification-destinations.js +30 -0
  452. package/dist/terraform/map/sim-tf-map-s3-notification-destinations.js.map +1 -0
  453. package/dist/terraform/map/sim-tf-map-s3-notification-filter.d.ts +12 -0
  454. package/dist/terraform/map/sim-tf-map-s3-notification-filter.d.ts.map +1 -0
  455. package/dist/terraform/map/sim-tf-map-s3-notification-filter.js +21 -0
  456. package/dist/terraform/map/sim-tf-map-s3-notification-filter.js.map +1 -0
  457. package/dist/terraform/map/sim-tf-map-s3-notification.d.ts +50 -0
  458. package/dist/terraform/map/sim-tf-map-s3-notification.d.ts.map +1 -0
  459. package/dist/terraform/map/sim-tf-map-s3-notification.js +80 -0
  460. package/dist/terraform/map/sim-tf-map-s3-notification.js.map +1 -0
  461. package/dist/terraform/map/sim-tf-map-s3-rules.d.ts +7 -0
  462. package/dist/terraform/map/sim-tf-map-s3-rules.d.ts.map +1 -0
  463. package/dist/{service/cloudformation/terraform/sim-tf-map-s3-encryption.js → terraform/map/sim-tf-map-s3-rules.js} +20 -3
  464. package/dist/terraform/map/sim-tf-map-s3-rules.js.map +1 -0
  465. package/dist/terraform/map/sim-tf-map-s3.d.ts +5 -0
  466. package/dist/terraform/map/sim-tf-map-s3.d.ts.map +1 -0
  467. package/dist/{service/cloudformation/terraform → terraform/map}/sim-tf-map-s3.js +1 -1
  468. package/dist/terraform/map/sim-tf-map-s3.js.map +1 -0
  469. package/dist/{service/cloudformation/terraform/sim-tf-map-config.d.ts → terraform/map/sim-tf-map-secretsmanager.d.ts} +3 -5
  470. package/dist/terraform/map/sim-tf-map-secretsmanager.d.ts.map +1 -0
  471. package/dist/{service/cloudformation/terraform/sim-tf-map-config.js → terraform/map/sim-tf-map-secretsmanager.js} +2 -14
  472. package/dist/terraform/map/sim-tf-map-secretsmanager.js.map +1 -0
  473. package/dist/{service/cloudformation/terraform → terraform/map}/sim-tf-map-sns.d.ts +2 -2
  474. package/dist/terraform/map/sim-tf-map-sns.d.ts.map +1 -0
  475. package/dist/{service/cloudformation/terraform → terraform/map}/sim-tf-map-sns.js +1 -1
  476. package/dist/terraform/map/sim-tf-map-sns.js.map +1 -0
  477. package/dist/terraform/map/sim-tf-map-sqs-redrive.d.ts +32 -0
  478. package/dist/terraform/map/sim-tf-map-sqs-redrive.d.ts.map +1 -0
  479. package/dist/terraform/map/sim-tf-map-sqs-redrive.js +68 -0
  480. package/dist/terraform/map/sim-tf-map-sqs-redrive.js.map +1 -0
  481. package/dist/terraform/map/sim-tf-map-sqs.d.ts +11 -0
  482. package/dist/terraform/map/sim-tf-map-sqs.d.ts.map +1 -0
  483. package/dist/terraform/map/sim-tf-map-sqs.js +26 -0
  484. package/dist/terraform/map/sim-tf-map-sqs.js.map +1 -0
  485. package/dist/terraform/map/sim-tf-map-ssm.d.ts +13 -0
  486. package/dist/terraform/map/sim-tf-map-ssm.d.ts.map +1 -0
  487. package/dist/terraform/map/sim-tf-map-ssm.js +24 -0
  488. package/dist/terraform/map/sim-tf-map-ssm.js.map +1 -0
  489. package/dist/terraform/sim-tf-adapter.d.ts +80 -0
  490. package/dist/terraform/sim-tf-adapter.d.ts.map +1 -0
  491. package/dist/terraform/sim-tf-adapter.js +44 -0
  492. package/dist/terraform/sim-tf-adapter.js.map +1 -0
  493. package/dist/terraform/sim-tf-attribute-reads.d.ts.map +1 -0
  494. package/dist/terraform/sim-tf-attribute-reads.js.map +1 -0
  495. package/dist/{service/cloudformation/terraform → terraform}/sim-tf-attributes.d.ts +13 -4
  496. package/dist/terraform/sim-tf-attributes.d.ts.map +1 -0
  497. package/dist/{service/cloudformation/terraform → terraform}/sim-tf-attributes.js +1 -1
  498. package/dist/terraform/sim-tf-attributes.js.map +1 -0
  499. package/dist/terraform/sim-tf-declare.d.ts +37 -0
  500. package/dist/terraform/sim-tf-declare.d.ts.map +1 -0
  501. package/dist/{service/cloudformation/terraform/sim-tf-template-graph.js → terraform/sim-tf-declare.js} +35 -23
  502. package/dist/terraform/sim-tf-declare.js.map +1 -0
  503. package/dist/terraform/sim-tf-fold.d.ts +26 -0
  504. package/dist/terraform/sim-tf-fold.d.ts.map +1 -0
  505. package/dist/terraform/sim-tf-fold.js +72 -0
  506. package/dist/terraform/sim-tf-fold.js.map +1 -0
  507. package/dist/terraform/sim-tf-import.d.ts +31 -0
  508. package/dist/terraform/sim-tf-import.d.ts.map +1 -0
  509. package/dist/terraform/sim-tf-import.js +38 -0
  510. package/dist/terraform/sim-tf-import.js.map +1 -0
  511. package/dist/terraform/sim-tf-logical-id.d.ts +27 -0
  512. package/dist/terraform/sim-tf-logical-id.d.ts.map +1 -0
  513. package/dist/terraform/sim-tf-logical-id.js +83 -0
  514. package/dist/terraform/sim-tf-logical-id.js.map +1 -0
  515. package/dist/terraform/sim-tf-mapping.type.d.ts +73 -0
  516. package/dist/terraform/sim-tf-mapping.type.d.ts.map +1 -0
  517. package/dist/terraform/sim-tf-mapping.type.js.map +1 -0
  518. package/dist/{service/cloudformation/terraform → terraform}/sim-tf-module-outputs.d.ts +1 -9
  519. package/dist/terraform/sim-tf-module-outputs.d.ts.map +1 -0
  520. package/dist/terraform/sim-tf-module-outputs.js +33 -0
  521. package/dist/terraform/sim-tf-module-outputs.js.map +1 -0
  522. package/dist/terraform/sim-tf-nested-attributes.d.ts +33 -0
  523. package/dist/terraform/sim-tf-nested-attributes.d.ts.map +1 -0
  524. package/dist/terraform/sim-tf-nested-attributes.js +97 -0
  525. package/dist/terraform/sim-tf-nested-attributes.js.map +1 -0
  526. package/dist/terraform/sim-tf-override.type.d.ts +36 -0
  527. package/dist/terraform/sim-tf-override.type.d.ts.map +1 -0
  528. package/dist/terraform/sim-tf-override.type.js +2 -0
  529. package/dist/terraform/sim-tf-override.type.js.map +1 -0
  530. package/dist/terraform/sim-tf-overrides.d.ts +21 -0
  531. package/dist/terraform/sim-tf-overrides.d.ts.map +1 -0
  532. package/dist/terraform/sim-tf-overrides.js +40 -0
  533. package/dist/terraform/sim-tf-overrides.js.map +1 -0
  534. package/dist/terraform/sim-tf-plan-file.d.ts +23 -0
  535. package/dist/terraform/sim-tf-plan-file.d.ts.map +1 -0
  536. package/dist/terraform/sim-tf-plan-file.js +58 -0
  537. package/dist/terraform/sim-tf-plan-file.js.map +1 -0
  538. package/dist/terraform/sim-tf-plan-resources.d.ts +18 -0
  539. package/dist/terraform/sim-tf-plan-resources.d.ts.map +1 -0
  540. package/dist/{service/cloudformation/terraform → terraform}/sim-tf-plan-resources.js +18 -10
  541. package/dist/terraform/sim-tf-plan-resources.js.map +1 -0
  542. package/dist/terraform/sim-tf-plan-sections.d.ts +31 -0
  543. package/dist/terraform/sim-tf-plan-sections.d.ts.map +1 -0
  544. package/dist/terraform/sim-tf-plan-sections.js +60 -0
  545. package/dist/terraform/sim-tf-plan-sections.js.map +1 -0
  546. package/dist/{service/cloudformation/terraform → terraform}/sim-tf-plan.type.d.ts +5 -1
  547. package/dist/terraform/sim-tf-plan.type.d.ts.map +1 -0
  548. package/dist/terraform/sim-tf-plan.type.js.map +1 -0
  549. package/dist/terraform/sim-tf-reference-address.d.ts +52 -0
  550. package/dist/terraform/sim-tf-reference-address.d.ts.map +1 -0
  551. package/dist/terraform/sim-tf-reference-address.js +102 -0
  552. package/dist/terraform/sim-tf-reference-address.js.map +1 -0
  553. package/dist/terraform/sim-tf-reference.d.ts +82 -0
  554. package/dist/terraform/sim-tf-reference.d.ts.map +1 -0
  555. package/dist/terraform/sim-tf-reference.js +153 -0
  556. package/dist/terraform/sim-tf-reference.js.map +1 -0
  557. package/dist/terraform/sim-tf-referenced.d.ts +18 -0
  558. package/dist/terraform/sim-tf-referenced.d.ts.map +1 -0
  559. package/dist/terraform/sim-tf-referenced.js +40 -0
  560. package/dist/terraform/sim-tf-referenced.js.map +1 -0
  561. package/dist/terraform/sim-tf-refusal.d.ts +23 -0
  562. package/dist/terraform/sim-tf-refusal.d.ts.map +1 -0
  563. package/dist/terraform/sim-tf-refusal.js +44 -0
  564. package/dist/terraform/sim-tf-refusal.js.map +1 -0
  565. package/dist/{service/cloudformation/terraform → terraform}/sim-tf-registry.d.ts +2 -1
  566. package/dist/terraform/sim-tf-registry.d.ts.map +1 -0
  567. package/dist/terraform/sim-tf-registry.js +67 -0
  568. package/dist/terraform/sim-tf-registry.js.map +1 -0
  569. package/dist/terraform/sim-tf-report.d.ts +21 -0
  570. package/dist/terraform/sim-tf-report.d.ts.map +1 -0
  571. package/dist/terraform/sim-tf-report.js +57 -0
  572. package/dist/terraform/sim-tf-report.js.map +1 -0
  573. package/dist/{service/cloudformation/terraform → terraform}/sim-tf-report.type.d.ts +10 -4
  574. package/dist/terraform/sim-tf-report.type.d.ts.map +1 -0
  575. package/dist/terraform/sim-tf-report.type.js.map +1 -0
  576. package/dist/{service/cloudformation/terraform/sim-tf-plan-resources.d.ts → terraform/sim-tf-resource.type.d.ts} +6 -12
  577. package/dist/terraform/sim-tf-resource.type.d.ts.map +1 -0
  578. package/dist/terraform/sim-tf-resource.type.js +3 -0
  579. package/dist/terraform/sim-tf-resource.type.js.map +1 -0
  580. package/dist/terraform/sim-tf-settle.d.ts +36 -0
  581. package/dist/terraform/sim-tf-settle.d.ts.map +1 -0
  582. package/dist/terraform/sim-tf-settle.js +63 -0
  583. package/dist/terraform/sim-tf-settle.js.map +1 -0
  584. package/dist/util/filesystem/test-terraform-project.d.ts +11 -0
  585. package/dist/util/filesystem/test-terraform-project.d.ts.map +1 -1
  586. package/dist/util/filesystem/test-terraform-project.js +30 -1
  587. package/dist/util/filesystem/test-terraform-project.js.map +1 -1
  588. package/package.json +5 -1
  589. package/dist/service/cloudformation/resource/cfn/ses/sim-ses-dkim-tokens.d.ts.map +0 -1
  590. package/dist/service/cloudformation/resource/cfn/ses/sim-ses-dkim-tokens.js.map +0 -1
  591. package/dist/service/cloudformation/terraform/sim-tf-attribute-reads.d.ts.map +0 -1
  592. package/dist/service/cloudformation/terraform/sim-tf-attribute-reads.js.map +0 -1
  593. package/dist/service/cloudformation/terraform/sim-tf-attributes.d.ts.map +0 -1
  594. package/dist/service/cloudformation/terraform/sim-tf-attributes.js.map +0 -1
  595. package/dist/service/cloudformation/terraform/sim-tf-map-config.d.ts.map +0 -1
  596. package/dist/service/cloudformation/terraform/sim-tf-map-config.js.map +0 -1
  597. package/dist/service/cloudformation/terraform/sim-tf-map-dynamodb.d.ts +0 -15
  598. package/dist/service/cloudformation/terraform/sim-tf-map-dynamodb.d.ts.map +0 -1
  599. package/dist/service/cloudformation/terraform/sim-tf-map-dynamodb.js.map +0 -1
  600. package/dist/service/cloudformation/terraform/sim-tf-map-http-api-route.d.ts +0 -5
  601. package/dist/service/cloudformation/terraform/sim-tf-map-http-api-route.d.ts.map +0 -1
  602. package/dist/service/cloudformation/terraform/sim-tf-map-http-api-route.js.map +0 -1
  603. package/dist/service/cloudformation/terraform/sim-tf-map-http-api.d.ts +0 -12
  604. package/dist/service/cloudformation/terraform/sim-tf-map-http-api.d.ts.map +0 -1
  605. package/dist/service/cloudformation/terraform/sim-tf-map-http-api.js.map +0 -1
  606. package/dist/service/cloudformation/terraform/sim-tf-map-iam.d.ts.map +0 -1
  607. package/dist/service/cloudformation/terraform/sim-tf-map-iam.js +0 -80
  608. package/dist/service/cloudformation/terraform/sim-tf-map-iam.js.map +0 -1
  609. package/dist/service/cloudformation/terraform/sim-tf-map-lambda.d.ts.map +0 -1
  610. package/dist/service/cloudformation/terraform/sim-tf-map-lambda.js.map +0 -1
  611. package/dist/service/cloudformation/terraform/sim-tf-map-s3-cors.d.ts +0 -5
  612. package/dist/service/cloudformation/terraform/sim-tf-map-s3-cors.d.ts.map +0 -1
  613. package/dist/service/cloudformation/terraform/sim-tf-map-s3-cors.js +0 -12
  614. package/dist/service/cloudformation/terraform/sim-tf-map-s3-cors.js.map +0 -1
  615. package/dist/service/cloudformation/terraform/sim-tf-map-s3-encryption.d.ts +0 -5
  616. package/dist/service/cloudformation/terraform/sim-tf-map-s3-encryption.d.ts.map +0 -1
  617. package/dist/service/cloudformation/terraform/sim-tf-map-s3-encryption.js.map +0 -1
  618. package/dist/service/cloudformation/terraform/sim-tf-map-s3-folds.d.ts.map +0 -1
  619. package/dist/service/cloudformation/terraform/sim-tf-map-s3-folds.js.map +0 -1
  620. package/dist/service/cloudformation/terraform/sim-tf-map-s3.d.ts +0 -5
  621. package/dist/service/cloudformation/terraform/sim-tf-map-s3.d.ts.map +0 -1
  622. package/dist/service/cloudformation/terraform/sim-tf-map-s3.js.map +0 -1
  623. package/dist/service/cloudformation/terraform/sim-tf-map-sns.d.ts.map +0 -1
  624. package/dist/service/cloudformation/terraform/sim-tf-map-sns.js.map +0 -1
  625. package/dist/service/cloudformation/terraform/sim-tf-map-sqs.d.ts +0 -5
  626. package/dist/service/cloudformation/terraform/sim-tf-map-sqs.d.ts.map +0 -1
  627. package/dist/service/cloudformation/terraform/sim-tf-map-sqs.js +0 -56
  628. package/dist/service/cloudformation/terraform/sim-tf-map-sqs.js.map +0 -1
  629. package/dist/service/cloudformation/terraform/sim-tf-mapping.type.d.ts +0 -41
  630. package/dist/service/cloudformation/terraform/sim-tf-mapping.type.d.ts.map +0 -1
  631. package/dist/service/cloudformation/terraform/sim-tf-mapping.type.js.map +0 -1
  632. package/dist/service/cloudformation/terraform/sim-tf-module-outputs.d.ts.map +0 -1
  633. package/dist/service/cloudformation/terraform/sim-tf-module-outputs.js +0 -63
  634. package/dist/service/cloudformation/terraform/sim-tf-module-outputs.js.map +0 -1
  635. package/dist/service/cloudformation/terraform/sim-tf-plan-index.d.ts +0 -26
  636. package/dist/service/cloudformation/terraform/sim-tf-plan-index.d.ts.map +0 -1
  637. package/dist/service/cloudformation/terraform/sim-tf-plan-index.js +0 -45
  638. package/dist/service/cloudformation/terraform/sim-tf-plan-index.js.map +0 -1
  639. package/dist/service/cloudformation/terraform/sim-tf-plan-resources.d.ts.map +0 -1
  640. package/dist/service/cloudformation/terraform/sim-tf-plan-resources.js.map +0 -1
  641. package/dist/service/cloudformation/terraform/sim-tf-plan.type.d.ts.map +0 -1
  642. package/dist/service/cloudformation/terraform/sim-tf-plan.type.js.map +0 -1
  643. package/dist/service/cloudformation/terraform/sim-tf-reference-address.d.ts +0 -27
  644. package/dist/service/cloudformation/terraform/sim-tf-reference-address.d.ts.map +0 -1
  645. package/dist/service/cloudformation/terraform/sim-tf-reference-address.js +0 -58
  646. package/dist/service/cloudformation/terraform/sim-tf-reference-address.js.map +0 -1
  647. package/dist/service/cloudformation/terraform/sim-tf-reference.d.ts +0 -64
  648. package/dist/service/cloudformation/terraform/sim-tf-reference.d.ts.map +0 -1
  649. package/dist/service/cloudformation/terraform/sim-tf-reference.js +0 -122
  650. package/dist/service/cloudformation/terraform/sim-tf-reference.js.map +0 -1
  651. package/dist/service/cloudformation/terraform/sim-tf-registry.d.ts.map +0 -1
  652. package/dist/service/cloudformation/terraform/sim-tf-registry.js +0 -40
  653. package/dist/service/cloudformation/terraform/sim-tf-registry.js.map +0 -1
  654. package/dist/service/cloudformation/terraform/sim-tf-report.type.d.ts.map +0 -1
  655. package/dist/service/cloudformation/terraform/sim-tf-report.type.js.map +0 -1
  656. package/dist/service/cloudformation/terraform/sim-tf-template-folds.d.ts +0 -20
  657. package/dist/service/cloudformation/terraform/sim-tf-template-folds.d.ts.map +0 -1
  658. package/dist/service/cloudformation/terraform/sim-tf-template-folds.js +0 -28
  659. package/dist/service/cloudformation/terraform/sim-tf-template-folds.js.map +0 -1
  660. package/dist/service/cloudformation/terraform/sim-tf-template-graph.d.ts +0 -29
  661. package/dist/service/cloudformation/terraform/sim-tf-template-graph.d.ts.map +0 -1
  662. package/dist/service/cloudformation/terraform/sim-tf-template-graph.js.map +0 -1
  663. package/dist/service/cloudformation/terraform/sim-tf-template-mappings.d.ts +0 -23
  664. package/dist/service/cloudformation/terraform/sim-tf-template-mappings.d.ts.map +0 -1
  665. package/dist/service/cloudformation/terraform/sim-tf-template-mappings.js +0 -72
  666. package/dist/service/cloudformation/terraform/sim-tf-template-mappings.js.map +0 -1
  667. package/dist/service/cloudformation/terraform/sim-tf-template-merge.d.ts +0 -21
  668. package/dist/service/cloudformation/terraform/sim-tf-template-merge.d.ts.map +0 -1
  669. package/dist/service/cloudformation/terraform/sim-tf-template-merge.js +0 -33
  670. package/dist/service/cloudformation/terraform/sim-tf-template-merge.js.map +0 -1
  671. package/dist/service/cloudformation/terraform/sim-tf-template-prune.d.ts +0 -21
  672. package/dist/service/cloudformation/terraform/sim-tf-template-prune.d.ts.map +0 -1
  673. package/dist/service/cloudformation/terraform/sim-tf-template-prune.js +0 -51
  674. package/dist/service/cloudformation/terraform/sim-tf-template-prune.js.map +0 -1
  675. package/dist/service/cloudformation/terraform/sim-tf-template-pruned.d.ts +0 -18
  676. package/dist/service/cloudformation/terraform/sim-tf-template-pruned.d.ts.map +0 -1
  677. package/dist/service/cloudformation/terraform/sim-tf-template-pruned.js +0 -23
  678. package/dist/service/cloudformation/terraform/sim-tf-template-pruned.js.map +0 -1
  679. package/dist/service/cloudformation/terraform/sim-tf-template-references.d.ts +0 -10
  680. package/dist/service/cloudformation/terraform/sim-tf-template-references.d.ts.map +0 -1
  681. package/dist/service/cloudformation/terraform/sim-tf-template-references.js +0 -39
  682. package/dist/service/cloudformation/terraform/sim-tf-template-references.js.map +0 -1
  683. package/dist/service/cloudformation/terraform/sim-tf-template-resolver.d.ts +0 -12
  684. package/dist/service/cloudformation/terraform/sim-tf-template-resolver.d.ts.map +0 -1
  685. package/dist/service/cloudformation/terraform/sim-tf-template-resolver.js +0 -17
  686. package/dist/service/cloudformation/terraform/sim-tf-template-resolver.js.map +0 -1
  687. package/dist/service/cloudformation/terraform/sim-tf-template.d.ts +0 -26
  688. package/dist/service/cloudformation/terraform/sim-tf-template.d.ts.map +0 -1
  689. package/dist/service/cloudformation/terraform/sim-tf-template.js +0 -54
  690. package/dist/service/cloudformation/terraform/sim-tf-template.js.map +0 -1
  691. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-unsimulated-properties.d.ts +0 -17
  692. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-unsimulated-properties.d.ts.map +0 -1
  693. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-unsimulated-properties.js +0 -48
  694. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-unsimulated-properties.js.map +0 -1
  695. package/dist/service/ses/command/identity/sim-ses-unsimulated-identity-input.d.ts +0 -12
  696. package/dist/service/ses/command/identity/sim-ses-unsimulated-identity-input.d.ts.map +0 -1
  697. package/dist/service/ses/command/identity/sim-ses-unsimulated-identity-input.js +0 -26
  698. package/dist/service/ses/command/identity/sim-ses-unsimulated-identity-input.js.map +0 -1
  699. /package/dist/service/{cloudformation/resource/cfn/ses → ses/identity}/sim-ses-dkim-tokens.d.ts +0 -0
  700. /package/dist/service/{cloudformation/resource/cfn/ses → ses/identity}/sim-ses-dkim-tokens.js +0 -0
  701. /package/dist/{service/cloudformation/terraform → terraform}/sim-tf-attribute-reads.d.ts +0 -0
  702. /package/dist/{service/cloudformation/terraform → terraform}/sim-tf-attribute-reads.js +0 -0
  703. /package/dist/{service/cloudformation/terraform → terraform}/sim-tf-mapping.type.js +0 -0
  704. /package/dist/{service/cloudformation/terraform → terraform}/sim-tf-plan.type.js +0 -0
  705. /package/dist/{service/cloudformation/terraform → terraform}/sim-tf-report.type.js +0 -0
@@ -0,0 +1,102 @@
1
+ /**
2
+ * How a Terraform reference string is read, before anything is looked up.
3
+ *
4
+ * A reference is text the configuration wrote, and two things about that text
5
+ * have to be settled before a resource can be found behind it. Which of the
6
+ * forms Terraform lists is the one to follow, and what the reference means
7
+ * from outside the module that wrote it.
8
+ */
9
+ /**
10
+ * References ordered longest first.
11
+ *
12
+ * Terraform lists the attribute form and the bare resource form of one
13
+ * reference. The attribute form is longer, and it is the one that resolves to
14
+ * the value being read rather than to the resource as a whole.
15
+ */
16
+ export function longestFirst(references) {
17
+ return references.toSorted((a, b) => b.length - a.length);
18
+ }
19
+ /**
20
+ * Scopes that name something other than a resource of the same module.
21
+ *
22
+ * A reference under one of these is resolved by Terraform rather than by an
23
+ * address lookup, and prefixing it with the module path would invent an
24
+ * address no resource has.
25
+ */
26
+ const unqualifiedScopes = [
27
+ "var.",
28
+ "local.",
29
+ "each.",
30
+ "count.",
31
+ "self.",
32
+ "data.",
33
+ "path.",
34
+ "terraform.",
35
+ ];
36
+ /**
37
+ * An address split on the dots between its segments.
38
+ *
39
+ * A `count` or `for_each` key can hold anything, including a dot, so the dots
40
+ * inside a bracketed key are not separators. `module.hosts["a.example.com"]`
41
+ * is two segments rather than four.
42
+ */
43
+ export function addressSegments(address) {
44
+ const segments = [];
45
+ let current = "";
46
+ let bracketed = false;
47
+ for (const character of address) {
48
+ if (character === "[") {
49
+ bracketed = true;
50
+ }
51
+ else if (character === "]") {
52
+ bracketed = false;
53
+ }
54
+ if (character === "." && !bracketed) {
55
+ segments.push(current);
56
+ current = "";
57
+ continue;
58
+ }
59
+ current += character;
60
+ }
61
+ return [...segments, current];
62
+ }
63
+ /**
64
+ * The module instance path a module output was read through.
65
+ *
66
+ * `module.workers["blue"].module.queue.queue_arn` is the output `queue_arn` of
67
+ * the call `queue` inside the instance `workers["blue"]`. The output's own
68
+ * references are relative to that path, keys and all, where the index the
69
+ * output was found in is keyed by call name alone.
70
+ */
71
+ export function moduleOutputPath(qualified) {
72
+ return addressSegments(qualified)
73
+ .slice(0, -1)
74
+ .filter((_, position) => position % 2 === 1);
75
+ }
76
+ /**
77
+ * A reference with every `count` and `for_each` key taken out of it.
78
+ *
79
+ * A module declares its outputs once however many instances of the call there
80
+ * are, so the output index is keyed by call path. A reference made from inside
81
+ * one instance carries that instance's key, and this is what it is looked up
82
+ * by.
83
+ */
84
+ export function withoutInstanceKeys(reference) {
85
+ return reference.replaceAll(/\[[^\]]*\]/gu, "");
86
+ }
87
+ /**
88
+ * A module-relative reference turned into a plan-wide address.
89
+ *
90
+ * References inside a module name their own module's resources without the
91
+ * module prefix that `planned_values` puts on them. A reference to another
92
+ * module's output is qualified the same way, because the output index is keyed
93
+ * by the full call path and a nested call would otherwise miss it.
94
+ */
95
+ export function qualifiedReference(reference, modulePath) {
96
+ if (modulePath.length === 0 ||
97
+ unqualifiedScopes.some((scope) => reference.startsWith(scope))) {
98
+ return reference;
99
+ }
100
+ return `${modulePath.map((call) => `module.${call}`).join(".")}.${reference}`;
101
+ }
102
+ //# sourceMappingURL=sim-tf-reference-address.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-tf-reference-address.js","sourceRoot":"","sources":["../../src/terraform/sim-tf-reference-address.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,UAA6B;IACxD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,iBAAiB,GAAG;IACxB,MAAM;IACN,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,YAAY;CACb,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;QAChC,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;aAAM,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YAC7B,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC;QAED,IAAI,SAAS,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,OAAO,GAAG,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QAED,OAAO,IAAI,SAAS,CAAC;IACvB,CAAC;IAED,OAAO,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,OAAO,eAAe,CAAC,SAAS,CAAC;SAC9B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACZ,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,OAAO,SAAS,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,SAAiB,EACjB,UAA6B;IAE7B,IACE,UAAU,CAAC,MAAM,KAAK,CAAC;QACvB,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAC9D,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,EAAE,CAAC;AAChF,CAAC"}
@@ -0,0 +1,82 @@
1
+ import type { SimCfnTemplateValue } from "../service/cloudformation/template/value/sim-cfn-template-value.js";
2
+ import type { TerraformResource } from "./sim-tf-resource.type.js";
3
+ /**
4
+ * Resolves a Terraform reference against the resources a template declares.
5
+ *
6
+ * A reference is an address optionally followed by the attribute being read.
7
+ * Terraform lists both forms for the same reference, so the longest address
8
+ * matching a resource wins and what is left over is the attribute.
9
+ *
10
+ * The resources given are the ones the template will hold, rather than every
11
+ * resource of the plan. A reference to a resource the template does not
12
+ * declare resolves to nothing, so no property can come out of this naming a
13
+ * logical ID that is not there.
14
+ */
15
+ export declare class TerraformReferenceResolver {
16
+ private readonly byAddress;
17
+ private readonly moduleOutputs;
18
+ private readonly logicalIds;
19
+ constructor(resources: readonly TerraformResource[], moduleOutputs?: ReadonlyMap<string, readonly string[]>);
20
+ /** The logical ID the template declares one address under. */
21
+ logicalId(address: string): string;
22
+ /**
23
+ * The resource at one address, for a caller that needs the resource rather
24
+ * than a value read off it. A mapping reading a name out of the resource its
25
+ * own attribute refers to is what wants this.
26
+ */
27
+ resource(address: string): TerraformResource | undefined;
28
+ /**
29
+ * The CloudFormation value one reference stands for.
30
+ *
31
+ * A reference to a resource the template does not declare returns undefined,
32
+ * and so does one whose attribute has no entry in the read table. The caller
33
+ * decides what an unresolvable reference means for the Resource holding it.
34
+ */
35
+ resolve(reference: string, modulePath: readonly string[]): SimCfnTemplateValue | undefined;
36
+ /**
37
+ * The address of the resource one reference names.
38
+ *
39
+ * A fold needs the resource a reference points at rather than the value read
40
+ * off it, because it is merging properties into that resource's template,
41
+ * and so does the ordering pass.
42
+ */
43
+ targetAddress(reference: string, modulePath: readonly string[]): string | undefined;
44
+ /**
45
+ * The attribute a reference reads off the resource behind it.
46
+ *
47
+ * A reference naming a resource address and nothing else names no attribute,
48
+ * and is the resource itself. A reference through a module output names the
49
+ * output rather than the attribute, and the output's own expression says
50
+ * which attribute that is.
51
+ */
52
+ private attributeName;
53
+ private target;
54
+ /**
55
+ * The module output one reference names.
56
+ *
57
+ * The index is keyed by module call path, since a module declares its
58
+ * outputs once however many instances of the call there are. A reference
59
+ * made from inside one instance carries that instance's key, so the key
60
+ * comes off when the qualified form finds nothing.
61
+ */
62
+ private moduleOutput;
63
+ /**
64
+ * The resource a module output leads to.
65
+ *
66
+ * The output's own expression names it, in terms of the module declaring the
67
+ * output, so following one is resolving that expression again one module
68
+ * down. An output built out of several resources returns the first that
69
+ * resolves, and the depth limit stops a module whose outputs refer to each
70
+ * other from looping.
71
+ */
72
+ private throughModuleOutput;
73
+ /**
74
+ * The resource whose address is the longest prefix of this reference.
75
+ *
76
+ * `aws_iam_role.processor.arn` has to find `aws_iam_role.processor` and leave
77
+ * `arn` behind, and a `for_each` instance address carries a bracketed key
78
+ * that is part of the address rather than an attribute.
79
+ */
80
+ private longestMatch;
81
+ }
82
+ //# sourceMappingURL=sim-tf-reference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-tf-reference.d.ts","sourceRoot":"","sources":["../../src/terraform/sim-tf-reference.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oEAAoE,CAAC;AAC9G,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAUnE;;;;;;;;;;;GAWG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyC;IACnE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyC;IACvE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IAEjD,YACE,SAAS,EAAE,SAAS,iBAAiB,EAAE,EACvC,aAAa,GAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAa,EAOlE;IAED,8DAA8D;IACvD,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExC;IAED;;;;OAIG;IACI,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAE9D;IAED;;;;;;OAMG;IACI,OAAO,CACZ,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,SAAS,MAAM,EAAE,GAC5B,mBAAmB,GAAG,SAAS,CAuBjC;IAED;;;;;;OAMG;IACI,aAAa,CAClB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,SAAS,MAAM,EAAE,GAC5B,MAAM,GAAG,SAAS,CAEpB;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,MAAM;IAId;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY;IAOpB;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;IA6B3B;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;CAerB"}
@@ -0,0 +1,153 @@
1
+ import { terraformAttributeReads } from "./sim-tf-attribute-reads.js";
2
+ import { TerraformLogicalIds } from "./sim-tf-logical-id.js";
3
+ import { longestFirst, moduleOutputPath, qualifiedReference, withoutInstanceKeys, } from "./sim-tf-reference-address.js";
4
+ /**
5
+ * Resolves a Terraform reference against the resources a template declares.
6
+ *
7
+ * A reference is an address optionally followed by the attribute being read.
8
+ * Terraform lists both forms for the same reference, so the longest address
9
+ * matching a resource wins and what is left over is the attribute.
10
+ *
11
+ * The resources given are the ones the template will hold, rather than every
12
+ * resource of the plan. A reference to a resource the template does not
13
+ * declare resolves to nothing, so no property can come out of this naming a
14
+ * logical ID that is not there.
15
+ */
16
+ export class TerraformReferenceResolver {
17
+ byAddress;
18
+ moduleOutputs;
19
+ logicalIds;
20
+ constructor(resources, moduleOutputs = new Map()) {
21
+ this.byAddress = new Map(resources.map((resource) => [resource.address, resource]));
22
+ this.moduleOutputs = moduleOutputs;
23
+ this.logicalIds = new TerraformLogicalIds(this.byAddress.keys());
24
+ }
25
+ /** The logical ID the template declares one address under. */
26
+ logicalId(address) {
27
+ return this.logicalIds.of(address);
28
+ }
29
+ /**
30
+ * The resource at one address, for a caller that needs the resource rather
31
+ * than a value read off it. A mapping reading a name out of the resource its
32
+ * own attribute refers to is what wants this.
33
+ */
34
+ resource(address) {
35
+ return this.byAddress.get(address);
36
+ }
37
+ /**
38
+ * The CloudFormation value one reference stands for.
39
+ *
40
+ * A reference to a resource the template does not declare returns undefined,
41
+ * and so does one whose attribute has no entry in the read table. The caller
42
+ * decides what an unresolvable reference means for the Resource holding it.
43
+ */
44
+ resolve(reference, modulePath) {
45
+ const qualified = qualifiedReference(reference, modulePath);
46
+ const target = this.target(qualified);
47
+ if (target === undefined) {
48
+ return undefined;
49
+ }
50
+ const attribute = this.attributeName(qualified, target.address);
51
+ const read = attribute === undefined
52
+ ? "Ref"
53
+ : terraformAttributeReads.get(`${target.type}.${attribute}`);
54
+ if (read === undefined) {
55
+ return undefined;
56
+ }
57
+ const logicalId = this.logicalId(target.address);
58
+ return read === "Ref"
59
+ ? { Ref: logicalId }
60
+ : { "Fn::GetAtt": [logicalId, read] };
61
+ }
62
+ /**
63
+ * The address of the resource one reference names.
64
+ *
65
+ * A fold needs the resource a reference points at rather than the value read
66
+ * off it, because it is merging properties into that resource's template,
67
+ * and so does the ordering pass.
68
+ */
69
+ targetAddress(reference, modulePath) {
70
+ return this.target(qualifiedReference(reference, modulePath))?.address;
71
+ }
72
+ /**
73
+ * The attribute a reference reads off the resource behind it.
74
+ *
75
+ * A reference naming a resource address and nothing else names no attribute,
76
+ * and is the resource itself. A reference through a module output names the
77
+ * output rather than the attribute, and the output's own expression says
78
+ * which attribute that is.
79
+ */
80
+ attributeName(qualified, address) {
81
+ if (qualified === address) {
82
+ return undefined;
83
+ }
84
+ if (qualified.startsWith(`${address}.`)) {
85
+ return qualified.slice(address.length + 1);
86
+ }
87
+ const [longest] = longestFirst(this.moduleOutput(qualified) ?? []);
88
+ return longest?.split(".").pop();
89
+ }
90
+ target(qualified) {
91
+ return this.longestMatch(qualified) ?? this.throughModuleOutput(qualified);
92
+ }
93
+ /**
94
+ * The module output one reference names.
95
+ *
96
+ * The index is keyed by module call path, since a module declares its
97
+ * outputs once however many instances of the call there are. A reference
98
+ * made from inside one instance carries that instance's key, so the key
99
+ * comes off when the qualified form finds nothing.
100
+ */
101
+ moduleOutput(qualified) {
102
+ return (this.moduleOutputs.get(qualified) ??
103
+ this.moduleOutputs.get(withoutInstanceKeys(qualified)));
104
+ }
105
+ /**
106
+ * The resource a module output leads to.
107
+ *
108
+ * The output's own expression names it, in terms of the module declaring the
109
+ * output, so following one is resolving that expression again one module
110
+ * down. An output built out of several resources returns the first that
111
+ * resolves, and the depth limit stops a module whose outputs refer to each
112
+ * other from looping.
113
+ */
114
+ throughModuleOutput(qualified, depth = 0) {
115
+ const output = this.moduleOutput(qualified);
116
+ if (output === undefined || depth > 8) {
117
+ return undefined;
118
+ }
119
+ // The path the output was read through rather than the one it was
120
+ // declared under, so an output reached inside a `for_each` instance
121
+ // follows its own instance's resources.
122
+ const instance = moduleOutputPath(qualified);
123
+ for (const reference of longestFirst(output)) {
124
+ const nested = qualifiedReference(reference, instance);
125
+ const target = this.longestMatch(nested) ??
126
+ this.throughModuleOutput(nested, depth + 1);
127
+ if (target !== undefined) {
128
+ return target;
129
+ }
130
+ }
131
+ return undefined;
132
+ }
133
+ /**
134
+ * The resource whose address is the longest prefix of this reference.
135
+ *
136
+ * `aws_iam_role.processor.arn` has to find `aws_iam_role.processor` and leave
137
+ * `arn` behind, and a `for_each` instance address carries a bracketed key
138
+ * that is part of the address rather than an attribute.
139
+ */
140
+ longestMatch(qualified) {
141
+ let best;
142
+ for (const [address, resource] of this.byAddress) {
143
+ if (qualified !== address && !qualified.startsWith(`${address}.`)) {
144
+ continue;
145
+ }
146
+ if (best === undefined || address.length > best.address.length) {
147
+ best = resource;
148
+ }
149
+ }
150
+ return best;
151
+ }
152
+ }
153
+ //# sourceMappingURL=sim-tf-reference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-tf-reference.js","sourceRoot":"","sources":["../../src/terraform/sim-tf-reference.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { TerraformResource } from "./sim-tf-resource.type.js";
2
+ import type { TerraformReferenceResolver } from "./sim-tf-reference.js";
3
+ /**
4
+ * The resource one attribute of a resource refers to.
5
+ *
6
+ * A fold reads the resource it configures this way, because its parent
7
+ * attribute holds a reference rather than a value. A bucket or a role being
8
+ * created by the same plan has no name until it exists, so the reference is
9
+ * all there is to go on.
10
+ *
11
+ * Terraform lists both the attribute form and the bare resource form of one
12
+ * reference, and both lead to the same resource, so the first that resolves
13
+ * wins.
14
+ */
15
+ export declare function terraformReferencedResource(resource: TerraformResource, key: string, resolver: TerraformReferenceResolver): TerraformResource | undefined;
16
+ /** The address of the resource one attribute refers to. */
17
+ export declare function terraformReferencedAddress(resource: TerraformResource, key: string, resolver: TerraformReferenceResolver): string | undefined;
18
+ //# sourceMappingURL=sim-tf-referenced.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-tf-referenced.d.ts","sourceRoot":"","sources":["../../src/terraform/sim-tf-referenced.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAGxE;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,iBAAiB,EAC3B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,0BAA0B,GACnC,iBAAiB,GAAG,SAAS,CAI/B;AAED,2DAA2D;AAC3D,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,iBAAiB,EAC3B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,0BAA0B,GACnC,MAAM,GAAG,SAAS,CAoBpB"}
@@ -0,0 +1,40 @@
1
+ /*
2
+ * Reading a plan means reading records whose keys come from the document
3
+ * rather than from this code, so the object-injection rule fires on every
4
+ * lookup. The records are parsed JSON with no prototype of their own.
5
+ */
6
+ // oxlint-disable security/detect-object-injection
7
+ import { isRecord } from "../util/type-guard/record.js";
8
+ import { longestFirst } from "./sim-tf-reference-address.js";
9
+ /**
10
+ * The resource one attribute of a resource refers to.
11
+ *
12
+ * A fold reads the resource it configures this way, because its parent
13
+ * attribute holds a reference rather than a value. A bucket or a role being
14
+ * created by the same plan has no name until it exists, so the reference is
15
+ * all there is to go on.
16
+ *
17
+ * Terraform lists both the attribute form and the bare resource form of one
18
+ * reference, and both lead to the same resource, so the first that resolves
19
+ * wins.
20
+ */
21
+ export function terraformReferencedResource(resource, key, resolver) {
22
+ const address = terraformReferencedAddress(resource, key, resolver);
23
+ return address === undefined ? undefined : resolver.resource(address);
24
+ }
25
+ /** The address of the resource one attribute refers to. */
26
+ export function terraformReferencedAddress(resource, key, resolver) {
27
+ const expression = resource.expressions[key];
28
+ if (!isRecord(expression)) {
29
+ return undefined;
30
+ }
31
+ const references = longestFirst(expression.references ?? []);
32
+ for (const reference of references) {
33
+ const address = resolver.targetAddress(reference, resource.modulePath);
34
+ if (address !== undefined) {
35
+ return address;
36
+ }
37
+ }
38
+ return undefined;
39
+ }
40
+ //# sourceMappingURL=sim-tf-referenced.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-tf-referenced.js","sourceRoot":"","sources":["../../src/terraform/sim-tf-referenced.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,kDAAkD;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAIxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,2BAA2B,CACzC,QAA2B,EAC3B,GAAW,EACX,QAAoC;IAEpC,MAAM,OAAO,GAAG,0BAA0B,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAEpE,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACxE,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,0BAA0B,CACxC,QAA2B,EAC3B,GAAW,EACX,QAAoC;IAEpC,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAE7C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,CAC5B,UAAkC,CAAC,UAAU,IAAI,EAAE,CACrD,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QAEvE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { TerraformResource } from "./sim-tf-resource.type.js";
2
+ import type { TerraformBuildContext } from "./sim-tf-attributes.js";
3
+ import type { TerraformDeclaration } from "./sim-tf-mapping.type.js";
4
+ import type { TerraformSkipReason } from "./sim-tf-report.type.js";
5
+ /**
6
+ * Why the Resource a mapping builds is one the service would not accept.
7
+ *
8
+ * A plan can leave a value the service requires unresolvable, and a Resource
9
+ * built without it fails and takes the Stack's other Resources with it. The
10
+ * mapping names those properties under `requires`, and names under `refused`
11
+ * the case where every property is there and the service will not take one of
12
+ * the values. Either way the resource is left out of the template rather than
13
+ * deployed into a failure.
14
+ */
15
+ export declare function terraformRefusal(declaration: TerraformDeclaration, build: TerraformBuildContext, unresolved: TerraformSkipReason): TerraformSkipReason | undefined;
16
+ /**
17
+ * The properties a mapping declares as required and could not fill.
18
+ *
19
+ * A resource with no mapping at all has none. It is refused for the type
20
+ * before any value is read, and there is no mapping to ask what it needed.
21
+ */
22
+ export declare function terraformMissingProperties(resource: TerraformResource, build: TerraformBuildContext): readonly string[];
23
+ //# sourceMappingURL=sim-tf-refusal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-tf-refusal.d.ts","sourceRoot":"","sources":["../../src/terraform/sim-tf-refusal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpE,OAAO,KAAK,EACV,oBAAoB,EAErB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,oBAAoB,EACjC,KAAK,EAAE,qBAAqB,EAC5B,UAAU,EAAE,mBAAmB,GAC9B,mBAAmB,GAAG,SAAS,CAQjC;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,EAAE,qBAAqB,GAC3B,SAAS,MAAM,EAAE,CAMnB"}
@@ -0,0 +1,44 @@
1
+ import { terraformResourceMappings } from "./sim-tf-registry.js";
2
+ /**
3
+ * Why the Resource a mapping builds is one the service would not accept.
4
+ *
5
+ * A plan can leave a value the service requires unresolvable, and a Resource
6
+ * built without it fails and takes the Stack's other Resources with it. The
7
+ * mapping names those properties under `requires`, and names under `refused`
8
+ * the case where every property is there and the service will not take one of
9
+ * the values. Either way the resource is left out of the template rather than
10
+ * deployed into a failure.
11
+ */
12
+ export function terraformRefusal(declaration, build, unresolved) {
13
+ const built = builtResource(declaration, build);
14
+ if (built.refused !== undefined) {
15
+ return built.refused;
16
+ }
17
+ return missing(built).length === 0 ? undefined : unresolved;
18
+ }
19
+ /**
20
+ * The properties a mapping declares as required and could not fill.
21
+ *
22
+ * A resource with no mapping at all has none. It is refused for the type
23
+ * before any value is read, and there is no mapping to ask what it needed.
24
+ */
25
+ export function terraformMissingProperties(resource, build) {
26
+ const mapping = terraformResourceMappings.get(resource.type);
27
+ return mapping === undefined
28
+ ? []
29
+ : missing(builtResource({ resource, mapping }, build));
30
+ }
31
+ /** The Resource one declaration's mapping builds, against this plan. */
32
+ function builtResource(declaration, build) {
33
+ return declaration.mapping({
34
+ resource: declaration.resource,
35
+ resolver: build.resolver,
36
+ overrides: build.overrides,
37
+ });
38
+ }
39
+ function missing(built) {
40
+ return (built.requires ?? []).filter(
41
+ // oxlint-disable-next-line security/detect-object-injection
42
+ (name) => built.Properties[name] === undefined);
43
+ }
44
+ //# sourceMappingURL=sim-tf-refusal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-tf-refusal.js","sourceRoot":"","sources":["../../src/terraform/sim-tf-refusal.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAOjE;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAC9B,WAAiC,EACjC,KAA4B,EAC5B,UAA+B;IAE/B,MAAM,KAAK,GAAG,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAEhD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IAED,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;AAC9D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAA2B,EAC3B,KAA4B;IAE5B,MAAM,OAAO,GAAG,yBAAyB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE7D,OAAO,OAAO,KAAK,SAAS;QAC1B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,wEAAwE;AACxE,SAAS,aAAa,CACpB,WAAiC,EACjC,KAA4B;IAE5B,OAAO,WAAW,CAAC,OAAO,CAAC;QACzB,QAAQ,EAAE,WAAW,CAAC,QAAQ;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC,CAAC;AACL,CAAC;AAED,SAAS,OAAO,CAAC,KAA8B;IAC7C,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM;IAClC,4DAA4D;IAC5D,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,SAAS,CAC/C,CAAC;AACJ,CAAC"}
@@ -3,7 +3,8 @@ import type { TerraformResourceFold, TerraformResourceMapping } from "./sim-tf-m
3
3
  * The Terraform resource types this import turns into CloudFormation Resources.
4
4
  *
5
5
  * A type with no entry is recorded as skipped, which is what the stack already
6
- * does with a CloudFormation Resource type no simulated service models.
6
+ * does with a CloudFormation Resource type no simulated service models. The
7
+ * set grows a service at a time.
7
8
  */
8
9
  export declare const terraformResourceMappings: ReadonlyMap<string, TerraformResourceMapping>;
9
10
  /**
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-tf-registry.d.ts","sourceRoot":"","sources":["../../src/terraform/sim-tf-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,0BAA0B,CAAC;AAiClC;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,EAAE,WAAW,CACjD,MAAM,EACN,wBAAwB,CA0BxB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAC9C,MAAM,EACN,qBAAqB,CAQrB,CAAC"}
@@ -0,0 +1,67 @@
1
+ import { metricAlarm } from "./map/sim-tf-map-cloudwatch.js";
2
+ import { cognitoUserPool } from "./map/sim-tf-map-cognito.js";
3
+ import { cognitoUserPoolClient } from "./map/sim-tf-map-cognito-client.js";
4
+ import { dynamodbTable } from "./map/sim-tf-map-dynamodb.js";
5
+ import { ecrRepository } from "./map/sim-tf-map-ecr.js";
6
+ import { eventRule, eventTargetFolds } from "./map/sim-tf-map-events.js";
7
+ import { httpApi, httpApiStage } from "./map/sim-tf-map-http-api.js";
8
+ import { httpApiIntegration, httpApiRoute, } from "./map/sim-tf-map-http-api-routes.js";
9
+ import { iamRole, iamRoleFolds } from "./map/sim-tf-map-iam.js";
10
+ import { kmsAlias, kmsKey } from "./map/sim-tf-map-kms.js";
11
+ import { lambdaEventSourceMapping, lambdaFunction, lambdaPermission, } from "./map/sim-tf-map-lambda.js";
12
+ import { logGroup } from "./map/sim-tf-map-logs.js";
13
+ import { s3Bucket } from "./map/sim-tf-map-s3.js";
14
+ import { s3BucketFolds } from "./map/sim-tf-map-s3-folds.js";
15
+ import { s3LifecycleFolds } from "./map/sim-tf-map-s3-lifecycle.js";
16
+ import { bucketNotification } from "./map/sim-tf-map-s3-notification.js";
17
+ import { secretsManagerFolds, secretsManagerSecret, } from "./map/sim-tf-map-secretsmanager.js";
18
+ import { snsSubscription, snsTopic } from "./map/sim-tf-map-sns.js";
19
+ import { sqsQueue } from "./map/sim-tf-map-sqs.js";
20
+ import { sqsRedriveFolds } from "./map/sim-tf-map-sqs-redrive.js";
21
+ import { ssmParameter } from "./map/sim-tf-map-ssm.js";
22
+ /**
23
+ * The Terraform resource types this import turns into CloudFormation Resources.
24
+ *
25
+ * A type with no entry is recorded as skipped, which is what the stack already
26
+ * does with a CloudFormation Resource type no simulated service models. The
27
+ * set grows a service at a time.
28
+ */
29
+ export const terraformResourceMappings = new Map([
30
+ ["aws_apigatewayv2_api", httpApi],
31
+ ["aws_apigatewayv2_integration", httpApiIntegration],
32
+ ["aws_apigatewayv2_route", httpApiRoute],
33
+ ["aws_apigatewayv2_stage", httpApiStage],
34
+ ["aws_cloudwatch_event_rule", eventRule],
35
+ ["aws_cloudwatch_log_group", logGroup],
36
+ ["aws_cloudwatch_metric_alarm", metricAlarm],
37
+ ["aws_cognito_user_pool", cognitoUserPool],
38
+ ["aws_cognito_user_pool_client", cognitoUserPoolClient],
39
+ ["aws_dynamodb_table", dynamodbTable],
40
+ ["aws_ecr_repository", ecrRepository],
41
+ ["aws_iam_role", iamRole],
42
+ ["aws_kms_alias", kmsAlias],
43
+ ["aws_kms_key", kmsKey],
44
+ ["aws_lambda_event_source_mapping", lambdaEventSourceMapping],
45
+ ["aws_lambda_function", lambdaFunction],
46
+ ["aws_lambda_permission", lambdaPermission],
47
+ ["aws_s3_bucket", s3Bucket],
48
+ ["aws_s3_bucket_notification", bucketNotification],
49
+ ["aws_secretsmanager_secret", secretsManagerSecret],
50
+ ["aws_sns_topic", snsTopic],
51
+ ["aws_sns_topic_subscription", snsSubscription],
52
+ ["aws_sqs_queue", sqsQueue],
53
+ ["aws_ssm_parameter", ssmParameter],
54
+ ]);
55
+ /**
56
+ * The Terraform resource types that configure another resource rather than
57
+ * creating one of their own.
58
+ */
59
+ export const terraformResourceFolds = new Map([
60
+ ...s3BucketFolds,
61
+ ...s3LifecycleFolds,
62
+ ...iamRoleFolds,
63
+ ...secretsManagerFolds,
64
+ ...eventTargetFolds,
65
+ ...sqsRedriveFolds,
66
+ ]);
67
+ //# sourceMappingURL=sim-tf-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-tf-registry.js","sourceRoot":"","sources":["../../src/terraform/sim-tf-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { TerraformResource } from "./sim-tf-resource.type.js";
2
+ import type { TerraformSettledPlan } from "./sim-tf-settle.js";
3
+ import type { TerraformDeclaredResources } from "./sim-tf-declare.js";
4
+ import type { TerraformFoldedResources } from "./sim-tf-fold.js";
5
+ import type { TerraformImportReport } from "./sim-tf-report.type.js";
6
+ export interface TerraformImportPasses {
7
+ readonly resources: readonly TerraformResource[];
8
+ readonly settled: TerraformSettledPlan;
9
+ readonly declared: TerraformDeclaredResources;
10
+ readonly folded: TerraformFoldedResources;
11
+ }
12
+ /**
13
+ * What an import did with every resource of the plan.
14
+ *
15
+ * Each resource is in exactly one of mapped, folded and skipped, so the three
16
+ * add up to the plan's managed resource count. That is what makes the mapped
17
+ * fraction a fraction of something, and what a reader checks the report
18
+ * against the configuration with.
19
+ */
20
+ export declare function terraformImportReport(passes: TerraformImportPasses): TerraformImportReport;
21
+ //# sourceMappingURL=sim-tf-report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-tf-report.d.ts","sourceRoot":"","sources":["../../src/terraform/sim-tf-report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EACV,qBAAqB,EAGtB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACjD,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC;CAC3C;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,qBAAqB,GAC5B,qBAAqB,CAcvB"}