@kensio/yulin 1.21.3 → 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 (626) 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/sim-cfn-resource-record.d.ts +15 -0
  120. package/dist/service/cloudformation/resource/sim-cfn-resource-record.js +21 -1
  121. package/dist/service/cloudformation/resource/sim-cfn-resource.d.ts +9 -7
  122. package/dist/service/cloudformation/resource/sim-cfn-resource.js +11 -11
  123. package/dist/service/cloudformation/resource/sim-cfn-resource.type.d.ts +8 -0
  124. package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.d.ts +3 -3
  125. package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.js +3 -3
  126. package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.d.ts +4 -0
  127. package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.js +9 -0
  128. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.d.ts +37 -0
  129. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.js +77 -0
  130. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.d.ts +51 -0
  131. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.js +10 -0
  132. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.d.ts +11 -0
  133. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.js +34 -0
  134. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.d.ts +21 -0
  135. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.js +31 -0
  136. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.d.ts +14 -0
  137. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.js +1 -0
  138. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.d.ts +26 -0
  139. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.js +58 -0
  140. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.d.ts +18 -0
  141. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.js +89 -0
  142. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.d.ts +15 -0
  143. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.js +65 -0
  144. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.d.ts +13 -0
  145. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.js +60 -0
  146. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.d.ts +13 -0
  147. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.js +50 -0
  148. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.d.ts +13 -0
  149. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.js +30 -0
  150. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.d.ts +26 -0
  151. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.js +44 -0
  152. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.d.ts +15 -0
  153. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.js +59 -0
  154. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.d.ts +11 -0
  155. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.js +43 -0
  156. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.d.ts +15 -0
  157. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.js +67 -0
  158. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.d.ts +26 -0
  159. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.js +61 -0
  160. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.d.ts +18 -0
  161. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.js +59 -0
  162. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api-template.factory.js +1 -1
  163. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.d.ts +4 -0
  164. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.js +12 -5
  165. package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api-template.factory.js +1 -1
  166. package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api.js +7 -3
  167. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-api-event.js +7 -3
  168. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.d.ts +26 -0
  169. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.js +88 -0
  170. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.d.ts +12 -0
  171. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.js +1 -0
  172. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-function-events.js +8 -5
  173. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-event.js +23 -1
  174. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.d.ts +9 -2
  175. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.js +5 -3
  176. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.d.ts +6 -1
  177. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.js +7 -1
  178. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.d.ts +19 -0
  179. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.js +69 -0
  180. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.d.ts +5 -0
  181. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.js +3 -1
  182. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.d.ts +8 -0
  183. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.js +8 -0
  184. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-url.js +1 -4
  185. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.d.ts +6 -4
  186. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.js +2 -4
  187. package/dist/service/cloudformation/sam/sim-cfn-sam-error.d.ts +31 -0
  188. package/dist/service/cloudformation/sam/sim-cfn-sam-error.js +17 -0
  189. package/dist/service/cloudformation/sam/sim-cfn-sam-expansion.js +11 -6
  190. package/dist/service/cloudformation/sdk/sim-cloudformation-sdk-command-router.js +20 -0
  191. package/dist/service/cloudformation/serve/sim-cloudformation-api.d.ts +4 -3
  192. package/dist/service/cloudformation/serve/sim-cloudformation-api.js +6 -3
  193. package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.d.ts +10 -0
  194. package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.js +94 -0
  195. package/dist/service/cloudformation/sim-cloudformation.d.ts +31 -0
  196. package/dist/service/cloudformation/sim-cloudformation.js +56 -9
  197. package/dist/service/cloudformation/stack/resource-map/sim-cfn-stack-resource-map.js +1 -0
  198. package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.d.ts +20 -0
  199. package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.js +23 -0
  200. package/dist/service/cloudformation/stack/sim-cfn-deployed-stack.type.d.ts +6 -0
  201. package/dist/service/cloudformation/stack/sim-cfn-stack-id.d.ts +30 -0
  202. package/dist/service/cloudformation/stack/sim-cfn-stack-id.js +24 -0
  203. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +46 -3
  204. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +67 -6
  205. package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts +28 -16
  206. package/dist/service/cloudformation/stack/sim-cfn-stack.js +59 -32
  207. package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +7 -1
  208. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.d.ts +7 -1
  209. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.js +3 -1
  210. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.d.ts +3 -0
  211. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.js +3 -0
  212. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.d.ts +3 -0
  213. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.js +2 -1
  214. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.d.ts +18 -0
  215. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.js +30 -0
  216. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.d.ts +9 -0
  217. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.js +14 -0
  218. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.d.ts +25 -14
  219. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.js +41 -24
  220. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.d.ts +9 -0
  221. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.js +14 -0
  222. package/dist/service/cloudformation/stack/update/sim-cfn-stack-updater.js +6 -1
  223. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.d.ts +12 -3
  224. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.js +29 -3
  225. package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.d.ts +28 -0
  226. package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.js +39 -0
  227. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.d.ts +25 -1
  228. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.js +43 -11
  229. package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.d.ts +7 -0
  230. package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.js +29 -3
  231. package/dist/service/cloudformation/template/sim-cfn-command-template.d.ts +40 -0
  232. package/dist/service/cloudformation/template/sim-cfn-command-template.js +45 -0
  233. package/dist/service/cloudformation/template/sim-cfn-template.d.ts +7 -0
  234. package/dist/service/cloudformation/template/sim-cfn-template.js +15 -1
  235. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts +2 -0
  236. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js +49 -0
  237. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js +1 -0
  238. package/dist/service/cloudfront/origin/s3/sim-cf-s3-origin-responses.js +1 -0
  239. package/dist/service/cognito/serve/page/sim-cognito-provider-page.js +1 -1
  240. package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.d.ts +5 -0
  241. package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.js +17 -0
  242. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.d.ts +5 -5
  243. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.js +24 -8
  244. package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.d.ts +11 -8
  245. package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.js +20 -8
  246. package/dist/service/dynamodb/command/query/sim-dynamodb-query.js +2 -0
  247. package/dist/service/dynamodb/command/query/sim-dynamodb-unsimulated-query-input.js +0 -1
  248. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.d.ts +14 -4
  249. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.js +16 -4
  250. package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.d.ts +17 -0
  251. package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.js +39 -0
  252. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.d.ts +28 -0
  253. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.js +50 -0
  254. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan.js +12 -5
  255. package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.d.ts +3 -3
  256. package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.js +3 -4
  257. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.d.ts +5 -16
  258. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.js +4 -21
  259. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.d.ts +15 -0
  260. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.js +18 -1
  261. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.d.ts +13 -0
  262. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.js +15 -0
  263. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.js +2 -0
  264. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.js +5 -3
  265. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.d.ts +21 -0
  266. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.js +37 -0
  267. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.js +6 -0
  268. package/dist/service/lambda/command/create-function/create-function.handler.d.ts +3 -0
  269. package/dist/service/lambda/command/create-function/create-function.handler.js +5 -1
  270. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.command.d.ts +2 -3
  271. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.handler.js +1 -0
  272. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts +6 -0
  273. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.js +10 -0
  274. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.js +2 -6
  275. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js +1 -0
  276. package/dist/service/lambda/command/function/sim-lambda-function-commands.d.ts +2 -0
  277. package/dist/service/lambda/command/function-url/function-url-cors-constraints.d.ts +25 -0
  278. package/dist/service/lambda/command/function-url/function-url-cors-constraints.js +49 -0
  279. package/dist/service/lambda/command/function-url/function-url-cors-input.d.ts +25 -0
  280. package/dist/service/lambda/command/function-url/function-url-cors-input.js +57 -0
  281. package/dist/service/lambda/command/function-url/function-url-input.d.ts +7 -0
  282. package/dist/service/lambda/command/function-url/function-url-input.js +9 -0
  283. package/dist/service/lambda/command/invoke/async/sim-lambda-async-invocation.js +10 -13
  284. package/dist/service/lambda/command/invoke/async/sim-lambda-async-outcome.js +2 -0
  285. package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.d.ts +13 -0
  286. package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.js +12 -0
  287. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.command.d.ts +2 -0
  288. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.handler.js +1 -0
  289. package/dist/service/lambda/destination/deliver/sim-lambda-destination-bus.js +1 -1
  290. package/dist/service/lambda/destination/deliver/sim-lambda-destination-function.js +8 -12
  291. package/dist/service/lambda/destination/deliver/sim-lambda-destination-queue.js +4 -3
  292. package/dist/service/lambda/destination/deliver/sim-lambda-destination-send.d.ts +2 -0
  293. package/dist/service/lambda/destination/deliver/sim-lambda-destination-topic.js +4 -3
  294. package/dist/service/lambda/destination/sim-aws-lambda-destinations.d.ts +4 -6
  295. package/dist/service/lambda/destination/sim-aws-lambda-destinations.js +6 -6
  296. package/dist/service/lambda/destination/sim-lambda-destination-targets.d.ts +3 -0
  297. package/dist/service/lambda/event-source/poll/kinesis/sim-lambda-kinesis-stream-delivery.js +4 -9
  298. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.js +4 -9
  299. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.d.ts +22 -3
  300. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.js +39 -9
  301. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.d.ts +7 -6
  302. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.js +14 -12
  303. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.d.ts +9 -15
  304. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.js +9 -16
  305. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.d.ts +10 -6
  306. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.js +22 -12
  307. package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.d.ts +23 -0
  308. package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.js +18 -0
  309. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.d.ts +12 -13
  310. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.js +24 -17
  311. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.d.ts +64 -0
  312. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.js +86 -0
  313. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts +6 -0
  314. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js +8 -1
  315. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.d.ts +6 -0
  316. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.js +7 -0
  317. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.d.ts +11 -1
  318. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.js +13 -0
  319. package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.d.ts +39 -0
  320. package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.js +46 -0
  321. package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.d.ts +56 -0
  322. package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.js +110 -0
  323. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.d.ts +5 -0
  324. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.js +7 -1
  325. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.d.ts +6 -0
  326. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.js +6 -0
  327. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.d.ts +6 -1
  328. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.js +8 -6
  329. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.d.ts +10 -8
  330. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.js +18 -1
  331. package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts +8 -2
  332. package/dist/service/lambda/function/code/sim-lambda-executable-code.js +2 -1
  333. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.d.ts +2 -11
  334. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.js +13 -39
  335. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.d.ts +7 -0
  336. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.js +13 -7
  337. package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.d.ts +23 -0
  338. package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.js +42 -0
  339. package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.d.ts +12 -4
  340. package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.js +15 -5
  341. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.d.ts +7 -0
  342. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.js +6 -2
  343. package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.d.ts +26 -0
  344. package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.js +84 -0
  345. package/dist/service/lambda/function/invoke/sim-lambda-invocation.d.ts +44 -0
  346. package/dist/service/lambda/function/invoke/sim-lambda-invocation.js +44 -0
  347. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.d.ts +6 -0
  348. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.js +1 -2
  349. package/dist/service/lambda/function/invoke/sim-lambda-process-output.d.ts +6 -1
  350. package/dist/service/lambda/function/invoke/sim-lambda-process-output.js +19 -6
  351. package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.d.ts +15 -0
  352. package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.js +18 -0
  353. package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.d.ts +12 -0
  354. package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.js +28 -0
  355. package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.d.ts +46 -0
  356. package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.js +104 -0
  357. package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.d.ts +24 -0
  358. package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.js +27 -0
  359. package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.d.ts +43 -0
  360. package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.js +112 -0
  361. package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.d.ts +57 -0
  362. package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.js +79 -0
  363. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.d.ts +10 -0
  364. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.js +15 -0
  365. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.d.ts +11 -0
  366. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.js +24 -0
  367. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.d.ts +50 -0
  368. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.js +43 -0
  369. package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts +17 -0
  370. package/dist/service/lambda/function/logging/sim-lambda-function-logging.js +12 -1
  371. package/dist/service/lambda/function/logging/sim-lambda-output.d.ts +56 -0
  372. package/dist/service/lambda/function/logging/sim-lambda-output.js +62 -0
  373. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.d.ts +8 -0
  374. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.js +27 -1
  375. package/dist/service/lambda/function/sim-lambda-function.d.ts +1 -1
  376. package/dist/service/lambda/function/sim-lambda-function.js +11 -9
  377. package/dist/service/lambda/function/sim-lambda-function.type.d.ts +15 -0
  378. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.d.ts +16 -0
  379. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.d.ts +22 -0
  380. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.js +17 -0
  381. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.js +1 -0
  382. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.d.ts +2 -0
  383. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.js +2 -1
  384. package/dist/service/lambda/function/url/sim-lambda-function-url-store.d.ts +2 -0
  385. package/dist/service/lambda/function/url/sim-lambda-function-url.d.ts +16 -0
  386. package/dist/service/lambda/function/url/sim-lambda-function-url.js +16 -1
  387. package/dist/service/lambda/index.d.ts +1 -0
  388. package/dist/service/lambda/index.js +1 -0
  389. package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.d.ts +50 -0
  390. package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.js +96 -0
  391. package/dist/service/lambda/serve/sim-lambda-controller.d.ts +14 -0
  392. package/dist/service/lambda/serve/sim-lambda-controller.js +27 -0
  393. package/dist/service/lambda/sim-lambda-commands.d.ts +10 -0
  394. package/dist/service/lambda/sim-lambda-commands.js +11 -0
  395. package/dist/service/lambda/sim-lambda.d.ts +12 -0
  396. package/dist/service/lambda/sim-lambda.js +13 -0
  397. package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.d.ts +67 -0
  398. package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.js +69 -0
  399. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.d.ts +4 -31
  400. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.js +7 -6
  401. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.d.ts +5 -0
  402. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.js +8 -4
  403. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.d.ts +1 -14
  404. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.js +16 -8
  405. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.d.ts +41 -0
  406. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.js +1 -0
  407. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.d.ts +14 -0
  408. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.js +32 -2
  409. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.d.ts +33 -0
  410. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.js +48 -0
  411. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.d.ts +16 -0
  412. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.js +44 -0
  413. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.d.ts +8 -0
  414. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.js +27 -0
  415. package/dist/service/s3/bucket/notification/sim-s3-notification-event.d.ts +1 -1
  416. package/dist/service/s3/bucket/notification/sim-s3-notification-event.js +5 -0
  417. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-events.js +0 -3
  418. package/dist/service/s3/bucket/sim-s3-bucket-access.d.ts +3 -0
  419. package/dist/service/s3/bucket/sim-s3-bucket-access.js +6 -2
  420. package/dist/service/s3/bucket/sim-s3-bucket-configuration.d.ts +84 -0
  421. package/dist/service/s3/bucket/sim-s3-bucket-configuration.js +115 -0
  422. package/dist/service/s3/bucket/sim-s3-bucket-objects.d.ts +10 -0
  423. package/dist/service/s3/bucket/sim-s3-bucket-objects.js +18 -0
  424. package/dist/service/s3/bucket/sim-s3-bucket-properties.d.ts +41 -0
  425. package/dist/service/s3/bucket/sim-s3-bucket-properties.js +1 -0
  426. package/dist/service/s3/bucket/sim-s3-bucket.d.ts +11 -83
  427. package/dist/service/s3/bucket/sim-s3-bucket.js +14 -83
  428. package/dist/service/s3/bucket/sim-s3-public-read.fixture.d.ts +6 -0
  429. package/dist/service/s3/bucket/sim-s3-public-read.fixture.js +20 -6
  430. package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.d.ts +58 -0
  431. package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.js +73 -0
  432. package/dist/service/s3/bucket/versioning/sim-s3-object-version.d.ts +19 -1
  433. package/dist/service/s3/bucket/versioning/sim-s3-object-version.js +20 -0
  434. package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.d.ts +21 -0
  435. package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.js +44 -0
  436. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.js +6 -0
  437. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.d.ts +5 -4
  438. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.js +12 -5
  439. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.d.ts +21 -0
  440. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.js +30 -0
  441. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js +1 -0
  442. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.d.ts +14 -1
  443. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.js +41 -16
  444. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.d.ts +3 -5
  445. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.js +7 -10
  446. package/dist/service/s3/command/authorize/sim-s3-authorize-action.d.ts +6 -1
  447. package/dist/service/s3/command/authorize/sim-s3-authorize-action.js +5 -0
  448. package/dist/service/s3/command/copy-object/copy-object-builder.d.ts +10 -1
  449. package/dist/service/s3/command/copy-object/copy-object-builder.js +17 -1
  450. package/dist/service/s3/command/copy-object/copy-object.command.d.ts +11 -1
  451. package/dist/service/s3/command/copy-object/copy-object.handler.js +2 -1
  452. package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.command.d.ts +5 -1
  453. package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.handler.js +7 -0
  454. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.d.ts +19 -0
  455. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.js +1 -0
  456. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.d.ts +30 -0
  457. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.js +38 -0
  458. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.d.ts +23 -0
  459. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.js +1 -0
  460. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.d.ts +22 -0
  461. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.js +42 -0
  462. package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.d.ts +29 -0
  463. package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.js +49 -0
  464. package/dist/service/s3/command/encryption/sim-s3-encryption-commands.d.ts +22 -0
  465. package/dist/service/s3/command/encryption/sim-s3-encryption-commands.js +30 -0
  466. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.d.ts +24 -0
  467. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.js +1 -0
  468. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.d.ts +31 -0
  469. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.js +39 -0
  470. package/dist/service/s3/command/get-object/get-object-authorizer.d.ts +11 -8
  471. package/dist/service/s3/command/get-object/get-object-authorizer.js +26 -34
  472. package/dist/service/s3/command/get-object/get-object-loader.d.ts +7 -3
  473. package/dist/service/s3/command/get-object/get-object-loader.js +9 -4
  474. package/dist/service/s3/command/get-object/get-object.command.d.ts +2 -1
  475. package/dist/service/s3/command/get-object/get-object.handler.d.ts +4 -0
  476. package/dist/service/s3/command/get-object/get-object.handler.js +13 -7
  477. package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.d.ts +29 -0
  478. package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.js +1 -0
  479. package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.d.ts +21 -0
  480. package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.js +33 -0
  481. package/dist/service/s3/command/head-object/head-object-loader.js +2 -0
  482. package/dist/service/s3/command/head-object/head-object.command.d.ts +2 -1
  483. package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-rules-validation.js +18 -0
  484. package/dist/service/s3/command/list-multipart-uploads/list-multipart-uploads.handler.js +1 -2
  485. package/dist/service/s3/command/list-object-versions/list-object-versions-summaries.js +1 -2
  486. package/dist/service/s3/command/list-objects/list-objects-page-builder.d.ts +5 -0
  487. package/dist/service/s3/command/list-objects/list-objects-page-builder.js +11 -6
  488. package/dist/service/s3/command/list-objects/list-objects.command.d.ts +5 -1
  489. package/dist/service/s3/command/list-objects/list-objects.handler.js +5 -0
  490. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.d.ts +6 -0
  491. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.js +11 -5
  492. package/dist/service/s3/command/list-objects-v2/list-objects-v2.command.d.ts +5 -1
  493. package/dist/service/s3/command/list-objects-v2/list-objects-v2.handler.js +5 -0
  494. package/dist/service/s3/command/list-parts/list-parts.handler.js +3 -3
  495. package/dist/service/s3/command/multipart/sim-s3-multipart-access.js +1 -1
  496. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.d.ts +21 -0
  497. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.js +1 -0
  498. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.d.ts +31 -0
  499. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.js +41 -0
  500. package/dist/service/s3/command/put-object/put-object-builder.d.ts +5 -1
  501. package/dist/service/s3/command/put-object/put-object-builder.js +10 -1
  502. package/dist/service/s3/command/put-object/put-object.command.d.ts +5 -1
  503. package/dist/service/s3/command/put-object/put-object.handler.js +2 -1
  504. package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.d.ts +37 -0
  505. package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.js +1 -0
  506. package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.d.ts +22 -0
  507. package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.js +46 -0
  508. package/dist/service/s3/command/sim-s3-command.types.d.ts +6 -0
  509. package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.d.ts +61 -0
  510. package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.js +49 -0
  511. package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.d.ts +30 -0
  512. package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.js +27 -0
  513. package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.d.ts +26 -0
  514. package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.js +34 -0
  515. package/dist/service/s3/error/sim-s3-upload.error.d.ts +41 -0
  516. package/dist/service/s3/error/sim-s3-upload.error.js +47 -0
  517. package/dist/service/s3/error/sim-s3.error.d.ts +22 -34
  518. package/dist/service/s3/error/sim-s3.error.js +26 -40
  519. package/dist/service/s3/mount/sim-s3-mount.type.d.ts +10 -0
  520. package/dist/service/s3/notification/event/sim-s3-event-records.d.ts +3 -2
  521. package/dist/service/s3/notification/event/sim-s3-event-records.js +5 -3
  522. package/dist/service/s3/notification/event/sim-s3-object-event-builder.d.ts +33 -8
  523. package/dist/service/s3/notification/event/sim-s3-object-event-builder.js +23 -9
  524. package/dist/service/s3/notification/sim-s3-object-notifier.d.ts +5 -1
  525. package/dist/service/s3/notification/sim-s3-object-notifier.js +6 -0
  526. package/dist/service/s3/object/s3-key-encoding.d.ts +12 -0
  527. package/dist/service/s3/object/s3-key-encoding.js +14 -0
  528. package/dist/service/s3/object/s3-listing-encoding.d.ts +42 -0
  529. package/dist/service/s3/object/s3-listing-encoding.js +75 -0
  530. package/dist/service/s3/object/s3-object-response-headers.d.ts +40 -0
  531. package/dist/service/s3/object/s3-object-response-headers.js +49 -2
  532. package/dist/service/s3/object/s3-object-storage-report.d.ts +19 -0
  533. package/dist/service/s3/object/s3-object-storage-report.js +18 -0
  534. package/dist/service/s3/object/s3-object-summary.d.ts +2 -10
  535. package/dist/service/s3/object/s3-object-summary.js +1 -10
  536. package/dist/service/s3/object/s3-object-tags.d.ts +61 -0
  537. package/dist/service/s3/object/s3-object-tags.js +77 -0
  538. package/dist/service/s3/object/s3-object.d.ts +49 -0
  539. package/dist/service/s3/object/s3-object.js +52 -1
  540. package/dist/service/s3/object/s3-server-side-encryption.d.ts +30 -0
  541. package/dist/service/s3/object/s3-server-side-encryption.js +42 -0
  542. package/dist/service/s3/object/s3-storage-class.d.ts +45 -0
  543. package/dist/service/s3/object/s3-storage-class.js +67 -0
  544. package/dist/service/s3/object/s3-write-metadata.d.ts +17 -3
  545. package/dist/service/s3/object/s3-write-metadata.js +43 -0
  546. package/dist/service/s3/object/s3-write-storage.d.ts +27 -0
  547. package/dist/service/s3/object/s3-write-storage.js +21 -0
  548. package/dist/service/s3/object/s3-write-tagging.d.ts +24 -0
  549. package/dist/service/s3/object/s3-write-tagging.js +19 -0
  550. package/dist/service/s3/sdk/sim-s3-sdk-bucket-routes.js +12 -0
  551. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +2 -0
  552. package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.d.ts +9 -0
  553. package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.js +23 -0
  554. package/dist/service/s3/serve/api/sim-s3-api-bucket-routes.js +22 -0
  555. package/dist/service/s3/serve/api/sim-s3-api-configuration-output.d.ts +4 -0
  556. package/dist/service/s3/serve/api/sim-s3-api-configuration-output.js +10 -0
  557. package/dist/service/s3/serve/api/sim-s3-api-encryption-read.d.ts +7 -0
  558. package/dist/service/s3/serve/api/sim-s3-api-encryption-read.js +30 -0
  559. package/dist/service/s3/serve/api/sim-s3-api-head-output.d.ts +4 -2
  560. package/dist/service/s3/serve/api/sim-s3-api-head-output.js +8 -2
  561. package/dist/service/s3/serve/api/sim-s3-api-input.d.ts +0 -6
  562. package/dist/service/s3/serve/api/sim-s3-api-input.js +2 -13
  563. package/dist/service/s3/serve/api/sim-s3-api-listing.d.ts +5 -0
  564. package/dist/service/s3/serve/api/sim-s3-api-listing.js +5 -0
  565. package/dist/service/s3/serve/api/sim-s3-api-object-input.d.ts +16 -0
  566. package/dist/service/s3/serve/api/sim-s3-api-object-input.js +34 -7
  567. package/dist/service/s3/serve/api/sim-s3-api-object-output.d.ts +18 -1
  568. package/dist/service/s3/serve/api/sim-s3-api-object-output.js +21 -2
  569. package/dist/service/s3/serve/api/sim-s3-api-object-routes.js +22 -1
  570. package/dist/service/s3/serve/api/sim-s3-api-output.d.ts +5 -1
  571. package/dist/service/s3/serve/api/sim-s3-api-output.js +16 -5
  572. package/dist/service/s3/serve/api/sim-s3-api-request.d.ts +6 -5
  573. package/dist/service/s3/serve/api/sim-s3-api-request.js +55 -11
  574. package/dist/service/s3/serve/api/sim-s3-api-routes.js +2 -2
  575. package/dist/service/s3/serve/api/sim-s3-api-tagging-read.d.ts +9 -0
  576. package/dist/service/s3/serve/api/sim-s3-api-tagging-read.js +14 -0
  577. package/dist/service/s3/serve/api/sim-s3-api.d.ts +7 -1
  578. package/dist/service/s3/serve/api/sim-s3-api.js +7 -1
  579. package/dist/service/s3/serve/sim-s3-rest-controller.d.ts +1 -5
  580. package/dist/service/s3/serve/sim-s3-rest-controller.js +3 -17
  581. package/dist/service/s3/serve/sim-s3-rest-object-reader.d.ts +3 -0
  582. package/dist/service/s3/serve/sim-s3-rest-object-reader.js +8 -1
  583. package/dist/service/s3/serve/sim-s3-rest-upload.d.ts +20 -0
  584. package/dist/service/s3/serve/sim-s3-rest-upload.js +30 -0
  585. package/dist/service/s3/serve/website/sim-s3-website-object-loader.js +1 -0
  586. package/dist/service/s3/serve/website/sim-s3-website-object.d.ts +2 -0
  587. package/dist/service/s3/serve/website/sim-s3-website-object.js +3 -0
  588. package/dist/service/s3/sim-s3-commands.d.ts +4 -0
  589. package/dist/service/s3/sim-s3-commands.js +6 -0
  590. package/dist/service/s3/sim-s3-operations.d.ts +11 -4
  591. package/dist/service/s3/sim-s3-operations.js +17 -4
  592. package/dist/service/s3/sim-s3-tagging-operations.d.ts +21 -0
  593. package/dist/service/s3/sim-s3-tagging-operations.js +25 -0
  594. package/dist/service/s3/sim-s3.d.ts +12 -0
  595. package/dist/service/s3/sim-s3.js +13 -0
  596. package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.d.ts +34 -0
  597. package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.js +34 -0
  598. package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.d.ts +9 -0
  599. package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.js +24 -0
  600. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.d.ts +5 -4
  601. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.js +5 -3
  602. package/dist/service/s3/upload/sim-s3-completed-upload.js +5 -1
  603. package/dist/service/s3/upload/sim-s3-multipart-upload.d.ts +18 -0
  604. package/dist/service/s3/upload/sim-s3-multipart-upload.js +8 -0
  605. package/dist/service/s3/upload/sim-s3-multipart-uploads.d.ts +6 -0
  606. package/dist/service/s3/upload/sim-s3-multipart-uploads.js +5 -0
  607. package/dist/util/background/background-clock-waits.d.ts +52 -0
  608. package/dist/util/background/background-clock-waits.js +76 -0
  609. package/dist/util/background/background-jitter.js +1 -0
  610. package/dist/util/background/background-pending-tasks.d.ts +55 -0
  611. package/dist/util/background/background-pending-tasks.js +117 -0
  612. package/dist/util/background/background-settled-tasks.d.ts +4 -1
  613. package/dist/util/background/background-settled-tasks.js +4 -1
  614. package/dist/util/background/background.d.ts +43 -0
  615. package/dist/util/background/background.js +27 -19
  616. package/dist/util/background/non-deterministic-background.d.ts +12 -0
  617. package/dist/util/background/non-deterministic-background.js +24 -20
  618. package/dist/util/clock/sim-clock-control.js +23 -2
  619. package/docs/services/apigateway/README.md +3 -1
  620. package/docs/services/athena/README.md +126 -3
  621. package/docs/services/cloudformation/README.md +775 -65
  622. package/docs/services/cognito/README.md +5 -0
  623. package/docs/services/dynamodb/README.md +86 -11
  624. package/docs/services/lambda/README.md +603 -39
  625. package/docs/services/s3/README.md +688 -57
  626. package/package.json +7 -1
