@kensio/yulin 1.19.1 → 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 (638) 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/deploy/sim-cfn-cdk-out-deployer.d.ts +2 -2
  46. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.d.ts.map +1 -1
  47. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js.map +1 -1
  48. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts +3 -3
  49. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts.map +1 -1
  50. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.js.map +1 -1
  51. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts +5 -4
  52. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts.map +1 -1
  53. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js.map +1 -1
  54. package/dist/service/cloudformation/index.d.ts +7 -0
  55. package/dist/service/cloudformation/index.d.ts.map +1 -1
  56. package/dist/service/cloudformation/resource/cfn/ses/sim-ses-cfn-value-adapter.d.ts.map +1 -1
  57. package/dist/service/cloudformation/resource/cfn/ses/sim-ses-cfn-value-adapter.js +8 -0
  58. package/dist/service/cloudformation/resource/cfn/ses/sim-ses-cfn-value-adapter.js.map +1 -1
  59. package/dist/service/cloudformation/resource/cfn/ses/sim-ses-configuration-set-cfn.d.ts +30 -0
  60. package/dist/service/cloudformation/resource/cfn/ses/sim-ses-configuration-set-cfn.d.ts.map +1 -0
  61. package/dist/service/cloudformation/resource/cfn/ses/sim-ses-configuration-set-cfn.js +29 -0
  62. package/dist/service/cloudformation/resource/cfn/ses/sim-ses-configuration-set-cfn.js.map +1 -0
  63. package/dist/service/cloudformation/resource/cfn/ses/sim-ses-identity-cfn.js +1 -1
  64. package/dist/service/cloudformation/resource/cfn/ses/sim-ses-identity-cfn.js.map +1 -1
  65. package/dist/service/cloudformation/resource/sim-cfn-deployed-resource.type.d.ts +59 -0
  66. package/dist/service/cloudformation/resource/sim-cfn-deployed-resource.type.d.ts.map +1 -0
  67. package/dist/service/cloudformation/resource/sim-cfn-deployed-resource.type.js +2 -0
  68. package/dist/service/cloudformation/resource/sim-cfn-deployed-resource.type.js.map +1 -0
  69. package/dist/service/cloudformation/sim-cloudformation.d.ts +8 -9
  70. package/dist/service/cloudformation/sim-cloudformation.d.ts.map +1 -1
  71. package/dist/service/cloudformation/sim-cloudformation.js +1 -3
  72. package/dist/service/cloudformation/sim-cloudformation.js.map +1 -1
  73. package/dist/service/cloudformation/stack/sim-cfn-deployed-stack.type.d.ts +68 -0
  74. package/dist/service/cloudformation/stack/sim-cfn-deployed-stack.type.d.ts.map +1 -0
  75. package/dist/service/cloudformation/stack/sim-cfn-deployed-stack.type.js +2 -0
  76. package/dist/service/cloudformation/stack/sim-cfn-deployed-stack.type.js.map +1 -0
  77. package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts +2 -1
  78. package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts.map +1 -1
  79. package/dist/service/cloudformation/stack/sim-cfn-stack.fixture.d.ts +21 -0
  80. package/dist/service/cloudformation/stack/sim-cfn-stack.fixture.d.ts.map +1 -0
  81. package/dist/service/cloudformation/stack/sim-cfn-stack.fixture.js +21 -0
  82. package/dist/service/cloudformation/stack/sim-cfn-stack.fixture.js.map +1 -0
  83. package/dist/service/cloudformation/stack/sim-cfn-stack.js.map +1 -1
  84. package/dist/service/cognito/cfn/client/sim-cfn-cognito-client-properties.d.ts.map +1 -1
  85. package/dist/service/cognito/cfn/client/sim-cfn-cognito-client-properties.js +2 -0
  86. package/dist/service/cognito/cfn/client/sim-cfn-cognito-client-properties.js.map +1 -1
  87. package/dist/service/cognito/cfn/sim-cfn-cognito-property-parser.d.ts +7 -0
  88. package/dist/service/cognito/cfn/sim-cfn-cognito-property-parser.d.ts.map +1 -1
  89. package/dist/service/cognito/cfn/sim-cfn-cognito-property-parser.js +14 -0
  90. package/dist/service/cognito/cfn/sim-cfn-cognito-property-parser.js.map +1 -1
  91. package/dist/service/cognito/cfn/user-pool/sim-cfn-cognito-user-pool-properties.d.ts.map +1 -1
  92. package/dist/service/cognito/cfn/user-pool/sim-cfn-cognito-user-pool-properties.js +10 -0
  93. package/dist/service/cognito/cfn/user-pool/sim-cfn-cognito-user-pool-properties.js.map +1 -1
  94. package/dist/service/cognito/command/auth/sim-cognito-available-challenges.d.ts.map +1 -1
  95. package/dist/service/cognito/command/auth/sim-cognito-available-challenges.js +7 -6
  96. package/dist/service/cognito/command/auth/sim-cognito-available-challenges.js.map +1 -1
  97. package/dist/service/cognito/command/client/sim-cognito-unsimulated-client-options.d.ts +20 -0
  98. package/dist/service/cognito/command/client/sim-cognito-unsimulated-client-options.d.ts.map +1 -1
  99. package/dist/service/cognito/command/client/sim-cognito-unsimulated-client-options.js +24 -4
  100. package/dist/service/cognito/command/client/sim-cognito-unsimulated-client-options.js.map +1 -1
  101. package/dist/service/cognito/command/sim-cognito-commands.d.ts +4 -0
  102. package/dist/service/cognito/command/sim-cognito-commands.d.ts.map +1 -1
  103. package/dist/service/cognito/command/sim-cognito-commands.js +8 -2
  104. package/dist/service/cognito/command/sim-cognito-commands.js.map +1 -1
  105. package/dist/service/cognito/command/sim-cognito-unsimulated-input.d.ts +9 -0
  106. package/dist/service/cognito/command/sim-cognito-unsimulated-input.d.ts.map +1 -1
  107. package/dist/service/cognito/command/sim-cognito-unsimulated-input.js +13 -3
  108. package/dist/service/cognito/command/sim-cognito-unsimulated-input.js.map +1 -1
  109. package/dist/service/cognito/command/user/sim-cognito-user-mfa-commands.d.ts.map +1 -1
  110. package/dist/service/cognito/command/user/sim-cognito-user-mfa-commands.js +2 -1
  111. package/dist/service/cognito/command/user/sim-cognito-user-mfa-commands.js.map +1 -1
  112. package/dist/service/cognito/command/user/user-mfa.command.d.ts +4 -3
  113. package/dist/service/cognito/command/user/user-mfa.command.d.ts.map +1 -1
  114. package/dist/service/cognito/command/user-pool/sim-cognito-unsimulated-pool-messaging.d.ts +22 -8
  115. package/dist/service/cognito/command/user-pool/sim-cognito-unsimulated-pool-messaging.d.ts.map +1 -1
  116. package/dist/service/cognito/command/user-pool/sim-cognito-unsimulated-pool-messaging.js +24 -11
  117. package/dist/service/cognito/command/user-pool/sim-cognito-unsimulated-pool-messaging.js.map +1 -1
  118. package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-mfa-commands.d.ts +3 -3
  119. package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-mfa-commands.d.ts.map +1 -1
  120. package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-mfa-commands.js +5 -4
  121. package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-mfa-commands.js.map +1 -1
  122. package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-view.d.ts +6 -0
  123. package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-view.d.ts.map +1 -1
  124. package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-view.js +7 -0
  125. package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-view.js.map +1 -1
  126. package/dist/service/cognito/command/user-pool/user-pool-mfa.command.d.ts +7 -6
  127. package/dist/service/cognito/command/user-pool/user-pool-mfa.command.d.ts.map +1 -1
  128. package/dist/service/cognito/command/user-pool/user-pool.command.d.ts +4 -2
  129. package/dist/service/cognito/command/user-pool/user-pool.command.d.ts.map +1 -1
  130. package/dist/service/cognito/error/sim-cognito.error.d.ts +23 -0
  131. package/dist/service/cognito/error/sim-cognito.error.d.ts.map +1 -1
  132. package/dist/service/cognito/error/sim-cognito.error.js +27 -0
  133. package/dist/service/cognito/error/sim-cognito.error.js.map +1 -1
  134. package/dist/service/cognito/index.d.ts +4 -0
  135. package/dist/service/cognito/index.d.ts.map +1 -1
  136. package/dist/service/cognito/index.js +4 -0
  137. package/dist/service/cognito/index.js.map +1 -1
  138. package/dist/service/cognito/sim-cognito-identity-provider.d.ts +14 -0
  139. package/dist/service/cognito/sim-cognito-identity-provider.d.ts.map +1 -1
  140. package/dist/service/cognito/sim-cognito-identity-provider.js +5 -1
  141. package/dist/service/cognito/sim-cognito-identity-provider.js.map +1 -1
  142. package/dist/service/cognito/user-pool/message/sim-aws-cognito-email-senders.d.ts +42 -0
  143. package/dist/service/cognito/user-pool/message/sim-aws-cognito-email-senders.d.ts.map +1 -0
  144. package/dist/service/cognito/user-pool/message/sim-aws-cognito-email-senders.js +84 -0
  145. package/dist/service/cognito/user-pool/message/sim-aws-cognito-email-senders.js.map +1 -0
  146. package/dist/service/cognito/user-pool/message/sim-cognito-email-configuration-reader.d.ts +31 -0
  147. package/dist/service/cognito/user-pool/message/sim-cognito-email-configuration-reader.d.ts.map +1 -0
  148. package/dist/service/cognito/user-pool/message/sim-cognito-email-configuration-reader.js +72 -0
  149. package/dist/service/cognito/user-pool/message/sim-cognito-email-configuration-reader.js.map +1 -0
  150. package/dist/service/cognito/user-pool/message/sim-cognito-email-configuration.d.ts +85 -0
  151. package/dist/service/cognito/user-pool/message/sim-cognito-email-configuration.d.ts.map +1 -0
  152. package/dist/service/cognito/user-pool/message/sim-cognito-email-configuration.js +117 -0
  153. package/dist/service/cognito/user-pool/message/sim-cognito-email-configuration.js.map +1 -0
  154. package/dist/service/cognito/user-pool/message/sim-cognito-email-senders.d.ts +73 -0
  155. package/dist/service/cognito/user-pool/message/sim-cognito-email-senders.d.ts.map +1 -0
  156. package/dist/service/cognito/user-pool/message/sim-cognito-email-senders.js +23 -0
  157. package/dist/service/cognito/user-pool/message/sim-cognito-email-senders.js.map +1 -0
  158. package/dist/service/cognito/user-pool/message/sim-cognito-email-source-arn.d.ts +39 -0
  159. package/dist/service/cognito/user-pool/message/sim-cognito-email-source-arn.d.ts.map +1 -0
  160. package/dist/service/cognito/user-pool/message/sim-cognito-email-source-arn.js +33 -0
  161. package/dist/service/cognito/user-pool/message/sim-cognito-email-source-arn.js.map +1 -0
  162. package/dist/service/cognito/user-pool/message/sim-cognito-pool-email-delivery.d.ts +41 -0
  163. package/dist/service/cognito/user-pool/message/sim-cognito-pool-email-delivery.d.ts.map +1 -0
  164. package/dist/service/cognito/user-pool/message/sim-cognito-pool-email-delivery.js +66 -0
  165. package/dist/service/cognito/user-pool/message/sim-cognito-pool-email-delivery.js.map +1 -0
  166. package/dist/service/cognito/user-pool/message/sim-cognito-pool-messenger.d.ts +19 -4
  167. package/dist/service/cognito/user-pool/message/sim-cognito-pool-messenger.d.ts.map +1 -1
  168. package/dist/service/cognito/user-pool/message/sim-cognito-pool-messenger.js +30 -8
  169. package/dist/service/cognito/user-pool/message/sim-cognito-pool-messenger.js.map +1 -1
  170. package/dist/service/cognito/user-pool/message/sim-cognito-sent-message.d.ts +9 -3
  171. package/dist/service/cognito/user-pool/message/sim-cognito-sent-message.d.ts.map +1 -1
  172. package/dist/service/cognito/user-pool/message/sim-cognito-sent-message.js +9 -3
  173. package/dist/service/cognito/user-pool/message/sim-cognito-sent-message.js.map +1 -1
  174. package/dist/service/cognito/user-pool/mfa/sim-cognito-user-pool-mfa.d.ts +2 -3
  175. package/dist/service/cognito/user-pool/mfa/sim-cognito-user-pool-mfa.d.ts.map +1 -1
  176. package/dist/service/cognito/user-pool/mfa/sim-cognito-user-pool-mfa.js.map +1 -1
  177. package/dist/service/cognito/user-pool/sim-cognito-user-pool-arn.d.ts +4 -2
  178. package/dist/service/cognito/user-pool/sim-cognito-user-pool-arn.d.ts.map +1 -1
  179. package/dist/service/cognito/user-pool/sim-cognito-user-pool-arn.js +2 -1
  180. package/dist/service/cognito/user-pool/sim-cognito-user-pool-arn.js.map +1 -1
  181. package/dist/service/cognito/user-pool/sim-cognito-user-pool-settings.d.ts +13 -0
  182. package/dist/service/cognito/user-pool/sim-cognito-user-pool-settings.d.ts.map +1 -1
  183. package/dist/service/cognito/user-pool/sim-cognito-user-pool-settings.js +7 -0
  184. package/dist/service/cognito/user-pool/sim-cognito-user-pool-settings.js.map +1 -1
  185. package/dist/service/elbv2/cfn/sim-cfn-elbv2.fixture.d.ts +2 -2
  186. package/dist/service/elbv2/cfn/sim-cfn-elbv2.fixture.d.ts.map +1 -1
  187. package/dist/service/elbv2/cfn/sim-cfn-elbv2.fixture.js.map +1 -1
  188. package/dist/service/iam/index.d.ts +1 -0
  189. package/dist/service/iam/index.d.ts.map +1 -1
  190. package/dist/service/iam/index.js.map +1 -1
  191. package/dist/service/ses/account/sim-ses-account.d.ts +22 -0
  192. package/dist/service/ses/account/sim-ses-account.d.ts.map +1 -1
  193. package/dist/service/ses/account/sim-ses-account.js +31 -0
  194. package/dist/service/ses/account/sim-ses-account.js.map +1 -1
  195. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-creator.d.ts +30 -0
  196. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-creator.d.ts.map +1 -0
  197. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-creator.js +47 -0
  198. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-creator.js.map +1 -0
  199. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-option-groups.d.ts +23 -0
  200. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-option-groups.d.ts.map +1 -0
  201. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-option-groups.js +52 -0
  202. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-option-groups.js.map +1 -0
  203. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-properties.d.ts +39 -0
  204. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-properties.d.ts.map +1 -0
  205. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-properties.js +71 -0
  206. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-properties.js.map +1 -0
  207. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-unsimulated-properties.d.ts +17 -0
  208. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-unsimulated-properties.d.ts.map +1 -0
  209. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-unsimulated-properties.js +34 -0
  210. package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-unsimulated-properties.js.map +1 -0
  211. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-creator.d.ts +5 -0
  212. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-creator.d.ts.map +1 -1
  213. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-creator.js +7 -0
  214. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-creator.js.map +1 -1
  215. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-properties.d.ts +13 -8
  216. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-properties.d.ts.map +1 -1
  217. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-properties.js +29 -14
  218. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-properties.js.map +1 -1
  219. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-settings.d.ts +18 -0
  220. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-settings.d.ts.map +1 -0
  221. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-settings.js +77 -0
  222. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-settings.js.map +1 -0
  223. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-values.d.ts +25 -0
  224. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-values.d.ts.map +1 -0
  225. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-values.js +49 -0
  226. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-values.js.map +1 -0
  227. package/dist/service/ses/cfn/sim-cfn-ses-property-scalars.d.ts +25 -0
  228. package/dist/service/ses/cfn/sim-cfn-ses-property-scalars.d.ts.map +1 -0
  229. package/dist/service/ses/cfn/sim-cfn-ses-property-scalars.js +69 -0
  230. package/dist/service/ses/cfn/sim-cfn-ses-property-scalars.js.map +1 -0
  231. package/dist/service/ses/cfn/sim-cfn-ses-resource-types.d.ts +2 -0
  232. package/dist/service/ses/cfn/sim-cfn-ses-resource-types.d.ts.map +1 -1
  233. package/dist/service/ses/cfn/sim-cfn-ses-resource-types.js +2 -0
  234. package/dist/service/ses/cfn/sim-cfn-ses-resource-types.js.map +1 -1
  235. package/dist/service/ses/cfn/sim-ses-cfn-resource-factory.d.ts +3 -2
  236. package/dist/service/ses/cfn/sim-ses-cfn-resource-factory.d.ts.map +1 -1
  237. package/dist/service/ses/cfn/sim-ses-cfn-resource-factory.js +43 -40
  238. package/dist/service/ses/cfn/sim-ses-cfn-resource-factory.js.map +1 -1
  239. package/dist/service/ses/command/account/account.command.d.ts +22 -0
  240. package/dist/service/ses/command/account/account.command.d.ts.map +1 -1
  241. package/dist/service/ses/command/account/sim-ses-account-commands.d.ts +12 -4
  242. package/dist/service/ses/command/account/sim-ses-account-commands.d.ts.map +1 -1
  243. package/dist/service/ses/command/account/sim-ses-account-commands.js +16 -3
  244. package/dist/service/ses/command/account/sim-ses-account-commands.js.map +1 -1
  245. package/dist/service/ses/command/account/sim-ses-account-report.d.ts +3 -0
  246. package/dist/service/ses/command/account/sim-ses-account-report.d.ts.map +1 -1
  247. package/dist/service/ses/command/account/sim-ses-account-report.js +4 -0
  248. package/dist/service/ses/command/account/sim-ses-account-report.js.map +1 -1
  249. package/dist/service/ses/command/authorize/sim-ses-authorizer.d.ts +8 -0
  250. package/dist/service/ses/command/authorize/sim-ses-authorizer.d.ts.map +1 -1
  251. package/dist/service/ses/command/authorize/sim-ses-authorizer.js +11 -1
  252. package/dist/service/ses/command/authorize/sim-ses-authorizer.js.map +1 -1
  253. package/dist/service/ses/command/configuration-set/configuration-set.command.d.ts +100 -0
  254. package/dist/service/ses/command/configuration-set/configuration-set.command.d.ts.map +1 -0
  255. package/dist/service/ses/command/configuration-set/configuration-set.command.js +2 -0
  256. package/dist/service/ses/command/configuration-set/configuration-set.command.js.map +1 -0
  257. package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-commands.d.ts +55 -0
  258. package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-commands.d.ts.map +1 -0
  259. package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-commands.js +105 -0
  260. package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-commands.js.map +1 -0
  261. package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-options.d.ts +11 -0
  262. package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-options.d.ts.map +1 -0
  263. package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-options.js +83 -0
  264. package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-options.js.map +1 -0
  265. package/dist/service/ses/command/configuration-set/sim-ses-unsimulated-configuration-set-input.d.ts +12 -0
  266. package/dist/service/ses/command/configuration-set/sim-ses-unsimulated-configuration-set-input.d.ts.map +1 -0
  267. package/dist/service/ses/command/configuration-set/sim-ses-unsimulated-configuration-set-input.js +27 -0
  268. package/dist/service/ses/command/configuration-set/sim-ses-unsimulated-configuration-set-input.js.map +1 -0
  269. package/dist/service/ses/command/identity/identity.command.d.ts +55 -2
  270. package/dist/service/ses/command/identity/identity.command.d.ts.map +1 -1
  271. package/dist/service/ses/command/identity/sim-ses-identity-attributes.d.ts +29 -0
  272. package/dist/service/ses/command/identity/sim-ses-identity-attributes.d.ts.map +1 -0
  273. package/dist/service/ses/command/identity/sim-ses-identity-attributes.js +60 -0
  274. package/dist/service/ses/command/identity/sim-ses-identity-attributes.js.map +1 -0
  275. package/dist/service/ses/command/identity/sim-ses-identity-commands.d.ts +6 -1
  276. package/dist/service/ses/command/identity/sim-ses-identity-commands.d.ts.map +1 -1
  277. package/dist/service/ses/command/identity/sim-ses-identity-commands.js +12 -12
  278. package/dist/service/ses/command/identity/sim-ses-identity-commands.js.map +1 -1
  279. package/dist/service/ses/command/identity/sim-ses-identity-input-settings.d.ts +16 -0
  280. package/dist/service/ses/command/identity/sim-ses-identity-input-settings.d.ts.map +1 -0
  281. package/dist/service/ses/command/identity/sim-ses-identity-input-settings.js +57 -0
  282. package/dist/service/ses/command/identity/sim-ses-identity-input-settings.js.map +1 -0
  283. package/dist/service/ses/command/send/sim-ses-send-email.d.ts +6 -0
  284. package/dist/service/ses/command/send/sim-ses-send-email.d.ts.map +1 -1
  285. package/dist/service/ses/command/send/sim-ses-send-email.js +7 -0
  286. package/dist/service/ses/command/send/sim-ses-send-email.js.map +1 -1
  287. package/dist/service/ses/command/send/sim-ses-service-send.d.ts +68 -0
  288. package/dist/service/ses/command/send/sim-ses-service-send.d.ts.map +1 -0
  289. package/dist/service/ses/command/send/sim-ses-service-send.js +69 -0
  290. package/dist/service/ses/command/send/sim-ses-service-send.js.map +1 -0
  291. package/dist/service/ses/command/send/sim-ses-suppression-check.d.ts +31 -0
  292. package/dist/service/ses/command/send/sim-ses-suppression-check.d.ts.map +1 -0
  293. package/dist/service/ses/command/send/sim-ses-suppression-check.js +37 -0
  294. package/dist/service/ses/command/send/sim-ses-suppression-check.js.map +1 -0
  295. package/dist/service/ses/command/send/sim-ses-verified-identities.d.ts +8 -0
  296. package/dist/service/ses/command/send/sim-ses-verified-identities.d.ts.map +1 -1
  297. package/dist/service/ses/command/send/sim-ses-verified-identities.js +15 -2
  298. package/dist/service/ses/command/send/sim-ses-verified-identities.js.map +1 -1
  299. package/dist/service/ses/command/sim-ses-command.types.d.ts +4 -2
  300. package/dist/service/ses/command/sim-ses-command.types.d.ts.map +1 -1
  301. package/dist/service/ses/command/suppression/sim-ses-suppression-commands.d.ts +44 -0
  302. package/dist/service/ses/command/suppression/sim-ses-suppression-commands.d.ts.map +1 -0
  303. package/dist/service/ses/command/suppression/sim-ses-suppression-commands.js +79 -0
  304. package/dist/service/ses/command/suppression/sim-ses-suppression-commands.js.map +1 -0
  305. package/dist/service/ses/command/suppression/sim-ses-suppression-listing.d.ts +15 -0
  306. package/dist/service/ses/command/suppression/sim-ses-suppression-listing.d.ts.map +1 -0
  307. package/dist/service/ses/command/suppression/sim-ses-suppression-listing.js +29 -0
  308. package/dist/service/ses/command/suppression/sim-ses-suppression-listing.js.map +1 -0
  309. package/dist/service/ses/command/suppression/sim-ses-unsimulated-suppression-input.d.ts +9 -0
  310. package/dist/service/ses/command/suppression/sim-ses-unsimulated-suppression-input.d.ts.map +1 -0
  311. package/dist/service/ses/command/suppression/sim-ses-unsimulated-suppression-input.js +16 -0
  312. package/dist/service/ses/command/suppression/sim-ses-unsimulated-suppression-input.js.map +1 -0
  313. package/dist/service/ses/command/suppression/suppression.command.d.ts +90 -0
  314. package/dist/service/ses/command/suppression/suppression.command.d.ts.map +1 -0
  315. package/dist/service/ses/command/suppression/suppression.command.js +2 -0
  316. package/dist/service/ses/command/suppression/suppression.command.js.map +1 -0
  317. package/dist/service/ses/configuration-set/sim-ses-configuration-set-store.d.ts +44 -0
  318. package/dist/service/ses/configuration-set/sim-ses-configuration-set-store.d.ts.map +1 -0
  319. package/dist/service/ses/configuration-set/sim-ses-configuration-set-store.js +91 -0
  320. package/dist/service/ses/configuration-set/sim-ses-configuration-set-store.js.map +1 -0
  321. package/dist/service/ses/configuration-set/sim-ses-configuration-set.d.ts +75 -0
  322. package/dist/service/ses/configuration-set/sim-ses-configuration-set.d.ts.map +1 -0
  323. package/dist/service/ses/configuration-set/sim-ses-configuration-set.js +44 -0
  324. package/dist/service/ses/configuration-set/sim-ses-configuration-set.js.map +1 -0
  325. package/dist/service/ses/email/sim-ses-sent-email.d.ts +29 -0
  326. package/dist/service/ses/email/sim-ses-sent-email.d.ts.map +1 -1
  327. package/dist/service/ses/email/sim-ses-sent-email.js +21 -0
  328. package/dist/service/ses/email/sim-ses-sent-email.js.map +1 -1
  329. package/dist/service/ses/identity/sim-ses-dkim-tokens.d.ts.map +1 -0
  330. package/dist/service/ses/identity/sim-ses-dkim-tokens.js.map +1 -0
  331. package/dist/service/ses/identity/sim-ses-identity-name.d.ts +5 -0
  332. package/dist/service/ses/identity/sim-ses-identity-name.d.ts.map +1 -1
  333. package/dist/service/ses/identity/sim-ses-identity-name.js +5 -1
  334. package/dist/service/ses/identity/sim-ses-identity-name.js.map +1 -1
  335. package/dist/service/ses/identity/sim-ses-identity-settings.d.ts +64 -0
  336. package/dist/service/ses/identity/sim-ses-identity-settings.d.ts.map +1 -0
  337. package/dist/service/ses/identity/sim-ses-identity-settings.js +21 -0
  338. package/dist/service/ses/identity/sim-ses-identity-settings.js.map +1 -0
  339. package/dist/service/ses/identity/sim-ses-identity-store.d.ts +2 -1
  340. package/dist/service/ses/identity/sim-ses-identity-store.d.ts.map +1 -1
  341. package/dist/service/ses/identity/sim-ses-identity-store.js +2 -1
  342. package/dist/service/ses/identity/sim-ses-identity-store.js.map +1 -1
  343. package/dist/service/ses/identity/sim-ses-identity.d.ts +38 -0
  344. package/dist/service/ses/identity/sim-ses-identity.d.ts.map +1 -1
  345. package/dist/service/ses/identity/sim-ses-identity.js +54 -0
  346. package/dist/service/ses/identity/sim-ses-identity.js.map +1 -1
  347. package/dist/service/ses/index.d.ts +10 -3
  348. package/dist/service/ses/index.d.ts.map +1 -1
  349. package/dist/service/ses/index.js +7 -1
  350. package/dist/service/ses/index.js.map +1 -1
  351. package/dist/service/ses/sdk/sim-ses-sdk-command-router.d.ts.map +1 -1
  352. package/dist/service/ses/sdk/sim-ses-sdk-command-router.js +36 -0
  353. package/dist/service/ses/sdk/sim-ses-sdk-command-router.js.map +1 -1
  354. package/dist/service/ses/sim-ses-arn.d.ts +7 -0
  355. package/dist/service/ses/sim-ses-arn.d.ts.map +1 -1
  356. package/dist/service/ses/sim-ses-arn.js +9 -0
  357. package/dist/service/ses/sim-ses-arn.js.map +1 -1
  358. package/dist/service/ses/sim-ses-commands.d.ts +14 -0
  359. package/dist/service/ses/sim-ses-commands.d.ts.map +1 -1
  360. package/dist/service/ses/sim-ses-commands.js +47 -5
  361. package/dist/service/ses/sim-ses-commands.js.map +1 -1
  362. package/dist/service/ses/sim-ses-configuration-sets.d.ts +47 -0
  363. package/dist/service/ses/sim-ses-configuration-sets.d.ts.map +1 -0
  364. package/dist/service/ses/sim-ses-configuration-sets.js +60 -0
  365. package/dist/service/ses/sim-ses-configuration-sets.js.map +1 -0
  366. package/dist/service/ses/sim-ses-suppression.d.ts +52 -0
  367. package/dist/service/ses/sim-ses-suppression.d.ts.map +1 -0
  368. package/dist/service/ses/sim-ses-suppression.js +63 -0
  369. package/dist/service/ses/sim-ses-suppression.js.map +1 -0
  370. package/dist/service/ses/sim-ses-v2.d.ts +14 -1
  371. package/dist/service/ses/sim-ses-v2.d.ts.map +1 -1
  372. package/dist/service/ses/sim-ses-v2.js +48 -35
  373. package/dist/service/ses/sim-ses-v2.js.map +1 -1
  374. package/dist/service/ses/suppression/sim-ses-suppressed-destination.d.ts +24 -0
  375. package/dist/service/ses/suppression/sim-ses-suppressed-destination.d.ts.map +1 -0
  376. package/dist/service/ses/suppression/sim-ses-suppressed-destination.js +21 -0
  377. package/dist/service/ses/suppression/sim-ses-suppressed-destination.js.map +1 -0
  378. package/dist/service/ses/suppression/sim-ses-suppression-address.d.ts +9 -0
  379. package/dist/service/ses/suppression/sim-ses-suppression-address.d.ts.map +1 -0
  380. package/dist/service/ses/suppression/sim-ses-suppression-address.js +21 -0
  381. package/dist/service/ses/suppression/sim-ses-suppression-address.js.map +1 -0
  382. package/dist/service/ses/suppression/sim-ses-suppression-list.d.ts +57 -0
  383. package/dist/service/ses/suppression/sim-ses-suppression-list.d.ts.map +1 -0
  384. package/dist/service/ses/suppression/sim-ses-suppression-list.js +82 -0
  385. package/dist/service/ses/suppression/sim-ses-suppression-list.js.map +1 -0
  386. package/dist/service/ses/suppression/sim-ses-suppression-reason.d.ts +20 -0
  387. package/dist/service/ses/suppression/sim-ses-suppression-reason.d.ts.map +1 -0
  388. package/dist/service/ses/suppression/sim-ses-suppression-reason.js +24 -0
  389. package/dist/service/ses/suppression/sim-ses-suppression-reason.js.map +1 -0
  390. package/dist/service/sns/command/sim-sns-commands.d.ts +2 -0
  391. package/dist/service/sns/command/sim-sns-commands.d.ts.map +1 -1
  392. package/dist/service/sns/command/sim-sns-commands.js +4 -1
  393. package/dist/service/sns/command/sim-sns-commands.js.map +1 -1
  394. package/dist/service/sns/sim-sns.d.ts +7 -0
  395. package/dist/service/sns/sim-sns.d.ts.map +1 -1
  396. package/dist/service/sns/sim-sns.js +3 -1
  397. package/dist/service/sns/sim-sns.js.map +1 -1
  398. package/dist/service/sns/sms/sim-sns-sent-sms-store.d.ts +13 -0
  399. package/dist/service/sns/sms/sim-sns-sent-sms-store.d.ts.map +1 -1
  400. package/dist/service/sns/sms/sim-sns-sent-sms-store.js +15 -0
  401. package/dist/service/sns/sms/sim-sns-sent-sms-store.js.map +1 -1
  402. package/dist/terraform/index.d.ts +6 -0
  403. package/dist/terraform/index.d.ts.map +1 -0
  404. package/dist/terraform/index.js +2 -0
  405. package/dist/terraform/index.js.map +1 -0
  406. package/dist/terraform/map/sim-tf-map-cloudwatch-dimensions.d.ts +20 -0
  407. package/dist/terraform/map/sim-tf-map-cloudwatch-dimensions.d.ts.map +1 -0
  408. package/dist/terraform/map/sim-tf-map-cloudwatch-dimensions.js +36 -0
  409. package/dist/terraform/map/sim-tf-map-cloudwatch-dimensions.js.map +1 -0
  410. package/dist/terraform/map/sim-tf-map-cloudwatch.d.ts +12 -0
  411. package/dist/terraform/map/sim-tf-map-cloudwatch.d.ts.map +1 -0
  412. package/dist/terraform/map/sim-tf-map-cloudwatch.js +69 -0
  413. package/dist/terraform/map/sim-tf-map-cloudwatch.js.map +1 -0
  414. package/dist/terraform/map/sim-tf-map-cognito-client.d.ts +15 -0
  415. package/dist/terraform/map/sim-tf-map-cognito-client.d.ts.map +1 -0
  416. package/dist/terraform/map/sim-tf-map-cognito-client.js +37 -0
  417. package/dist/terraform/map/sim-tf-map-cognito-client.js.map +1 -0
  418. package/dist/terraform/map/sim-tf-map-cognito-pool.d.ts +26 -0
  419. package/dist/terraform/map/sim-tf-map-cognito-pool.d.ts.map +1 -0
  420. package/dist/terraform/map/sim-tf-map-cognito-pool.js +70 -0
  421. package/dist/terraform/map/sim-tf-map-cognito-pool.js.map +1 -0
  422. package/dist/terraform/map/sim-tf-map-cognito.d.ts +13 -0
  423. package/dist/terraform/map/sim-tf-map-cognito.d.ts.map +1 -0
  424. package/dist/terraform/map/sim-tf-map-cognito.js +39 -0
  425. package/dist/terraform/map/sim-tf-map-cognito.js.map +1 -0
  426. package/dist/terraform/map/sim-tf-map-dynamodb-keys.d.ts +31 -0
  427. package/dist/terraform/map/sim-tf-map-dynamodb-keys.d.ts.map +1 -0
  428. package/dist/terraform/map/sim-tf-map-dynamodb-keys.js +71 -0
  429. package/dist/terraform/map/sim-tf-map-dynamodb-keys.js.map +1 -0
  430. package/dist/terraform/map/sim-tf-map-dynamodb.d.ts +5 -0
  431. package/dist/terraform/map/sim-tf-map-dynamodb.d.ts.map +1 -0
  432. package/dist/terraform/map/sim-tf-map-dynamodb.js +31 -0
  433. package/dist/terraform/map/sim-tf-map-dynamodb.js.map +1 -0
  434. package/dist/terraform/map/sim-tf-map-ecr.d.ts +12 -0
  435. package/dist/terraform/map/sim-tf-map-ecr.d.ts.map +1 -0
  436. package/dist/terraform/map/sim-tf-map-ecr.js +34 -0
  437. package/dist/terraform/map/sim-tf-map-ecr.js.map +1 -0
  438. package/dist/terraform/map/sim-tf-map-events.d.ts +24 -0
  439. package/dist/terraform/map/sim-tf-map-events.d.ts.map +1 -0
  440. package/dist/terraform/map/sim-tf-map-events.js +151 -0
  441. package/dist/terraform/map/sim-tf-map-events.js.map +1 -0
  442. package/dist/terraform/map/sim-tf-map-http-api-routes.d.ts +10 -0
  443. package/dist/terraform/map/sim-tf-map-http-api-routes.d.ts.map +1 -0
  444. package/dist/terraform/map/sim-tf-map-http-api-routes.js +48 -0
  445. package/dist/terraform/map/sim-tf-map-http-api-routes.js.map +1 -0
  446. package/dist/terraform/map/sim-tf-map-http-api.d.ts +7 -0
  447. package/dist/terraform/map/sim-tf-map-http-api.d.ts.map +1 -0
  448. package/dist/terraform/map/sim-tf-map-http-api.js +38 -0
  449. package/dist/terraform/map/sim-tf-map-http-api.js.map +1 -0
  450. package/dist/terraform/map/sim-tf-map-iam-policy.d.ts +32 -0
  451. package/dist/terraform/map/sim-tf-map-iam-policy.d.ts.map +1 -0
  452. package/dist/terraform/map/sim-tf-map-iam-policy.js +85 -0
  453. package/dist/terraform/map/sim-tf-map-iam-policy.js.map +1 -0
  454. package/dist/terraform/map/sim-tf-map-iam.d.ts +7 -0
  455. package/dist/terraform/map/sim-tf-map-iam.d.ts.map +1 -0
  456. package/dist/terraform/map/sim-tf-map-iam.js +37 -0
  457. package/dist/terraform/map/sim-tf-map-iam.js.map +1 -0
  458. package/dist/terraform/map/sim-tf-map-kms.d.ts +25 -0
  459. package/dist/terraform/map/sim-tf-map-kms.d.ts.map +1 -0
  460. package/dist/terraform/map/sim-tf-map-kms.js +75 -0
  461. package/dist/terraform/map/sim-tf-map-kms.js.map +1 -0
  462. package/dist/terraform/map/sim-tf-map-lambda-environment.d.ts +20 -0
  463. package/dist/terraform/map/sim-tf-map-lambda-environment.d.ts.map +1 -0
  464. package/dist/terraform/map/sim-tf-map-lambda-environment.js +52 -0
  465. package/dist/terraform/map/sim-tf-map-lambda-environment.js.map +1 -0
  466. package/dist/terraform/map/sim-tf-map-lambda.d.ts +19 -0
  467. package/dist/terraform/map/sim-tf-map-lambda.d.ts.map +1 -0
  468. package/dist/terraform/map/sim-tf-map-lambda.js +73 -0
  469. package/dist/terraform/map/sim-tf-map-lambda.js.map +1 -0
  470. package/dist/terraform/map/sim-tf-map-logs.d.ts +12 -0
  471. package/dist/terraform/map/sim-tf-map-logs.d.ts.map +1 -0
  472. package/dist/terraform/map/sim-tf-map-logs.js +22 -0
  473. package/dist/terraform/map/sim-tf-map-logs.js.map +1 -0
  474. package/dist/terraform/map/sim-tf-map-s3-folds.d.ts +9 -0
  475. package/dist/terraform/map/sim-tf-map-s3-folds.d.ts.map +1 -0
  476. package/dist/terraform/map/sim-tf-map-s3-folds.js +47 -0
  477. package/dist/terraform/map/sim-tf-map-s3-folds.js.map +1 -0
  478. package/dist/terraform/map/sim-tf-map-s3-lifecycle.d.ts +4 -0
  479. package/dist/terraform/map/sim-tf-map-s3-lifecycle.d.ts.map +1 -0
  480. package/dist/terraform/map/sim-tf-map-s3-lifecycle.js +92 -0
  481. package/dist/terraform/map/sim-tf-map-s3-lifecycle.js.map +1 -0
  482. package/dist/terraform/map/sim-tf-map-s3-notification-destinations.d.ts +5 -0
  483. package/dist/terraform/map/sim-tf-map-s3-notification-destinations.d.ts.map +1 -0
  484. package/dist/terraform/map/sim-tf-map-s3-notification-destinations.js +30 -0
  485. package/dist/terraform/map/sim-tf-map-s3-notification-destinations.js.map +1 -0
  486. package/dist/terraform/map/sim-tf-map-s3-notification-filter.d.ts +12 -0
  487. package/dist/terraform/map/sim-tf-map-s3-notification-filter.d.ts.map +1 -0
  488. package/dist/terraform/map/sim-tf-map-s3-notification-filter.js +21 -0
  489. package/dist/terraform/map/sim-tf-map-s3-notification-filter.js.map +1 -0
  490. package/dist/terraform/map/sim-tf-map-s3-notification.d.ts +50 -0
  491. package/dist/terraform/map/sim-tf-map-s3-notification.d.ts.map +1 -0
  492. package/dist/terraform/map/sim-tf-map-s3-notification.js +80 -0
  493. package/dist/terraform/map/sim-tf-map-s3-notification.js.map +1 -0
  494. package/dist/terraform/map/sim-tf-map-s3-rules.d.ts +7 -0
  495. package/dist/terraform/map/sim-tf-map-s3-rules.d.ts.map +1 -0
  496. package/dist/terraform/map/sim-tf-map-s3-rules.js +49 -0
  497. package/dist/terraform/map/sim-tf-map-s3-rules.js.map +1 -0
  498. package/dist/terraform/map/sim-tf-map-s3.d.ts +5 -0
  499. package/dist/terraform/map/sim-tf-map-s3.d.ts.map +1 -0
  500. package/dist/terraform/map/sim-tf-map-s3.js +18 -0
  501. package/dist/terraform/map/sim-tf-map-s3.js.map +1 -0
  502. package/dist/terraform/map/sim-tf-map-secretsmanager.d.ts +12 -0
  503. package/dist/terraform/map/sim-tf-map-secretsmanager.d.ts.map +1 -0
  504. package/dist/terraform/map/sim-tf-map-secretsmanager.js +24 -0
  505. package/dist/terraform/map/sim-tf-map-secretsmanager.js.map +1 -0
  506. package/dist/terraform/map/sim-tf-map-sns.d.ts +15 -0
  507. package/dist/terraform/map/sim-tf-map-sns.d.ts.map +1 -0
  508. package/dist/terraform/map/sim-tf-map-sns.js +40 -0
  509. package/dist/terraform/map/sim-tf-map-sns.js.map +1 -0
  510. package/dist/terraform/map/sim-tf-map-sqs-redrive.d.ts +32 -0
  511. package/dist/terraform/map/sim-tf-map-sqs-redrive.d.ts.map +1 -0
  512. package/dist/terraform/map/sim-tf-map-sqs-redrive.js +68 -0
  513. package/dist/terraform/map/sim-tf-map-sqs-redrive.js.map +1 -0
  514. package/dist/terraform/map/sim-tf-map-sqs.d.ts +11 -0
  515. package/dist/terraform/map/sim-tf-map-sqs.d.ts.map +1 -0
  516. package/dist/terraform/map/sim-tf-map-sqs.js +26 -0
  517. package/dist/terraform/map/sim-tf-map-sqs.js.map +1 -0
  518. package/dist/terraform/map/sim-tf-map-ssm.d.ts +13 -0
  519. package/dist/terraform/map/sim-tf-map-ssm.d.ts.map +1 -0
  520. package/dist/terraform/map/sim-tf-map-ssm.js +24 -0
  521. package/dist/terraform/map/sim-tf-map-ssm.js.map +1 -0
  522. package/dist/terraform/sim-tf-adapter.d.ts +80 -0
  523. package/dist/terraform/sim-tf-adapter.d.ts.map +1 -0
  524. package/dist/terraform/sim-tf-adapter.js +44 -0
  525. package/dist/terraform/sim-tf-adapter.js.map +1 -0
  526. package/dist/terraform/sim-tf-attribute-reads.d.ts +12 -0
  527. package/dist/terraform/sim-tf-attribute-reads.d.ts.map +1 -0
  528. package/dist/terraform/sim-tf-attribute-reads.js +60 -0
  529. package/dist/terraform/sim-tf-attribute-reads.js.map +1 -0
  530. package/dist/terraform/sim-tf-attributes.d.ts +69 -0
  531. package/dist/terraform/sim-tf-attributes.d.ts.map +1 -0
  532. package/dist/terraform/sim-tf-attributes.js +121 -0
  533. package/dist/terraform/sim-tf-attributes.js.map +1 -0
  534. package/dist/terraform/sim-tf-declare.d.ts +37 -0
  535. package/dist/terraform/sim-tf-declare.d.ts.map +1 -0
  536. package/dist/terraform/sim-tf-declare.js +83 -0
  537. package/dist/terraform/sim-tf-declare.js.map +1 -0
  538. package/dist/terraform/sim-tf-fold.d.ts +26 -0
  539. package/dist/terraform/sim-tf-fold.d.ts.map +1 -0
  540. package/dist/terraform/sim-tf-fold.js +72 -0
  541. package/dist/terraform/sim-tf-fold.js.map +1 -0
  542. package/dist/terraform/sim-tf-import.d.ts +31 -0
  543. package/dist/terraform/sim-tf-import.d.ts.map +1 -0
  544. package/dist/terraform/sim-tf-import.js +38 -0
  545. package/dist/terraform/sim-tf-import.js.map +1 -0
  546. package/dist/terraform/sim-tf-logical-id.d.ts +27 -0
  547. package/dist/terraform/sim-tf-logical-id.d.ts.map +1 -0
  548. package/dist/terraform/sim-tf-logical-id.js +83 -0
  549. package/dist/terraform/sim-tf-logical-id.js.map +1 -0
  550. package/dist/terraform/sim-tf-mapping.type.d.ts +73 -0
  551. package/dist/terraform/sim-tf-mapping.type.d.ts.map +1 -0
  552. package/dist/terraform/sim-tf-mapping.type.js +2 -0
  553. package/dist/terraform/sim-tf-mapping.type.js.map +1 -0
  554. package/dist/terraform/sim-tf-module-outputs.d.ts +11 -0
  555. package/dist/terraform/sim-tf-module-outputs.d.ts.map +1 -0
  556. package/dist/terraform/sim-tf-module-outputs.js +33 -0
  557. package/dist/terraform/sim-tf-module-outputs.js.map +1 -0
  558. package/dist/terraform/sim-tf-nested-attributes.d.ts +33 -0
  559. package/dist/terraform/sim-tf-nested-attributes.d.ts.map +1 -0
  560. package/dist/terraform/sim-tf-nested-attributes.js +97 -0
  561. package/dist/terraform/sim-tf-nested-attributes.js.map +1 -0
  562. package/dist/terraform/sim-tf-override.type.d.ts +36 -0
  563. package/dist/terraform/sim-tf-override.type.d.ts.map +1 -0
  564. package/dist/terraform/sim-tf-override.type.js +2 -0
  565. package/dist/terraform/sim-tf-override.type.js.map +1 -0
  566. package/dist/terraform/sim-tf-overrides.d.ts +21 -0
  567. package/dist/terraform/sim-tf-overrides.d.ts.map +1 -0
  568. package/dist/terraform/sim-tf-overrides.js +40 -0
  569. package/dist/terraform/sim-tf-overrides.js.map +1 -0
  570. package/dist/terraform/sim-tf-plan-file.d.ts +23 -0
  571. package/dist/terraform/sim-tf-plan-file.d.ts.map +1 -0
  572. package/dist/terraform/sim-tf-plan-file.js +58 -0
  573. package/dist/terraform/sim-tf-plan-file.js.map +1 -0
  574. package/dist/terraform/sim-tf-plan-resources.d.ts +18 -0
  575. package/dist/terraform/sim-tf-plan-resources.d.ts.map +1 -0
  576. package/dist/terraform/sim-tf-plan-resources.js +52 -0
  577. package/dist/terraform/sim-tf-plan-resources.js.map +1 -0
  578. package/dist/terraform/sim-tf-plan-sections.d.ts +31 -0
  579. package/dist/terraform/sim-tf-plan-sections.d.ts.map +1 -0
  580. package/dist/terraform/sim-tf-plan-sections.js +60 -0
  581. package/dist/terraform/sim-tf-plan-sections.js.map +1 -0
  582. package/dist/terraform/sim-tf-plan.type.d.ts +98 -0
  583. package/dist/terraform/sim-tf-plan.type.d.ts.map +1 -0
  584. package/dist/terraform/sim-tf-plan.type.js +2 -0
  585. package/dist/terraform/sim-tf-plan.type.js.map +1 -0
  586. package/dist/terraform/sim-tf-reference-address.d.ts +52 -0
  587. package/dist/terraform/sim-tf-reference-address.d.ts.map +1 -0
  588. package/dist/terraform/sim-tf-reference-address.js +102 -0
  589. package/dist/terraform/sim-tf-reference-address.js.map +1 -0
  590. package/dist/terraform/sim-tf-reference.d.ts +82 -0
  591. package/dist/terraform/sim-tf-reference.d.ts.map +1 -0
  592. package/dist/terraform/sim-tf-reference.js +153 -0
  593. package/dist/terraform/sim-tf-reference.js.map +1 -0
  594. package/dist/terraform/sim-tf-referenced.d.ts +18 -0
  595. package/dist/terraform/sim-tf-referenced.d.ts.map +1 -0
  596. package/dist/terraform/sim-tf-referenced.js +40 -0
  597. package/dist/terraform/sim-tf-referenced.js.map +1 -0
  598. package/dist/terraform/sim-tf-refusal.d.ts +23 -0
  599. package/dist/terraform/sim-tf-refusal.d.ts.map +1 -0
  600. package/dist/terraform/sim-tf-refusal.js +44 -0
  601. package/dist/terraform/sim-tf-refusal.js.map +1 -0
  602. package/dist/terraform/sim-tf-registry.d.ts +15 -0
  603. package/dist/terraform/sim-tf-registry.d.ts.map +1 -0
  604. package/dist/terraform/sim-tf-registry.js +67 -0
  605. package/dist/terraform/sim-tf-registry.js.map +1 -0
  606. package/dist/terraform/sim-tf-report.d.ts +21 -0
  607. package/dist/terraform/sim-tf-report.d.ts.map +1 -0
  608. package/dist/terraform/sim-tf-report.js +57 -0
  609. package/dist/terraform/sim-tf-report.js.map +1 -0
  610. package/dist/terraform/sim-tf-report.type.d.ts +37 -0
  611. package/dist/terraform/sim-tf-report.type.d.ts.map +1 -0
  612. package/dist/terraform/sim-tf-report.type.js +2 -0
  613. package/dist/terraform/sim-tf-report.type.js.map +1 -0
  614. package/dist/terraform/sim-tf-resource.type.d.ts +33 -0
  615. package/dist/terraform/sim-tf-resource.type.d.ts.map +1 -0
  616. package/dist/terraform/sim-tf-resource.type.js +3 -0
  617. package/dist/terraform/sim-tf-resource.type.js.map +1 -0
  618. package/dist/terraform/sim-tf-settle.d.ts +36 -0
  619. package/dist/terraform/sim-tf-settle.d.ts.map +1 -0
  620. package/dist/terraform/sim-tf-settle.js +63 -0
  621. package/dist/terraform/sim-tf-settle.js.map +1 -0
  622. package/dist/util/filesystem/test-terraform-project.d.ts +67 -0
  623. package/dist/util/filesystem/test-terraform-project.d.ts.map +1 -0
  624. package/dist/util/filesystem/test-terraform-project.js +112 -0
  625. package/dist/util/filesystem/test-terraform-project.js.map +1 -0
  626. package/package.json +7 -2
  627. package/dist/service/cloudformation/resource/cfn/ses/sim-ses-dkim-tokens.d.ts.map +0 -1
  628. package/dist/service/cloudformation/resource/cfn/ses/sim-ses-dkim-tokens.js.map +0 -1
  629. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-unsimulated-properties.d.ts +0 -17
  630. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-unsimulated-properties.d.ts.map +0 -1
  631. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-unsimulated-properties.js +0 -48
  632. package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-unsimulated-properties.js.map +0 -1
  633. package/dist/service/ses/command/identity/sim-ses-unsimulated-identity-input.d.ts +0 -12
  634. package/dist/service/ses/command/identity/sim-ses-unsimulated-identity-input.d.ts.map +0 -1
  635. package/dist/service/ses/command/identity/sim-ses-unsimulated-identity-input.js +0 -26
  636. package/dist/service/ses/command/identity/sim-ses-unsimulated-identity-input.js.map +0 -1
  637. /package/dist/service/{cloudformation/resource/cfn/ses → ses/identity}/sim-ses-dkim-tokens.d.ts +0 -0
  638. /package/dist/service/{cloudformation/resource/cfn/ses → ses/identity}/sim-ses-dkim-tokens.js +0 -0
