@kensio/yulin 1.21.3 → 1.21.5

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 (650) 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/assets/sim-cdk-assets-publisher.d.ts +18 -13
  40. package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.js +16 -24
  41. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.d.ts +2 -0
  42. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.js +1 -0
  43. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.d.ts +7 -0
  44. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.js +13 -1
  45. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.d.ts +6 -0
  46. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.js +7 -1
  47. package/dist/service/cloudformation/cdk/s3/bucket-deployment/notify/sim-cdk-bucket-deploy-notifier.d.ts +50 -0
  48. package/dist/service/cloudformation/cdk/s3/bucket-deployment/notify/sim-cdk-bucket-deploy-notifier.js +71 -0
  49. package/dist/service/cloudformation/cdk/s3/bucket-deployment/sim-cdk-bucket-deployment.js +6 -1
  50. package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.d.ts +5 -0
  51. package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.js +7 -0
  52. package/dist/service/cloudformation/cdk/sim-cdk-cloud-assembly.factory.d.ts +12 -0
  53. package/dist/service/cloudformation/cdk/sim-cdk-cloud-assembly.factory.js +16 -7
  54. package/dist/service/cloudformation/changeset/sim-cfn-change-set-arn.d.ts +9 -0
  55. package/dist/service/cloudformation/changeset/sim-cfn-change-set-arn.js +12 -0
  56. package/dist/service/cloudformation/changeset/sim-cfn-change-set-changes.d.ts +42 -0
  57. package/dist/service/cloudformation/changeset/sim-cfn-change-set-changes.js +69 -0
  58. package/dist/service/cloudformation/changeset/sim-cfn-change-set-commands.d.ts +62 -0
  59. package/dist/service/cloudformation/changeset/sim-cfn-change-set-commands.js +89 -0
  60. package/dist/service/cloudformation/changeset/sim-cfn-change-set-execution.d.ts +31 -0
  61. package/dist/service/cloudformation/changeset/sim-cfn-change-set-execution.js +59 -0
  62. package/dist/service/cloudformation/changeset/sim-cfn-change-set-failure.d.ts +21 -0
  63. package/dist/service/cloudformation/changeset/sim-cfn-change-set-failure.js +19 -0
  64. package/dist/service/cloudformation/changeset/sim-cfn-change-set-input.d.ts +17 -0
  65. package/dist/service/cloudformation/changeset/sim-cfn-change-set-input.js +18 -0
  66. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack-id.d.ts +18 -0
  67. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack-id.js +13 -0
  68. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack.d.ts +45 -0
  69. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack.js +52 -0
  70. package/dist/service/cloudformation/changeset/sim-cfn-change-set-type.d.ts +12 -0
  71. package/dist/service/cloudformation/changeset/sim-cfn-change-set-type.js +21 -0
  72. package/dist/service/cloudformation/changeset/sim-cfn-change-set.d.ts +54 -0
  73. package/dist/service/cloudformation/changeset/sim-cfn-change-set.js +49 -0
  74. package/dist/service/cloudformation/changeset/sim-cfn-change-set.type.d.ts +35 -0
  75. package/dist/service/cloudformation/changeset/sim-cfn-change-set.type.js +1 -0
  76. package/dist/service/cloudformation/changeset/sim-cfn-change-sets.d.ts +53 -0
  77. package/dist/service/cloudformation/changeset/sim-cfn-change-sets.js +83 -0
  78. package/dist/service/cloudformation/command/create-change-set/create-change-set.command.d.ts +32 -0
  79. package/dist/service/cloudformation/command/create-change-set/create-change-set.command.js +1 -0
  80. package/dist/service/cloudformation/command/create-change-set/create-change-set.handler.d.ts +38 -0
  81. package/dist/service/cloudformation/command/create-change-set/create-change-set.handler.js +80 -0
  82. package/dist/service/cloudformation/command/create-stack/create-stack.handler.d.ts +3 -0
  83. package/dist/service/cloudformation/command/create-stack/create-stack.handler.js +16 -13
  84. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.command.d.ts +22 -0
  85. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.command.js +1 -0
  86. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.handler.d.ts +27 -0
  87. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.handler.js +35 -0
  88. package/dist/service/cloudformation/command/delete-stack/delete-stack.command.d.ts +6 -0
  89. package/dist/service/cloudformation/command/delete-stack/delete-stack.handler.d.ts +11 -0
  90. package/dist/service/cloudformation/command/delete-stack/delete-stack.handler.js +15 -1
  91. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.command.d.ts +48 -0
  92. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.command.js +1 -0
  93. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.handler.d.ts +23 -0
  94. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.handler.js +52 -0
  95. package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.d.ts +3 -0
  96. package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.js +8 -4
  97. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-described-stacks.d.ts +18 -6
  98. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-described-stacks.js +22 -7
  99. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-stack-describer.js +1 -1
  100. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.command.d.ts +25 -0
  101. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.command.js +1 -0
  102. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.handler.d.ts +31 -0
  103. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.handler.js +37 -0
  104. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.command.d.ts +36 -0
  105. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.command.js +1 -0
  106. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.handler.d.ts +26 -0
  107. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.handler.js +39 -0
  108. package/dist/service/cloudformation/command/update-stack/update-stack-previous-values.d.ts +31 -0
  109. package/dist/service/cloudformation/command/update-stack/update-stack-previous-values.js +52 -0
  110. package/dist/service/cloudformation/command/update-stack/update-stack-template.d.ts +22 -0
  111. package/dist/service/cloudformation/command/update-stack/update-stack-template.js +34 -0
  112. package/dist/service/cloudformation/command/update-stack/update-stack.command.d.ts +17 -1
  113. package/dist/service/cloudformation/command/update-stack/update-stack.handler.d.ts +6 -0
  114. package/dist/service/cloudformation/command/update-stack/update-stack.handler.js +15 -16
  115. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js +2 -1
  116. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-options-deployed.d.ts +10 -0
  117. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-options-deployed.js +14 -0
  118. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.d.ts +11 -1
  119. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.js +3 -2
  120. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts +5 -8
  121. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.js +0 -14
  122. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts +9 -0
  123. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js +2 -0
  124. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.d.ts +10 -0
  125. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.js +2 -1
  126. package/dist/service/cloudformation/deploy/sim-cfn-template-file-updater.js +1 -0
  127. package/dist/service/cloudformation/error/sim-cloudformation.error.d.ts +21 -0
  128. package/dist/service/cloudformation/error/sim-cloudformation.error.js +25 -0
  129. package/dist/service/cloudformation/parameters/pseudo/sim-cfn-pseudo-parameters.d.ts +7 -0
  130. package/dist/service/cloudformation/parameters/pseudo/sim-cfn-pseudo-parameters.js +3 -1
  131. package/dist/service/cloudformation/parameters/sim-cfn-parameters.d.ts +9 -0
  132. package/dist/service/cloudformation/parameters/sim-cfn-parameters.js +12 -0
  133. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-delete-operation.d.ts +4 -0
  134. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-delete-operation.js +10 -0
  135. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-retention.d.ts +44 -0
  136. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-retention.js +33 -0
  137. package/dist/service/cloudformation/resource/sim-cfn-resource-record.d.ts +15 -0
  138. package/dist/service/cloudformation/resource/sim-cfn-resource-record.js +21 -1
  139. package/dist/service/cloudformation/resource/sim-cfn-resource.d.ts +9 -7
  140. package/dist/service/cloudformation/resource/sim-cfn-resource.js +11 -11
  141. package/dist/service/cloudformation/resource/sim-cfn-resource.type.d.ts +8 -0
  142. package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.d.ts +3 -3
  143. package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.js +3 -3
  144. package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.d.ts +4 -0
  145. package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.js +9 -0
  146. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.d.ts +37 -0
  147. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.js +77 -0
  148. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.d.ts +51 -0
  149. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.js +10 -0
  150. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.d.ts +11 -0
  151. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.js +34 -0
  152. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.d.ts +21 -0
  153. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.js +31 -0
  154. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.d.ts +14 -0
  155. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.js +1 -0
  156. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.d.ts +26 -0
  157. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.js +58 -0
  158. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.d.ts +18 -0
  159. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.js +89 -0
  160. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.d.ts +15 -0
  161. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.js +65 -0
  162. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.d.ts +13 -0
  163. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.js +60 -0
  164. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.d.ts +13 -0
  165. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.js +50 -0
  166. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.d.ts +13 -0
  167. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.js +30 -0
  168. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.d.ts +26 -0
  169. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.js +44 -0
  170. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.d.ts +15 -0
  171. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.js +59 -0
  172. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.d.ts +11 -0
  173. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.js +43 -0
  174. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.d.ts +15 -0
  175. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.js +67 -0
  176. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.d.ts +26 -0
  177. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.js +61 -0
  178. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.d.ts +18 -0
  179. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.js +59 -0
  180. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api-template.factory.js +1 -1
  181. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.d.ts +4 -0
  182. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.js +12 -5
  183. package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api-template.factory.js +1 -1
  184. package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api.js +7 -3
  185. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-api-event.js +7 -3
  186. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.d.ts +26 -0
  187. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.js +88 -0
  188. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.d.ts +12 -0
  189. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.js +1 -0
  190. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-function-events.js +8 -5
  191. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-event.js +23 -1
  192. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.d.ts +9 -2
  193. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.js +5 -3
  194. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.d.ts +6 -1
  195. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.js +7 -1
  196. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.d.ts +19 -0
  197. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.js +69 -0
  198. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.d.ts +5 -0
  199. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.js +3 -1
  200. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.d.ts +8 -0
  201. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.js +8 -0
  202. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-url.js +1 -4
  203. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.d.ts +6 -4
  204. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.js +2 -4
  205. package/dist/service/cloudformation/sam/sim-cfn-sam-error.d.ts +31 -0
  206. package/dist/service/cloudformation/sam/sim-cfn-sam-error.js +17 -0
  207. package/dist/service/cloudformation/sam/sim-cfn-sam-expansion.js +11 -6
  208. package/dist/service/cloudformation/sdk/sim-cloudformation-sdk-command-router.js +20 -0
  209. package/dist/service/cloudformation/serve/sim-cloudformation-api.d.ts +4 -3
  210. package/dist/service/cloudformation/serve/sim-cloudformation-api.js +6 -3
  211. package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.d.ts +10 -0
  212. package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.js +94 -0
  213. package/dist/service/cloudformation/sim-cloudformation.d.ts +31 -0
  214. package/dist/service/cloudformation/sim-cloudformation.js +56 -9
  215. package/dist/service/cloudformation/stack/resource-map/sim-cfn-stack-resource-map.js +1 -0
  216. package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.d.ts +20 -0
  217. package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.js +23 -0
  218. package/dist/service/cloudformation/stack/sim-cfn-deployed-stack.type.d.ts +6 -0
  219. package/dist/service/cloudformation/stack/sim-cfn-stack-deploy-context.d.ts +47 -0
  220. package/dist/service/cloudformation/stack/sim-cfn-stack-deploy-context.js +46 -0
  221. package/dist/service/cloudformation/stack/sim-cfn-stack-id.d.ts +30 -0
  222. package/dist/service/cloudformation/stack/sim-cfn-stack-id.js +24 -0
  223. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +53 -20
  224. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +79 -32
  225. package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts +28 -16
  226. package/dist/service/cloudformation/stack/sim-cfn-stack.js +60 -32
  227. package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +21 -1
  228. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.d.ts +7 -1
  229. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.js +3 -1
  230. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.d.ts +3 -0
  231. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.js +3 -0
  232. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.d.ts +3 -0
  233. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.js +2 -1
  234. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.d.ts +18 -0
  235. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.js +30 -0
  236. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.d.ts +9 -0
  237. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.js +14 -0
  238. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.d.ts +25 -14
  239. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.js +41 -24
  240. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.d.ts +9 -0
  241. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.js +14 -0
  242. package/dist/service/cloudformation/stack/update/sim-cfn-stack-updater.js +6 -1
  243. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.d.ts +12 -3
  244. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.js +29 -3
  245. package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.d.ts +28 -0
  246. package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.js +39 -0
  247. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.d.ts +25 -1
  248. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.js +43 -11
  249. package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.d.ts +7 -0
  250. package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.js +29 -3
  251. package/dist/service/cloudformation/template/sim-cfn-command-template.d.ts +40 -0
  252. package/dist/service/cloudformation/template/sim-cfn-command-template.js +45 -0
  253. package/dist/service/cloudformation/template/sim-cfn-template.d.ts +7 -0
  254. package/dist/service/cloudformation/template/sim-cfn-template.js +15 -1
  255. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts +2 -0
  256. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js +49 -0
  257. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js +1 -0
  258. package/dist/service/cloudfront/origin/s3/sim-cf-s3-origin-responses.js +1 -0
  259. package/dist/service/cognito/serve/page/sim-cognito-provider-page.js +1 -1
  260. package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.d.ts +5 -0
  261. package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.js +17 -0
  262. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.d.ts +5 -5
  263. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.js +24 -8
  264. package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.d.ts +11 -8
  265. package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.js +20 -8
  266. package/dist/service/dynamodb/command/query/sim-dynamodb-query.js +2 -0
  267. package/dist/service/dynamodb/command/query/sim-dynamodb-unsimulated-query-input.js +0 -1
  268. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.d.ts +14 -4
  269. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.js +16 -4
  270. package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.d.ts +17 -0
  271. package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.js +39 -0
  272. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.d.ts +28 -0
  273. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.js +50 -0
  274. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan.js +12 -5
  275. package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.d.ts +3 -3
  276. package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.js +3 -4
  277. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.d.ts +5 -16
  278. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.js +4 -21
  279. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.d.ts +15 -0
  280. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.js +18 -1
  281. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.d.ts +13 -0
  282. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.js +15 -0
  283. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.js +2 -0
  284. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.js +5 -3
  285. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.d.ts +21 -0
  286. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.js +37 -0
  287. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.js +6 -0
  288. package/dist/service/lambda/command/create-function/create-function.handler.d.ts +3 -0
  289. package/dist/service/lambda/command/create-function/create-function.handler.js +5 -1
  290. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.command.d.ts +2 -3
  291. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.handler.js +1 -0
  292. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts +6 -0
  293. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.js +10 -0
  294. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.js +2 -6
  295. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js +1 -0
  296. package/dist/service/lambda/command/function/sim-lambda-function-commands.d.ts +2 -0
  297. package/dist/service/lambda/command/function-url/function-url-cors-constraints.d.ts +25 -0
  298. package/dist/service/lambda/command/function-url/function-url-cors-constraints.js +49 -0
  299. package/dist/service/lambda/command/function-url/function-url-cors-input.d.ts +25 -0
  300. package/dist/service/lambda/command/function-url/function-url-cors-input.js +57 -0
  301. package/dist/service/lambda/command/function-url/function-url-input.d.ts +7 -0
  302. package/dist/service/lambda/command/function-url/function-url-input.js +9 -0
  303. package/dist/service/lambda/command/invoke/async/sim-lambda-async-invocation.js +10 -13
  304. package/dist/service/lambda/command/invoke/async/sim-lambda-async-outcome.js +2 -0
  305. package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.d.ts +13 -0
  306. package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.js +12 -0
  307. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.command.d.ts +2 -0
  308. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.handler.js +1 -0
  309. package/dist/service/lambda/destination/deliver/sim-lambda-destination-bus.js +1 -1
  310. package/dist/service/lambda/destination/deliver/sim-lambda-destination-function.js +8 -12
  311. package/dist/service/lambda/destination/deliver/sim-lambda-destination-queue.js +4 -3
  312. package/dist/service/lambda/destination/deliver/sim-lambda-destination-send.d.ts +2 -0
  313. package/dist/service/lambda/destination/deliver/sim-lambda-destination-topic.js +4 -3
  314. package/dist/service/lambda/destination/sim-aws-lambda-destinations.d.ts +4 -6
  315. package/dist/service/lambda/destination/sim-aws-lambda-destinations.js +6 -6
  316. package/dist/service/lambda/destination/sim-lambda-destination-targets.d.ts +3 -0
  317. package/dist/service/lambda/event-source/poll/kinesis/sim-lambda-kinesis-stream-delivery.js +4 -9
  318. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.js +4 -9
  319. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.d.ts +22 -3
  320. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.js +39 -9
  321. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.d.ts +7 -6
  322. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.js +14 -12
  323. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.d.ts +9 -15
  324. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.js +9 -16
  325. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.d.ts +10 -6
  326. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.js +22 -12
  327. package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.d.ts +23 -0
  328. package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.js +18 -0
  329. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.d.ts +12 -13
  330. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.js +24 -17
  331. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.d.ts +64 -0
  332. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.js +86 -0
  333. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts +6 -0
  334. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js +8 -1
  335. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.d.ts +6 -0
  336. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.js +7 -0
  337. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.d.ts +11 -1
  338. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.js +13 -0
  339. package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.d.ts +39 -0
  340. package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.js +46 -0
  341. package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.d.ts +56 -0
  342. package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.js +110 -0
  343. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.d.ts +5 -0
  344. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.js +7 -1
  345. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.d.ts +6 -0
  346. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.js +6 -0
  347. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.d.ts +6 -1
  348. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.js +8 -6
  349. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.d.ts +10 -8
  350. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.js +18 -1
  351. package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts +8 -2
  352. package/dist/service/lambda/function/code/sim-lambda-executable-code.js +2 -1
  353. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.d.ts +2 -11
  354. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.js +13 -39
  355. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.d.ts +7 -0
  356. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.js +13 -7
  357. package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.d.ts +23 -0
  358. package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.js +42 -0
  359. package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.d.ts +12 -4
  360. package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.js +15 -5
  361. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.d.ts +7 -0
  362. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.js +6 -2
  363. package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.d.ts +26 -0
  364. package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.js +84 -0
  365. package/dist/service/lambda/function/invoke/sim-lambda-invocation.d.ts +44 -0
  366. package/dist/service/lambda/function/invoke/sim-lambda-invocation.js +44 -0
  367. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.d.ts +6 -0
  368. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.js +1 -2
  369. package/dist/service/lambda/function/invoke/sim-lambda-process-output.d.ts +6 -1
  370. package/dist/service/lambda/function/invoke/sim-lambda-process-output.js +19 -6
  371. package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.d.ts +15 -0
  372. package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.js +18 -0
  373. package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.d.ts +12 -0
  374. package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.js +28 -0
  375. package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.d.ts +46 -0
  376. package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.js +104 -0
  377. package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.d.ts +24 -0
  378. package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.js +27 -0
  379. package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.d.ts +43 -0
  380. package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.js +112 -0
  381. package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.d.ts +57 -0
  382. package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.js +79 -0
  383. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.d.ts +10 -0
  384. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.js +15 -0
  385. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.d.ts +11 -0
  386. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.js +24 -0
  387. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.d.ts +50 -0
  388. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.js +43 -0
  389. package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts +17 -0
  390. package/dist/service/lambda/function/logging/sim-lambda-function-logging.js +12 -1
  391. package/dist/service/lambda/function/logging/sim-lambda-output.d.ts +56 -0
  392. package/dist/service/lambda/function/logging/sim-lambda-output.js +62 -0
  393. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.d.ts +8 -0
  394. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.js +27 -1
  395. package/dist/service/lambda/function/sim-lambda-function.d.ts +1 -1
  396. package/dist/service/lambda/function/sim-lambda-function.js +11 -9
  397. package/dist/service/lambda/function/sim-lambda-function.type.d.ts +15 -0
  398. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.d.ts +16 -0
  399. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.d.ts +22 -0
  400. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.js +17 -0
  401. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.js +1 -0
  402. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.d.ts +2 -0
  403. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.js +2 -1
  404. package/dist/service/lambda/function/url/sim-lambda-function-url-store.d.ts +2 -0
  405. package/dist/service/lambda/function/url/sim-lambda-function-url.d.ts +16 -0
  406. package/dist/service/lambda/function/url/sim-lambda-function-url.js +16 -1
  407. package/dist/service/lambda/index.d.ts +1 -0
  408. package/dist/service/lambda/index.js +1 -0
  409. package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.d.ts +50 -0
  410. package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.js +96 -0
  411. package/dist/service/lambda/serve/sim-lambda-controller.d.ts +14 -0
  412. package/dist/service/lambda/serve/sim-lambda-controller.js +27 -0
  413. package/dist/service/lambda/sim-lambda-commands.d.ts +10 -0
  414. package/dist/service/lambda/sim-lambda-commands.js +11 -0
  415. package/dist/service/lambda/sim-lambda.d.ts +12 -0
  416. package/dist/service/lambda/sim-lambda.js +13 -0
  417. package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.d.ts +67 -0
  418. package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.js +69 -0
  419. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.d.ts +4 -31
  420. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.js +7 -6
  421. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.d.ts +5 -0
  422. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.js +8 -4
  423. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.d.ts +1 -14
  424. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.js +16 -8
  425. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.d.ts +41 -0
  426. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.js +1 -0
  427. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.d.ts +14 -0
  428. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.js +32 -2
  429. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.d.ts +33 -0
  430. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.js +48 -0
  431. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.d.ts +16 -0
  432. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.js +44 -0
  433. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.d.ts +8 -0
  434. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.js +27 -0
  435. package/dist/service/s3/bucket/notification/sim-s3-notification-event.d.ts +1 -1
  436. package/dist/service/s3/bucket/notification/sim-s3-notification-event.js +5 -0
  437. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-events.js +0 -3
  438. package/dist/service/s3/bucket/sim-s3-bucket-access.d.ts +3 -0
  439. package/dist/service/s3/bucket/sim-s3-bucket-access.js +6 -2
  440. package/dist/service/s3/bucket/sim-s3-bucket-configuration.d.ts +84 -0
  441. package/dist/service/s3/bucket/sim-s3-bucket-configuration.js +115 -0
  442. package/dist/service/s3/bucket/sim-s3-bucket-maker.d.ts +31 -0
  443. package/dist/service/s3/bucket/sim-s3-bucket-maker.js +41 -0
  444. package/dist/service/s3/bucket/sim-s3-bucket-objects.d.ts +10 -0
  445. package/dist/service/s3/bucket/sim-s3-bucket-objects.js +18 -0
  446. package/dist/service/s3/bucket/sim-s3-bucket-properties.d.ts +41 -0
  447. package/dist/service/s3/bucket/sim-s3-bucket-properties.js +1 -0
  448. package/dist/service/s3/bucket/sim-s3-bucket.d.ts +11 -83
  449. package/dist/service/s3/bucket/sim-s3-bucket.js +14 -83
  450. package/dist/service/s3/bucket/sim-s3-public-read.fixture.d.ts +6 -0
  451. package/dist/service/s3/bucket/sim-s3-public-read.fixture.js +20 -6
  452. package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.d.ts +58 -0
  453. package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.js +73 -0
  454. package/dist/service/s3/bucket/versioning/sim-s3-object-version.d.ts +19 -1
  455. package/dist/service/s3/bucket/versioning/sim-s3-object-version.js +20 -0
  456. package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.d.ts +21 -0
  457. package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.js +44 -0
  458. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.js +6 -0
  459. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.d.ts +5 -4
  460. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.js +12 -5
  461. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.d.ts +21 -0
  462. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.js +30 -0
  463. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js +1 -0
  464. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.d.ts +14 -1
  465. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.js +41 -16
  466. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.d.ts +3 -5
  467. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.js +7 -10
  468. package/dist/service/s3/command/authorize/sim-s3-authorize-action.d.ts +6 -1
  469. package/dist/service/s3/command/authorize/sim-s3-authorize-action.js +5 -0
  470. package/dist/service/s3/command/copy-object/copy-object-builder.d.ts +10 -1
  471. package/dist/service/s3/command/copy-object/copy-object-builder.js +17 -1
  472. package/dist/service/s3/command/copy-object/copy-object.command.d.ts +11 -1
  473. package/dist/service/s3/command/copy-object/copy-object.handler.js +2 -1
  474. package/dist/service/s3/command/create-bucket/create-bucket.handler.d.ts +2 -2
  475. package/dist/service/s3/command/create-bucket/create-bucket.handler.js +4 -12
  476. package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.command.d.ts +5 -1
  477. package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.handler.js +7 -0
  478. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.d.ts +19 -0
  479. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.js +1 -0
  480. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.d.ts +30 -0
  481. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.js +38 -0
  482. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.d.ts +23 -0
  483. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.js +1 -0
  484. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.d.ts +22 -0
  485. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.js +42 -0
  486. package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.d.ts +29 -0
  487. package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.js +49 -0
  488. package/dist/service/s3/command/encryption/sim-s3-encryption-commands.d.ts +22 -0
  489. package/dist/service/s3/command/encryption/sim-s3-encryption-commands.js +30 -0
  490. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.d.ts +24 -0
  491. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.js +1 -0
  492. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.d.ts +31 -0
  493. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.js +39 -0
  494. package/dist/service/s3/command/get-object/get-object-authorizer.d.ts +11 -8
  495. package/dist/service/s3/command/get-object/get-object-authorizer.js +26 -34
  496. package/dist/service/s3/command/get-object/get-object-loader.d.ts +7 -3
  497. package/dist/service/s3/command/get-object/get-object-loader.js +9 -4
  498. package/dist/service/s3/command/get-object/get-object.command.d.ts +2 -1
  499. package/dist/service/s3/command/get-object/get-object.handler.d.ts +4 -0
  500. package/dist/service/s3/command/get-object/get-object.handler.js +13 -7
  501. package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.d.ts +29 -0
  502. package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.js +1 -0
  503. package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.d.ts +21 -0
  504. package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.js +33 -0
  505. package/dist/service/s3/command/head-object/head-object-loader.js +2 -0
  506. package/dist/service/s3/command/head-object/head-object.command.d.ts +2 -1
  507. package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-rules-validation.js +18 -0
  508. package/dist/service/s3/command/list-multipart-uploads/list-multipart-uploads.handler.js +1 -2
  509. package/dist/service/s3/command/list-object-versions/list-object-versions-summaries.js +1 -2
  510. package/dist/service/s3/command/list-objects/list-objects-page-builder.d.ts +5 -0
  511. package/dist/service/s3/command/list-objects/list-objects-page-builder.js +11 -6
  512. package/dist/service/s3/command/list-objects/list-objects.command.d.ts +5 -1
  513. package/dist/service/s3/command/list-objects/list-objects.handler.js +5 -0
  514. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.d.ts +6 -0
  515. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.js +11 -5
  516. package/dist/service/s3/command/list-objects-v2/list-objects-v2.command.d.ts +5 -1
  517. package/dist/service/s3/command/list-objects-v2/list-objects-v2.handler.js +5 -0
  518. package/dist/service/s3/command/list-parts/list-parts.handler.js +3 -3
  519. package/dist/service/s3/command/multipart/sim-s3-multipart-access.js +1 -1
  520. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.d.ts +21 -0
  521. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.js +1 -0
  522. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.d.ts +31 -0
  523. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.js +41 -0
  524. package/dist/service/s3/command/put-object/put-object-builder.d.ts +5 -1
  525. package/dist/service/s3/command/put-object/put-object-builder.js +10 -1
  526. package/dist/service/s3/command/put-object/put-object.command.d.ts +5 -1
  527. package/dist/service/s3/command/put-object/put-object.handler.js +2 -1
  528. package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.d.ts +37 -0
  529. package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.js +1 -0
  530. package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.d.ts +22 -0
  531. package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.js +46 -0
  532. package/dist/service/s3/command/sim-s3-command.types.d.ts +6 -0
  533. package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.d.ts +61 -0
  534. package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.js +49 -0
  535. package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.d.ts +30 -0
  536. package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.js +27 -0
  537. package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.d.ts +26 -0
  538. package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.js +34 -0
  539. package/dist/service/s3/error/sim-s3-upload.error.d.ts +41 -0
  540. package/dist/service/s3/error/sim-s3-upload.error.js +47 -0
  541. package/dist/service/s3/error/sim-s3.error.d.ts +22 -34
  542. package/dist/service/s3/error/sim-s3.error.js +26 -40
  543. package/dist/service/s3/mount/sim-s3-mount.type.d.ts +10 -0
  544. package/dist/service/s3/notification/event/sim-s3-event-records.d.ts +3 -2
  545. package/dist/service/s3/notification/event/sim-s3-event-records.js +5 -3
  546. package/dist/service/s3/notification/event/sim-s3-object-event-builder.d.ts +33 -8
  547. package/dist/service/s3/notification/event/sim-s3-object-event-builder.js +23 -9
  548. package/dist/service/s3/notification/sim-s3-object-notifier.d.ts +5 -1
  549. package/dist/service/s3/notification/sim-s3-object-notifier.js +6 -0
  550. package/dist/service/s3/object/s3-key-encoding.d.ts +12 -0
  551. package/dist/service/s3/object/s3-key-encoding.js +14 -0
  552. package/dist/service/s3/object/s3-listing-encoding.d.ts +42 -0
  553. package/dist/service/s3/object/s3-listing-encoding.js +75 -0
  554. package/dist/service/s3/object/s3-object-response-headers.d.ts +40 -0
  555. package/dist/service/s3/object/s3-object-response-headers.js +49 -2
  556. package/dist/service/s3/object/s3-object-storage-report.d.ts +19 -0
  557. package/dist/service/s3/object/s3-object-storage-report.js +18 -0
  558. package/dist/service/s3/object/s3-object-summary.d.ts +2 -10
  559. package/dist/service/s3/object/s3-object-summary.js +1 -10
  560. package/dist/service/s3/object/s3-object-tags.d.ts +61 -0
  561. package/dist/service/s3/object/s3-object-tags.js +77 -0
  562. package/dist/service/s3/object/s3-object.d.ts +49 -0
  563. package/dist/service/s3/object/s3-object.js +52 -1
  564. package/dist/service/s3/object/s3-server-side-encryption.d.ts +30 -0
  565. package/dist/service/s3/object/s3-server-side-encryption.js +42 -0
  566. package/dist/service/s3/object/s3-storage-class.d.ts +45 -0
  567. package/dist/service/s3/object/s3-storage-class.js +67 -0
  568. package/dist/service/s3/object/s3-write-metadata.d.ts +17 -3
  569. package/dist/service/s3/object/s3-write-metadata.js +43 -0
  570. package/dist/service/s3/object/s3-write-storage.d.ts +27 -0
  571. package/dist/service/s3/object/s3-write-storage.js +21 -0
  572. package/dist/service/s3/object/s3-write-tagging.d.ts +24 -0
  573. package/dist/service/s3/object/s3-write-tagging.js +19 -0
  574. package/dist/service/s3/sdk/sim-s3-sdk-bucket-routes.js +12 -0
  575. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +2 -0
  576. package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.d.ts +9 -0
  577. package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.js +23 -0
  578. package/dist/service/s3/serve/api/sim-s3-api-bucket-routes.js +22 -0
  579. package/dist/service/s3/serve/api/sim-s3-api-configuration-output.d.ts +4 -0
  580. package/dist/service/s3/serve/api/sim-s3-api-configuration-output.js +10 -0
  581. package/dist/service/s3/serve/api/sim-s3-api-encryption-read.d.ts +7 -0
  582. package/dist/service/s3/serve/api/sim-s3-api-encryption-read.js +30 -0
  583. package/dist/service/s3/serve/api/sim-s3-api-head-output.d.ts +4 -2
  584. package/dist/service/s3/serve/api/sim-s3-api-head-output.js +8 -2
  585. package/dist/service/s3/serve/api/sim-s3-api-input.d.ts +0 -6
  586. package/dist/service/s3/serve/api/sim-s3-api-input.js +2 -13
  587. package/dist/service/s3/serve/api/sim-s3-api-listing.d.ts +5 -0
  588. package/dist/service/s3/serve/api/sim-s3-api-listing.js +5 -0
  589. package/dist/service/s3/serve/api/sim-s3-api-object-input.d.ts +16 -0
  590. package/dist/service/s3/serve/api/sim-s3-api-object-input.js +34 -7
  591. package/dist/service/s3/serve/api/sim-s3-api-object-output.d.ts +18 -1
  592. package/dist/service/s3/serve/api/sim-s3-api-object-output.js +21 -2
  593. package/dist/service/s3/serve/api/sim-s3-api-object-routes.js +22 -1
  594. package/dist/service/s3/serve/api/sim-s3-api-output.d.ts +5 -1
  595. package/dist/service/s3/serve/api/sim-s3-api-output.js +16 -5
  596. package/dist/service/s3/serve/api/sim-s3-api-request.d.ts +6 -5
  597. package/dist/service/s3/serve/api/sim-s3-api-request.js +55 -11
  598. package/dist/service/s3/serve/api/sim-s3-api-routes.js +2 -2
  599. package/dist/service/s3/serve/api/sim-s3-api-tagging-read.d.ts +9 -0
  600. package/dist/service/s3/serve/api/sim-s3-api-tagging-read.js +14 -0
  601. package/dist/service/s3/serve/api/sim-s3-api.d.ts +7 -1
  602. package/dist/service/s3/serve/api/sim-s3-api.js +7 -1
  603. package/dist/service/s3/serve/sim-s3-rest-controller.d.ts +1 -5
  604. package/dist/service/s3/serve/sim-s3-rest-controller.js +3 -17
  605. package/dist/service/s3/serve/sim-s3-rest-object-reader.d.ts +3 -0
  606. package/dist/service/s3/serve/sim-s3-rest-object-reader.js +8 -1
  607. package/dist/service/s3/serve/sim-s3-rest-upload.d.ts +20 -0
  608. package/dist/service/s3/serve/sim-s3-rest-upload.js +30 -0
  609. package/dist/service/s3/serve/website/sim-s3-website-object-loader.js +1 -0
  610. package/dist/service/s3/serve/website/sim-s3-website-object.d.ts +2 -0
  611. package/dist/service/s3/serve/website/sim-s3-website-object.js +3 -0
  612. package/dist/service/s3/sim-s3-commands.d.ts +10 -0
  613. package/dist/service/s3/sim-s3-commands.js +13 -0
  614. package/dist/service/s3/sim-s3-operations.d.ts +11 -4
  615. package/dist/service/s3/sim-s3-operations.js +17 -4
  616. package/dist/service/s3/sim-s3-tagging-operations.d.ts +21 -0
  617. package/dist/service/s3/sim-s3-tagging-operations.js +25 -0
  618. package/dist/service/s3/sim-s3.d.ts +28 -0
  619. package/dist/service/s3/sim-s3.js +38 -0
  620. package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.d.ts +34 -0
  621. package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.js +34 -0
  622. package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.d.ts +9 -0
  623. package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.js +24 -0
  624. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.d.ts +5 -4
  625. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.js +5 -3
  626. package/dist/service/s3/upload/sim-s3-completed-upload.js +5 -1
  627. package/dist/service/s3/upload/sim-s3-multipart-upload.d.ts +18 -0
  628. package/dist/service/s3/upload/sim-s3-multipart-upload.js +8 -0
  629. package/dist/service/s3/upload/sim-s3-multipart-uploads.d.ts +6 -0
  630. package/dist/service/s3/upload/sim-s3-multipart-uploads.js +5 -0
  631. package/dist/util/background/background-clock-waits.d.ts +52 -0
  632. package/dist/util/background/background-clock-waits.js +76 -0
  633. package/dist/util/background/background-jitter.js +1 -0
  634. package/dist/util/background/background-pending-tasks.d.ts +55 -0
  635. package/dist/util/background/background-pending-tasks.js +117 -0
  636. package/dist/util/background/background-settled-tasks.d.ts +4 -1
  637. package/dist/util/background/background-settled-tasks.js +4 -1
  638. package/dist/util/background/background.d.ts +43 -0
  639. package/dist/util/background/background.js +27 -19
  640. package/dist/util/background/non-deterministic-background.d.ts +12 -0
  641. package/dist/util/background/non-deterministic-background.js +24 -20
  642. package/dist/util/clock/sim-clock-control.js +23 -2
  643. package/docs/services/apigateway/README.md +3 -1
  644. package/docs/services/athena/README.md +126 -3
  645. package/docs/services/cloudformation/README.md +831 -67
  646. package/docs/services/cognito/README.md +5 -0
  647. package/docs/services/dynamodb/README.md +86 -11
  648. package/docs/services/lambda/README.md +603 -39
  649. package/docs/services/s3/README.md +688 -57
  650. package/package.json +8 -2
