@kensio/yulin 1.21.2 → 1.21.4

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 (634) hide show
  1. package/dist/service/athena/engine/sim-athena-column-types.d.ts +2 -0
  2. package/dist/service/athena/engine/sim-athena-column-types.js +4 -0
  3. package/dist/service/athena/engine/sim-athena-delimited-format.d.ts +7 -0
  4. package/dist/service/athena/engine/sim-athena-delimited-format.js +51 -0
  5. package/dist/service/athena/engine/sim-athena-engine-result.js +5 -0
  6. package/dist/service/athena/engine/sim-athena-engine-run.d.ts +22 -2
  7. package/dist/service/athena/engine/sim-athena-engine-run.js +21 -31
  8. package/dist/service/athena/engine/sim-athena-loaded-tables.d.ts +10 -0
  9. package/dist/service/athena/engine/sim-athena-loaded-tables.js +35 -0
  10. package/dist/service/athena/engine/sim-athena-parquet-module.d.ts +25 -0
  11. package/dist/service/athena/engine/sim-athena-parquet-module.js +39 -0
  12. package/dist/service/athena/engine/sim-athena-parquet-records.d.ts +13 -0
  13. package/dist/service/athena/engine/sim-athena-parquet-records.js +57 -0
  14. package/dist/service/athena/engine/sim-athena-query-engine.d.ts +23 -5
  15. package/dist/service/athena/engine/sim-athena-query-engine.js +31 -10
  16. package/dist/service/athena/engine/sim-athena-record-reader.d.ts +12 -6
  17. package/dist/service/athena/engine/sim-athena-record-reader.js +28 -53
  18. package/dist/service/athena/engine/sim-athena-sql-translation.d.ts +15 -9
  19. package/dist/service/athena/engine/sim-athena-sql-translation.js +25 -13
  20. package/dist/service/athena/engine/sim-athena-sqlite-values.d.ts +5 -0
  21. package/dist/service/athena/engine/sim-athena-sqlite-values.js +24 -1
  22. package/dist/service/athena/engine/sim-athena-table-objects.d.ts +7 -2
  23. package/dist/service/athena/engine/sim-athena-table-objects.js +8 -4
  24. package/dist/service/athena/engine/sim-athena-table-rows.js +4 -3
  25. package/dist/service/athena/engine/sim-athena-turn-down.d.ts +26 -0
  26. package/dist/service/athena/engine/sim-athena-turn-down.js +43 -0
  27. package/dist/service/athena/execution/sim-athena-query-completion.d.ts +3 -1
  28. package/dist/service/athena/execution/sim-athena-query-completion.js +7 -1
  29. package/dist/service/athena/index.d.ts +1 -1
  30. package/dist/service/athena/index.js +1 -1
  31. package/dist/service/athena/result/sim-athena-query-answer.d.ts +12 -0
  32. package/dist/service/athena/result/sim-athena-query-answer.js +26 -4
  33. package/dist/service/athena/sim-athena-answered-query.fixture.d.ts +2 -0
  34. package/dist/service/athena/sim-athena-answered-query.fixture.js +1 -0
  35. package/dist/service/athena/sim-athena-engine.fixture.d.ts +20 -0
  36. package/dist/service/athena/sim-athena-engine.fixture.js +34 -0
  37. package/dist/service/cloudformation/authorize/sim-cloudformation-authorization.d.ts +23 -0
  38. package/dist/service/cloudformation/authorize/sim-cloudformation-authorization.js +37 -0
  39. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.d.ts +2 -0
  40. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.js +1 -0
  41. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.d.ts +7 -0
  42. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.js +13 -1
  43. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.d.ts +6 -0
  44. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.js +7 -1
  45. package/dist/service/cloudformation/cdk/s3/bucket-deployment/notify/sim-cdk-bucket-deploy-notifier.d.ts +50 -0
  46. package/dist/service/cloudformation/cdk/s3/bucket-deployment/notify/sim-cdk-bucket-deploy-notifier.js +71 -0
  47. package/dist/service/cloudformation/cdk/s3/bucket-deployment/sim-cdk-bucket-deployment.js +6 -1
  48. package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.d.ts +5 -0
  49. package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.js +7 -0
  50. package/dist/service/cloudformation/changeset/sim-cfn-change-set-arn.d.ts +9 -0
  51. package/dist/service/cloudformation/changeset/sim-cfn-change-set-arn.js +12 -0
  52. package/dist/service/cloudformation/changeset/sim-cfn-change-set-changes.d.ts +42 -0
  53. package/dist/service/cloudformation/changeset/sim-cfn-change-set-changes.js +69 -0
  54. package/dist/service/cloudformation/changeset/sim-cfn-change-set-commands.d.ts +62 -0
  55. package/dist/service/cloudformation/changeset/sim-cfn-change-set-commands.js +89 -0
  56. package/dist/service/cloudformation/changeset/sim-cfn-change-set-execution.d.ts +31 -0
  57. package/dist/service/cloudformation/changeset/sim-cfn-change-set-execution.js +59 -0
  58. package/dist/service/cloudformation/changeset/sim-cfn-change-set-failure.d.ts +21 -0
  59. package/dist/service/cloudformation/changeset/sim-cfn-change-set-failure.js +19 -0
  60. package/dist/service/cloudformation/changeset/sim-cfn-change-set-input.d.ts +17 -0
  61. package/dist/service/cloudformation/changeset/sim-cfn-change-set-input.js +18 -0
  62. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack-id.d.ts +18 -0
  63. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack-id.js +13 -0
  64. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack.d.ts +45 -0
  65. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack.js +52 -0
  66. package/dist/service/cloudformation/changeset/sim-cfn-change-set-type.d.ts +12 -0
  67. package/dist/service/cloudformation/changeset/sim-cfn-change-set-type.js +21 -0
  68. package/dist/service/cloudformation/changeset/sim-cfn-change-set.d.ts +54 -0
  69. package/dist/service/cloudformation/changeset/sim-cfn-change-set.js +49 -0
  70. package/dist/service/cloudformation/changeset/sim-cfn-change-set.type.d.ts +35 -0
  71. package/dist/service/cloudformation/changeset/sim-cfn-change-set.type.js +1 -0
  72. package/dist/service/cloudformation/changeset/sim-cfn-change-sets.d.ts +53 -0
  73. package/dist/service/cloudformation/changeset/sim-cfn-change-sets.js +83 -0
  74. package/dist/service/cloudformation/command/create-change-set/create-change-set.command.d.ts +32 -0
  75. package/dist/service/cloudformation/command/create-change-set/create-change-set.command.js +1 -0
  76. package/dist/service/cloudformation/command/create-change-set/create-change-set.handler.d.ts +38 -0
  77. package/dist/service/cloudformation/command/create-change-set/create-change-set.handler.js +80 -0
  78. package/dist/service/cloudformation/command/create-stack/create-stack.handler.js +12 -12
  79. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.command.d.ts +22 -0
  80. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.command.js +1 -0
  81. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.handler.d.ts +27 -0
  82. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.handler.js +35 -0
  83. package/dist/service/cloudformation/command/delete-stack/delete-stack.command.d.ts +6 -0
  84. package/dist/service/cloudformation/command/delete-stack/delete-stack.handler.d.ts +11 -0
  85. package/dist/service/cloudformation/command/delete-stack/delete-stack.handler.js +15 -1
  86. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.command.d.ts +48 -0
  87. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.command.js +1 -0
  88. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.handler.d.ts +23 -0
  89. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.handler.js +52 -0
  90. package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.d.ts +3 -0
  91. package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.js +8 -4
  92. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-described-stacks.d.ts +18 -6
  93. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-described-stacks.js +22 -7
  94. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-stack-describer.js +1 -1
  95. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.command.d.ts +25 -0
  96. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.command.js +1 -0
  97. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.handler.d.ts +31 -0
  98. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.handler.js +37 -0
  99. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.command.d.ts +36 -0
  100. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.command.js +1 -0
  101. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.handler.d.ts +26 -0
  102. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.handler.js +39 -0
  103. package/dist/service/cloudformation/command/update-stack/update-stack-previous-values.d.ts +31 -0
  104. package/dist/service/cloudformation/command/update-stack/update-stack-previous-values.js +52 -0
  105. package/dist/service/cloudformation/command/update-stack/update-stack-template.d.ts +22 -0
  106. package/dist/service/cloudformation/command/update-stack/update-stack-template.js +34 -0
  107. package/dist/service/cloudformation/command/update-stack/update-stack.command.d.ts +17 -1
  108. package/dist/service/cloudformation/command/update-stack/update-stack.handler.js +8 -15
  109. package/dist/service/cloudformation/error/sim-cloudformation.error.d.ts +21 -0
  110. package/dist/service/cloudformation/error/sim-cloudformation.error.js +25 -0
  111. package/dist/service/cloudformation/parameters/pseudo/sim-cfn-pseudo-parameters.d.ts +7 -0
  112. package/dist/service/cloudformation/parameters/pseudo/sim-cfn-pseudo-parameters.js +3 -1
  113. package/dist/service/cloudformation/parameters/sim-cfn-parameters.d.ts +9 -0
  114. package/dist/service/cloudformation/parameters/sim-cfn-parameters.js +12 -0
  115. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-delete-operation.d.ts +4 -0
  116. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-delete-operation.js +10 -0
  117. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-retention.d.ts +44 -0
  118. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-retention.js +33 -0
  119. package/dist/service/cloudformation/resource/factory/sim-cfn-resource-factory.type.d.ts +9 -0
  120. package/dist/service/cloudformation/resource/sim-cfn-resource-record.d.ts +15 -0
  121. package/dist/service/cloudformation/resource/sim-cfn-resource-record.js +21 -1
  122. package/dist/service/cloudformation/resource/sim-cfn-resource.d.ts +9 -7
  123. package/dist/service/cloudformation/resource/sim-cfn-resource.js +11 -11
  124. package/dist/service/cloudformation/resource/sim-cfn-resource.type.d.ts +19 -0
  125. package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.d.ts +3 -3
  126. package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.js +3 -3
  127. package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.d.ts +4 -0
  128. package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.js +9 -0
  129. package/dist/service/cloudformation/resource/update/sim-cfn-resource-update-validator.d.ts +26 -0
  130. package/dist/service/cloudformation/resource/update/sim-cfn-resource-update-validator.js +55 -0
  131. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.d.ts +37 -0
  132. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.js +77 -0
  133. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.d.ts +51 -0
  134. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.js +10 -0
  135. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.d.ts +11 -0
  136. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.js +34 -0
  137. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.d.ts +21 -0
  138. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.js +31 -0
  139. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.d.ts +14 -0
  140. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.js +1 -0
  141. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.d.ts +26 -0
  142. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.js +58 -0
  143. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.d.ts +18 -0
  144. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.js +89 -0
  145. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.d.ts +15 -0
  146. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.js +65 -0
  147. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.d.ts +13 -0
  148. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.js +60 -0
  149. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.d.ts +13 -0
  150. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.js +50 -0
  151. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.d.ts +13 -0
  152. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.js +30 -0
  153. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.d.ts +26 -0
  154. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.js +44 -0
  155. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.d.ts +15 -0
  156. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.js +59 -0
  157. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.d.ts +11 -0
  158. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.js +43 -0
  159. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.d.ts +15 -0
  160. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.js +67 -0
  161. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.d.ts +26 -0
  162. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.js +61 -0
  163. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.d.ts +18 -0
  164. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.js +59 -0
  165. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api-template.factory.js +1 -1
  166. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.d.ts +4 -0
  167. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.js +12 -5
  168. package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api-template.factory.js +1 -1
  169. package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api.js +7 -3
  170. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-api-event.js +7 -3
  171. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.d.ts +26 -0
  172. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.js +88 -0
  173. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.d.ts +12 -0
  174. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.js +1 -0
  175. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-function-events.js +8 -5
  176. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-event.js +23 -1
  177. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.d.ts +9 -2
  178. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.js +5 -3
  179. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.d.ts +6 -1
  180. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.js +7 -1
  181. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.d.ts +19 -0
  182. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.js +69 -0
  183. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.d.ts +5 -0
  184. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.js +3 -1
  185. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.d.ts +8 -0
  186. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.js +8 -0
  187. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-url.js +1 -4
  188. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.d.ts +6 -4
  189. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.js +2 -4
  190. package/dist/service/cloudformation/sam/sim-cfn-sam-error.d.ts +31 -0
  191. package/dist/service/cloudformation/sam/sim-cfn-sam-error.js +17 -0
  192. package/dist/service/cloudformation/sam/sim-cfn-sam-expansion.js +11 -6
  193. package/dist/service/cloudformation/sdk/sim-cloudformation-sdk-command-router.js +20 -0
  194. package/dist/service/cloudformation/serve/sim-cloudformation-api.d.ts +4 -3
  195. package/dist/service/cloudformation/serve/sim-cloudformation-api.js +6 -3
  196. package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.d.ts +10 -0
  197. package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.js +94 -0
  198. package/dist/service/cloudformation/sim-cloudformation.d.ts +31 -0
  199. package/dist/service/cloudformation/sim-cloudformation.js +56 -9
  200. package/dist/service/cloudformation/stack/resource-map/sim-cfn-stack-resource-map.js +1 -0
  201. package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.d.ts +20 -0
  202. package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.js +23 -0
  203. package/dist/service/cloudformation/stack/sim-cfn-deployed-stack.type.d.ts +6 -0
  204. package/dist/service/cloudformation/stack/sim-cfn-stack-id.d.ts +30 -0
  205. package/dist/service/cloudformation/stack/sim-cfn-stack-id.js +24 -0
  206. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +51 -3
  207. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +84 -6
  208. package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts +28 -16
  209. package/dist/service/cloudformation/stack/sim-cfn-stack.js +59 -32
  210. package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +7 -1
  211. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.d.ts +7 -1
  212. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.js +3 -1
  213. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.d.ts +3 -0
  214. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.js +3 -0
  215. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.d.ts +3 -0
  216. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.js +2 -1
  217. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.d.ts +18 -0
  218. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.js +30 -0
  219. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.d.ts +9 -0
  220. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.js +14 -0
  221. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.d.ts +25 -14
  222. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.js +41 -24
  223. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.d.ts +16 -1
  224. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.js +27 -0
  225. package/dist/service/cloudformation/stack/update/sim-cfn-stack-updater.js +7 -1
  226. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.d.ts +12 -3
  227. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.js +29 -3
  228. package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.d.ts +28 -0
  229. package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.js +39 -0
  230. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.d.ts +25 -1
  231. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.js +43 -11
  232. package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.d.ts +7 -0
  233. package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.js +29 -3
  234. package/dist/service/cloudformation/template/sim-cfn-command-template.d.ts +40 -0
  235. package/dist/service/cloudformation/template/sim-cfn-command-template.js +45 -0
  236. package/dist/service/cloudformation/template/sim-cfn-template.d.ts +7 -0
  237. package/dist/service/cloudformation/template/sim-cfn-template.js +15 -1
  238. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts +2 -0
  239. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js +49 -0
  240. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js +1 -0
  241. package/dist/service/cloudfront/origin/s3/sim-cf-s3-origin-responses.js +1 -0
  242. package/dist/service/cognito/serve/page/sim-cognito-provider-page.js +1 -1
  243. package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.d.ts +5 -0
  244. package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.js +17 -0
  245. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.d.ts +5 -5
  246. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.js +24 -8
  247. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.d.ts +5 -0
  248. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.js +15 -0
  249. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-update-validator.d.ts +24 -0
  250. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-update-validator.js +38 -0
  251. package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.d.ts +11 -8
  252. package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.js +20 -8
  253. package/dist/service/dynamodb/command/query/sim-dynamodb-query.js +2 -0
  254. package/dist/service/dynamodb/command/query/sim-dynamodb-unsimulated-query-input.js +0 -1
  255. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.d.ts +14 -4
  256. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.js +16 -4
  257. package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.d.ts +17 -0
  258. package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.js +39 -0
  259. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.d.ts +28 -0
  260. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.js +50 -0
  261. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan.js +12 -5
  262. package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.d.ts +3 -3
  263. package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.js +3 -4
  264. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.d.ts +5 -16
  265. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.js +4 -21
  266. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.d.ts +15 -0
  267. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.js +18 -1
  268. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.d.ts +13 -0
  269. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.js +15 -0
  270. package/dist/service/dynamodb/table/sim-dynamodb-index-update.js +1 -2
  271. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.js +2 -0
  272. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.js +5 -3
  273. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.d.ts +21 -0
  274. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.js +37 -0
  275. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.js +6 -0
  276. package/dist/service/lambda/command/create-function/create-function.handler.d.ts +3 -0
  277. package/dist/service/lambda/command/create-function/create-function.handler.js +5 -1
  278. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.command.d.ts +2 -3
  279. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.handler.js +1 -0
  280. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts +6 -0
  281. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.js +10 -0
  282. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.js +2 -6
  283. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js +1 -0
  284. package/dist/service/lambda/command/function/sim-lambda-function-commands.d.ts +2 -0
  285. package/dist/service/lambda/command/function-url/function-url-cors-constraints.d.ts +25 -0
  286. package/dist/service/lambda/command/function-url/function-url-cors-constraints.js +49 -0
  287. package/dist/service/lambda/command/function-url/function-url-cors-input.d.ts +25 -0
  288. package/dist/service/lambda/command/function-url/function-url-cors-input.js +57 -0
  289. package/dist/service/lambda/command/function-url/function-url-input.d.ts +7 -0
  290. package/dist/service/lambda/command/function-url/function-url-input.js +9 -0
  291. package/dist/service/lambda/command/invoke/async/sim-lambda-async-invocation.js +10 -13
  292. package/dist/service/lambda/command/invoke/async/sim-lambda-async-outcome.js +2 -0
  293. package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.d.ts +13 -0
  294. package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.js +12 -0
  295. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.command.d.ts +2 -0
  296. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.handler.js +1 -0
  297. package/dist/service/lambda/destination/deliver/sim-lambda-destination-bus.js +1 -1
  298. package/dist/service/lambda/destination/deliver/sim-lambda-destination-function.js +8 -12
  299. package/dist/service/lambda/destination/deliver/sim-lambda-destination-queue.js +4 -3
  300. package/dist/service/lambda/destination/deliver/sim-lambda-destination-send.d.ts +2 -0
  301. package/dist/service/lambda/destination/deliver/sim-lambda-destination-topic.js +4 -3
  302. package/dist/service/lambda/destination/sim-aws-lambda-destinations.d.ts +4 -6
  303. package/dist/service/lambda/destination/sim-aws-lambda-destinations.js +6 -6
  304. package/dist/service/lambda/destination/sim-lambda-destination-targets.d.ts +3 -0
  305. package/dist/service/lambda/event-source/poll/kinesis/sim-lambda-kinesis-stream-delivery.js +4 -9
  306. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.js +4 -9
  307. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.d.ts +22 -3
  308. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.js +39 -9
  309. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.d.ts +7 -6
  310. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.js +14 -12
  311. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.d.ts +9 -15
  312. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.js +9 -16
  313. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.d.ts +10 -6
  314. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.js +22 -12
  315. package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.d.ts +23 -0
  316. package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.js +18 -0
  317. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.d.ts +12 -13
  318. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.js +24 -17
  319. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.d.ts +64 -0
  320. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.js +86 -0
  321. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts +6 -0
  322. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js +8 -1
  323. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.d.ts +6 -0
  324. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.js +7 -0
  325. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.d.ts +11 -1
  326. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.js +13 -0
  327. package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.d.ts +39 -0
  328. package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.js +46 -0
  329. package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.d.ts +56 -0
  330. package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.js +110 -0
  331. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.d.ts +5 -0
  332. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.js +7 -1
  333. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.d.ts +6 -0
  334. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.js +6 -0
  335. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.d.ts +6 -1
  336. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.js +8 -6
  337. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.d.ts +10 -8
  338. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.js +18 -1
  339. package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts +8 -2
  340. package/dist/service/lambda/function/code/sim-lambda-executable-code.js +2 -1
  341. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.d.ts +2 -11
  342. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.js +13 -39
  343. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.d.ts +7 -0
  344. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.js +13 -7
  345. package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.d.ts +23 -0
  346. package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.js +42 -0
  347. package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.d.ts +12 -4
  348. package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.js +15 -5
  349. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.d.ts +7 -0
  350. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.js +6 -2
  351. package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.d.ts +26 -0
  352. package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.js +84 -0
  353. package/dist/service/lambda/function/invoke/sim-lambda-invocation.d.ts +44 -0
  354. package/dist/service/lambda/function/invoke/sim-lambda-invocation.js +44 -0
  355. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.d.ts +6 -0
  356. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.js +1 -2
  357. package/dist/service/lambda/function/invoke/sim-lambda-process-output.d.ts +6 -1
  358. package/dist/service/lambda/function/invoke/sim-lambda-process-output.js +19 -6
  359. package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.d.ts +15 -0
  360. package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.js +18 -0
  361. package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.d.ts +12 -0
  362. package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.js +28 -0
  363. package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.d.ts +46 -0
  364. package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.js +104 -0
  365. package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.d.ts +24 -0
  366. package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.js +27 -0
  367. package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.d.ts +43 -0
  368. package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.js +112 -0
  369. package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.d.ts +57 -0
  370. package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.js +79 -0
  371. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.d.ts +10 -0
  372. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.js +15 -0
  373. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.d.ts +11 -0
  374. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.js +24 -0
  375. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.d.ts +50 -0
  376. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.js +43 -0
  377. package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts +17 -0
  378. package/dist/service/lambda/function/logging/sim-lambda-function-logging.js +12 -1
  379. package/dist/service/lambda/function/logging/sim-lambda-output.d.ts +56 -0
  380. package/dist/service/lambda/function/logging/sim-lambda-output.js +62 -0
  381. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.d.ts +8 -0
  382. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.js +27 -1
  383. package/dist/service/lambda/function/sim-lambda-function.d.ts +1 -1
  384. package/dist/service/lambda/function/sim-lambda-function.js +11 -9
  385. package/dist/service/lambda/function/sim-lambda-function.type.d.ts +15 -0
  386. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.d.ts +16 -0
  387. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.d.ts +22 -0
  388. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.js +17 -0
  389. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.js +1 -0
  390. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.d.ts +2 -0
  391. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.js +2 -1
  392. package/dist/service/lambda/function/url/sim-lambda-function-url-store.d.ts +2 -0
  393. package/dist/service/lambda/function/url/sim-lambda-function-url.d.ts +16 -0
  394. package/dist/service/lambda/function/url/sim-lambda-function-url.js +16 -1
  395. package/dist/service/lambda/index.d.ts +1 -0
  396. package/dist/service/lambda/index.js +1 -0
  397. package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.d.ts +50 -0
  398. package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.js +96 -0
  399. package/dist/service/lambda/serve/sim-lambda-controller.d.ts +14 -0
  400. package/dist/service/lambda/serve/sim-lambda-controller.js +27 -0
  401. package/dist/service/lambda/sim-lambda-commands.d.ts +10 -0
  402. package/dist/service/lambda/sim-lambda-commands.js +11 -0
  403. package/dist/service/lambda/sim-lambda.d.ts +12 -0
  404. package/dist/service/lambda/sim-lambda.js +13 -0
  405. package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.d.ts +67 -0
  406. package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.js +69 -0
  407. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.d.ts +4 -31
  408. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.js +7 -6
  409. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.d.ts +5 -0
  410. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.js +8 -4
  411. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.d.ts +1 -14
  412. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.js +16 -8
  413. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.d.ts +41 -0
  414. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.js +1 -0
  415. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.d.ts +14 -0
  416. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.js +32 -2
  417. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.d.ts +33 -0
  418. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.js +48 -0
  419. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.d.ts +16 -0
  420. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.js +44 -0
  421. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.d.ts +8 -0
  422. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.js +27 -0
  423. package/dist/service/s3/bucket/notification/sim-s3-notification-event.d.ts +1 -1
  424. package/dist/service/s3/bucket/notification/sim-s3-notification-event.js +5 -0
  425. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-events.js +0 -3
  426. package/dist/service/s3/bucket/sim-s3-bucket-access.d.ts +3 -0
  427. package/dist/service/s3/bucket/sim-s3-bucket-access.js +6 -2
  428. package/dist/service/s3/bucket/sim-s3-bucket-configuration.d.ts +84 -0
  429. package/dist/service/s3/bucket/sim-s3-bucket-configuration.js +115 -0
  430. package/dist/service/s3/bucket/sim-s3-bucket-objects.d.ts +10 -0
  431. package/dist/service/s3/bucket/sim-s3-bucket-objects.js +18 -0
  432. package/dist/service/s3/bucket/sim-s3-bucket-properties.d.ts +41 -0
  433. package/dist/service/s3/bucket/sim-s3-bucket-properties.js +1 -0
  434. package/dist/service/s3/bucket/sim-s3-bucket.d.ts +11 -83
  435. package/dist/service/s3/bucket/sim-s3-bucket.js +14 -83
  436. package/dist/service/s3/bucket/sim-s3-public-read.fixture.d.ts +6 -0
  437. package/dist/service/s3/bucket/sim-s3-public-read.fixture.js +20 -6
  438. package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.d.ts +58 -0
  439. package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.js +73 -0
  440. package/dist/service/s3/bucket/versioning/sim-s3-object-version.d.ts +19 -1
  441. package/dist/service/s3/bucket/versioning/sim-s3-object-version.js +20 -0
  442. package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.d.ts +21 -0
  443. package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.js +44 -0
  444. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.js +6 -0
  445. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.d.ts +5 -4
  446. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.js +12 -5
  447. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.d.ts +21 -0
  448. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.js +30 -0
  449. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js +1 -0
  450. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.d.ts +14 -1
  451. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.js +41 -16
  452. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.d.ts +3 -5
  453. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.js +7 -10
  454. package/dist/service/s3/command/authorize/sim-s3-authorize-action.d.ts +6 -1
  455. package/dist/service/s3/command/authorize/sim-s3-authorize-action.js +5 -0
  456. package/dist/service/s3/command/copy-object/copy-object-builder.d.ts +10 -1
  457. package/dist/service/s3/command/copy-object/copy-object-builder.js +17 -1
  458. package/dist/service/s3/command/copy-object/copy-object.command.d.ts +11 -1
  459. package/dist/service/s3/command/copy-object/copy-object.handler.js +2 -1
  460. package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.command.d.ts +5 -1
  461. package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.handler.js +7 -0
  462. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.d.ts +19 -0
  463. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.js +1 -0
  464. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.d.ts +30 -0
  465. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.js +38 -0
  466. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.d.ts +23 -0
  467. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.js +1 -0
  468. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.d.ts +22 -0
  469. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.js +42 -0
  470. package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.d.ts +29 -0
  471. package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.js +49 -0
  472. package/dist/service/s3/command/encryption/sim-s3-encryption-commands.d.ts +22 -0
  473. package/dist/service/s3/command/encryption/sim-s3-encryption-commands.js +30 -0
  474. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.d.ts +24 -0
  475. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.js +1 -0
  476. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.d.ts +31 -0
  477. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.js +39 -0
  478. package/dist/service/s3/command/get-object/get-object-authorizer.d.ts +11 -8
  479. package/dist/service/s3/command/get-object/get-object-authorizer.js +26 -34
  480. package/dist/service/s3/command/get-object/get-object-loader.d.ts +7 -3
  481. package/dist/service/s3/command/get-object/get-object-loader.js +9 -4
  482. package/dist/service/s3/command/get-object/get-object.command.d.ts +2 -1
  483. package/dist/service/s3/command/get-object/get-object.handler.d.ts +4 -0
  484. package/dist/service/s3/command/get-object/get-object.handler.js +13 -7
  485. package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.d.ts +29 -0
  486. package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.js +1 -0
  487. package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.d.ts +21 -0
  488. package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.js +33 -0
  489. package/dist/service/s3/command/head-object/head-object-loader.js +2 -0
  490. package/dist/service/s3/command/head-object/head-object.command.d.ts +2 -1
  491. package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-rules-validation.js +18 -0
  492. package/dist/service/s3/command/list-multipart-uploads/list-multipart-uploads.handler.js +1 -2
  493. package/dist/service/s3/command/list-object-versions/list-object-versions-summaries.js +1 -2
  494. package/dist/service/s3/command/list-objects/list-objects-page-builder.d.ts +5 -0
  495. package/dist/service/s3/command/list-objects/list-objects-page-builder.js +11 -6
  496. package/dist/service/s3/command/list-objects/list-objects.command.d.ts +5 -1
  497. package/dist/service/s3/command/list-objects/list-objects.handler.js +5 -0
  498. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.d.ts +6 -0
  499. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.js +11 -5
  500. package/dist/service/s3/command/list-objects-v2/list-objects-v2.command.d.ts +5 -1
  501. package/dist/service/s3/command/list-objects-v2/list-objects-v2.handler.js +5 -0
  502. package/dist/service/s3/command/list-parts/list-parts.handler.js +3 -3
  503. package/dist/service/s3/command/multipart/sim-s3-multipart-access.js +1 -1
  504. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.d.ts +21 -0
  505. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.js +1 -0
  506. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.d.ts +31 -0
  507. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.js +41 -0
  508. package/dist/service/s3/command/put-object/put-object-builder.d.ts +5 -1
  509. package/dist/service/s3/command/put-object/put-object-builder.js +10 -1
  510. package/dist/service/s3/command/put-object/put-object.command.d.ts +5 -1
  511. package/dist/service/s3/command/put-object/put-object.handler.js +2 -1
  512. package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.d.ts +37 -0
  513. package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.js +1 -0
  514. package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.d.ts +22 -0
  515. package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.js +46 -0
  516. package/dist/service/s3/command/sim-s3-command.types.d.ts +6 -0
  517. package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.d.ts +61 -0
  518. package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.js +49 -0
  519. package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.d.ts +30 -0
  520. package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.js +27 -0
  521. package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.d.ts +26 -0
  522. package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.js +34 -0
  523. package/dist/service/s3/error/sim-s3-upload.error.d.ts +41 -0
  524. package/dist/service/s3/error/sim-s3-upload.error.js +47 -0
  525. package/dist/service/s3/error/sim-s3.error.d.ts +22 -34
  526. package/dist/service/s3/error/sim-s3.error.js +26 -40
  527. package/dist/service/s3/mount/sim-s3-mount.type.d.ts +10 -0
  528. package/dist/service/s3/notification/event/sim-s3-event-records.d.ts +3 -2
  529. package/dist/service/s3/notification/event/sim-s3-event-records.js +5 -3
  530. package/dist/service/s3/notification/event/sim-s3-object-event-builder.d.ts +33 -8
  531. package/dist/service/s3/notification/event/sim-s3-object-event-builder.js +23 -9
  532. package/dist/service/s3/notification/sim-s3-object-notifier.d.ts +5 -1
  533. package/dist/service/s3/notification/sim-s3-object-notifier.js +6 -0
  534. package/dist/service/s3/object/s3-key-encoding.d.ts +12 -0
  535. package/dist/service/s3/object/s3-key-encoding.js +14 -0
  536. package/dist/service/s3/object/s3-listing-encoding.d.ts +42 -0
  537. package/dist/service/s3/object/s3-listing-encoding.js +75 -0
  538. package/dist/service/s3/object/s3-object-response-headers.d.ts +40 -0
  539. package/dist/service/s3/object/s3-object-response-headers.js +49 -2
  540. package/dist/service/s3/object/s3-object-storage-report.d.ts +19 -0
  541. package/dist/service/s3/object/s3-object-storage-report.js +18 -0
  542. package/dist/service/s3/object/s3-object-summary.d.ts +2 -10
  543. package/dist/service/s3/object/s3-object-summary.js +1 -10
  544. package/dist/service/s3/object/s3-object-tags.d.ts +61 -0
  545. package/dist/service/s3/object/s3-object-tags.js +77 -0
  546. package/dist/service/s3/object/s3-object.d.ts +49 -0
  547. package/dist/service/s3/object/s3-object.js +52 -1
  548. package/dist/service/s3/object/s3-server-side-encryption.d.ts +30 -0
  549. package/dist/service/s3/object/s3-server-side-encryption.js +42 -0
  550. package/dist/service/s3/object/s3-storage-class.d.ts +45 -0
  551. package/dist/service/s3/object/s3-storage-class.js +67 -0
  552. package/dist/service/s3/object/s3-write-metadata.d.ts +17 -3
  553. package/dist/service/s3/object/s3-write-metadata.js +43 -0
  554. package/dist/service/s3/object/s3-write-storage.d.ts +27 -0
  555. package/dist/service/s3/object/s3-write-storage.js +21 -0
  556. package/dist/service/s3/object/s3-write-tagging.d.ts +24 -0
  557. package/dist/service/s3/object/s3-write-tagging.js +19 -0
  558. package/dist/service/s3/sdk/sim-s3-sdk-bucket-routes.js +12 -0
  559. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +2 -0
  560. package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.d.ts +9 -0
  561. package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.js +23 -0
  562. package/dist/service/s3/serve/api/sim-s3-api-bucket-routes.js +22 -0
  563. package/dist/service/s3/serve/api/sim-s3-api-configuration-output.d.ts +4 -0
  564. package/dist/service/s3/serve/api/sim-s3-api-configuration-output.js +10 -0
  565. package/dist/service/s3/serve/api/sim-s3-api-encryption-read.d.ts +7 -0
  566. package/dist/service/s3/serve/api/sim-s3-api-encryption-read.js +30 -0
  567. package/dist/service/s3/serve/api/sim-s3-api-head-output.d.ts +4 -2
  568. package/dist/service/s3/serve/api/sim-s3-api-head-output.js +8 -2
  569. package/dist/service/s3/serve/api/sim-s3-api-input.d.ts +0 -6
  570. package/dist/service/s3/serve/api/sim-s3-api-input.js +2 -13
  571. package/dist/service/s3/serve/api/sim-s3-api-listing.d.ts +5 -0
  572. package/dist/service/s3/serve/api/sim-s3-api-listing.js +5 -0
  573. package/dist/service/s3/serve/api/sim-s3-api-object-input.d.ts +16 -0
  574. package/dist/service/s3/serve/api/sim-s3-api-object-input.js +34 -7
  575. package/dist/service/s3/serve/api/sim-s3-api-object-output.d.ts +18 -1
  576. package/dist/service/s3/serve/api/sim-s3-api-object-output.js +21 -2
  577. package/dist/service/s3/serve/api/sim-s3-api-object-routes.js +22 -1
  578. package/dist/service/s3/serve/api/sim-s3-api-output.d.ts +5 -1
  579. package/dist/service/s3/serve/api/sim-s3-api-output.js +16 -5
  580. package/dist/service/s3/serve/api/sim-s3-api-request.d.ts +6 -5
  581. package/dist/service/s3/serve/api/sim-s3-api-request.js +55 -11
  582. package/dist/service/s3/serve/api/sim-s3-api-routes.js +2 -2
  583. package/dist/service/s3/serve/api/sim-s3-api-tagging-read.d.ts +9 -0
  584. package/dist/service/s3/serve/api/sim-s3-api-tagging-read.js +14 -0
  585. package/dist/service/s3/serve/api/sim-s3-api.d.ts +7 -1
  586. package/dist/service/s3/serve/api/sim-s3-api.js +7 -1
  587. package/dist/service/s3/serve/sim-s3-rest-controller.d.ts +1 -5
  588. package/dist/service/s3/serve/sim-s3-rest-controller.js +3 -17
  589. package/dist/service/s3/serve/sim-s3-rest-object-reader.d.ts +3 -0
  590. package/dist/service/s3/serve/sim-s3-rest-object-reader.js +8 -1
  591. package/dist/service/s3/serve/sim-s3-rest-upload.d.ts +20 -0
  592. package/dist/service/s3/serve/sim-s3-rest-upload.js +30 -0
  593. package/dist/service/s3/serve/website/sim-s3-website-object-loader.js +1 -0
  594. package/dist/service/s3/serve/website/sim-s3-website-object.d.ts +2 -0
  595. package/dist/service/s3/serve/website/sim-s3-website-object.js +3 -0
  596. package/dist/service/s3/sim-s3-commands.d.ts +4 -0
  597. package/dist/service/s3/sim-s3-commands.js +6 -0
  598. package/dist/service/s3/sim-s3-operations.d.ts +11 -4
  599. package/dist/service/s3/sim-s3-operations.js +17 -4
  600. package/dist/service/s3/sim-s3-tagging-operations.d.ts +21 -0
  601. package/dist/service/s3/sim-s3-tagging-operations.js +25 -0
  602. package/dist/service/s3/sim-s3.d.ts +12 -0
  603. package/dist/service/s3/sim-s3.js +13 -0
  604. package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.d.ts +34 -0
  605. package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.js +34 -0
  606. package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.d.ts +9 -0
  607. package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.js +24 -0
  608. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.d.ts +5 -4
  609. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.js +5 -3
  610. package/dist/service/s3/upload/sim-s3-completed-upload.js +5 -1
  611. package/dist/service/s3/upload/sim-s3-multipart-upload.d.ts +18 -0
  612. package/dist/service/s3/upload/sim-s3-multipart-upload.js +8 -0
  613. package/dist/service/s3/upload/sim-s3-multipart-uploads.d.ts +6 -0
  614. package/dist/service/s3/upload/sim-s3-multipart-uploads.js +5 -0
  615. package/dist/util/background/background-clock-waits.d.ts +52 -0
  616. package/dist/util/background/background-clock-waits.js +76 -0
  617. package/dist/util/background/background-jitter.js +1 -0
  618. package/dist/util/background/background-pending-tasks.d.ts +55 -0
  619. package/dist/util/background/background-pending-tasks.js +117 -0
  620. package/dist/util/background/background-settled-tasks.d.ts +4 -1
  621. package/dist/util/background/background-settled-tasks.js +4 -1
  622. package/dist/util/background/background.d.ts +43 -0
  623. package/dist/util/background/background.js +27 -19
  624. package/dist/util/background/non-deterministic-background.d.ts +12 -0
  625. package/dist/util/background/non-deterministic-background.js +24 -20
  626. package/dist/util/clock/sim-clock-control.js +23 -2
  627. package/docs/services/apigateway/README.md +3 -1
  628. package/docs/services/athena/README.md +126 -3
  629. package/docs/services/cloudformation/README.md +775 -65
  630. package/docs/services/cognito/README.md +5 -0
  631. package/docs/services/dynamodb/README.md +86 -11
  632. package/docs/services/lambda/README.md +603 -39
  633. package/docs/services/s3/README.md +688 -57
  634. package/package.json +8 -2