@@ -0,0 +1,121 @@
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 value of one Terraform attribute, as CloudFormation would carry it.
11
+ *
12
+ * An attribute the plan resolved returns its value. An attribute still unknown
13
+ * returns the intrinsic that reads it off the Resource producing it, taken from
14
+ * the reference the configuration records for that attribute. An attribute with
15
+ * neither returns undefined.
16
+ */
17
+ export function attribute(context, key) {
18
+ const { resource, resolver } = context;
19
+ if (resource.unknown[key] === true) {
20
+ return referencedValue(resource, key, resolver);
21
+ }
22
+ return templateValue(resource.values[key]);
23
+ }
24
+ /**
25
+ * The intrinsic one unknown attribute reads, from the references its
26
+ * expression records.
27
+ *
28
+ * Terraform lists the attribute form and the bare resource form of the same
29
+ * reference. The attribute form resolves to a `Fn::GetAtt` and is the one
30
+ * wanted, so the first reference that resolves at all wins, and the list is
31
+ * ordered longest first to reach it.
32
+ */
33
+ function referencedValue(resource, key, resolver) {
34
+ const expression = resource.expressions[key];
35
+ if (!isRecord(expression)) {
36
+ return undefined;
37
+ }
38
+ const references = longestFirst(expression.references ?? []);
39
+ for (const reference of references) {
40
+ const resolved = resolver.resolve(reference, resource.modulePath);
41
+ if (resolved !== undefined) {
42
+ return resolved;
43
+ }
44
+ }
45
+ return undefined;
46
+ }
47
+ /**
48
+ * A Terraform nested block, which the plan represents as a list of records even
49
+ * where the schema allows only one.
50
+ */
51
+ export function block(context, key) {
52
+ const value = context.resource.values[key];
53
+ if (isRecord(value)) {
54
+ return value;
55
+ }
56
+ if (Array.isArray(value) && isRecord(value[0])) {
57
+ return value[0];
58
+ }
59
+ return undefined;
60
+ }
61
+ /** Every entry of a Terraform nested block that repeats. */
62
+ export function blocks(context, key) {
63
+ const value = context.resource.values[key];
64
+ return Array.isArray(value) ? value.filter((entry) => isRecord(entry)) : [];
65
+ }
66
+ /**
67
+ * A CloudFormation `Tags` list built from a Terraform `tags` map.
68
+ *
69
+ * The provider also carries `tags_all`, which is `tags` merged with the
70
+ * provider's default tags. `tags_all` is the one that ends up on the resource.
71
+ */
72
+ export function tags(context) {
73
+ const value = field(context.resource.values, "tags_all") ??
74
+ field(context.resource.values, "tags");
75
+ if (!isRecord(value)) {
76
+ return undefined;
77
+ }
78
+ const entries = Object.entries(value);
79
+ return entries.length === 0
80
+ ? undefined
81
+ : entries.map(([Key, Value]) => ({ Key, Value: Value }));
82
+ }
83
+ /**
84
+ * One key of a Terraform attribute record.
85
+ *
86
+ * Provider attribute names are snake case, which this project's TypeScript
87
+ * settings will not let through a dotted access on an index signature.
88
+ */
89
+ export function field(record, key) {
90
+ return record[key];
91
+ }
92
+ /**
93
+ * A Terraform value, carried as the template value CloudFormation reads.
94
+ *
95
+ * Only an absent value comes back undefined. `false`, `0` and `""` are values
96
+ * a resource was configured with, and a truthiness test here would drop
97
+ * `block_public_acls = false` as though it had never been written.
98
+ */
99
+ export function templateValue(value) {
100
+ if (value === null || value === undefined) {
101
+ return undefined;
102
+ }
103
+ return value;
104
+ }
105
+ /**
106
+ * CloudFormation properties read straight off Terraform attributes.
107
+ *
108
+ * The table is keyed by CloudFormation property name and holds the Terraform
109
+ * attribute each one is read from. Most of a mapping is this, because most
110
+ * properties differ only in what they are called, and the ones that need more
111
+ * than a rename are added to what this returns.
112
+ */
113
+ export function renamed(context, names) {
114
+ const entries = Object.entries(names).map(([property, name]) => [property, attribute(context, name)]);
115
+ return properties(Object.fromEntries(entries));
116
+ }
117
+ /** A property record with the keys carrying no value taken back out of it. */
118
+ export function properties(record) {
119
+ return Object.fromEntries(Object.entries(record).filter((entry) => entry[1] !== undefined));
120
+ }
121
+ //# sourceMappingURL=sim-tf-attributes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-tf-attributes.js","sourceRoot":"","sources":["../../src/terraform/sim-tf-attributes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { SimCfnTemplateValueRecord } from "../service/cloudformation/template/value/sim-cfn-template-value.js";
2
+ import type { TerraformResource } from "./sim-tf-resource.type.js";
3
+ import type { TerraformReferenceResolver } from "./sim-tf-reference.js";
4
+ import type { TerraformSettledPlan } from "./sim-tf-settle.js";
5
+ import type { TerraformImportedResource, TerraformLostAttribute } from "./sim-tf-report.type.js";
6
+ /** The Resources a settled plan declares, and what they could not carry. */
7
+ export interface TerraformDeclaredResources {
8
+ readonly templates: ReadonlyMap<string, SimCfnTemplateValueRecord>;
9
+ readonly mapped: readonly TerraformImportedResource[];
10
+ readonly lost: readonly TerraformLostAttribute[];
11
+ }
12
+ /**
13
+ * Build one CloudFormation Resource for each resource the plan settled on.
14
+ *
15
+ * Every reference resolves against that same settled set, so this runs once
16
+ * and nothing it produces is taken back afterwards.
17
+ */
18
+ export declare function terraformDeclaredResources(settled: TerraformSettledPlan): TerraformDeclaredResources;
19
+ /**
20
+ * The Resources one Resource has to be created after.
21
+ *
22
+ * A CloudFormation template orders itself, because a property that needs
23
+ * another Resource holds a `Ref` or an `Fn::GetAtt` naming it. A plan holds no
24
+ * such thing. Terraform resolves what it can before writing the plan, so a
25
+ * Lambda permission naming a function it creates in the same plan carries the
26
+ * function's name as a plain string, and the edge that ordering depends on is
27
+ * gone from the value.
28
+ *
29
+ * The edge survives in `configuration`, which records every reference the
30
+ * resource declares whether or not the value was resolved. Turning those back
31
+ * into `DependsOn` gives the Stack the graph it would have read off a template
32
+ * written by hand.
33
+ */
34
+ export declare function terraformDependsOn(resource: TerraformResource, resolver: TerraformReferenceResolver): {
35
+ DependsOn?: string[];
36
+ };
37
+ //# sourceMappingURL=sim-tf-declare.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-tf-declare.d.ts","sourceRoot":"","sources":["../../src/terraform/sim-tf-declare.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oEAAoE,CAAC;AACpH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EACV,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,yBAAyB,CAAC;AAEjC,4EAA4E;AAC5E,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IACnE,QAAQ,CAAC,MAAM,EAAE,SAAS,yBAAyB,EAAE,CAAC;IACtD,QAAQ,CAAC,IAAI,EAAE,SAAS,sBAAsB,EAAE,CAAC;CAClD;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,oBAAoB,GAC5B,0BAA0B,CAiC5B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,EAAE,0BAA0B,GACnC;IAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAe1B"}
@@ -0,0 +1,83 @@
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
+ /**
9
+ * Build one CloudFormation Resource for each resource the plan settled on.
10
+ *
11
+ * Every reference resolves against that same settled set, so this runs once
12
+ * and nothing it produces is taken back afterwards.
13
+ */
14
+ export function terraformDeclaredResources(settled) {
15
+ const templates = new Map();
16
+ const mapped = [];
17
+ const lost = [];
18
+ for (const { resource, mapping } of settled.declared) {
19
+ const built = mapping({
20
+ resource,
21
+ resolver: settled.resolver,
22
+ overrides: settled.overrides,
23
+ });
24
+ const logicalId = settled.resolver.logicalId(resource.address);
25
+ templates.set(logicalId, {
26
+ Type: built.Type,
27
+ Properties: built.Properties,
28
+ ...terraformDependsOn(resource, settled.resolver),
29
+ });
30
+ mapped.push({
31
+ address: resource.address,
32
+ type: resource.type,
33
+ cfnType: built.Type,
34
+ logicalId,
35
+ });
36
+ lost.push(...(built.lost ?? []).map((attribute) => ({
37
+ address: resource.address,
38
+ attribute,
39
+ })));
40
+ }
41
+ return { templates, mapped, lost };
42
+ }
43
+ /**
44
+ * The Resources one Resource has to be created after.
45
+ *
46
+ * A CloudFormation template orders itself, because a property that needs
47
+ * another Resource holds a `Ref` or an `Fn::GetAtt` naming it. A plan holds no
48
+ * such thing. Terraform resolves what it can before writing the plan, so a
49
+ * Lambda permission naming a function it creates in the same plan carries the
50
+ * function's name as a plain string, and the edge that ordering depends on is
51
+ * gone from the value.
52
+ *
53
+ * The edge survives in `configuration`, which records every reference the
54
+ * resource declares whether or not the value was resolved. Turning those back
55
+ * into `DependsOn` gives the Stack the graph it would have read off a template
56
+ * written by hand.
57
+ */
58
+ export function terraformDependsOn(resource, resolver) {
59
+ const own = resolver.logicalId(resource.address);
60
+ const referenced = [
61
+ ...resource.dependsOn,
62
+ ...expressionReferences(resource.expressions),
63
+ ]
64
+ .map((reference) => resolver.targetAddress(reference, resource.modulePath))
65
+ .filter((address) => address !== undefined)
66
+ .map((address) => resolver.logicalId(address))
67
+ .filter((logicalId) => logicalId !== own);
68
+ const declared = [...new Set(referenced)];
69
+ return declared.length === 0 ? {} : { DependsOn: declared };
70
+ }
71
+ /** Every `references` entry anywhere inside a resource's expressions. */
72
+ function expressionReferences(value) {
73
+ if (Array.isArray(value)) {
74
+ return value.flatMap((entry) => expressionReferences(entry));
75
+ }
76
+ if (!isRecord(value)) {
77
+ return [];
78
+ }
79
+ return Object.entries(value).flatMap(([key, nested]) => key === "references" && Array.isArray(nested)
80
+ ? nested.filter((entry) => typeof entry === "string")
81
+ : expressionReferences(nested));
82
+ }
83
+ //# sourceMappingURL=sim-tf-declare.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-tf-declare.js","sourceRoot":"","sources":["../../src/terraform/sim-tf-declare.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { SimCfnTemplateValueRecord } from "../service/cloudformation/template/value/sim-cfn-template-value.js";
2
+ import { type TerraformResource } from "./sim-tf-resource.type.js";
3
+ import type { TerraformReferenceResolver } from "./sim-tf-reference.js";
4
+ import type { TerraformPlanOverrides } from "./sim-tf-overrides.js";
5
+ import type { TerraformImportedResource, TerraformLostAttribute, TerraformSkippedResource } from "./sim-tf-report.type.js";
6
+ /** The template with every folding resource merged into what it configures. */
7
+ export interface TerraformFoldedResources {
8
+ readonly templates: ReadonlyMap<string, SimCfnTemplateValueRecord>;
9
+ readonly folded: readonly TerraformImportedResource[];
10
+ readonly skipped: readonly TerraformSkippedResource[];
11
+ readonly lost: readonly TerraformLostAttribute[];
12
+ }
13
+ /**
14
+ * Merge every folding resource into the Resource it configures.
15
+ *
16
+ * The AWS provider splits one CloudFormation Resource across several Terraform
17
+ * resources. Six `aws_s3_bucket_*` resources configure one bucket, and
18
+ * CloudFormation carries all six as properties of one `AWS::S3::Bucket`.
19
+ *
20
+ * This runs after the Resources are declared, because a fold has nothing to
21
+ * merge into until its parent is in the template. A fold whose parent is not
22
+ * there is recorded rather than dropped, so the report still adds up to the
23
+ * plan.
24
+ */
25
+ export declare function terraformFoldedResources(resources: readonly TerraformResource[], templates: ReadonlyMap<string, SimCfnTemplateValueRecord>, resolver: TerraformReferenceResolver, overrides: TerraformPlanOverrides): TerraformFoldedResources;
26
+ //# sourceMappingURL=sim-tf-fold.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-tf-fold.d.ts","sourceRoot":"","sources":["../../src/terraform/sim-tf-fold.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oEAAoE,CAAC;AACpH,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAExE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,OAAO,KAAK,EACV,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,yBAAyB,CAAC;AAEjC,+EAA+E;AAC/E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IACnE,QAAQ,CAAC,MAAM,EAAE,SAAS,yBAAyB,EAAE,CAAC;IACtD,QAAQ,CAAC,OAAO,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACtD,QAAQ,CAAC,IAAI,EAAE,SAAS,sBAAsB,EAAE,CAAC;CAClD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,SAAS,iBAAiB,EAAE,EACvC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,yBAAyB,CAAC,EACzD,QAAQ,EAAE,0BAA0B,EACpC,SAAS,EAAE,sBAAsB,GAChC,wBAAwB,CA8C1B"}
@@ -0,0 +1,72 @@
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 { terraformAwsProvider, } from "./sim-tf-resource.type.js";
9
+ import { terraformReferencedAddress } from "./sim-tf-referenced.js";
10
+ import { terraformResourceFolds } from "./sim-tf-registry.js";
11
+ /**
12
+ * Merge every folding resource into the Resource it configures.
13
+ *
14
+ * The AWS provider splits one CloudFormation Resource across several Terraform
15
+ * resources. Six `aws_s3_bucket_*` resources configure one bucket, and
16
+ * CloudFormation carries all six as properties of one `AWS::S3::Bucket`.
17
+ *
18
+ * This runs after the Resources are declared, because a fold has nothing to
19
+ * merge into until its parent is in the template. A fold whose parent is not
20
+ * there is recorded rather than dropped, so the report still adds up to the
21
+ * plan.
22
+ */
23
+ export function terraformFoldedResources(resources, templates, resolver, overrides) {
24
+ const merged = new Map(templates);
25
+ const folded = [];
26
+ const skipped = [];
27
+ const lost = [];
28
+ for (const resource of resources) {
29
+ const fold = terraformResourceFolds.get(resource.type);
30
+ if (fold === undefined || resource.provider !== terraformAwsProvider) {
31
+ continue;
32
+ }
33
+ const address = terraformReferencedAddress(resource, fold.parentAttribute, resolver);
34
+ const parentId = address === undefined ? undefined : resolver.logicalId(address);
35
+ const parent = parentId === undefined ? undefined : merged.get(parentId);
36
+ if (parentId === undefined || parent === undefined) {
37
+ skipped.push({
38
+ address: resource.address,
39
+ type: resource.type,
40
+ reason: "fold target not found",
41
+ });
42
+ continue;
43
+ }
44
+ const context = { resource, resolver, overrides };
45
+ const existing = parent["Properties"];
46
+ const added = fold.properties(context, isRecord(existing) ? existing : {});
47
+ merged.set(parentId, mergedParent(parent, added));
48
+ folded.push({ address: resource.address, type: resource.type });
49
+ lost.push(...(fold.lost?.(context) ?? []).map((attribute) => ({
50
+ address: resource.address,
51
+ attribute,
52
+ })));
53
+ }
54
+ return { templates: merged, folded, skipped, lost };
55
+ }
56
+ /**
57
+ * A resource template with a fold's properties merged into it.
58
+ *
59
+ * The fold contributes whole CloudFormation properties, so a later fold on the
60
+ * same parent replaces a property an earlier one set rather than merging into
61
+ * it. Two folds writing the same property are two of one Terraform type, and a
62
+ * fold whose property is a list is handed what the parent already carries so
63
+ * it can add to it.
64
+ */
65
+ function mergedParent(parent, added) {
66
+ const existing = parent["Properties"];
67
+ return {
68
+ ...parent,
69
+ Properties: { ...(isRecord(existing) && existing), ...added },
70
+ };
71
+ }
72
+ //# sourceMappingURL=sim-tf-fold.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-tf-fold.js","sourceRoot":"","sources":["../../src/terraform/sim-tf-fold.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { CfnTemplateBodyRecord } from "../service/cloudformation/template/sim-cfn-template.js";
2
+ import type { TerraformPlan } from "./sim-tf-plan.type.js";
3
+ import type { TerraformPlanOverride } from "./sim-tf-override.type.js";
4
+ import type { TerraformImportReport } from "./sim-tf-report.type.js";
5
+ /** A CloudFormation template built from a plan, and what building it did. */
6
+ export interface TerraformImportResult {
7
+ readonly template: CfnTemplateBodyRecord;
8
+ readonly report: TerraformImportReport;
9
+ }
10
+ /**
11
+ * A CloudFormation template body built from a Terraform plan.
12
+ *
13
+ * The plan is the JSON `terraform show -json` writes for a saved plan file.
14
+ * What comes back is the body `deployTemplate` takes, so everything below the
15
+ * template is the machinery a CloudFormation, CDK or SAM deployment already
16
+ * goes through.
17
+ *
18
+ * It is read in three passes. Settling decides which resources the template
19
+ * will declare, and it is what makes the two after it single passes. Every
20
+ * reference then resolves against a set that has stopped changing, so no
21
+ * Resource is built and then taken back, and no property is left naming a
22
+ * logical ID the template does not hold. Declaring builds those Resources.
23
+ * Folding merges in the resources that configure another resource.
24
+ *
25
+ * The report alongside the template says what happened to every resource of
26
+ * the plan. A type with no mapping is skipped and named, in the same spirit as
27
+ * the skipped Resources a Stack records for a CloudFormation type no simulated
28
+ * service models.
29
+ */
30
+ export declare function cfnTemplateFromTerraformPlan(plan: TerraformPlan, supplied?: readonly TerraformPlanOverride[]): TerraformImportResult;
31
+ //# sourceMappingURL=sim-tf-import.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-tf-import.d.ts","sourceRoot":"","sources":["../../src/terraform/sim-tf-import.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAC;AACpG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAO3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE,6EAA6E;AAC7E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;CACxC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,aAAa,EACnB,QAAQ,GAAE,SAAS,qBAAqB,EAAO,GAC9C,qBAAqB,CAgBvB"}
@@ -0,0 +1,38 @@
1
+ import { terraformPlanResources } from "./sim-tf-plan-resources.js";
2
+ import { settledTerraformPlan } from "./sim-tf-settle.js";
3
+ import { terraformDeclaredResources } from "./sim-tf-declare.js";
4
+ import { terraformFoldedResources } from "./sim-tf-fold.js";
5
+ import { terraformImportReport } from "./sim-tf-report.js";
6
+ import { TerraformPlanOverrides } from "./sim-tf-overrides.js";
7
+ /**
8
+ * A CloudFormation template body built from a Terraform plan.
9
+ *
10
+ * The plan is the JSON `terraform show -json` writes for a saved plan file.
11
+ * What comes back is the body `deployTemplate` takes, so everything below the
12
+ * template is the machinery a CloudFormation, CDK or SAM deployment already
13
+ * goes through.
14
+ *
15
+ * It is read in three passes. Settling decides which resources the template
16
+ * will declare, and it is what makes the two after it single passes. Every
17
+ * reference then resolves against a set that has stopped changing, so no
18
+ * Resource is built and then taken back, and no property is left naming a
19
+ * logical ID the template does not hold. Declaring builds those Resources.
20
+ * Folding merges in the resources that configure another resource.
21
+ *
22
+ * The report alongside the template says what happened to every resource of
23
+ * the plan. A type with no mapping is skipped and named, in the same spirit as
24
+ * the skipped Resources a Stack records for a CloudFormation type no simulated
25
+ * service models.
26
+ */
27
+ export function cfnTemplateFromTerraformPlan(plan, supplied = []) {
28
+ const overrides = new TerraformPlanOverrides(supplied);
29
+ const resources = terraformPlanResources(plan);
30
+ const settled = settledTerraformPlan(plan, resources, overrides);
31
+ const declared = terraformDeclaredResources(settled);
32
+ const folded = terraformFoldedResources(resources, declared.templates, settled.resolver, overrides);
33
+ return {
34
+ template: { Resources: Object.fromEntries(folded.templates) },
35
+ report: terraformImportReport({ resources, settled, declared, folded }),
36
+ };
37
+ }
38
+ //# sourceMappingURL=sim-tf-import.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-tf-import.js","sourceRoot":"","sources":["../../src/terraform/sim-tf-import.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAU/D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,4BAA4B,CAC1C,IAAmB,EACnB,QAAQ,GAAqC,EAAE;IAE/C,MAAM,SAAS,GAAG,IAAI,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,wBAAwB,CACrC,SAAS,EACT,QAAQ,CAAC,SAAS,EAClB,OAAO,CAAC,QAAQ,EAChB,SAAS,CACV,CAAC;IAEF,OAAO;QACL,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;QAC7D,MAAM,EAAE,qBAAqB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;KACxE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * The CloudFormation logical IDs standing for the addresses of one plan.
3
+ *
4
+ * A logical ID is alphanumeric, so the module path, the resource type, the
5
+ * name and any `count` or `for_each` key are folded into one camel-run.
6
+ * Folding loses the separators, and two addresses can therefore arrive at the
7
+ * same run. `aws_s3_bucket.foo_bar` and `aws_s3_bucket.fooBar` both give
8
+ * `AwsS3BucketFooBar`, and so do the `for_each` keys `a-b` and `a_b`.
9
+ *
10
+ * The addresses of a plan are named together rather than one at a time, so a
11
+ * collision can be given a number instead of refusing the plan. Addresses are
12
+ * sorted before they are named, so which of a colliding pair keeps the plain
13
+ * ID is decided by the plan rather than by the order the resources were read
14
+ * in.
15
+ */
16
+ export declare class TerraformLogicalIds {
17
+ private readonly byAddress;
18
+ constructor(addresses: Iterable<string>);
19
+ /**
20
+ * The logical ID standing for one address.
21
+ *
22
+ * An address this was not built with is named as though it stood alone,
23
+ * which is what a caller asking about a resource outside the template wants.
24
+ */
25
+ of(address: string): string;
26
+ }
27
+ //# sourceMappingURL=sim-tf-logical-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-tf-logical-id.d.ts","sourceRoot":"","sources":["../../src/terraform/sim-tf-logical-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;IAExD,YAAY,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,EAEtC;IAED;;;;;OAKG;IACI,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjC;CACF"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * The CloudFormation logical IDs standing for the addresses of one plan.
3
+ *
4
+ * A logical ID is alphanumeric, so the module path, the resource type, the
5
+ * name and any `count` or `for_each` key are folded into one camel-run.
6
+ * Folding loses the separators, and two addresses can therefore arrive at the
7
+ * same run. `aws_s3_bucket.foo_bar` and `aws_s3_bucket.fooBar` both give
8
+ * `AwsS3BucketFooBar`, and so do the `for_each` keys `a-b` and `a_b`.
9
+ *
10
+ * The addresses of a plan are named together rather than one at a time, so a
11
+ * collision can be given a number instead of refusing the plan. Addresses are
12
+ * sorted before they are named, so which of a colliding pair keeps the plain
13
+ * ID is decided by the plan rather than by the order the resources were read
14
+ * in.
15
+ */
16
+ export class TerraformLogicalIds {
17
+ byAddress;
18
+ constructor(addresses) {
19
+ this.byAddress = namedAddresses([...addresses].toSorted(byCodeUnit));
20
+ }
21
+ /**
22
+ * The logical ID standing for one address.
23
+ *
24
+ * An address this was not built with is named as though it stood alone,
25
+ * which is what a caller asking about a resource outside the template wants.
26
+ */
27
+ of(address) {
28
+ return this.byAddress.get(address) ?? camelRun(address);
29
+ }
30
+ }
31
+ /**
32
+ * Address order by code unit, over addresses that are already distinct.
33
+ *
34
+ * Which of a colliding pair keeps the plain logical ID follows from this, so
35
+ * it has to be the same everywhere. `localeCompare` orders by the collation
36
+ * rules of whatever locale the process is running under, and a template whose
37
+ * logical IDs move with the machine is one a test cannot name a Resource in.
38
+ */
39
+ function byCodeUnit(a, b) {
40
+ return a < b ? -1 : 1;
41
+ }
42
+ function namedAddresses(addresses) {
43
+ const groups = new Map();
44
+ for (const address of addresses) {
45
+ const base = camelRun(address);
46
+ groups.set(base, [...(groups.get(base) ?? []), address]);
47
+ }
48
+ const taken = new Set(groups.keys());
49
+ const named = new Map();
50
+ for (const [base, group] of groups) {
51
+ for (const [position, address] of group.entries()) {
52
+ named.set(address, position === 0 ? base : numbered(base, taken));
53
+ }
54
+ }
55
+ return named;
56
+ }
57
+ /**
58
+ * The next free numbered form of a logical ID.
59
+ *
60
+ * Numbering starts at two, so the first of a colliding group keeps the name
61
+ * the address gives and the second reads as the second of that name. The
62
+ * search steps past a number already taken, since a numbered ID can collide
63
+ * with one an address arrived at on its own.
64
+ */
65
+ function numbered(base, taken) {
66
+ for (let suffix = 2;; suffix += 1) {
67
+ const candidate = `${base}${suffix}`;
68
+ if (!taken.has(candidate)) {
69
+ taken.add(candidate);
70
+ return candidate;
71
+ }
72
+ }
73
+ }
74
+ /** One address as a single alphanumeric camel-run. */
75
+ function camelRun(address) {
76
+ const alphanumeric = address
77
+ .split(/[^A-Za-z0-9]+/)
78
+ .filter((part) => part.length > 0)
79
+ .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
80
+ .join("");
81
+ return alphanumeric.length > 0 ? alphanumeric : "Resource";
82
+ }
83
+ //# sourceMappingURL=sim-tf-logical-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-tf-logical-id.js","sourceRoot":"","sources":["../../src/terraform/sim-tf-logical-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,mBAAmB;IACb,SAAS,CAA8B;IAExD,YAAY,SAA2B;QACrC,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IACvE,CAAC;IAED;;;;;OAKG;IACI,EAAE,CAAC,OAAe;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;CACF;AAED;;;;;;;GAOG;AACH,SAAS,UAAU,CAAC,CAAS,EAAE,CAAS;IACtC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,cAAc,CAAC,SAA4B;IAClD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IAE3C,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE/B,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IAExC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACnC,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAClD,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,QAAQ,CAAC,IAAY,EAAE,KAAkB;IAChD,KAAK,IAAI,MAAM,GAAG,CAAC,GAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC;QAErC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAErB,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;AACH,CAAC;AAED,sDAAsD;AACtD,SAAS,QAAQ,CAAC,OAAe;IAC/B,MAAM,YAAY,GAAG,OAAO;SACzB,KAAK,CAAC,eAAe,CAAC;SACtB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SACjC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,73 @@
1
+ import type { SimCfnTemplateValue } from "../service/cloudformation/template/value/sim-cfn-template-value.js";
2
+ import type { TerraformMappingContext } from "./sim-tf-attributes.js";
3
+ import type { TerraformResource } from "./sim-tf-resource.type.js";
4
+ import type { TerraformSkipReason } from "./sim-tf-report.type.js";
5
+ /**
6
+ * One CloudFormation Resource built from one Terraform resource.
7
+ *
8
+ * `lost` names the Terraform attributes the mapping could not carry across.
9
+ * A mapping records them rather than dropping them quietly, because an
10
+ * attribute that goes missing without a word is the kind of gap that only turns
11
+ * up later as a test passing for the wrong reason.
12
+ */
13
+ export interface TerraformMappedResource {
14
+ readonly Type: string;
15
+ readonly Properties: Record<string, SimCfnTemplateValue>;
16
+ readonly lost?: readonly string[];
17
+ /**
18
+ * Properties the simulated service will refuse the Resource without.
19
+ *
20
+ * A plan can leave a required value unresolvable, and a Resource built
21
+ * without it fails and takes the Stack's other Resources with it. Naming the
22
+ * properties here lets the import drop that one Resource and record it,
23
+ * which is what sim CloudFormation already does with a Resource type it
24
+ * cannot create.
25
+ */
26
+ readonly requires?: readonly string[];
27
+ /**
28
+ * Why this Resource is one the simulated service would refuse whatever the
29
+ * plan resolved.
30
+ *
31
+ * `requires` covers a property the service needs and the plan could not
32
+ * fill. This covers the other shape, where every property is there and one
33
+ * of them holds a value the target refuses. Terraform's `SecureString`
34
+ * parameter is the example. Real CloudFormation refuses that type on an
35
+ * `AWS::SSM::Parameter` because the plaintext would sit in the template, and
36
+ * so does the simulation, so a Resource built for one fails the Stack around
37
+ * it rather than only itself.
38
+ */
39
+ readonly refused?: TerraformSkipReason | undefined;
40
+ }
41
+ export type TerraformResourceMapping = (context: TerraformMappingContext) => TerraformMappedResource;
42
+ /** One resource of a plan, with the mapping that will build its Resource. */
43
+ export interface TerraformDeclaration {
44
+ readonly resource: TerraformResource;
45
+ readonly mapping: TerraformResourceMapping;
46
+ }
47
+ /**
48
+ * How one Terraform resource contributes to another resource's properties.
49
+ *
50
+ * The AWS provider splits a single CloudFormation Resource across several
51
+ * Terraform resources. Six `aws_s3_bucket_*` resources configure one bucket,
52
+ * and CloudFormation carries all six as properties of one `AWS::S3::Bucket`.
53
+ * A fold names the attribute holding the parent's address, and returns the
54
+ * properties to merge into the parent.
55
+ *
56
+ * The properties the parent already carries are given along with the resource,
57
+ * for the fold that adds to a list rather than setting a property outright. An
58
+ * EventBridge rule's targets are one Terraform resource each and one `Targets`
59
+ * list on the Resource, so the second target of a rule has to find the first.
60
+ * A fold writing a property of its own ignores them.
61
+ */
62
+ export interface TerraformResourceFold {
63
+ /** The attribute naming the resource these properties belong to. */
64
+ readonly parentAttribute: string;
65
+ readonly properties: (context: TerraformMappingContext, parent?: Record<string, SimCfnTemplateValue>) => Record<string, SimCfnTemplateValue>;
66
+ /**
67
+ * The Terraform attributes this fold could not carry across, as a mapping's
68
+ * own `lost` names them. A fold that carries everything it was given
69
+ * declares none.
70
+ */
71
+ readonly lost?: (context: TerraformMappingContext) => readonly string[];
72
+ }
73
+ //# sourceMappingURL=sim-tf-mapping.type.d.ts.map