@@ -7,6 +7,11 @@ import type { SimCreateStackCommand, SimCreateStackCommandOutput } from "./comma
7
7
  import type { SimDescribeStacksCommand, SimDescribeStacksCommandOutput } from "./command/describe-stacks/describe-stacks.command.js";
8
8
  import type { SimDeleteStackCommand, SimDeleteStackCommandOutput } from "./command/delete-stack/delete-stack.command.js";
9
9
  import type { SimUpdateStackCommand, SimUpdateStackCommandOutput } from "./command/update-stack/update-stack.command.js";
10
+ import type { SimCreateChangeSetCommand, SimCreateChangeSetCommandOutput } from "./command/create-change-set/create-change-set.command.js";
11
+ import type { SimDescribeChangeSetCommand, SimDescribeChangeSetCommandOutput } from "./command/describe-change-set/describe-change-set.command.js";
12
+ import type { SimExecuteChangeSetCommand, SimExecuteChangeSetCommandOutput } from "./command/execute-change-set/execute-change-set.command.js";
13
+ import type { SimDeleteChangeSetCommand, SimDeleteChangeSetCommandOutput } from "./command/delete-change-set/delete-change-set.command.js";
14
+ import type { SimListChangeSetsCommand, SimListChangeSetsCommandOutput } from "./command/list-change-sets/list-change-sets.command.js";
10
15
  import { type SimCloudFormationCreateStackProperties as SimCloudFormationCreateStackProperties } from "./deploy/sim-cfn-template-deployer.js";