@@ -0,0 +1,83 @@
1
+ import { SimCloudFormationChangeSetNotFoundException, SimCloudFormationInvalidChangeSetStatusException, } from "../error/sim-cloudformation.error.js";
2
+ /**
3
+ * How CloudFormation refuses a change set that cannot be executed.
4
+ */
5
+ export function simCfnChangeSetNotExecutable(changeSet) {
6
+ return new SimCloudFormationInvalidChangeSetStatusException(`ChangeSet [${changeSet.changeSetId}] cannot be executed in its ` +
7
+ `current status of [${changeSet.executionStatus}]`);
8
+ }
9
+ /**
10
+ * The change sets one simulated CloudFormation holds, in the order they were
11
+ * created.
12
+ *
13
+ * A change set is reached by its ARN on its own, or by its name together with
14
+ * the Stack it belongs to, which is how CloudFormation reaches one. Two change
15
+ * sets against different Stacks can carry the same name.
16
+ */
17
+ export class SimCfnChangeSets {
18
+ changeSets = [];
19
+ /** Hold a change set that has just been created. */
20
+ add(changeSet) {
21
+ this.changeSets = [...this.changeSets, changeSet];
22
+ }
23
+ /** Find a change set, or answer undefined where the lookup names none. */
24
+ find(lookup) {
25
+ const { changeSetName, stackName } = lookup;
26
+ return this.changeSets.find((changeSet) => {
27
+ if (changeSet.changeSetId === changeSetName) {
28
+ return true;
29
+ }
30
+ return (changeSet.changeSetName === changeSetName &&
31
+ stackName !== undefined &&
32
+ changeSet.stackName === stackName);
33
+ });
34
+ }
35
+ /**
36
+ * Find a change set, refusing a lookup that names none the way
37
+ * CloudFormation refuses it.
38
+ */
39
+ require(lookup) {
40
+ const changeSet = this.find(lookup);
41
+ if (changeSet === undefined) {
42
+ throw new SimCloudFormationChangeSetNotFoundException(`ChangeSet [${lookup.changeSetName}] does not exist`);
43
+ }
44
+ return changeSet;
45
+ }
46
+ /**
47
+ * Find a change set that can be executed, refusing one that cannot.
48
+ *
49
+ * A change set that failed to build, that has already been executed, or that
50
+ * another execution has made obsolete is refused for the status it is in,
51
+ * the way CloudFormation refuses it.
52
+ */
53
+ requireExecutable(lookup) {
54
+ const changeSet = this.require(lookup);
55
+ if (!changeSet.executable) {
56
+ throw simCfnChangeSetNotExecutable(changeSet);
57
+ }
58
+ return changeSet;
59
+ }
60
+ /** Whether this Stack already holds a change set under this name. */
61
+ has(stackName, name) {
62
+ return this.find({ changeSetName: name, stackName }) !== undefined;
63
+ }
64
+ /** The change sets held against one Stack, in the order they were created. */
65
+ forStack(stackName) {
66
+ return this.changeSets.filter((changeSet) => changeSet.stackName === stackName);
67
+ }
68
+ /** Take a change set away, for DeleteChangeSet. */
69
+ remove(changeSet) {
70
+ this.changeSets = this.changeSets.filter((held) => held !== changeSet);
71
+ }
72
+ /**
73
+ * Give up on every other change set against this Stack, because the one
74
+ * given has been executed and the Stack has moved on from what they saw.
75
+ */
76
+ markOthersObsolete(executed) {
77
+ for (const changeSet of this.forStack(executed.stackName)) {
78
+ if (changeSet !== executed && changeSet.executable) {
79
+ changeSet.executionStatus = "OBSOLETE";
80
+ }
81
+ }
82
+ }
83
+ }
@@ -0,0 +1,32 @@
1
+ import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
2
+ import type { SimCreateStackParameter } from "../create-stack/create-stack.command.js";
3
+ /**
4
+ * Minimal structural sim CloudFormation CreateChangeSet command.
5
+ */
6
+ export interface SimCreateChangeSetCommand {
7
+ readonly input: SimCreateChangeSetCommandInput;
8
+ }
9
+ /**
10
+ * Minimal structural sim CloudFormation CreateChangeSet input.
11
+ *
12
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudformation/command/CreateChangeSetCommand/
13
+ */
14
+ export interface SimCreateChangeSetCommandInput {
15
+ readonly StackName?: string | undefined;
16
+ readonly ChangeSetName?: string | undefined;
17
+ readonly ChangeSetType?: string | undefined;
18
+ readonly TemplateBody?: string | undefined;
19
+ readonly Parameters?: readonly SimCreateStackParameter[] | undefined;
20
+ readonly Description?: string | undefined;
21
+ }
22
+ /**
23
+ * Minimal structural sim CloudFormation CreateChangeSet output.
24
+ *
25
+ * CloudFormation returns the change set ARN and the Stack ID. The changes it
26
+ * describes are only being worked out when the call returns.
27
+ */
28
+ export interface SimCreateChangeSetCommandOutput {
29
+ readonly Id?: string;
30
+ readonly StackId?: string;
31
+ readonly $metadata: SimResponseMetadata;
32
+ }
@@ -0,0 +1,38 @@
1
+ import type { CommandHandler } from "../../../../command/command-handler.js";
2
+ import type { BackgroundCompleter, BackgroundScheduler } from "../../../../util/background/background.js";
3
+ import type { SimAws } from "../../../aws/sim-aws.js";
4
+ import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
5
+ import type { SimAwsAccountRegionScope } from "../../../aws/sim-aws-account-region-scope.js";
6
+ import type { SimCfnStack } from "../../stack/sim-cfn-stack.js";
7
+ import type { SimCloudFormationStackName } from "../../stack/sim-cfn-stack.type.js";
8
+ import type { SimCfnExports } from "../../export/sim-cfn-exports.js";
9
+ import type { SimCfnChangeSets } from "../../changeset/sim-cfn-change-sets.js";
10
+ import type { SimCreateChangeSetCommand, SimCreateChangeSetCommandOutput } from "./create-change-set.command.js";
11
+ interface CreateChangeSetCommandHandlerProperties {
12
+ readonly simAws: SimAws;
13
+ readonly accountRegionScope: SimAwsAccountRegionScope;
14
+ readonly stacks: Map<SimCloudFormationStackName, SimCfnStack>;
15
+ readonly changeSets: SimCfnChangeSets;
16
+ readonly background: BackgroundScheduler & BackgroundCompleter;
17
+ readonly caller?: SimAwsCaller | undefined;
18
+ readonly exports?: SimCfnExports | undefined;
19
+ }
20
+ /**
21
+ * Simulated CloudFormation CreateChangeSetCommand handler.
22
+ *
23
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudformation/command/CreateChangeSetCommand/
24
+ */
25
+ export declare class CreateChangeSetCommandHandler implements CommandHandler<SimCreateChangeSetCommand, SimCreateChangeSetCommandOutput> {
26
+ private readonly properties;
27
+ constructor(properties: CreateChangeSetCommandHandlerProperties);
28
+ /**
29
+ * Work out what a template would change about a Stack, and hold it.
30
+ *
31
+ * Nothing is created, deleted or replaced here. A `CREATE` change set puts
32
+ * the Stack itself in `REVIEW_IN_PROGRESS` holding no created Resources, and
33
+ * an `UPDATE` change set leaves the deployed Stack exactly as it is.
34
+ */
35
+ handle(command: SimCreateChangeSetCommand): Promise<SimCreateChangeSetCommandOutput>;
36
+ private assertNameFree;
37
+ }
38
+ export {};
@@ -0,0 +1,80 @@
1
+ import { simCfnCommandTemplate } from "../../template/sim-cfn-command-template.js";
2
+ import { SimCloudFormationAlreadyExistsException } from "../../error/sim-cloudformation.error.js";
3
+ import { SimCfnChangeSet } from "../../changeset/sim-cfn-change-set.js";
4
+ import { simCfnChangeSetPlan } from "../../changeset/sim-cfn-change-set-changes.js";
5
+ import { simCfnChangeSetRequest } from "../../changeset/sim-cfn-change-set-input.js";
6
+ import { simCfnChangeSetStack } from "../../changeset/sim-cfn-change-set-stack.js";
7
+ import { simCfnChangeSetStackId } from "../../changeset/sim-cfn-change-set-stack-id.js";
8
+ import { simCfnChangeSetFailure } from "../../changeset/sim-cfn-change-set-failure.js";
9
+ /**
10
+ * Simulated CloudFormation CreateChangeSetCommand handler.
11
+ *
12
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudformation/command/CreateChangeSetCommand/
13
+ */
14
+ export class CreateChangeSetCommandHandler {
15
+ properties;
16
+ constructor(properties) {
17
+ this.properties = properties;
18
+ }
19
+ /**
20
+ * Work out what a template would change about a Stack, and hold it.
21
+ *
22
+ * Nothing is created, deleted or replaced here. A `CREATE` change set puts
23
+ * the Stack itself in `REVIEW_IN_PROGRESS` holding no created Resources, and
24
+ * an `UPDATE` change set leaves the deployed Stack exactly as it is.
25
+ */
26
+ async handle(command) {
27
+ const request = simCfnChangeSetRequest(command.input);
28
+ // Allow for potential non-deterministic sequencing of async events.
29
+ await this.properties.background.sequence();
30
+ this.assertNameFree(request.stackName, request.changeSetName);
31
+ const stackId = simCfnChangeSetStackId({
32
+ ...this.properties,
33
+ ...request,
34
+ });
35
+ const template = simCfnCommandTemplate({
36
+ ...this.properties,
37
+ ...request,
38
+ stackId,
39
+ input: command.input,
40
+ });
41
+ const stack = simCfnChangeSetStack({
42
+ ...this.properties,
43
+ ...request,
44
+ stackId,
45
+ template,
46
+ });
47
+ const changes = simCfnChangeSetPlan({
48
+ ...this.properties,
49
+ ...request,
50
+ stack,
51
+ template,
52
+ });
53
+ const changeSet = new SimCfnChangeSet({
54
+ ...this.properties,
55
+ ...request,
56
+ stackId,
57
+ template,
58
+ changes,
59
+ plannedFrom: stack.currentTemplate,
60
+ description: command.input.Description,
61
+ failureReason: simCfnChangeSetFailure({
62
+ ...request,
63
+ stack,
64
+ template,
65
+ changeCount: changes.length,
66
+ }),
67
+ });
68
+ this.properties.changeSets.add(changeSet);
69
+ return {
70
+ Id: changeSet.changeSetId,
71
+ StackId: stack.stackId,
72
+ $metadata: {},
73
+ };
74
+ }
75
+ assertNameFree(stackName, changeSetName) {
76
+ if (this.properties.changeSets.has(stackName, changeSetName)) {
77
+ throw new SimCloudFormationAlreadyExistsException(`ChangeSet [${changeSetName}] already exists`);
78
+ }
79
+ }
80
+ }
@@ -1,9 +1,8 @@
1
1
  import { assertDefined } from "../../../../util/type-guard/defined.js";