@@ -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";
@@ -29,8 +29,8 @@ export class SimCfnStack {
29
29
  updating;
30
30
  deletion;
31
31
  stackName;
32
+ stackId;
32
33
  resourceMap;
33
- template;
34
34
  outputs = new Map();
35
35
  background;
36
36
  operations;
@@ -38,12 +38,12 @@ export class SimCfnStack {
38
38
  stackOutputs;
39
39
  cfnTemplate;
40
40
  constructor(properties) {
41
- const { simAws, accountRegionScope, background, stackName, template, cdkOutContext, bindings, caller, resourceOrder, exports, } = properties;
41
+ const { simAws, accountRegionScope, background, stackName, stackId, template, cdkOutContext, bindings, caller, assetsCaller, resourceOrder, exports, } = properties;
42
42
  this.background = background;
43
43
  this.stackName = stackName;
44
+ this.stackId = stackId;
44
45
  this.stackOutputs = new SimCfnStackOutputs({ stackName, exports });
45
46
  this.cfnTemplate = template;
46
- this.template = this.cfnTemplate.template;
47
47
  this.resourceMap = makeSimCfnStackResourceMap({
48
48
  accountRegionScope,
49
49
  background,
@@ -61,20 +61,22 @@ export class SimCfnStack {
61
61
  cdkOutContext,
62
62
  bindings,
63
63
  caller,
64
+ assetsCaller,
64
65
  resourceOrder,
65
66
  });
66
67
  this.lifecycle = new SimCfnStackDeploymentLifecycle({
67
68
  background,
68
69
  stackName,
69
70
  runDeployment: async () => {
70
- await this.createResources();
71
+ await this.operations.createAll(this.resourceMap);
72
+ this.resolveOutputs();
71
73
  },
72
74
  });
73
75
  this.updating = new SimCfnStackUpdateLifecycle({ background, stackName });
74
76
  this.deletion = new SimCfnStackDeletionLifecycle({
75
77
  background,
76
- runTeardown: async () => {
77
- await this.teardown();
78
+ runTeardown: async (deleteProperties) => {
79
+ await this.teardown(deleteProperties);
78
80
  },
79
81
  });
80
82
  this.operationStatus = new SimCfnStackOperationStatus({
@@ -87,19 +89,23 @@ export class SimCfnStack {
87
89
  get status() {
88
90
  return this.operationStatus.status;
89
91
  }
92
+ /** The parsed template this Stack is deployed from. */
93
+ get currentTemplate() {
94
+ return this.cfnTemplate;
95
+ }
96
+ /** The template body this Stack is deployed from. */
97
+ get template() {
98
+ return this.cfnTemplate.template;
99
+ }
90
100
  /** The error the operation the status reports failed with, if it failed. */
91
101
  get error() {
92
102
  return this.operationStatus.error;
93
103
  }
94
- /**
95
- * Start deploying this simulated Stack into simulated AWS.
96
- */
104
+ /** Start deploying this simulated Stack into simulated AWS. */
97
105
  async deploy() {
98
106
  await this.lifecycle.deploy();
99
107
  }
100
- /**
101
- * Wait for the scheduled deployment task to finish.
102
- */
108
+ /** Wait for the scheduled deployment task to finish. */
103
109
  async waitForDeployComplete() {
104
110
  await this.lifecycle.waitForComplete();
105
111
  }
@@ -119,13 +125,18 @@ export class SimCfnStack {
119
125
  * A template that came from a synthesis of its own brings the cloud assembly
120
126
  * it was written into with it, so Resources it replaces read the assets that
121
127
  * synthesis staged rather than the ones the Stack was deployed with.
128
+ *
129
+ * An update that fails is rolled back onto the template the Stack was
130
+ * deployed from, which the Stack goes on holding for as long as the update
131
+ * runs.
122
132
  */
123
133
  async update(template, properties = {}) {
124
134
  this.updating.assertNotUpdating();
135
+ const deployed = this.cfnTemplate;
125
136
  const updater = this.operations.updater({
126
137
  background: this.background,
127
138
  resources: this.resourceMap,
128
- current: this.cfnTemplate,
139
+ current: deployed,
129
140
  updated: template,
130
141
  });
131
142
  updater.assertHasChanges();
@@ -134,15 +145,24 @@ export class SimCfnStack {
134
145
  // deployed it.
135
146
  this.operations.useUpdate(properties);
136
147
  this.cfnTemplate = template;
137
- this.template = template.template;
138
- await this.updating.update(async () => {
139
- await updater.apply();
140
- this.resolveOutputs();
148
+ await this.updating.update({
149
+ apply: async () => {
150
+ await updater.apply();
151
+ this.resolveOutputs();
152
+ },
153
+ rollBack: async () => {
154
+ await this.operations.rollBack({
155
+ background: this.background,
156
+ resources: this.resourceMap,
157
+ current: this.cfnTemplate,
158
+ updated: deployed,
159
+ });
160
+ this.cfnTemplate = deployed;
161
+ this.resolveOutputs();
162
+ },
141
163
  });
142
164
  }
143
- /**
144
- * Wait for the scheduled Stack update to finish.
145
- */
165
+ /** Wait for the scheduled Stack update to finish. */
146
166
  async waitForUpdateComplete() {
147
167
  await this.updating.waitForComplete();
148
168
  }
@@ -153,13 +173,22 @@ export class SimCfnStack {
153
173
  * before the Resources have gone. The optional onDeleteComplete callback runs
154
174
  * once the teardown has finished successfully, which is when the Stack name
155
175
  * becomes free to use again.
176
+ *
177
+ * Resources named in retainResources are checked against the Stack before
178
+ * the teardown is scheduled. A caller naming one the Stack does not have is
179
+ * refused there, where a check in the background would only fail the
180
+ * deletion.
181
+ *
182
+ * The names are copied as the request is accepted. The teardown runs in the
183
+ * background, and a caller holding the array it passed could otherwise change
184
+ * which Resources are kept after the Stack agreed to keep them.
156
185
  */
157
186
  async delete(properties = {}) {
158
- await this.deletion.delete(properties);
187
+ const retainResources = [...(properties.retainResources ?? [])];
188
+ this.operations.assertRetainable(this.resourceMap, retainResources);
189
+ await this.deletion.delete({ ...properties, retainResources });
159
190
  }
160
- /**
161
- * Wait for the scheduled Stack deletion to finish.
162
- */
191
+ /** Wait for the scheduled Stack deletion to finish. */
163
192
  async waitForDeleteComplete() {
164
193
  await this.deletion.waitForComplete();
165
194
  }
@@ -170,8 +199,8 @@ export class SimCfnStack {
170
199
  * The Resource half of deleting a Stack, without the Stack-level status or
171
200
  * the Stack name release that delete() puts on top of it.
172
201
  */
173
- async teardown() {
174
- await this.operations.deleteAll(this.resourceMap);
202
+ async teardown(properties = {}) {
203
+ await this.operations.deleteAll(this.resourceMap, properties.retainResources);
175
204
  this.stackOutputs.release();
176
205
  }
177
206
  /** Every Stack Resource, in the order the template declared them. */
@@ -209,9 +238,12 @@ export class SimCfnStack {
209
238
  get skippedResourceDeletions() {
210
239
  return this.report.deletionSkipped;
211
240
  }
212
- /** Resources a teardown left in simulated AWS, as their policy says to. */
241
+ /**
242
+ * Resources left in simulated AWS, whether a teardown stepped over them or
243
+ * an update replaced them and kept the deployed one.
244
+ */
213
245
  get retainedResources() {
214
- return this.report.retained;
246
+ return [...this.report.retained, ...this.operations.retainedResources];
215
247
  }
216
248
  /** Every property or Parameter that did not reach simulated AWS as written. */
217
249
  get ignoredProperties() {
@@ -220,10 +252,6 @@ export class SimCfnStack {
220
252
  get report() {
221
253
  return new SimCfnStackResourceReport(this.resourceMap, this.cfnTemplate);
222
254
  }
223
- async createResources() {
224
- await this.operations.createAll(this.resourceMap);
225
- this.resolveOutputs();
226
- }
227
255
  resolveOutputs() {
228
256
  this.outputs = this.stackOutputs.resolve(this.cfnTemplate, this.resourceMap);
229
257
  }
@@ -8,8 +8,9 @@ import type { SimCdkOutContext } from "../cdk/sim-cdk-out-context.js";
8
8
  import type { SimCfnBinding } from "../bind/sim-cfn-binding.js";
9
9
  import type { SimCfnExports } from "../export/sim-cfn-exports.js";
10
10
  import type { SimCfnResourceOrder } from "./deploy/sim-cfn-resource-order.js";
11
+ import type { SimCfnStackId } from "./sim-cfn-stack-id.js";
11
12
  export type SimCloudFormationStackName = Brand<string, "SimCloudFormationStackName">;
12
- export type SimCloudFormationStackStatus = "REVIEW_IN_PROGRESS" | "CREATE_IN_PROGRESS" | "CREATE_COMPLETE" | "CREATE_FAILED" | "UPDATE_IN_PROGRESS" | "UPDATE_COMPLETE" | "UPDATE_FAILED" | "DELETE_IN_PROGRESS" | "DELETE_COMPLETE" | "DELETE_FAILED";
13
+ export type SimCloudFormationStackStatus = "REVIEW_IN_PROGRESS" | "CREATE_IN_PROGRESS" | "CREATE_COMPLETE" | "CREATE_FAILED" | "UPDATE_IN_PROGRESS" | "UPDATE_COMPLETE" | "UPDATE_FAILED" | "UPDATE_ROLLBACK_IN_PROGRESS" | "UPDATE_ROLLBACK_COMPLETE" | "UPDATE_ROLLBACK_FAILED" | "DELETE_IN_PROGRESS" | "DELETE_COMPLETE" | "DELETE_FAILED";
13
14
  export interface SimCfnStackUpdateProperties {
14
15
  /**
15
16
  * The CDK cloud assembly the new template was synthesized into, when it came
@@ -23,12 +24,22 @@ export interface SimCfnStackUpdateProperties {
23
24
  * The Stack goes on using it, as it does the cloud assembly.
24
25
  */
25
26
  readonly caller?: SimAwsCaller | undefined;
27
+ /**
28
+ * The principal to publish the re-synthesized file assets as, for an update
29
+ * that names one. The Stack goes on using it too.
30
+ */
31
+ readonly assetsCaller?: SimAwsCaller | undefined;
26
32
  }
27
33
  export interface SimCloudFormationStackProperties {
28
34
  readonly simAws: SimAws;
29
35
  readonly accountRegionScope: SimAwsAccountRegionScope;
30
36
  readonly background: BackgroundScheduler;
31
37
  readonly stackName: SimCloudFormationStackName;
38
+ /**
39
+ * The unique ID this Stack was created with, which is what a deleted Stack
40
+ * is still described by once its name has gone back into circulation.
41
+ */
42
+ readonly stackId: SimCfnStackId;
32
43
  readonly template: SimCfnTemplate;
33
44
  readonly cdkOutContext?: SimCdkOutContext | undefined;
34
45
  readonly bindings?: readonly SimCfnBinding[] | undefined;
@@ -38,6 +49,15 @@ export interface SimCloudFormationStackProperties {
38
49
  * simulation.
39
50
  */
40
51
  readonly caller?: SimAwsCaller | undefined;
52
+ /**
53
+ * The principal the CDK file assets staged beside the template are published
54
+ * as.
55
+ *
56
+ * A real `cdk deploy` publishes them as the file publishing Role and only
57
+ * then processes the template as the execution Role, which is why the two
58
+ * are named apart. Left out, assets are published as `caller`.
59
+ */
60
+ readonly assetsCaller?: SimAwsCaller | undefined;
41
61
  /**
42
62
  * The order this Stack starts Resources with no dependency between them in.
43
63
  * The template's own order unless the deployment asked for another one.
@@ -10,7 +10,7 @@ interface SimCfnStackDeletionLifecycleProperties {
10
10
  * stays outside this class, while status, error and completion handling stay
11
11
  * inside it.
12
12
  */
13
- readonly runTeardown: () => Promise<void>;
13
+ readonly runTeardown: (properties: SimCfnStackDeleteProperties) => Promise<void>;
14
14
  }
15
15
  export interface SimCfnStackDeleteProperties {
16
16
  /**
@@ -20,6 +20,12 @@ export interface SimCfnStackDeleteProperties {
20
20
  * lifecycle only says when the name is free rather than freeing it.
21
21
  */
22
22
  readonly onDeleteComplete?: (() => void) | undefined;
23
+ /**
24
+ * Resources to leave in simulated AWS, named by logical ID or CDK construct
25
+ * ID. What DeleteStack RetainResources asks for, and it overrides whatever
26
+ * the Resource's own DeletionPolicy says.
27
+ */
28
+ readonly retainResources?: readonly string[] | undefined;
23
29
  }
24
30
  /**
25
31
  * Owns the simulated CloudFormation Stack deletion lifecycle state.
@@ -58,7 +58,9 @@ export class SimCfnStackDeletionLifecycle {
58
58
  });
59
59
  await scheduler.sequence();
60
60
  this.completePromise = scheduler.schedule({
61
- operation: this.runTeardown,
61
+ operation: async () => {
62
+ await this.runTeardown(properties);
63
+ },
62
64
  onSuccess: () => {
63
65
  this.#status = "DELETE_COMPLETE";
64
66
  properties.onDeleteComplete?.();
@@ -1,10 +1,12 @@
1
1
  import type { SimAws } from "../../../aws/sim-aws.js";
2
2
  import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
3
3
  import type { SimCfnResource } from "../../resource/sim-cfn-resource.js";
4
+ import type { SimCfnResourceRetention } from "../../resource/delete/sim-cfn-resource-retention.js";
4
5
  interface SimCfnStackResourceBatchDeleterProperties {
5
6
  readonly simAws: SimAws;
6
7
  readonly resources: ReadonlyMap<string, SimCfnResource>;
7
8
  readonly caller?: SimAwsCaller | undefined;
9
+ readonly retention?: SimCfnResourceRetention | undefined;
8
10
  }
9
11
  /**
10
12
  * Deletes one batch of Stack Resources nothing still depends on.
@@ -20,6 +22,7 @@ export declare class SimCfnStackResourceBatchDeleter {
20
22
  private readonly simAws;
21
23
  private readonly resources;
22
24
  private readonly caller;
25
+ private readonly retention;
23
26
  constructor(properties: SimCfnStackResourceBatchDeleterProperties);
24
27
  /**
25
28
  * Delete the supplied Resources concurrently.
@@ -12,10 +12,12 @@ export class SimCfnStackResourceBatchDeleter {
12
12
  simAws;
13
13
  resources;
14
14
  caller;
15
+ retention;
15
16
  constructor(properties) {
16
17
  this.simAws = properties.simAws;
17
18
  this.resources = properties.resources;
18
19
  this.caller = properties.caller;
20
+ this.retention = properties.retention;
19
21
  }
20
22
  /**
21
23
  * Delete the supplied Resources concurrently.
@@ -28,6 +30,7 @@ export class SimCfnStackResourceBatchDeleter {
28
30
  simAws: this.simAws,
29
31
  resources: this.resources,
30
32
  caller: this.caller,
33
+ retention: this.retention,
31
34
  });
32
35
  }));
33
36
  }
@@ -1,11 +1,14 @@
1
1
  import type { SimAws } from "../../../aws/sim-aws.js";
2
2
  import type { SimAwsCaller } from "../../../aws/caller/sim-aws-caller.js";
3
3
  import type { SimCfnResource } from "../../resource/sim-cfn-resource.js";
4
+ import type { SimCfnResourceRetention } from "../../resource/delete/sim-cfn-resource-retention.js";
4
5
  interface SimCfnStackResourceDeleterProperties {
5
6
  readonly simAws: SimAws;
6
7
  readonly resources: ReadonlyMap<string, SimCfnResource>;
7
8
  readonly stackName: string;
8
9
  readonly caller?: SimAwsCaller | undefined;
10
+ /** Which of the Resources being deleted are to be left in simulated AWS. */
11
+ readonly retention?: SimCfnResourceRetention | undefined;
9
12
  }
10
13
  /**
11
14
  * Orchestrates reverse-dependency-ordered deletion of a Stack's Resources.
@@ -20,13 +20,14 @@ export class SimCfnStackResourceDeleter {
20
20
  stackName;
21
21
  batchDeleter;
22
22
  constructor(properties) {
23
- const { simAws, resources, stackName, caller } = properties;
23
+ const { simAws, resources, stackName, caller, retention } = properties;
24
24
  this.resources = resources;
25
25
  this.stackName = stackName;
26
26
  this.batchDeleter = new SimCfnStackResourceBatchDeleter({
27
27
  simAws,
28
28
  resources,
29
29
  caller,
30
+ retention,
30
31
  });
31
32
  }
32
33
  /**
@@ -0,0 +1,18 @@
1
+ import type { SimCfnResource } from "../../resource/sim-cfn-resource.js";
2
+ interface SimCfnStackRetainedLogicalIdsProperties {
3
+ readonly stackName: string;
4
+ readonly resources: ReadonlyMap<string, SimCfnResource>;
5
+ /** The identifiers DeleteStack named in RetainResources. */
6
+ readonly retainResources?: readonly string[] | undefined;
7
+ }
8
+ /**
9
+ * The logical IDs a DeleteStack call asked to keep, resolved against the Stack.
10
+ *
11
+ * An identifier the Stack has no Resource for is refused, as CloudFormation
12
+ * refuses one. A caller who misspells the Resource they meant to keep would
13
+ * otherwise watch it go. CDK construct IDs resolve here as well as logical IDs,
14
+ * the same way `getResource(...)` takes either. A test written against a
15
+ * synthesized template then needs no hashed logical ID.
16
+ */
17
+ export declare function simCfnStackRetainedLogicalIds(properties: SimCfnStackRetainedLogicalIdsProperties): ReadonlySet<string>;
18
+ export {};
@@ -0,0 +1,30 @@
1
+ import { SimCloudFormationValidationError } from "../../error/sim-cloudformation.error.js";
2
+ import { SimCfnStackResourceLookup } from "../resource-map/sim-cfn-stack-resource-lookup.js";
3
+ /**
4
+ * The logical IDs a DeleteStack call asked to keep, resolved against the Stack.
5
+ *
6
+ * An identifier the Stack has no Resource for is refused, as CloudFormation
7
+ * refuses one. A caller who misspells the Resource they meant to keep would
8
+ * otherwise watch it go. CDK construct IDs resolve here as well as logical IDs,
9
+ * the same way `getResource(...)` takes either. A test written against a
10
+ * synthesized template then needs no hashed logical ID.
11
+ */
12
+ export function simCfnStackRetainedLogicalIds(properties) {
13
+ const { stackName, resources, retainResources = [] } = properties;
14
+ const lookup = new SimCfnStackResourceLookup(resources);
15
+ const retained = new Set();
16
+ const missing = [];
17
+ for (const identifier of retainResources) {
18
+ const resource = lookup.find(identifier);
19
+ if (resource === undefined) {
20
+ missing.push(identifier);
21
+ }
22
+ else {
23
+ retained.add(resource.logicalId);
24
+ }
25
+ }
26
+ if (missing.length > 0) {
27
+ throw new SimCloudFormationValidationError(`Invalid RetainResources: [${missing.join(", ")}] not found in Stack ${stackName}`);
28
+ }
29
+ return retained;
30
+ }
@@ -0,0 +1,9 @@
1
+ import type { SimCloudFormationStackName, SimCloudFormationStackStatus } from "../sim-cfn-stack.type.js";
2
+ /**
3
+ * Refuse an update while one is already running, or being rolled back.
4
+ *
5
+ * CloudFormation takes one update at a time. A second here would read the
6
+ * difference to apply from a Stack half way through the first, or from one
7
+ * being put back on the template it was deployed from.
8
+ */
9
+ export declare function assertSimCfnStackNotUpdating(stackName: SimCloudFormationStackName, status: SimCloudFormationStackStatus | undefined): void;
@@ -0,0 +1,14 @@
1
+ import { SimCloudFormationValidationError } from "../../error/sim-cloudformation.error.js";
2
+ /**
3
+ * Refuse an update while one is already running, or being rolled back.
4
+ *
5
+ * CloudFormation takes one update at a time. A second here would read the
6
+ * difference to apply from a Stack half way through the first, or from one
7
+ * being put back on the template it was deployed from.
8
+ */
9
+ export function assertSimCfnStackNotUpdating(stackName, status) {
10
+ if (status === "UPDATE_IN_PROGRESS" ||
11
+ status === "UPDATE_ROLLBACK_IN_PROGRESS") {
12
+ throw new SimCloudFormationValidationError(`Stack ${stackName} is in ${status} state and can not be updated`);
13
+ }
14
+ }
@@ -4,6 +4,14 @@ interface SimCfnStackUpdateLifecycleProperties {
4
4
  readonly background: BackgroundScheduler;
5
5
  readonly stackName: SimCloudFormationStackName;
6
6
  }
7
+ /**
8
+ * The two halves of one Stack update: applying the new template, and putting
9
+ * the Stack back the way it was if that fails.
10
+ */
11
+ export interface SimCfnStackUpdateWork {
12
+ readonly apply: () => Promise<void>;
13
+ readonly rollBack: () => Promise<void>;
14
+ }
7
15
  /**
8
16
  * Owns the simulated CloudFormation Stack update lifecycle state.
9
17
  *
@@ -21,7 +29,9 @@ export declare class SimCfnStackUpdateLifecycle {
21
29
  private readonly background;
22
30
  private readonly stackName;
23
31
  private completePromise;
32
+ private rollbackPromise;
24
33
  private updateError;
34
+ private rollbackError;
25
35
  constructor(properties: SimCfnStackUpdateLifecycleProperties);
26
36
  /**
27
37
  * The current Stack update status, or undefined if the Stack has never been
@@ -30,14 +40,13 @@ export declare class SimCfnStackUpdateLifecycle {
30
40
  get status(): SimCloudFormationStackStatus | undefined;
31
41
  /**
32
42
  * The error captured during a background update, if any.
33
- */
34
- get error(): Error | undefined;
35
- /**
36
- * Refuse an update while one is already running.
37
43
  *
38
- * CloudFormation takes one update at a time, and a second here would read
39
- * the difference to apply from a Stack half way through the first.
44
+ * A rollback that failed answers with its own failure, because that is what
45
+ * the Stack is left in UPDATE_ROLLBACK_FAILED by and what has to be dealt
46
+ * with before the Stack works again.
40
47
  */
48
+ get error(): Error | undefined;
49
+ /** Refuse an update while one is already running, or being rolled back. */
41
50
  assertNotUpdating(): void;
42
51
  /**
43
52
  * Start the Stack update lifecycle.
@@ -46,17 +55,19 @@ export declare class SimCfnStackUpdateLifecycle {
46
55
  * and deletion do. The Resource work continues in the background, so callers
47
56
  * that need the final state should use waitForComplete().
48
57
  *
49
- * An update that fails leaves the Stack in UPDATE_FAILED with the reason on
50
- * it. Sim CloudFormation does not roll the Stack back to the template it was
51
- * deployed from, so the Stack is left holding whatever the update managed.
58
+ * An update that fails is rolled back. The Stack moves to
59
+ * UPDATE_ROLLBACK_IN_PROGRESS with the reason on it, the rollback is
60
+ * scheduled as an operation of its own, and the Stack settles in
61
+ * UPDATE_ROLLBACK_COMPLETE, or in UPDATE_ROLLBACK_FAILED if the rollback
62
+ * could not finish either.
52
63
  */
53
- update(runUpdate: () => Promise<void>): Promise<void>;
64
+ update(work: SimCfnStackUpdateWork): Promise<void>;
54
65
  /**
55
- * Wait for the scheduled update to finish.
66
+ * Wait for the scheduled update to finish, rollback included.
56
67
  *
57
- * If the update failed, this rethrows the captured error, so a caller can see
58
- * what stopped the new template being applied. A Stack that was never updated
59
- * has nothing to wait for.
68
+ * If the update failed, this rethrows the captured error once the Stack has
69
+ * settled, so a caller can see what stopped the new template being applied.
70
+ * A Stack that was never updated has nothing to wait for.
60
71
  */
61
72
  waitForComplete(): Promise<void>;
62
73
  }