11
16
  import type { SimCloudFormationDeployTemplateFileProperties as SimCloudFormationDeployTemplateFileProperties } from "./deploy/sim-cfn-template-file-loader.js";
12
17
  import type { SimCloudFormationDeployCdkOutProperties } from "./deploy/sim-cfn-cdk-out-deployer.js";
@@ -33,10 +38,12 @@ export declare class SimCloudFormation {
33
38
  private readonly simAws;
34
39
  private readonly background;
35
40
  private readonly stacks;
41
+ private readonly deletedStacks;
36
42
  private readonly exports;
37
43
  private readonly templateDeployer;
38
44
  private readonly sdkRouter;
39
45
  private readonly authorization;
46
+ private readonly changeSetCommands;
40
47
  constructor(properties: SimCloudFormationProperties);
41
48
  /** Get a deployed simulated CloudFormation Stack by name. */
42
49
  getStackByName(stackName: SimCloudFormationStackName | string): SimCfnDeployedStack | undefined;
@@ -56,6 +63,30 @@ export declare class SimCloudFormation {
56
63
  * Handle a Delete Stack Command from the SDK.
57
64
  */
58
65
  deleteStack(command: SimDeleteStackCommand, options?: SimCloudFormationRequestOptions): Promise<SimDeleteStackCommandOutput>;
66
+ /**
67
+ * Handle a Create Change Set Command from the SDK.
68
+ *
69
+ * The change set commands authorize themselves, unlike the Stack commands
70
+ * above. Three of them can name a change set by its ARN alone, and only the
71
+ * change set registry knows which Stack such a request operates on.
72
+ */
73
+ createChangeSet(command: SimCreateChangeSetCommand, options?: SimCloudFormationRequestOptions): Promise<SimCreateChangeSetCommandOutput>;
74
+ /**
75
+ * Handle a Describe Change Set Command from the SDK.
76
+ */
77
+ describeChangeSet(command: SimDescribeChangeSetCommand, options?: SimCloudFormationRequestOptions): Promise<SimDescribeChangeSetCommandOutput>;
78
+ /**
79
+ * Handle an Execute Change Set Command from the SDK.
80
+ */
81
+ executeChangeSet(command: SimExecuteChangeSetCommand, options?: SimCloudFormationRequestOptions): Promise<SimExecuteChangeSetCommandOutput>;
82
+ /**
83
+ * Handle a Delete Change Set Command from the SDK.
84
+ */
85
+ deleteChangeSet(command: SimDeleteChangeSetCommand, options?: SimCloudFormationRequestOptions): Promise<SimDeleteChangeSetCommandOutput>;
86
+ /**
87
+ * Handle a List Change Sets Command from the SDK.
88
+ */
89
+ listChangeSets(command: SimListChangeSetsCommand, options?: SimCloudFormationRequestOptions): Promise<SimListChangeSetsCommandOutput>;
59
90
  /**
60
91
  * Wait for a simulated CloudFormation Stack deploy operation to complete.
61
92
  */
@@ -3,9 +3,11 @@ import { CreateStackCommandHandler } from "./command/create-stack/create-stack.h
3
3
  import { DescribeStacksCommandHandler } from "./command/describe-stacks/describe-stacks.handler.js";
4
4
  import { DeleteStackCommandHandler } from "./command/delete-stack/delete-stack.handler.js";
5
5
  import { UpdateStackCommandHandler } from "./command/update-stack/update-stack.handler.js";
6
+ import { SimCfnChangeSetCommands } from "./changeset/sim-cfn-change-set-commands.js";
6
7
  import { SimCloudFormationTemplateDeployer, } from "./deploy/sim-cfn-template-deployer.js";
7
8
  import { simAwsAccountRegionScopeFactory } from "../aws/sim-aws-account-region-scope.factory.js";
8
9
  import { SimCfnExports } from "./export/sim-cfn-exports.js";
10
+ import { SimCfnDeletedStacks } from "./stack/sim-cfn-deleted-stacks.js";
9
11
  import { SimCloudFormationSdkCommandRouter } from "./sdk/sim-cloudformation-sdk-command-router.js";
10
12
  import { SimCloudFormationAuthorization } from "./authorize/sim-cloudformation-authorization.js";
11
13
  import { simIamInRegion } from "../iam/authorize/sim-iam-region-auth-z.js";
@@ -17,10 +19,12 @@ export class SimCloudFormation {
17
19
  simAws;
18
20
  background;
19
21
  stacks = new Map();
22
+ deletedStacks = new SimCfnDeletedStacks();
20
23
  exports = new SimCfnExports();
21
24
  templateDeployer;
22
25
  sdkRouter = new SimCloudFormationSdkCommandRouter(this);
23
26
  authorization;
27
+ changeSetCommands;
24
28
  constructor(properties) {
25
29
  const { simAws, accountRegionScope = simAwsAccountRegionScopeFactory.make(), background, } = properties;
26
30
  const iam = simIamInRegion(properties.iam, accountRegionScope.regionName);
@@ -31,6 +35,14 @@ export class SimCloudFormation {
31
35
  iam,
32
36
  accountRegionScope: this.accountRegionScope,
33
37
  });
38
+ this.changeSetCommands = new SimCfnChangeSetCommands({
39
+ simAws: this.simAws,
40
+ accountRegionScope: this.accountRegionScope,
41
+ stacks: this.stacks,
42
+ background: this.background,
43
+ authorization: this.authorization,
44
+ exports: this.exports,
45
+ });
34
46
  this.templateDeployer = new SimCloudFormationTemplateDeployer({
35
47
  simAws: this.simAws,
36
48
  accountRegionScope: this.accountRegionScope,
@@ -61,36 +73,71 @@ export class SimCloudFormation {
61
73
  */
62
74
  async describeStacks(command, options) {
63
75
  this.authorization.describeStacks(command.input.StackName, options?.caller);
64
- const handler = new DescribeStacksCommandHandler({
76
+ return await new DescribeStacksCommandHandler({
65
77
  stacks: this.stacks,
78
+ deleted: this.deletedStacks,
66
79
  background: this.background,
67
- });
68
- return await handler.handle(command);
80
+ }).handle(command);
69
81
  }
70
82
  /**
71
83
  * Handle an Update Stack Command from the SDK.
72
84
  */
73
85
  async updateStack(command, options) {
74
86
  this.authorization.updateStack(command.input.StackName, options?.caller);
75
- const handler = new UpdateStackCommandHandler({
87
+ return await new UpdateStackCommandHandler({
76
88
  simAws: this.simAws,
77
89
  accountRegionScope: this.accountRegionScope,
78
90
  stacks: this.stacks,
79
91
  background: this.background,
80
92
  exports: this.exports,
81
- });
82
- return await handler.handle(command);
93
+ }).handle(command);
83
94
  }
84
95
  /**
85
96
  * Handle a Delete Stack Command from the SDK.
86
97
  */
87
98
  async deleteStack(command, options) {
88
99
  this.authorization.deleteStack(command.input.StackName, options?.caller);
89
- const handler = new DeleteStackCommandHandler({
100
+ return await new DeleteStackCommandHandler({
90
101
  stacks: this.stacks,
102
+ deleted: this.deletedStacks,
91
103
  background: this.background,
92
- });
93
- return await handler.handle(command);
104
+ }).handle(command);
105
+ }
106
+ /**
107
+ * Handle a Create Change Set Command from the SDK.
108
+ *
109
+ * The change set commands authorize themselves, unlike the Stack commands
110
+ * above. Three of them can name a change set by its ARN alone, and only the
111
+ * change set registry knows which Stack such a request operates on.
112
+ */
113
+ async createChangeSet(command, options) {
114
+ this.authorization.createChangeSet(command.input.StackName, options?.caller);
115
+ return await this.changeSetCommands.create(command, options?.caller);
116
+ }
117
+ /**
118
+ * Handle a Describe Change Set Command from the SDK.
119
+ */
120
+ async describeChangeSet(command, options) {
121
+ return await this.changeSetCommands.describe(command, options?.caller);
122
+ }
123
+ /**
124
+ * Handle an Execute Change Set Command from the SDK.
125
+ */
126
+ async executeChangeSet(command, options) {
127
+ return await this.changeSetCommands.execute(command, options?.caller);
128
+ }
129
+ /**
130
+ * Handle a Delete Change Set Command from the SDK.
131
+ */
132
+ async deleteChangeSet(command, options) {
133
+ this.authorization.deleteChangeSet(command.input.StackName, options?.caller);
134
+ return await this.changeSetCommands.delete(command);
135
+ }
136
+ /**
137
+ * Handle a List Change Sets Command from the SDK.
138
+ */
139
+ async listChangeSets(command, options) {
140
+ return await this.changeSetCommands.list(command, options?.caller);
94
141
  }
95
142
  /**
96
143
  * Wait for a simulated CloudFormation Stack deploy operation to complete.
@@ -13,6 +13,7 @@ export function makeSimCfnStackResourceMap(properties) {
13
13
  background,
14
14
  logicalId: resourceTemplate.logicalId,
15
15
  stackName: template.stackName,
16
+ stackId: template.stackId,
16
17
  template: resourceTemplate.template,
17
18
  parameters: template.parameters,
18
19
  resourceLogicalIds,
@@ -0,0 +1,20 @@
1
+ import type { SimCfnStack } from "./sim-cfn-stack.js";
2
+ /**
3
+ * The Stacks that have finished deleting, kept by Stack ID.
4
+ *
5
+ * A deleted Stack gives its name back, so the map of live Stacks can no longer
6
+ * hold it: the next Stack of that name is a different Stack. CloudFormation
7
+ * still answers `DescribeStacks` for it by its Stack ID, for 90 days, and this
8
+ * is where the Stack it answers with is kept.
9
+ *
10
+ * Nothing expires here. A simulation lasts a test rather than three months, so
11
+ * a deleted Stack stays readable for as long as the simulated CloudFormation
12
+ * it was deleted from does.
13
+ */
14
+ export declare class SimCfnDeletedStacks {
15
+ private readonly stacks;
16
+ /** Keep a Stack that has finished deleting, so its ID still describes it. */
17
+ record(stack: SimCfnStack): void;
18
+ /** The deleted Stack with this Stack ID, if one was deleted under it. */
19
+ get(stackId: string): SimCfnStack | undefined;
20
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * The Stacks that have finished deleting, kept by Stack ID.
3
+ *
4
+ * A deleted Stack gives its name back, so the map of live Stacks can no longer
5
+ * hold it: the next Stack of that name is a different Stack. CloudFormation
6
+ * still answers `DescribeStacks` for it by its Stack ID, for 90 days, and this
7
+ * is where the Stack it answers with is kept.
8
+ *
9
+ * Nothing expires here. A simulation lasts a test rather than three months, so
10
+ * a deleted Stack stays readable for as long as the simulated CloudFormation
11
+ * it was deleted from does.
12
+ */
13
+ export class SimCfnDeletedStacks {
14
+ stacks = new Map();
15
+ /** Keep a Stack that has finished deleting, so its ID still describes it. */
16
+ record(stack) {
17
+ this.stacks.set(stack.stackId, stack);
18
+ }
19
+ /** The deleted Stack with this Stack ID, if one was deleted under it. */
20
+ get(stackId) {
21
+ return this.stacks.get(stackId);
22
+ }
23
+ }
@@ -17,6 +17,12 @@ import type { SimCloudFormationStackStatus } from "./sim-cfn-stack.type.js";
17
17
  export interface SimCfnDeployedStack {
18
18
  /** What the Stack was deployed as. */
19
19
  readonly stackName: string;
20
+ /**
21
+ * The Stack's unique ID, which is the ARN CloudFormation gave it when it was
22
+ * created. A Stack deployed again under the same name gets a new one, and a
23
+ * deleted Stack is described by this rather than by the name it gave back.
24
+ */
25
+ readonly stackId: string;
20
26
  /** What CloudFormation last did to the Stack. */
21
27
  readonly status: SimCloudFormationStackStatus;
22
28
  /** What the operation the status reports failed with, where it failed. */
@@ -0,0 +1,30 @@
1
+ import type { Brand } from "../../../util/brand.type.js";
2
+ import type { SimAwsAccountRegionScope } from "../../aws/sim-aws-account-region-scope.js";
3
+ /**
4
+ * The unique ID CloudFormation gives a Stack when it creates it.
5
+ *
6
+ * An ARN rather than a name, and a new one every time a Stack of that name is
7
+ * created, which is what lets a deleted Stack still be told apart from the one
8
+ * that took its name.
9
+ */
10
+ export type SimCfnStackId = Brand<string, "SimCfnStackId">;
11
+ interface SimCfnStackIdProperties {
12
+ readonly accountRegionScope: SimAwsAccountRegionScope;
13
+ readonly stackName: string;
14
+ }
15
+ /**
16
+ * Make the Stack ID for a Stack being created.
17
+ *
18
+ * The Account and Region are the ones the Stack is being created in, and the
19
+ * UUID on the end is what makes this Stack a different Stack from the last one
20
+ * of the same name.
21
+ */
22
+ export declare function makeSimCfnStackId(properties: SimCfnStackIdProperties): SimCfnStackId;
23
+ /**
24
+ * Whether a value naming a Stack is a Stack ID rather than a Stack name.
25
+ *
26
+ * `DescribeStacks` takes either in `StackName`, so what a caller gave has to be
27
+ * read before it can be looked up.
28
+ */
29
+ export declare function isSimCfnStackId(value: string): boolean;
30
+ export {};
@@ -0,0 +1,24 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { parseSimArn } from "../../aws/arn.js";
3
+ /**
4
+ * Make the Stack ID for a Stack being created.
5
+ *
6
+ * The Account and Region are the ones the Stack is being created in, and the
7
+ * UUID on the end is what makes this Stack a different Stack from the last one
8
+ * of the same name.
9
+ */
10
+ export function makeSimCfnStackId(properties) {
11
+ const { accountRegionScope, stackName } = properties;
12
+ const { accountId, regionName } = accountRegionScope;
13
+ return `arn:aws:cloudformation:${regionName}:${accountId}:stack/${stackName}/${randomUUID()}`;
14
+ }
15
+ /**
16
+ * Whether a value naming a Stack is a Stack ID rather than a Stack name.
17
+ *
18
+ * `DescribeStacks` takes either in `StackName`, so what a caller gave has to be
19
+ * read before it can be looked up.
20
+ */
21
+ export function isSimCfnStackId(value) {
22
+ const arn = parseSimArn(value);
23
+ return arn?.service === "cloudformation" && arn.resourceType === "stack";
24
+ }
@@ -5,6 +5,7 @@ import type { SimAwsAccountRegionScope } from "../../aws/sim-aws-account-region-
5
5
  import type { SimCfnBinding } from "../bind/sim-cfn-binding.js";
6
6
  import type { SimCdkOutContext } from "../cdk/sim-cdk-out-context.js";
7
7
  import type { SimCfnResource } from "../resource/sim-cfn-resource.js";
8
+ import { SimCfnResourceRetention } from "../resource/delete/sim-cfn-resource-retention.js";
8
9
  import type { SimCfnTemplate } from "../template/sim-cfn-template.js";
9
10
  import type { SimCfnResourceOrder } from "./deploy/sim-cfn-resource-order.js";
10
11
  import { SimCfnStackUpdater } from "./update/sim-cfn-stack-updater.js";
@@ -53,6 +54,15 @@ export declare class SimCfnStackResourceOperations {
53
54
  private readonly resourceOrder;
54
55
  private cdkOutContext;
55
56
  private caller;
57
+ /**
58
+ * Resources an update kept in simulated AWS.
59
+ *
60
+ * They are held here because the Stack cannot hold them. A replaced Resource
61
+ * gives its logical ID up to the Resource created in its place as soon as the
62
+ * update applies. A teardown's retained Resources are still on the Stack, and
63
+ * are read off it.
64
+ */
65
+ private readonly retainedByUpdates;
56
66
  constructor(properties: SimCfnStackResourceOperationsProperties);
57
67
  /**
58
68
  * Take on what an update brings with it, for this and every later operation.
@@ -79,15 +89,28 @@ export declare class SimCfnStackResourceOperations {
79
89
  * Create the given Resources, in dependency order among the whole Stack.
80
90
  */
81
91
  create(resources: ReadonlyMap<string, SimCfnResource>, creating: readonly SimCfnResource[]): Promise<void>;
92
+ /** Resources an update kept in simulated AWS. */
93
+ get retainedResources(): readonly SimCfnResource[];
94
+ /**
95
+ * Refuse a teardown that names a Resource the Stack does not have, before
96
+ * anything is deleted.
97
+ */
98
+ assertRetainable(resources: ReadonlyMap<string, SimCfnResource>, retainResources: readonly string[] | undefined): void;
99
+ /**
100
+ * Delete every Resource in the given Stack Resource map, apart from any the
101
+ * teardown named as ones to keep.
102
+ */
103
+ deleteAll(resources: ReadonlyMap<string, SimCfnResource>, retainResources?: readonly string[]): Promise<void>;
82
104
  /**
83
- * Delete every Resource in the given Stack Resource map.
105
+ * Take a record of the Resources an update kept, which the Stack is about to
106
+ * stop holding.
84
107
  */
85
- deleteAll(resources: ReadonlyMap<string, SimCfnResource>): Promise<void>;
108
+ recordRetained(resources: readonly SimCfnResource[]): void;
86
109
  /**
87
110
  * Delete the given Resources, in reverse dependency order among the whole
88
111
  * Stack.
89
112
  */
90
- delete(resources: ReadonlyMap<string, SimCfnResource>, deleting: readonly SimCfnResource[]): Promise<void>;
113
+ delete(resources: ReadonlyMap<string, SimCfnResource>, deleting: readonly SimCfnResource[], retention?: SimCfnResourceRetention): Promise<void>;
91
114
  /**
92
115
  * Validate every Resource replacement before the update changes the Stack.
93
116
  */
@@ -96,6 +119,26 @@ export declare class SimCfnStackResourceOperations {
96
119
  * An update of this Stack from a changed template, in the same scope.
97
120
  */
98
121
  updater(properties: SimCfnStackUpdateProperties): SimCfnStackUpdater;
122
+ /**
123
+ * Put this Stack's Resources back on the template it was deployed from, over
124
+ * whatever a failed update left behind.
125
+ *
126
+ * The difference is worked out from the Resources the Stack holds now, not
127
+ * from either template. A failure part way through is reconciled from where
128
+ * it stopped. Nothing asserts that there is a change to make. An update that
129
+ * failed before it touched a Resource has nothing to undo, and that is a
130
+ * finished rollback.
131
+ *
132
+ * A Resource the failed update replaced is created again empty. The deployed
133
+ * one was deleted to make room for the replacement, and there is nothing left
134
+ * to put back.
135
+ */
136
+ rollBack(properties: SimCfnStackUpdateProperties): Promise<void>;
137
+ /**
138
+ * What a teardown of these Resources is to leave behind: the ones it named,
139
+ * and the ones their own DeletionPolicy keeps.
140
+ */
141
+ private teardownRetention;
99
142
  private publishAssets;
100
143
  private creator;
101
144
  private deleter;
@@ -1,4 +1,6 @@
1
1
  import { SimCdkAssetsPublisher } from "../cdk/assets/sim-cdk-assets-publisher.js";
2
+ import { SimCfnResourceRetention } from "../resource/delete/sim-cfn-resource-retention.js";
3
+ import { simCfnStackRetainedLogicalIds } from "./teardown/sim-cfn-stack-retained-logical-ids.js";
2
4
  import { SimCfnStackResourceCreator } from "./deploy/sim-cfn-stack-resource-creator.js";
3
5
  import { SimCfnStackResourceDeleter } from "./teardown/sim-cfn-stack-resource-deleter.js";
4
6
  import { SimCfnStackUpdater } from "./update/sim-cfn-stack-updater.js";
@@ -24,6 +26,15 @@ export class SimCfnStackResourceOperations {
24
26
  resourceOrder;
25
27
  cdkOutContext;
26
28
  caller;
29
+ /**
30
+ * Resources an update kept in simulated AWS.
31
+ *
32
+ * They are held here because the Stack cannot hold them. A replaced Resource
33
+ * gives its logical ID up to the Resource created in its place as soon as the
34
+ * update applies. A teardown's retained Resources are still on the Stack, and
35
+ * are read off it.
36
+ */
37
+ retainedByUpdates = [];
27
38
  constructor(properties) {
28
39
  const { simAws, accountRegionScope, stackName, cdkOutContext, bindings, caller, resourceOrder, } = properties;
29
40
  this.simAws = simAws;
@@ -65,18 +76,37 @@ export class SimCfnStackResourceOperations {
65
76
  await this.publishAssets();
66
77
  await this.creator(resources).create(creating);
67
78
  }
79
+ /** Resources an update kept in simulated AWS. */
80
+ get retainedResources() {
81
+ return this.retainedByUpdates;
82
+ }
83
+ /**
84
+ * Refuse a teardown that names a Resource the Stack does not have, before
85
+ * anything is deleted.
86
+ */
87
+ assertRetainable(resources, retainResources) {
88
+ this.teardownRetention(resources, retainResources);
89
+ }
90
+ /**
91
+ * Delete every Resource in the given Stack Resource map, apart from any the
92
+ * teardown named as ones to keep.
93
+ */
94
+ async deleteAll(resources, retainResources) {
95
+ await this.deleter(resources, this.teardownRetention(resources, retainResources)).deleteAll();
96
+ }
68
97
  /**
69
- * Delete every Resource in the given Stack Resource map.
98
+ * Take a record of the Resources an update kept, which the Stack is about to
99
+ * stop holding.
70
100
  */
71
- async deleteAll(resources) {
72
- await this.deleter(resources).deleteAll();
101
+ recordRetained(resources) {
102
+ this.retainedByUpdates.push(...resources);
73
103
  }
74
104
  /**
75
105
  * Delete the given Resources, in reverse dependency order among the whole
76
106
  * Stack.
77
107
  */
78
- async delete(resources, deleting) {
79
- await this.deleter(resources).delete(deleting);
108
+ async delete(resources, deleting, retention) {
109
+ await this.deleter(resources, retention).delete(deleting);
80
110
  }
81
111
  /**
82
112
  * Validate every Resource replacement before the update changes the Stack.
@@ -108,6 +138,36 @@ export class SimCfnStackResourceOperations {
108
138
  updated,
109
139
  });
110
140
  }
141
+ /**
142
+ * Put this Stack's Resources back on the template it was deployed from, over
143
+ * whatever a failed update left behind.
144
+ *
145
+ * The difference is worked out from the Resources the Stack holds now, not
146
+ * from either template. A failure part way through is reconciled from where
147
+ * it stopped. Nothing asserts that there is a change to make. An update that
148
+ * failed before it touched a Resource has nothing to undo, and that is a
149
+ * finished rollback.
150
+ *
151
+ * A Resource the failed update replaced is created again empty. The deployed
152
+ * one was deleted to make room for the replacement, and there is nothing left
153
+ * to put back.
154
+ */
155
+ async rollBack(properties) {
156
+ await this.updater(properties).apply();
157
+ }
158
+ /**
159
+ * What a teardown of these Resources is to leave behind: the ones it named,
160
+ * and the ones their own DeletionPolicy keeps.
161
+ */
162
+ teardownRetention(resources, retainResources) {
163
+ return new SimCfnResourceRetention({
164
+ named: simCfnStackRetainedLogicalIds({
165
+ stackName: this.stackName,
166
+ resources,
167
+ retainResources,
168
+ }),
169
+ });
170
+ }
111
171
  async publishAssets() {
112
172
  await new SimCdkAssetsPublisher({
113
173
  simAws: this.simAws,
@@ -128,12 +188,13 @@ export class SimCfnStackResourceOperations {
128
188
  resourceOrder: this.resourceOrder,
129
189
  });
130
190
  }
131
- deleter(resources) {
191
+ deleter(resources, retention) {
132
192
  return new SimCfnStackResourceDeleter({
133
193
  simAws: this.simAws,
134
194
  resources,
135
195
  stackName: this.stackName,
136
196
  caller: this.caller,
197
+ retention,
137
198
  });
138
199
  }
139
200
  }
@@ -6,6 +6,7 @@ import { SimCfnStackDeploymentLifecycle } from "./deploy/sim-cfn-stack-deploymen
6
6
  import { SimCfnStackUpdateLifecycle } from "./update/sim-cfn-stack-update-lifecycle.js";
7
7
  import type { SimCfnStackOutput } from "./output/sim-cfn-stack-output.js";
8
8
  import type { SimCfnDeployedStack } from "./sim-cfn-deployed-stack.type.js";
9
+ import type { SimCfnStackId } from "./sim-cfn-stack-id.js";
9
10
  import type { SimCloudFormationStackProperties, SimCloudFormationStackStatus, SimCfnStackUpdateProperties, SimCloudFormationStackName } from "./sim-cfn-stack.type.js";
10
11
  /**
11
12
  * Lightweight simulated CloudFormation Stack.
@@ -27,8 +28,8 @@ export declare class SimCfnStack implements SimCfnDeployedStack {
27
28
  readonly updating: SimCfnStackUpdateLifecycle;
28
29
  readonly deletion: SimCfnStackDeletionLifecycle;
29
30
  readonly stackName: SimCloudFormationStackName;
31
+ readonly stackId: SimCfnStackId;
30
32
  readonly resourceMap: Map<string, SimCfnResource>;
31
- template: CfnTemplateBodyRecord;
32
33
  outputs: Map<string, SimCfnStackOutput>;
33
34
  private readonly background;
34
35
  private readonly operations;
@@ -38,15 +39,15 @@ export declare class SimCfnStack implements SimCfnDeployedStack {
38
39
  constructor(properties: SimCloudFormationStackProperties);
39
40
  /** The externally visible Stack status. */
40
41
  get status(): SimCloudFormationStackStatus;
42
+ /** The parsed template this Stack is deployed from. */
43
+ get currentTemplate(): SimCfnTemplate;
44
+ /** The template body this Stack is deployed from. */
45
+ get template(): CfnTemplateBodyRecord;
41
46
  /** The error the operation the status reports failed with, if it failed. */
42
47
  get error(): Error | undefined;
43
- /**
44
- * Start deploying this simulated Stack into simulated AWS.
45
- */
48
+ /** Start deploying this simulated Stack into simulated AWS. */
46
49
  deploy(): Promise<void>;
47
- /**
48
- * Wait for the scheduled deployment task to finish.
49
- */
50
+ /** Wait for the scheduled deployment task to finish. */
50
51
  waitForDeployComplete(): Promise<void>;
51
52
  /**
52
53
  * Apply a changed template to this deployed Stack.
@@ -64,11 +65,13 @@ export declare class SimCfnStack implements SimCfnDeployedStack {
64
65
  * A template that came from a synthesis of its own brings the cloud assembly
65
66
  * it was written into with it, so Resources it replaces read the assets that
66
67
  * synthesis staged rather than the ones the Stack was deployed with.
68
+ *
69
+ * An update that fails is rolled back onto the template the Stack was
70
+ * deployed from, which the Stack goes on holding for as long as the update
71
+ * runs.
67
72
  */
68
73
  update(template: SimCfnTemplate, properties?: SimCfnStackUpdateProperties): Promise<void>;
69
- /**
70
- * Wait for the scheduled Stack update to finish.
71
- */
74
+ /** Wait for the scheduled Stack update to finish. */
72
75
  waitForUpdateComplete(): Promise<void>;
73
76
  /**
74
77
  * Start deleting this Stack from simulated AWS.
@@ -77,11 +80,18 @@ export declare class SimCfnStack implements SimCfnDeployedStack {
77
80
  * before the Resources have gone. The optional onDeleteComplete callback runs
78
81
  * once the teardown has finished successfully, which is when the Stack name
79
82
  * becomes free to use again.
83
+ *
84
+ * Resources named in retainResources are checked against the Stack before
85
+ * the teardown is scheduled. A caller naming one the Stack does not have is
86
+ * refused there, where a check in the background would only fail the
87
+ * deletion.
88
+ *
89
+ * The names are copied as the request is accepted. The teardown runs in the
90
+ * background, and a caller holding the array it passed could otherwise change
91
+ * which Resources are kept after the Stack agreed to keep them.
80
92
  */
81
93
  delete(properties?: SimCfnStackDeleteProperties): Promise<void>;
82
- /**
83
- * Wait for the scheduled Stack deletion to finish.
84
- */
94
+ /** Wait for the scheduled Stack deletion to finish. */
85
95
  waitForDeleteComplete(): Promise<void>;
86
96
  /**
87
97
  * Delete this Stack's Resources from simulated AWS, in reverse dependency
@@ -90,7 +100,7 @@ export declare class SimCfnStack implements SimCfnDeployedStack {
90
100
  * The Resource half of deleting a Stack, without the Stack-level status or
91
101
  * the Stack name release that delete() puts on top of it.
92
102
  */
93
- teardown(): Promise<void>;
103
+ teardown(properties?: SimCfnStackDeleteProperties): Promise<void>;
94
104
  /** Every Stack Resource, in the order the template declared them. */
95
105
  get resources(): readonly SimCfnResource[];
96
106
  /**
@@ -111,12 +121,14 @@ export declare class SimCfnStack implements SimCfnDeployedStack {
111
121
  get inertResources(): readonly SimCfnResource[];
112
122
  /** Resources a teardown recorded rather than deleted. */
113
123
  get skippedResourceDeletions(): readonly SimCfnResource[];
114
- /** Resources a teardown left in simulated AWS, as their policy says to. */
124
+ /**
125
+ * Resources left in simulated AWS, whether a teardown stepped over them or
126
+ * an update replaced them and kept the deployed one.
127
+ */
115
128
  get retainedResources(): readonly SimCfnResource[];
116
129
  /** Every property or Parameter that did not reach simulated AWS as written. */
117
130
  get ignoredProperties(): readonly SimCfnIgnoredProperty[];
118
131
  private get report();
119
- private createResources;
120
132
  private resolveOutputs;
121
133
  }
122
134
  export { type SimCfnStackUpdateProperties, type SimCloudFormationStackName, type SimCloudFormationStackStatus, } from "./sim-cfn-stack.type.js";