2
2
  import { SimCfnStack, } from "../../stack/sim-cfn-stack.js";
3
+ import { makeSimCfnStackId } from "../../stack/sim-cfn-stack-id.js";
3
4
  import { SimCloudFormationAlreadyExistsException } from "../../error/sim-cloudformation.error.js";
4
- import { SimCfnTemplate } from "../../template/sim-cfn-template.js";
5
- import { SimCfnParameters } from "../../parameters/sim-cfn-parameters.js";
6
- import { makeSimCfnParameterStore } from "../../parameters/store/sim-cfn-parameter-store.js";
5
+ import { simCfnCommandTemplate } from "../../template/sim-cfn-command-template.js";
7
6
  /**
8
7
  * Simulated CloudFormation CreateStackCommand handler.
9
8
  *
@@ -43,17 +42,17 @@ export class CreateStackCommandHandler {
43
42
  if (this.stacks.has(stackName)) {
44
43
  throw new SimCloudFormationAlreadyExistsException(`Stack [${stackName}] already exists`);
45
44
  }
46
- const parameters = SimCfnParameters.fromInput(command.input, {
45
+ const stackId = makeSimCfnStackId({
46
+ accountRegionScope: this.accountRegionScope,
47
47
  stackName,
48
- parameterStore: makeSimCfnParameterStore({
49
- simAws: this.simAws,
50
- accountRegionScope: this.accountRegionScope,
51
- }),
52
48
  });
53
- const template = SimCfnTemplate.fromTemplateBody(command.input.TemplateBody, {
54
- stackName,
55
- parameters,
49
+ const template = simCfnCommandTemplate({
50
+ simAws: this.simAws,
56
51
  accountRegionScope: this.accountRegionScope,
52
+ stackName,
53
+ stackId,
54
+ templateBody: command.input.TemplateBody,
55
+ input: command.input,
57
56
  exports: this.exports,
58
57
  });
59
58
  const stack = new SimCfnStack({
@@ -61,6 +60,7 @@ export class CreateStackCommandHandler {
61
60
  accountRegionScope: this.accountRegionScope,
62
61
  background: this.background,
63
62
  stackName,
63
+ stackId,
64
64
  template,
65
65
  cdkOutContext: this.cdkOutContext,
66
66
  bindings: this.bindings,
@@ -71,7 +71,7 @@ export class CreateStackCommandHandler {
71
71
  this.stacks.set(stack.stackName, stack);
72
72
  await stack.deploy();
73
73
  return {
74
- StackId: stack.stackName,
74
+ StackId: stack.stackId,
75
75
  $metadata: {},
76
76
  };
77
77
  }
@@ -0,0 +1,22 @@
1
+ import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
2
+ /**
3
+ * Minimal structural sim CloudFormation DeleteChangeSet command.
4
+ */
5
+ export interface SimDeleteChangeSetCommand {
6
+ readonly input: SimDeleteChangeSetCommandInput;
7
+ }
8
+ /**
9
+ * Minimal structural sim CloudFormation DeleteChangeSet input.
10
+ *
11
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudformation/command/DeleteChangeSetCommand/
12
+ */
13
+ export interface SimDeleteChangeSetCommandInput {
14
+ readonly ChangeSetName?: string | undefined;
15
+ readonly StackName?: string | undefined;
16
+ }
17
+ /**
18
+ * Minimal structural sim CloudFormation DeleteChangeSet output.
19
+ */
20
+ export interface SimDeleteChangeSetCommandOutput {
21
+ readonly $metadata: SimResponseMetadata;
22
+ }
@@ -0,0 +1,27 @@
1
+ import type { CommandHandler } from "../../../../command/command-handler.js";
2
+ import type { BackgroundScheduler } from "../../../../util/background/background.js";
3
+ import type { SimCfnChangeSets } from "../../changeset/sim-cfn-change-sets.js";
4
+ import type { SimDeleteChangeSetCommand, SimDeleteChangeSetCommandOutput } from "./delete-change-set.command.js";
5
+ interface DeleteChangeSetCommandHandlerProperties {
6
+ readonly changeSets: SimCfnChangeSets;
7
+ readonly background: BackgroundScheduler;
8
+ }
9
+ /**
10
+ * Simulated CloudFormation DeleteChangeSetCommand handler.
11
+ *
12
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudformation/command/DeleteChangeSetCommand/
13
+ */
14
+ export declare class DeleteChangeSetCommandHandler implements CommandHandler<SimDeleteChangeSetCommand, SimDeleteChangeSetCommandOutput> {
15
+ private readonly changeSets;
16
+ private readonly background;
17
+ constructor(properties: DeleteChangeSetCommandHandlerProperties);
18
+ /**
19
+ * Take a change set away without executing it.
20
+ *
21
+ * A change set name that is not there is a success, as it is in
22
+ * CloudFormation: DeleteChangeSet says the change set should be gone, and one
23
+ * that has already gone satisfies that.
24
+ */
25
+ handle(command: SimDeleteChangeSetCommand): Promise<SimDeleteChangeSetCommandOutput>;
26
+ }
27
+ export {};
@@ -0,0 +1,35 @@
1
+ import { assertDefined } from "../../../../util/type-guard/defined.js";
2
+ /**
3
+ * Simulated CloudFormation DeleteChangeSetCommand handler.
4
+ *
5
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudformation/command/DeleteChangeSetCommand/
6
+ */
7
+ export class DeleteChangeSetCommandHandler {
8
+ changeSets;
9
+ background;
10
+ constructor(properties) {
11
+ this.changeSets = properties.changeSets;
12
+ this.background = properties.background;
13
+ }
14
+ /**
15
+ * Take a change set away without executing it.
16
+ *
17
+ * A change set name that is not there is a success, as it is in
18
+ * CloudFormation: DeleteChangeSet says the change set should be gone, and one
19
+ * that has already gone satisfies that.
20
+ */
21
+ async handle(command) {
22
+ assertDefined(command.input.ChangeSetName, "DeleteChangeSetCommand.input.ChangeSetName");
23
+ // Allow for potential non-deterministic sequencing of async events.
24
+ await this.background.sequence();
25
+ const changeSet = this.changeSets.find({
26
+ changeSetName: command.input.ChangeSetName,
27
+ stackName: command.input.StackName,
28
+ });
29
+ if (changeSet !== undefined) {
30
+ changeSet.status = "DELETE_COMPLETE";
31
+ this.changeSets.remove(changeSet);
32
+ }
33
+ return { $metadata: {} };
34
+ }
35
+ }
@@ -12,6 +12,12 @@ export interface SimDeleteStackCommand {
12
12
  */
13
13
  export interface SimDeleteStackCommandInput {
14
14
  readonly StackName?: string | undefined;
15
+ /**
16
+ * Logical IDs of Resources to leave in simulated AWS. Each one is stepped
17
+ * over the way a DeletionPolicy of Retain steps over a Resource, and an ID
18
+ * the Stack has no Resource for is refused.
19
+ */
20
+ readonly RetainResources?: string[] | undefined;
15
21
  }
16
22
  /**
17
23
  * Minimal structural sim CloudFormation DeleteStack output.
@@ -1,9 +1,12 @@
1
1
  import type { CommandHandler } from "../../../../command/command-handler.js";
2
2
  import type { BackgroundCompleter, BackgroundScheduler } from "../../../../util/background/background.js";
3
3
  import type { SimCfnStack, SimCloudFormationStackName } from "../../stack/sim-cfn-stack.js";
4
+ import type { SimCfnDeletedStacks } from "../../stack/sim-cfn-deleted-stacks.js";
4
5
  import type { SimDeleteStackCommand, SimDeleteStackCommandOutput } from "./delete-stack.command.js";
5
6
  interface DeleteStackCommandHandlerProperties {
6
7
  readonly stacks: Map<SimCloudFormationStackName, SimCfnStack>;
8
+ /** Where a Stack that has finished deleting is kept, to stay describable. */
9
+ readonly deleted: SimCfnDeletedStacks;
7
10
  readonly background: BackgroundScheduler & BackgroundCompleter;
8
11
  }
9
12
  /**
@@ -13,6 +16,7 @@ interface DeleteStackCommandHandlerProperties {
13
16
  */
14
17
  export declare class DeleteStackCommandHandler implements CommandHandler<SimDeleteStackCommand, SimDeleteStackCommandOutput> {
15
18
  private readonly stacks;
19
+ private readonly deleted;
16
20
  private readonly background;
17
21
  constructor(properties: DeleteStackCommandHandlerProperties);
18
22
  /**
@@ -27,6 +31,13 @@ export declare class DeleteStackCommandHandler implements CommandHandler<SimDele
27
31
  * the background, and the Stack name is only released when that finishes, so
28
32
  * a CreateStack that reuses the name should follow a wait for deletion to
29
33
  * complete.
34
+ *
35
+ * The Stack itself is kept once its name has gone, so DescribeStacks can
36
+ * still answer for it by Stack ID, as CloudFormation does for 90 days.
37
+ *
38
+ * RetainResources names Resources to leave behind. They stay in simulated AWS
39
+ * and are reported as retained on the deleted Stack, and the Stack still
40
+ * reaches DELETE_COMPLETE around them.
30
41
  */
31
42
  handle(command: SimDeleteStackCommand): Promise<SimDeleteStackCommandOutput>;
32
43
  }
@@ -6,9 +6,11 @@ import { assertDefined } from "../../../../util/type-guard/defined.js";
6
6
  */
7
7
  export class DeleteStackCommandHandler {
8
8
  stacks;
9
+ deleted;
9
10
  background;
10
11
  constructor(properties) {
11
12
  this.stacks = properties.stacks;
13
+ this.deleted = properties.deleted;
12
14
  this.background = properties.background;
13
15
  }
14
16
  /**
@@ -23,6 +25,13 @@ export class DeleteStackCommandHandler {
23
25
  * the background, and the Stack name is only released when that finishes, so
24
26
  * a CreateStack that reuses the name should follow a wait for deletion to
25
27
  * complete.
28
+ *
29
+ * The Stack itself is kept once its name has gone, so DescribeStacks can
30
+ * still answer for it by Stack ID, as CloudFormation does for 90 days.
31
+ *
32
+ * RetainResources names Resources to leave behind. They stay in simulated AWS
33
+ * and are reported as retained on the deleted Stack, and the Stack still
34
+ * reaches DELETE_COMPLETE around them.
26
35
  */
27
36
  async handle(command) {
28
37
  assertDefined(command.input.StackName, "DeleteStackCommand.input.StackName");
@@ -30,9 +39,14 @@ export class DeleteStackCommandHandler {
30
39
  await this.background.sequence();
31
40
  const stackName = command.input.StackName;
32
41
  const stack = this.stacks.get(stackName);
33
- await stack?.delete({
42
+ if (stack === undefined) {
43
+ return { $metadata: {} };
44
+ }
45
+ await stack.delete({
46
+ retainResources: command.input.RetainResources,
34
47
  onDeleteComplete: () => {
35
48
  this.stacks.delete(stackName);
49
+ this.deleted.record(stack);
36
50
  },
37
51
  });
38
52
  return { $metadata: {} };
@@ -0,0 +1,48 @@
1
+ import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
2
+ import type { SimCfnChangeSetExecutionStatus, SimCfnChangeSetStatus, SimCfnResourceChangeAction } from "../../changeset/sim-cfn-change-set.type.js";
3
+ /**
4
+ * Minimal structural sim CloudFormation DescribeChangeSet command.
5
+ */
6
+ export interface SimDescribeChangeSetCommand {
7
+ readonly input: SimDescribeChangeSetCommandInput;
8
+ }
9
+ /**
10
+ * Minimal structural sim CloudFormation DescribeChangeSet input.
11
+ *
12
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudformation/command/DescribeChangeSetCommand/
13
+ */
14
+ export interface SimDescribeChangeSetCommandInput {
15
+ readonly ChangeSetName?: string | undefined;
16
+ readonly StackName?: string | undefined;
17
+ }
18
+ /**
19
+ * Minimal structural sim CloudFormation DescribeChangeSet output.
20
+ */
21
+ export interface SimDescribeChangeSetCommandOutput {
22
+ readonly ChangeSetId?: string | undefined;
23
+ readonly ChangeSetName?: string | undefined;
24
+ readonly StackId?: string | undefined;
25
+ readonly StackName?: string | undefined;
26
+ readonly Description?: string | undefined;
27
+ readonly Status?: SimCfnChangeSetStatus | undefined;
28
+ readonly StatusReason?: string | undefined;
29
+ readonly ExecutionStatus?: SimCfnChangeSetExecutionStatus | undefined;
30
+ readonly Changes?: SimCfnChangeDescription[] | undefined;
31
+ readonly $metadata: SimResponseMetadata;
32
+ }
33
+ /**
34
+ * Minimal structural sim CloudFormation Change description.
35
+ */
36
+ export interface SimCfnChangeDescription {
37
+ readonly Type: "Resource";
38
+ readonly ResourceChange: SimCfnResourceChangeDescription;
39
+ }
40
+ /**
41
+ * Minimal structural sim CloudFormation ResourceChange description.
42
+ */
43
+ export interface SimCfnResourceChangeDescription {
44
+ readonly Action?: SimCfnResourceChangeAction | undefined;
45
+ readonly LogicalResourceId?: string | undefined;
46
+ readonly ResourceType?: string | undefined;
47
+ readonly Replacement?: string | undefined;
48
+ }
@@ -0,0 +1,23 @@
1
+ import type { CommandHandler } from "../../../../command/command-handler.js";
2
+ import type { BackgroundScheduler } from "../../../../util/background/background.js";
3
+ import type { SimCfnChangeSets } from "../../changeset/sim-cfn-change-sets.js";
4
+ import type { SimDescribeChangeSetCommand, SimDescribeChangeSetCommandOutput } from "./describe-change-set.command.js";
5
+ interface DescribeChangeSetCommandHandlerProperties {
6
+ readonly changeSets: SimCfnChangeSets;
7
+ readonly background: BackgroundScheduler;
8
+ }
9
+ /**
10
+ * Simulated CloudFormation DescribeChangeSetCommand handler.
11
+ *
12
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudformation/command/DescribeChangeSetCommand/
13
+ */
14
+ export declare class DescribeChangeSetCommandHandler implements CommandHandler<SimDescribeChangeSetCommand, SimDescribeChangeSetCommandOutput> {
15
+ private readonly changeSets;
16
+ private readonly background;
17
+ constructor(properties: DescribeChangeSetCommandHandlerProperties);
18
+ /**
19
+ * Report what a change set would do to its Stack.
20
+ */
21
+ handle(command: SimDescribeChangeSetCommand): Promise<SimDescribeChangeSetCommandOutput>;
22
+ }
23
+ export {};
@@ -0,0 +1,52 @@
1
+ import { assertDefined } from "../../../../util/type-guard/defined.js";
2
+ /**
3
+ * Simulated CloudFormation DescribeChangeSetCommand handler.
4
+ *
5
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/cloudformation/command/DescribeChangeSetCommand/
6
+ */
7
+ export class DescribeChangeSetCommandHandler {
8
+ changeSets;
9
+ background;
10
+ constructor(properties) {
11
+ this.changeSets = properties.changeSets;
12
+ this.background = properties.background;
13
+ }
14
+ /**
15
+ * Report what a change set would do to its Stack.
16
+ */
17
+ async handle(command) {
18
+ assertDefined(command.input.ChangeSetName, "DescribeChangeSetCommand.input.ChangeSetName");
19
+ // Allow for potential non-deterministic sequencing of async events.
20
+ await this.background.sequence();
21
+ const changeSet = this.changeSets.require({
22
+ changeSetName: command.input.ChangeSetName,
23
+ stackName: command.input.StackName,
24
+ });
25
+ return {
26
+ ChangeSetId: changeSet.changeSetId,
27
+ ChangeSetName: changeSet.changeSetName,
28
+ StackId: changeSet.stackId,
29
+ StackName: changeSet.stackName,
30
+ Description: changeSet.description,
31
+ Status: changeSet.status,
32
+ StatusReason: changeSet.statusReason,
33
+ ExecutionStatus: changeSet.executionStatus,
34
+ Changes: describedChanges(changeSet),
35
+ $metadata: {},
36
+ };
37
+ }
38
+ }
39
+ /**
40
+ * The Resource changes in the shape DescribeChangeSet answers with.
41
+ */
42
+ function describedChanges(changeSet) {
43
+ return changeSet.changes.map((change) => ({
44
+ Type: "Resource",
45
+ ResourceChange: {
46
+ Action: change.action,
47
+ LogicalResourceId: change.logicalResourceId,
48
+ ResourceType: change.resourceType,
49
+ Replacement: change.replacement,
50
+ },
51
+ }));
52
+ }
@@ -2,9 +2,11 @@ import type { CommandHandler } from "../../../../command/command-handler.js";
2
2
  import { type BackgroundScheduler } from "../../../../util/background/background.js";
3
3
  import type { SimCfnStack, SimCloudFormationStackName } from "../../stack/sim-cfn-stack.js";
4
4
  import type { SimDescribeStacksCommand, SimDescribeStacksCommandOutput } from "./describe-stacks.command.js";
5
+ import type { SimCfnDeletedStacks } from "../../stack/sim-cfn-deleted-stacks.js";
5
6
  import { SimCfnStackDescriber } from "./sim-cfn-stack-describer.js";
6
7
  interface DescribeStacksCommandHandlerProperties {
7
8
  readonly stacks: Map<SimCloudFormationStackName, SimCfnStack>;
9
+ readonly deleted: SimCfnDeletedStacks;
8
10
  readonly background?: BackgroundScheduler;
9
11
  readonly describer?: SimCfnStackDescriber;
10
12
  }
@@ -15,6 +17,7 @@ interface DescribeStacksCommandHandlerProperties {
15
17
  */
16
18
  export declare class DescribeStacksCommandHandler implements CommandHandler<SimDescribeStacksCommand, SimDescribeStacksCommandOutput> {
17
19
  private readonly stacks;
20
+ private readonly deleted;
18
21
  private readonly background;
19
22
  private readonly describer;
20
23
  constructor(properties: DescribeStacksCommandHandlerProperties);
@@ -8,11 +8,13 @@ import { SimCfnDescribedStacks } from "./sim-cfn-described-stacks.js";
8
8
  */
9
9
  export class DescribeStacksCommandHandler {
10
10
  stacks;
11
+ deleted;
11
12
  background;
12
13
  describer;
13
14
  constructor(properties) {
14
- const { stacks, background = new BackgroundTasks(), describer = new SimCfnStackDescriber(), } = properties;
15
+ const { stacks, deleted, background = new BackgroundTasks(), describer = new SimCfnStackDescriber(), } = properties;
15
16
  this.stacks = stacks;
17
+ this.deleted = deleted;
16
18
  this.background = background;
17
19
  this.describer = describer;
18
20
  }
@@ -22,10 +24,12 @@ export class DescribeStacksCommandHandler {
22
24
  async handle(command) {
23
25
  // Allow for potential non-deterministic sequencing of async events.
24
26
  await this.background.sequence();
25
- const stackName = command.input.StackName;
26
27
  return {
27
- Stacks: new SimCfnDescribedStacks(this.stacks)
28
- .matching(stackName)
28
+ Stacks: new SimCfnDescribedStacks({
29
+ stacks: this.stacks,
30
+ deleted: this.deleted,
31
+ })
32
+ .matching(command.input.StackName)
29
33
  .map((stack) => this.describer.describe(stack)),
30
34
  $metadata: {},
31
35
  };