@kensio/yulin 1.21.2 → 1.21.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (634) hide show
  1. package/dist/service/athena/engine/sim-athena-column-types.d.ts +2 -0
  2. package/dist/service/athena/engine/sim-athena-column-types.js +4 -0
  3. package/dist/service/athena/engine/sim-athena-delimited-format.d.ts +7 -0
  4. package/dist/service/athena/engine/sim-athena-delimited-format.js +51 -0
  5. package/dist/service/athena/engine/sim-athena-engine-result.js +5 -0
  6. package/dist/service/athena/engine/sim-athena-engine-run.d.ts +22 -2
  7. package/dist/service/athena/engine/sim-athena-engine-run.js +21 -31
  8. package/dist/service/athena/engine/sim-athena-loaded-tables.d.ts +10 -0
  9. package/dist/service/athena/engine/sim-athena-loaded-tables.js +35 -0
  10. package/dist/service/athena/engine/sim-athena-parquet-module.d.ts +25 -0
  11. package/dist/service/athena/engine/sim-athena-parquet-module.js +39 -0
  12. package/dist/service/athena/engine/sim-athena-parquet-records.d.ts +13 -0
  13. package/dist/service/athena/engine/sim-athena-parquet-records.js +57 -0
  14. package/dist/service/athena/engine/sim-athena-query-engine.d.ts +23 -5
  15. package/dist/service/athena/engine/sim-athena-query-engine.js +31 -10
  16. package/dist/service/athena/engine/sim-athena-record-reader.d.ts +12 -6
  17. package/dist/service/athena/engine/sim-athena-record-reader.js +28 -53
  18. package/dist/service/athena/engine/sim-athena-sql-translation.d.ts +15 -9
  19. package/dist/service/athena/engine/sim-athena-sql-translation.js +25 -13
  20. package/dist/service/athena/engine/sim-athena-sqlite-values.d.ts +5 -0
  21. package/dist/service/athena/engine/sim-athena-sqlite-values.js +24 -1
  22. package/dist/service/athena/engine/sim-athena-table-objects.d.ts +7 -2
  23. package/dist/service/athena/engine/sim-athena-table-objects.js +8 -4
  24. package/dist/service/athena/engine/sim-athena-table-rows.js +4 -3
  25. package/dist/service/athena/engine/sim-athena-turn-down.d.ts +26 -0
  26. package/dist/service/athena/engine/sim-athena-turn-down.js +43 -0
  27. package/dist/service/athena/execution/sim-athena-query-completion.d.ts +3 -1
  28. package/dist/service/athena/execution/sim-athena-query-completion.js +7 -1
  29. package/dist/service/athena/index.d.ts +1 -1
  30. package/dist/service/athena/index.js +1 -1
  31. package/dist/service/athena/result/sim-athena-query-answer.d.ts +12 -0
  32. package/dist/service/athena/result/sim-athena-query-answer.js +26 -4
  33. package/dist/service/athena/sim-athena-answered-query.fixture.d.ts +2 -0
  34. package/dist/service/athena/sim-athena-answered-query.fixture.js +1 -0
  35. package/dist/service/athena/sim-athena-engine.fixture.d.ts +20 -0
  36. package/dist/service/athena/sim-athena-engine.fixture.js +34 -0
  37. package/dist/service/cloudformation/authorize/sim-cloudformation-authorization.d.ts +23 -0
  38. package/dist/service/cloudformation/authorize/sim-cloudformation-authorization.js +37 -0
  39. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.d.ts +2 -0
  40. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.js +1 -0
  41. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.d.ts +7 -0
  42. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.js +13 -1
  43. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.d.ts +6 -0
  44. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.js +7 -1
  45. package/dist/service/cloudformation/cdk/s3/bucket-deployment/notify/sim-cdk-bucket-deploy-notifier.d.ts +50 -0
  46. package/dist/service/cloudformation/cdk/s3/bucket-deployment/notify/sim-cdk-bucket-deploy-notifier.js +71 -0
  47. package/dist/service/cloudformation/cdk/s3/bucket-deployment/sim-cdk-bucket-deployment.js +6 -1
  48. package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.d.ts +5 -0
  49. package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.js +7 -0
  50. package/dist/service/cloudformation/changeset/sim-cfn-change-set-arn.d.ts +9 -0
  51. package/dist/service/cloudformation/changeset/sim-cfn-change-set-arn.js +12 -0
  52. package/dist/service/cloudformation/changeset/sim-cfn-change-set-changes.d.ts +42 -0
  53. package/dist/service/cloudformation/changeset/sim-cfn-change-set-changes.js +69 -0
  54. package/dist/service/cloudformation/changeset/sim-cfn-change-set-commands.d.ts +62 -0
  55. package/dist/service/cloudformation/changeset/sim-cfn-change-set-commands.js +89 -0
  56. package/dist/service/cloudformation/changeset/sim-cfn-change-set-execution.d.ts +31 -0
  57. package/dist/service/cloudformation/changeset/sim-cfn-change-set-execution.js +59 -0
  58. package/dist/service/cloudformation/changeset/sim-cfn-change-set-failure.d.ts +21 -0
  59. package/dist/service/cloudformation/changeset/sim-cfn-change-set-failure.js +19 -0
  60. package/dist/service/cloudformation/changeset/sim-cfn-change-set-input.d.ts +17 -0
  61. package/dist/service/cloudformation/changeset/sim-cfn-change-set-input.js +18 -0
  62. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack-id.d.ts +18 -0
  63. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack-id.js +13 -0
  64. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack.d.ts +45 -0
  65. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack.js +52 -0
  66. package/dist/service/cloudformation/changeset/sim-cfn-change-set-type.d.ts +12 -0
  67. package/dist/service/cloudformation/changeset/sim-cfn-change-set-type.js +21 -0
  68. package/dist/service/cloudformation/changeset/sim-cfn-change-set.d.ts +54 -0
  69. package/dist/service/cloudformation/changeset/sim-cfn-change-set.js +49 -0
  70. package/dist/service/cloudformation/changeset/sim-cfn-change-set.type.d.ts +35 -0
  71. package/dist/service/cloudformation/changeset/sim-cfn-change-set.type.js +1 -0
  72. package/dist/service/cloudformation/changeset/sim-cfn-change-sets.d.ts +53 -0
  73. package/dist/service/cloudformation/changeset/sim-cfn-change-sets.js +83 -0
  74. package/dist/service/cloudformation/command/create-change-set/create-change-set.command.d.ts +32 -0
  75. package/dist/service/cloudformation/command/create-change-set/create-change-set.command.js +1 -0
  76. package/dist/service/cloudformation/command/create-change-set/create-change-set.handler.d.ts +38 -0
  77. package/dist/service/cloudformation/command/create-change-set/create-change-set.handler.js +80 -0
  78. package/dist/service/cloudformation/command/create-stack/create-stack.handler.js +12 -12
  79. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.command.d.ts +22 -0
  80. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.command.js +1 -0
  81. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.handler.d.ts +27 -0
  82. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.handler.js +35 -0
  83. package/dist/service/cloudformation/command/delete-stack/delete-stack.command.d.ts +6 -0
  84. package/dist/service/cloudformation/command/delete-stack/delete-stack.handler.d.ts +11 -0
  85. package/dist/service/cloudformation/command/delete-stack/delete-stack.handler.js +15 -1
  86. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.command.d.ts +48 -0
  87. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.command.js +1 -0
  88. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.handler.d.ts +23 -0
  89. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.handler.js +52 -0
  90. package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.d.ts +3 -0
  91. package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.js +8 -4
  92. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-described-stacks.d.ts +18 -6
  93. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-described-stacks.js +22 -7
  94. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-stack-describer.js +1 -1
  95. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.command.d.ts +25 -0
  96. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.command.js +1 -0
  97. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.handler.d.ts +31 -0
  98. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.handler.js +37 -0
  99. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.command.d.ts +36 -0
  100. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.command.js +1 -0
  101. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.handler.d.ts +26 -0
  102. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.handler.js +39 -0
  103. package/dist/service/cloudformation/command/update-stack/update-stack-previous-values.d.ts +31 -0
  104. package/dist/service/cloudformation/command/update-stack/update-stack-previous-values.js +52 -0
  105. package/dist/service/cloudformation/command/update-stack/update-stack-template.d.ts +22 -0
  106. package/dist/service/cloudformation/command/update-stack/update-stack-template.js +34 -0
  107. package/dist/service/cloudformation/command/update-stack/update-stack.command.d.ts +17 -1
  108. package/dist/service/cloudformation/command/update-stack/update-stack.handler.js +8 -15
  109. package/dist/service/cloudformation/error/sim-cloudformation.error.d.ts +21 -0
  110. package/dist/service/cloudformation/error/sim-cloudformation.error.js +25 -0
  111. package/dist/service/cloudformation/parameters/pseudo/sim-cfn-pseudo-parameters.d.ts +7 -0
  112. package/dist/service/cloudformation/parameters/pseudo/sim-cfn-pseudo-parameters.js +3 -1
  113. package/dist/service/cloudformation/parameters/sim-cfn-parameters.d.ts +9 -0
  114. package/dist/service/cloudformation/parameters/sim-cfn-parameters.js +12 -0
  115. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-delete-operation.d.ts +4 -0
  116. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-delete-operation.js +10 -0
  117. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-retention.d.ts +44 -0
  118. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-retention.js +33 -0
  119. package/dist/service/cloudformation/resource/factory/sim-cfn-resource-factory.type.d.ts +9 -0
  120. package/dist/service/cloudformation/resource/sim-cfn-resource-record.d.ts +15 -0
  121. package/dist/service/cloudformation/resource/sim-cfn-resource-record.js +21 -1
  122. package/dist/service/cloudformation/resource/sim-cfn-resource.d.ts +9 -7
  123. package/dist/service/cloudformation/resource/sim-cfn-resource.js +11 -11
  124. package/dist/service/cloudformation/resource/sim-cfn-resource.type.d.ts +19 -0
  125. package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.d.ts +3 -3
  126. package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.js +3 -3
  127. package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.d.ts +4 -0
  128. package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.js +9 -0
  129. package/dist/service/cloudformation/resource/update/sim-cfn-resource-update-validator.d.ts +26 -0
  130. package/dist/service/cloudformation/resource/update/sim-cfn-resource-update-validator.js +55 -0
  131. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.d.ts +37 -0
  132. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.js +77 -0
  133. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.d.ts +51 -0
  134. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.js +10 -0
  135. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.d.ts +11 -0
  136. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.js +34 -0
  137. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.d.ts +21 -0
  138. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.js +31 -0
  139. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.d.ts +14 -0
  140. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.js +1 -0
  141. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.d.ts +26 -0
  142. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.js +58 -0
  143. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.d.ts +18 -0
  144. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.js +89 -0
  145. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.d.ts +15 -0
  146. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.js +65 -0
  147. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.d.ts +13 -0
  148. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.js +60 -0
  149. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.d.ts +13 -0
  150. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.js +50 -0
  151. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.d.ts +13 -0
  152. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.js +30 -0
  153. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.d.ts +26 -0
  154. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.js +44 -0
  155. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.d.ts +15 -0
  156. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.js +59 -0
  157. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.d.ts +11 -0
  158. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.js +43 -0
  159. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.d.ts +15 -0
  160. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.js +67 -0
  161. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.d.ts +26 -0
  162. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.js +61 -0
  163. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.d.ts +18 -0
  164. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.js +59 -0
  165. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api-template.factory.js +1 -1
  166. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.d.ts +4 -0
  167. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.js +12 -5
  168. package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api-template.factory.js +1 -1
  169. package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api.js +7 -3
  170. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-api-event.js +7 -3
  171. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.d.ts +26 -0
  172. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.js +88 -0
  173. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.d.ts +12 -0
  174. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.js +1 -0
  175. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-function-events.js +8 -5
  176. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-event.js +23 -1
  177. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.d.ts +9 -2
  178. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.js +5 -3
  179. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.d.ts +6 -1
  180. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.js +7 -1
  181. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.d.ts +19 -0
  182. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.js +69 -0
  183. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.d.ts +5 -0
  184. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.js +3 -1
  185. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.d.ts +8 -0
  186. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.js +8 -0
  187. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-url.js +1 -4
  188. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.d.ts +6 -4
  189. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.js +2 -4
  190. package/dist/service/cloudformation/sam/sim-cfn-sam-error.d.ts +31 -0
  191. package/dist/service/cloudformation/sam/sim-cfn-sam-error.js +17 -0
  192. package/dist/service/cloudformation/sam/sim-cfn-sam-expansion.js +11 -6
  193. package/dist/service/cloudformation/sdk/sim-cloudformation-sdk-command-router.js +20 -0
  194. package/dist/service/cloudformation/serve/sim-cloudformation-api.d.ts +4 -3
  195. package/dist/service/cloudformation/serve/sim-cloudformation-api.js +6 -3
  196. package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.d.ts +10 -0
  197. package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.js +94 -0
  198. package/dist/service/cloudformation/sim-cloudformation.d.ts +31 -0
  199. package/dist/service/cloudformation/sim-cloudformation.js +56 -9
  200. package/dist/service/cloudformation/stack/resource-map/sim-cfn-stack-resource-map.js +1 -0
  201. package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.d.ts +20 -0
  202. package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.js +23 -0
  203. package/dist/service/cloudformation/stack/sim-cfn-deployed-stack.type.d.ts +6 -0
  204. package/dist/service/cloudformation/stack/sim-cfn-stack-id.d.ts +30 -0
  205. package/dist/service/cloudformation/stack/sim-cfn-stack-id.js +24 -0
  206. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +51 -3
  207. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +84 -6
  208. package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts +28 -16
  209. package/dist/service/cloudformation/stack/sim-cfn-stack.js +59 -32
  210. package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +7 -1
  211. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.d.ts +7 -1
  212. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.js +3 -1
  213. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.d.ts +3 -0
  214. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.js +3 -0
  215. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.d.ts +3 -0
  216. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.js +2 -1
  217. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.d.ts +18 -0
  218. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.js +30 -0
  219. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.d.ts +9 -0
  220. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.js +14 -0
  221. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.d.ts +25 -14
  222. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.js +41 -24
  223. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.d.ts +16 -1
  224. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.js +27 -0
  225. package/dist/service/cloudformation/stack/update/sim-cfn-stack-updater.js +7 -1
  226. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.d.ts +12 -3
  227. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.js +29 -3
  228. package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.d.ts +28 -0
  229. package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.js +39 -0
  230. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.d.ts +25 -1
  231. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.js +43 -11
  232. package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.d.ts +7 -0
  233. package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.js +29 -3
  234. package/dist/service/cloudformation/template/sim-cfn-command-template.d.ts +40 -0
  235. package/dist/service/cloudformation/template/sim-cfn-command-template.js +45 -0
  236. package/dist/service/cloudformation/template/sim-cfn-template.d.ts +7 -0
  237. package/dist/service/cloudformation/template/sim-cfn-template.js +15 -1
  238. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts +2 -0
  239. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js +49 -0
  240. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js +1 -0
  241. package/dist/service/cloudfront/origin/s3/sim-cf-s3-origin-responses.js +1 -0
  242. package/dist/service/cognito/serve/page/sim-cognito-provider-page.js +1 -1
  243. package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.d.ts +5 -0
  244. package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.js +17 -0
  245. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.d.ts +5 -5
  246. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.js +24 -8
  247. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.d.ts +5 -0
  248. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.js +15 -0
  249. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-update-validator.d.ts +24 -0
  250. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-update-validator.js +38 -0
  251. package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.d.ts +11 -8
  252. package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.js +20 -8
  253. package/dist/service/dynamodb/command/query/sim-dynamodb-query.js +2 -0
  254. package/dist/service/dynamodb/command/query/sim-dynamodb-unsimulated-query-input.js +0 -1
  255. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.d.ts +14 -4
  256. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.js +16 -4
  257. package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.d.ts +17 -0
  258. package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.js +39 -0
  259. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.d.ts +28 -0
  260. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.js +50 -0
  261. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan.js +12 -5
  262. package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.d.ts +3 -3
  263. package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.js +3 -4
  264. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.d.ts +5 -16
  265. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.js +4 -21
  266. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.d.ts +15 -0
  267. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.js +18 -1
  268. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.d.ts +13 -0
  269. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.js +15 -0
  270. package/dist/service/dynamodb/table/sim-dynamodb-index-update.js +1 -2
  271. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.js +2 -0
  272. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.js +5 -3
  273. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.d.ts +21 -0
  274. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.js +37 -0
  275. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.js +6 -0
  276. package/dist/service/lambda/command/create-function/create-function.handler.d.ts +3 -0
  277. package/dist/service/lambda/command/create-function/create-function.handler.js +5 -1
  278. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.command.d.ts +2 -3
  279. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.handler.js +1 -0
  280. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts +6 -0
  281. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.js +10 -0
  282. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.js +2 -6
  283. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js +1 -0
  284. package/dist/service/lambda/command/function/sim-lambda-function-commands.d.ts +2 -0
  285. package/dist/service/lambda/command/function-url/function-url-cors-constraints.d.ts +25 -0
  286. package/dist/service/lambda/command/function-url/function-url-cors-constraints.js +49 -0
  287. package/dist/service/lambda/command/function-url/function-url-cors-input.d.ts +25 -0
  288. package/dist/service/lambda/command/function-url/function-url-cors-input.js +57 -0
  289. package/dist/service/lambda/command/function-url/function-url-input.d.ts +7 -0
  290. package/dist/service/lambda/command/function-url/function-url-input.js +9 -0
  291. package/dist/service/lambda/command/invoke/async/sim-lambda-async-invocation.js +10 -13
  292. package/dist/service/lambda/command/invoke/async/sim-lambda-async-outcome.js +2 -0
  293. package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.d.ts +13 -0
  294. package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.js +12 -0
  295. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.command.d.ts +2 -0
  296. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.handler.js +1 -0
  297. package/dist/service/lambda/destination/deliver/sim-lambda-destination-bus.js +1 -1
  298. package/dist/service/lambda/destination/deliver/sim-lambda-destination-function.js +8 -12
  299. package/dist/service/lambda/destination/deliver/sim-lambda-destination-queue.js +4 -3
  300. package/dist/service/lambda/destination/deliver/sim-lambda-destination-send.d.ts +2 -0
  301. package/dist/service/lambda/destination/deliver/sim-lambda-destination-topic.js +4 -3
  302. package/dist/service/lambda/destination/sim-aws-lambda-destinations.d.ts +4 -6
  303. package/dist/service/lambda/destination/sim-aws-lambda-destinations.js +6 -6
  304. package/dist/service/lambda/destination/sim-lambda-destination-targets.d.ts +3 -0
  305. package/dist/service/lambda/event-source/poll/kinesis/sim-lambda-kinesis-stream-delivery.js +4 -9
  306. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.js +4 -9
  307. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.d.ts +22 -3
  308. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.js +39 -9
  309. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.d.ts +7 -6
  310. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.js +14 -12
  311. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.d.ts +9 -15
  312. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.js +9 -16
  313. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.d.ts +10 -6
  314. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.js +22 -12
  315. package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.d.ts +23 -0
  316. package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.js +18 -0
  317. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.d.ts +12 -13
  318. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.js +24 -17
  319. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.d.ts +64 -0
  320. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.js +86 -0
  321. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts +6 -0
  322. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js +8 -1
  323. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.d.ts +6 -0
  324. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.js +7 -0
  325. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.d.ts +11 -1
  326. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.js +13 -0
  327. package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.d.ts +39 -0
  328. package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.js +46 -0
  329. package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.d.ts +56 -0
  330. package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.js +110 -0
  331. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.d.ts +5 -0
  332. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.js +7 -1
  333. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.d.ts +6 -0
  334. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.js +6 -0
  335. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.d.ts +6 -1
  336. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.js +8 -6
  337. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.d.ts +10 -8
  338. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.js +18 -1
  339. package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts +8 -2
  340. package/dist/service/lambda/function/code/sim-lambda-executable-code.js +2 -1
  341. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.d.ts +2 -11
  342. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.js +13 -39
  343. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.d.ts +7 -0
  344. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.js +13 -7
  345. package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.d.ts +23 -0
  346. package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.js +42 -0
  347. package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.d.ts +12 -4
  348. package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.js +15 -5
  349. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.d.ts +7 -0
  350. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.js +6 -2
  351. package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.d.ts +26 -0
  352. package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.js +84 -0
  353. package/dist/service/lambda/function/invoke/sim-lambda-invocation.d.ts +44 -0
  354. package/dist/service/lambda/function/invoke/sim-lambda-invocation.js +44 -0
  355. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.d.ts +6 -0
  356. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.js +1 -2
  357. package/dist/service/lambda/function/invoke/sim-lambda-process-output.d.ts +6 -1
  358. package/dist/service/lambda/function/invoke/sim-lambda-process-output.js +19 -6
  359. package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.d.ts +15 -0
  360. package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.js +18 -0
  361. package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.d.ts +12 -0
  362. package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.js +28 -0
  363. package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.d.ts +46 -0
  364. package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.js +104 -0
  365. package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.d.ts +24 -0
  366. package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.js +27 -0
  367. package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.d.ts +43 -0
  368. package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.js +112 -0
  369. package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.d.ts +57 -0
  370. package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.js +79 -0
  371. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.d.ts +10 -0
  372. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.js +15 -0
  373. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.d.ts +11 -0
  374. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.js +24 -0
  375. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.d.ts +50 -0
  376. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.js +43 -0
  377. package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts +17 -0
  378. package/dist/service/lambda/function/logging/sim-lambda-function-logging.js +12 -1
  379. package/dist/service/lambda/function/logging/sim-lambda-output.d.ts +56 -0
  380. package/dist/service/lambda/function/logging/sim-lambda-output.js +62 -0
  381. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.d.ts +8 -0
  382. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.js +27 -1
  383. package/dist/service/lambda/function/sim-lambda-function.d.ts +1 -1
  384. package/dist/service/lambda/function/sim-lambda-function.js +11 -9
  385. package/dist/service/lambda/function/sim-lambda-function.type.d.ts +15 -0
  386. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.d.ts +16 -0
  387. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.d.ts +22 -0
  388. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.js +17 -0
  389. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.js +1 -0
  390. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.d.ts +2 -0
  391. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.js +2 -1
  392. package/dist/service/lambda/function/url/sim-lambda-function-url-store.d.ts +2 -0
  393. package/dist/service/lambda/function/url/sim-lambda-function-url.d.ts +16 -0
  394. package/dist/service/lambda/function/url/sim-lambda-function-url.js +16 -1
  395. package/dist/service/lambda/index.d.ts +1 -0
  396. package/dist/service/lambda/index.js +1 -0
  397. package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.d.ts +50 -0
  398. package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.js +96 -0
  399. package/dist/service/lambda/serve/sim-lambda-controller.d.ts +14 -0
  400. package/dist/service/lambda/serve/sim-lambda-controller.js +27 -0
  401. package/dist/service/lambda/sim-lambda-commands.d.ts +10 -0
  402. package/dist/service/lambda/sim-lambda-commands.js +11 -0
  403. package/dist/service/lambda/sim-lambda.d.ts +12 -0
  404. package/dist/service/lambda/sim-lambda.js +13 -0
  405. package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.d.ts +67 -0
  406. package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.js +69 -0
  407. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.d.ts +4 -31
  408. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.js +7 -6
  409. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.d.ts +5 -0
  410. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.js +8 -4
  411. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.d.ts +1 -14
  412. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.js +16 -8
  413. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.d.ts +41 -0
  414. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.js +1 -0
  415. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.d.ts +14 -0
  416. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.js +32 -2
  417. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.d.ts +33 -0
  418. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.js +48 -0
  419. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.d.ts +16 -0
  420. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.js +44 -0
  421. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.d.ts +8 -0
  422. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.js +27 -0
  423. package/dist/service/s3/bucket/notification/sim-s3-notification-event.d.ts +1 -1
  424. package/dist/service/s3/bucket/notification/sim-s3-notification-event.js +5 -0
  425. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-events.js +0 -3
  426. package/dist/service/s3/bucket/sim-s3-bucket-access.d.ts +3 -0
  427. package/dist/service/s3/bucket/sim-s3-bucket-access.js +6 -2
  428. package/dist/service/s3/bucket/sim-s3-bucket-configuration.d.ts +84 -0
  429. package/dist/service/s3/bucket/sim-s3-bucket-configuration.js +115 -0
  430. package/dist/service/s3/bucket/sim-s3-bucket-objects.d.ts +10 -0
  431. package/dist/service/s3/bucket/sim-s3-bucket-objects.js +18 -0
  432. package/dist/service/s3/bucket/sim-s3-bucket-properties.d.ts +41 -0
  433. package/dist/service/s3/bucket/sim-s3-bucket-properties.js +1 -0
  434. package/dist/service/s3/bucket/sim-s3-bucket.d.ts +11 -83
  435. package/dist/service/s3/bucket/sim-s3-bucket.js +14 -83
  436. package/dist/service/s3/bucket/sim-s3-public-read.fixture.d.ts +6 -0
  437. package/dist/service/s3/bucket/sim-s3-public-read.fixture.js +20 -6
  438. package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.d.ts +58 -0
  439. package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.js +73 -0
  440. package/dist/service/s3/bucket/versioning/sim-s3-object-version.d.ts +19 -1
  441. package/dist/service/s3/bucket/versioning/sim-s3-object-version.js +20 -0
  442. package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.d.ts +21 -0
  443. package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.js +44 -0
  444. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.js +6 -0
  445. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.d.ts +5 -4
  446. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.js +12 -5
  447. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.d.ts +21 -0
  448. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.js +30 -0
  449. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js +1 -0
  450. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.d.ts +14 -1
  451. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.js +41 -16
  452. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.d.ts +3 -5
  453. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.js +7 -10
  454. package/dist/service/s3/command/authorize/sim-s3-authorize-action.d.ts +6 -1
  455. package/dist/service/s3/command/authorize/sim-s3-authorize-action.js +5 -0
  456. package/dist/service/s3/command/copy-object/copy-object-builder.d.ts +10 -1
  457. package/dist/service/s3/command/copy-object/copy-object-builder.js +17 -1
  458. package/dist/service/s3/command/copy-object/copy-object.command.d.ts +11 -1
  459. package/dist/service/s3/command/copy-object/copy-object.handler.js +2 -1
  460. package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.command.d.ts +5 -1
  461. package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.handler.js +7 -0
  462. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.d.ts +19 -0
  463. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.js +1 -0
  464. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.d.ts +30 -0
  465. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.js +38 -0
  466. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.d.ts +23 -0
  467. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.js +1 -0
  468. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.d.ts +22 -0
  469. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.js +42 -0
  470. package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.d.ts +29 -0
  471. package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.js +49 -0
  472. package/dist/service/s3/command/encryption/sim-s3-encryption-commands.d.ts +22 -0
  473. package/dist/service/s3/command/encryption/sim-s3-encryption-commands.js +30 -0
  474. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.d.ts +24 -0
  475. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.js +1 -0
  476. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.d.ts +31 -0
  477. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.js +39 -0
  478. package/dist/service/s3/command/get-object/get-object-authorizer.d.ts +11 -8
  479. package/dist/service/s3/command/get-object/get-object-authorizer.js +26 -34
  480. package/dist/service/s3/command/get-object/get-object-loader.d.ts +7 -3
  481. package/dist/service/s3/command/get-object/get-object-loader.js +9 -4
  482. package/dist/service/s3/command/get-object/get-object.command.d.ts +2 -1
  483. package/dist/service/s3/command/get-object/get-object.handler.d.ts +4 -0
  484. package/dist/service/s3/command/get-object/get-object.handler.js +13 -7
  485. package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.d.ts +29 -0
  486. package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.js +1 -0
  487. package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.d.ts +21 -0
  488. package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.js +33 -0
  489. package/dist/service/s3/command/head-object/head-object-loader.js +2 -0
  490. package/dist/service/s3/command/head-object/head-object.command.d.ts +2 -1
  491. package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-rules-validation.js +18 -0
  492. package/dist/service/s3/command/list-multipart-uploads/list-multipart-uploads.handler.js +1 -2
  493. package/dist/service/s3/command/list-object-versions/list-object-versions-summaries.js +1 -2
  494. package/dist/service/s3/command/list-objects/list-objects-page-builder.d.ts +5 -0
  495. package/dist/service/s3/command/list-objects/list-objects-page-builder.js +11 -6
  496. package/dist/service/s3/command/list-objects/list-objects.command.d.ts +5 -1
  497. package/dist/service/s3/command/list-objects/list-objects.handler.js +5 -0
  498. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.d.ts +6 -0
  499. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.js +11 -5
  500. package/dist/service/s3/command/list-objects-v2/list-objects-v2.command.d.ts +5 -1
  501. package/dist/service/s3/command/list-objects-v2/list-objects-v2.handler.js +5 -0
  502. package/dist/service/s3/command/list-parts/list-parts.handler.js +3 -3
  503. package/dist/service/s3/command/multipart/sim-s3-multipart-access.js +1 -1
  504. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.d.ts +21 -0
  505. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.js +1 -0
  506. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.d.ts +31 -0
  507. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.js +41 -0
  508. package/dist/service/s3/command/put-object/put-object-builder.d.ts +5 -1
  509. package/dist/service/s3/command/put-object/put-object-builder.js +10 -1
  510. package/dist/service/s3/command/put-object/put-object.command.d.ts +5 -1
  511. package/dist/service/s3/command/put-object/put-object.handler.js +2 -1
  512. package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.d.ts +37 -0
  513. package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.js +1 -0
  514. package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.d.ts +22 -0
  515. package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.js +46 -0
  516. package/dist/service/s3/command/sim-s3-command.types.d.ts +6 -0
  517. package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.d.ts +61 -0
  518. package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.js +49 -0
  519. package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.d.ts +30 -0
  520. package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.js +27 -0
  521. package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.d.ts +26 -0
  522. package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.js +34 -0
  523. package/dist/service/s3/error/sim-s3-upload.error.d.ts +41 -0
  524. package/dist/service/s3/error/sim-s3-upload.error.js +47 -0
  525. package/dist/service/s3/error/sim-s3.error.d.ts +22 -34
  526. package/dist/service/s3/error/sim-s3.error.js +26 -40
  527. package/dist/service/s3/mount/sim-s3-mount.type.d.ts +10 -0
  528. package/dist/service/s3/notification/event/sim-s3-event-records.d.ts +3 -2
  529. package/dist/service/s3/notification/event/sim-s3-event-records.js +5 -3
  530. package/dist/service/s3/notification/event/sim-s3-object-event-builder.d.ts +33 -8
  531. package/dist/service/s3/notification/event/sim-s3-object-event-builder.js +23 -9
  532. package/dist/service/s3/notification/sim-s3-object-notifier.d.ts +5 -1
  533. package/dist/service/s3/notification/sim-s3-object-notifier.js +6 -0
  534. package/dist/service/s3/object/s3-key-encoding.d.ts +12 -0
  535. package/dist/service/s3/object/s3-key-encoding.js +14 -0
  536. package/dist/service/s3/object/s3-listing-encoding.d.ts +42 -0
  537. package/dist/service/s3/object/s3-listing-encoding.js +75 -0
  538. package/dist/service/s3/object/s3-object-response-headers.d.ts +40 -0
  539. package/dist/service/s3/object/s3-object-response-headers.js +49 -2
  540. package/dist/service/s3/object/s3-object-storage-report.d.ts +19 -0
  541. package/dist/service/s3/object/s3-object-storage-report.js +18 -0
  542. package/dist/service/s3/object/s3-object-summary.d.ts +2 -10
  543. package/dist/service/s3/object/s3-object-summary.js +1 -10
  544. package/dist/service/s3/object/s3-object-tags.d.ts +61 -0
  545. package/dist/service/s3/object/s3-object-tags.js +77 -0
  546. package/dist/service/s3/object/s3-object.d.ts +49 -0
  547. package/dist/service/s3/object/s3-object.js +52 -1
  548. package/dist/service/s3/object/s3-server-side-encryption.d.ts +30 -0
  549. package/dist/service/s3/object/s3-server-side-encryption.js +42 -0
  550. package/dist/service/s3/object/s3-storage-class.d.ts +45 -0
  551. package/dist/service/s3/object/s3-storage-class.js +67 -0
  552. package/dist/service/s3/object/s3-write-metadata.d.ts +17 -3
  553. package/dist/service/s3/object/s3-write-metadata.js +43 -0
  554. package/dist/service/s3/object/s3-write-storage.d.ts +27 -0
  555. package/dist/service/s3/object/s3-write-storage.js +21 -0
  556. package/dist/service/s3/object/s3-write-tagging.d.ts +24 -0
  557. package/dist/service/s3/object/s3-write-tagging.js +19 -0
  558. package/dist/service/s3/sdk/sim-s3-sdk-bucket-routes.js +12 -0
  559. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +2 -0
  560. package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.d.ts +9 -0
  561. package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.js +23 -0
  562. package/dist/service/s3/serve/api/sim-s3-api-bucket-routes.js +22 -0
  563. package/dist/service/s3/serve/api/sim-s3-api-configuration-output.d.ts +4 -0
  564. package/dist/service/s3/serve/api/sim-s3-api-configuration-output.js +10 -0
  565. package/dist/service/s3/serve/api/sim-s3-api-encryption-read.d.ts +7 -0
  566. package/dist/service/s3/serve/api/sim-s3-api-encryption-read.js +30 -0
  567. package/dist/service/s3/serve/api/sim-s3-api-head-output.d.ts +4 -2
  568. package/dist/service/s3/serve/api/sim-s3-api-head-output.js +8 -2
  569. package/dist/service/s3/serve/api/sim-s3-api-input.d.ts +0 -6
  570. package/dist/service/s3/serve/api/sim-s3-api-input.js +2 -13
  571. package/dist/service/s3/serve/api/sim-s3-api-listing.d.ts +5 -0
  572. package/dist/service/s3/serve/api/sim-s3-api-listing.js +5 -0
  573. package/dist/service/s3/serve/api/sim-s3-api-object-input.d.ts +16 -0
  574. package/dist/service/s3/serve/api/sim-s3-api-object-input.js +34 -7
  575. package/dist/service/s3/serve/api/sim-s3-api-object-output.d.ts +18 -1
  576. package/dist/service/s3/serve/api/sim-s3-api-object-output.js +21 -2
  577. package/dist/service/s3/serve/api/sim-s3-api-object-routes.js +22 -1
  578. package/dist/service/s3/serve/api/sim-s3-api-output.d.ts +5 -1
  579. package/dist/service/s3/serve/api/sim-s3-api-output.js +16 -5
  580. package/dist/service/s3/serve/api/sim-s3-api-request.d.ts +6 -5
  581. package/dist/service/s3/serve/api/sim-s3-api-request.js +55 -11
  582. package/dist/service/s3/serve/api/sim-s3-api-routes.js +2 -2
  583. package/dist/service/s3/serve/api/sim-s3-api-tagging-read.d.ts +9 -0
  584. package/dist/service/s3/serve/api/sim-s3-api-tagging-read.js +14 -0
  585. package/dist/service/s3/serve/api/sim-s3-api.d.ts +7 -1
  586. package/dist/service/s3/serve/api/sim-s3-api.js +7 -1
  587. package/dist/service/s3/serve/sim-s3-rest-controller.d.ts +1 -5
  588. package/dist/service/s3/serve/sim-s3-rest-controller.js +3 -17
  589. package/dist/service/s3/serve/sim-s3-rest-object-reader.d.ts +3 -0
  590. package/dist/service/s3/serve/sim-s3-rest-object-reader.js +8 -1
  591. package/dist/service/s3/serve/sim-s3-rest-upload.d.ts +20 -0
  592. package/dist/service/s3/serve/sim-s3-rest-upload.js +30 -0
  593. package/dist/service/s3/serve/website/sim-s3-website-object-loader.js +1 -0
  594. package/dist/service/s3/serve/website/sim-s3-website-object.d.ts +2 -0
  595. package/dist/service/s3/serve/website/sim-s3-website-object.js +3 -0
  596. package/dist/service/s3/sim-s3-commands.d.ts +4 -0
  597. package/dist/service/s3/sim-s3-commands.js +6 -0
  598. package/dist/service/s3/sim-s3-operations.d.ts +11 -4
  599. package/dist/service/s3/sim-s3-operations.js +17 -4
  600. package/dist/service/s3/sim-s3-tagging-operations.d.ts +21 -0
  601. package/dist/service/s3/sim-s3-tagging-operations.js +25 -0
  602. package/dist/service/s3/sim-s3.d.ts +12 -0
  603. package/dist/service/s3/sim-s3.js +13 -0
  604. package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.d.ts +34 -0
  605. package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.js +34 -0
  606. package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.d.ts +9 -0
  607. package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.js +24 -0
  608. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.d.ts +5 -4
  609. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.js +5 -3
  610. package/dist/service/s3/upload/sim-s3-completed-upload.js +5 -1
  611. package/dist/service/s3/upload/sim-s3-multipart-upload.d.ts +18 -0
  612. package/dist/service/s3/upload/sim-s3-multipart-upload.js +8 -0
  613. package/dist/service/s3/upload/sim-s3-multipart-uploads.d.ts +6 -0
  614. package/dist/service/s3/upload/sim-s3-multipart-uploads.js +5 -0
  615. package/dist/util/background/background-clock-waits.d.ts +52 -0
  616. package/dist/util/background/background-clock-waits.js +76 -0
  617. package/dist/util/background/background-jitter.js +1 -0
  618. package/dist/util/background/background-pending-tasks.d.ts +55 -0
  619. package/dist/util/background/background-pending-tasks.js +117 -0
  620. package/dist/util/background/background-settled-tasks.d.ts +4 -1
  621. package/dist/util/background/background-settled-tasks.js +4 -1
  622. package/dist/util/background/background.d.ts +43 -0
  623. package/dist/util/background/background.js +27 -19
  624. package/dist/util/background/non-deterministic-background.d.ts +12 -0
  625. package/dist/util/background/non-deterministic-background.js +24 -20
  626. package/dist/util/clock/sim-clock-control.js +23 -2
  627. package/docs/services/apigateway/README.md +3 -1
  628. package/docs/services/athena/README.md +126 -3
  629. package/docs/services/cloudformation/README.md +775 -65
  630. package/docs/services/cognito/README.md +5 -0
  631. package/docs/services/dynamodb/README.md +86 -11
  632. package/docs/services/lambda/README.md +603 -39
  633. package/docs/services/s3/README.md +688 -57
  634. package/package.json +8 -2
@@ -0,0 +1,89 @@
1
+ import { CreateChangeSetCommandHandler } from "../command/create-change-set/create-change-set.handler.js";
2
+ import { DescribeChangeSetCommandHandler } from "../command/describe-change-set/describe-change-set.handler.js";
3
+ import { ExecuteChangeSetCommandHandler } from "../command/execute-change-set/execute-change-set.handler.js";
4
+ import { DeleteChangeSetCommandHandler } from "../command/delete-change-set/delete-change-set.handler.js";
5
+ import { ListChangeSetsCommandHandler } from "../command/list-change-sets/list-change-sets.handler.js";
6
+ import { SimCfnChangeSets } from "./sim-cfn-change-sets.js";
7
+ /**
8
+ * The change set half of simulated CloudFormation's SDK surface.
9
+ *
10
+ * The five change set commands share one registry of held change sets and the
11
+ * same Stack map every other command reads, so they are assembled once here
12
+ * rather than in SimCloudFormation alongside the Stack commands.
13
+ *
14
+ * Authorization happens here rather than in SimCloudFormation, because three of
15
+ * the five commands can name a change set by its ARN alone. The Stack such a
16
+ * request operates on is the one the change set belongs to, and only this
17
+ * registry knows which that is.
18
+ */
19
+ export class SimCfnChangeSetCommands {
20
+ properties;
21
+ changeSets = new SimCfnChangeSets();
22
+ constructor(properties) {
23
+ this.properties = properties;
24
+ }
25
+ /** Work out what a template would change about a Stack, and hold it. */
26
+ async create(command, caller) {
27
+ this.properties.authorization.createChangeSet(command.input.StackName, caller);
28
+ return await new CreateChangeSetCommandHandler({
29
+ ...this.properties,
30
+ changeSets: this.changeSets,
31
+ caller,
32
+ }).handle(command);
33
+ }
34
+ /** Report what a held change set would do to its Stack. */
35
+ async describe(command, caller) {
36
+ this.properties.authorization.describeChangeSet(this.stackNameFor(command.input), caller);
37
+ return await new DescribeChangeSetCommandHandler({
38
+ changeSets: this.changeSets,
39
+ background: this.properties.background,
40
+ }).handle(command);
41
+ }
42
+ /** Apply what a change set describes to its Stack. */
43
+ async execute(command, caller) {
44
+ this.properties.authorization.executeChangeSet(this.stackNameFor(command.input), caller);
45
+ return await new ExecuteChangeSetCommandHandler({
46
+ stacks: this.properties.stacks,
47
+ changeSets: this.changeSets,
48
+ background: this.properties.background,
49
+ caller,
50
+ }).handle(command);
51
+ }
52
+ /** Take a change set away without executing it. */
53
+ async delete(command, caller) {
54
+ this.properties.authorization.deleteChangeSet(this.stackNameFor(command.input), caller);
55
+ return await new DeleteChangeSetCommandHandler({
56
+ changeSets: this.changeSets,
57
+ background: this.properties.background,
58
+ }).handle(command);
59
+ }
60
+ /** List the change sets held against one Stack. */
61
+ async list(command, caller) {
62
+ this.properties.authorization.listChangeSets(command.input.StackName, caller);
63
+ return await new ListChangeSetsCommandHandler({
64
+ changeSets: this.changeSets,
65
+ background: this.properties.background,
66
+ }).handle(command);
67
+ }
68
+ /**
69
+ * The Stack a request naming one change set operates on.
70
+ *
71
+ * A request carrying the change set ARN alone leaves out the Stack name, and
72
+ * the change set it names knows which Stack it belongs to. Authorizing on
73
+ * what the request said would ask about every Stack in the scope, so a
74
+ * caller allowed one Stack would be refused a change set against it.
75
+ *
76
+ * A change set the registry does not hold falls back to what the request
77
+ * said. The handler refuses it, and refusing an unauthorized caller first is
78
+ * what keeps that refusal from saying which change sets exist.
79
+ */
80
+ stackNameFor(input) {
81
+ if (input.ChangeSetName === undefined) {
82
+ return input.StackName;
83
+ }
84
+ return (this.changeSets.find({
85
+ changeSetName: input.ChangeSetName,
86
+ stackName: input.StackName,
87
+ })?.stackName ?? input.StackName);
88
+ }
89
+ }
@@ -0,0 +1,31 @@
1
+ import type { BackgroundScheduler } from "../../../util/background/background.js";
2
+ import type { SimAwsCaller } from "../../aws/caller/sim-aws-caller.js";
3
+ import type { SimCfnStack } from "../stack/sim-cfn-stack.js";
4
+ import type { SimCfnChangeSet } from "./sim-cfn-change-set.js";
5
+ import { type SimCfnChangeSets } from "./sim-cfn-change-sets.js";
6
+ interface SimCfnChangeSetExecutionProperties {
7
+ readonly changeSet: SimCfnChangeSet;
8
+ readonly stack: SimCfnStack;
9
+ readonly changeSets: SimCfnChangeSets;
10
+ readonly background: BackgroundScheduler;
11
+ readonly caller?: SimAwsCaller | undefined;
12
+ }
13
+ /**
14
+ * Start the Stack operation a change set describes.
15
+ *
16
+ * A `CREATE` change set deploys the Stack it brought into being, and an
17
+ * `UPDATE` change set applies its template to the Stack it was worked out
18
+ * against. Either way the work is scheduled in the background, so this returns
19
+ * once the operation has started.
20
+ *
21
+ * A Stack that has moved on since the change set was worked out leaves the
22
+ * change set obsolete, which is what CloudFormation calls a change set whose
23
+ * Stack was already updated. Executing it would apply a difference nobody has
24
+ * seen, because what it reports was worked out against the template the Stack
25
+ * held then.
26
+ *
27
+ * Every other executable change set against the Stack becomes obsolete for the
28
+ * same reason once this one has been applied.
29
+ */
30
+ export declare function runSimCfnChangeSet(properties: SimCfnChangeSetExecutionProperties): Promise<void>;
31
+ export {};
@@ -0,0 +1,59 @@
1
+ import { simCfnStackTemplateChanged } from "../stack/update/sim-cfn-stack-template-changes.js";
2
+ import { simCfnChangeSetNotExecutable, } from "./sim-cfn-change-sets.js";
3
+ /**
4
+ * Start the Stack operation a change set describes.
5
+ *
6
+ * A `CREATE` change set deploys the Stack it brought into being, and an
7
+ * `UPDATE` change set applies its template to the Stack it was worked out
8
+ * against. Either way the work is scheduled in the background, so this returns
9
+ * once the operation has started.
10
+ *
11
+ * A Stack that has moved on since the change set was worked out leaves the
12
+ * change set obsolete, which is what CloudFormation calls a change set whose
13
+ * Stack was already updated. Executing it would apply a difference nobody has
14
+ * seen, because what it reports was worked out against the template the Stack
15
+ * held then.
16
+ *
17
+ * Every other executable change set against the Stack becomes obsolete for the
18
+ * same reason once this one has been applied.
19
+ */
20
+ export async function runSimCfnChangeSet(properties) {
21
+ const { changeSet, stack, changeSets, background, caller } = properties;
22
+ if (simCfnStackTemplateChanged(changeSet.plannedFrom, stack.currentTemplate)) {
23
+ changeSet.executionStatus = "OBSOLETE";
24
+ throw simCfnChangeSetNotExecutable(changeSet);
25
+ }
26
+ changeSet.executionStatus = "EXECUTE_IN_PROGRESS";
27
+ try {
28
+ await (changeSet.type === "CREATE"
29
+ ? stack.deploy()
30
+ : stack.update(changeSet.template, { caller }));
31
+ }
32
+ catch (error) {
33
+ changeSet.executionStatus = "EXECUTE_FAILED";
34
+ throw error;
35
+ }
36
+ changeSets.markOthersObsolete(changeSet);
37
+ settleExecution(changeSet, stack, background);
38
+ }
39
+ /**
40
+ * Record how the Stack operation went, once it has finished in the background.
41
+ *
42
+ * The failure itself belongs to the Stack, which holds it as a failed status
43
+ * and rethrows it to whoever waits for the operation. This only reads which way
44
+ * it went, so a change set describes its own execution as well as the Stack
45
+ * describes the deployment or update behind it.
46
+ */
47
+ function settleExecution(changeSet, stack, background) {
48
+ background.schedule(async () => {
49
+ try {
50
+ await (changeSet.type === "CREATE"
51
+ ? stack.waitForDeployComplete()
52
+ : stack.waitForUpdateComplete());
53
+ changeSet.executionStatus = "EXECUTE_COMPLETE";
54
+ }
55
+ catch {
56
+ changeSet.executionStatus = "EXECUTE_FAILED";
57
+ }
58
+ });
59
+ }
@@ -0,0 +1,21 @@
1
+ import type { SimCfnStack } from "../stack/sim-cfn-stack.js";
2
+ import type { SimCfnTemplate } from "../template/sim-cfn-template.js";
3
+ import type { SimCfnChangeSetType } from "./sim-cfn-change-set.type.js";
4
+ interface SimCfnChangeSetFailureProperties {
5
+ readonly stack: SimCfnStack;
6
+ readonly type: SimCfnChangeSetType;
7
+ readonly template: SimCfnTemplate;
8
+ readonly changeCount: number;
9
+ }
10
+ /**
11
+ * Why a change set failed, for one that would change nothing.
12
+ *
13
+ * Everything else in the template counts as well as the Resources, the same way
14
+ * it does for an update, because a change set that only moves an Output still
15
+ * has something to execute.
16
+ *
17
+ * A `CREATE` change set never fails this way. The Stack it was made for holds
18
+ * no Resource, so there is always something for it to do.
19
+ */
20
+ export declare function simCfnChangeSetFailure(properties: SimCfnChangeSetFailureProperties): string | undefined;
21
+ export {};
@@ -0,0 +1,19 @@
1
+ import { simCfnStackTemplateChanged } from "../stack/update/sim-cfn-stack-template-changes.js";
2
+ import { simCfnChangeSetNoChangesMessage } from "./sim-cfn-change-set-type.js";
3
+ /**
4
+ * Why a change set failed, for one that would change nothing.
5
+ *
6
+ * Everything else in the template counts as well as the Resources, the same way
7
+ * it does for an update, because a change set that only moves an Output still
8
+ * has something to execute.
9
+ *
10
+ * A `CREATE` change set never fails this way. The Stack it was made for holds
11
+ * no Resource, so there is always something for it to do.
12
+ */
13
+ export function simCfnChangeSetFailure(properties) {
14
+ const { stack, type, template, changeCount } = properties;
15
+ const noChanges = type === "UPDATE" &&
16
+ changeCount === 0 &&
17
+ !simCfnStackTemplateChanged(stack.currentTemplate, template);
18
+ return noChanges ? simCfnChangeSetNoChangesMessage : undefined;
19
+ }
@@ -0,0 +1,17 @@
1
+ import type { SimCloudFormationStackName } from "../stack/sim-cfn-stack.type.js";
2
+ import type { SimCreateChangeSetCommandInput } from "../command/create-change-set/create-change-set.command.js";
3
+ import type { SimCfnChangeSetName, SimCfnChangeSetType } from "./sim-cfn-change-set.type.js";
4
+ /**
5
+ * What a CreateChangeSet input says, once it has been read.
6
+ */
7
+ export interface SimCfnChangeSetRequest {
8
+ readonly stackName: SimCloudFormationStackName;
9
+ readonly changeSetName: SimCfnChangeSetName;
10
+ readonly type: SimCfnChangeSetType;
11
+ readonly templateBody: string;
12
+ }
13
+ /**
14
+ * Read a CreateChangeSet input, refusing one that leaves out what a change set
15
+ * cannot be built without.
16
+ */
17
+ export declare function simCfnChangeSetRequest(input: SimCreateChangeSetCommandInput): SimCfnChangeSetRequest;
@@ -0,0 +1,18 @@
1
+ import { assertDefined } from "../../../util/type-guard/defined.js";
2
+ import { simCfnChangeSetType } from "./sim-cfn-change-set-type.js";
3
+ /**
4
+ * Read a CreateChangeSet input, refusing one that leaves out what a change set
5
+ * cannot be built without.
6
+ */
7
+ export function simCfnChangeSetRequest(input) {
8
+ const { StackName, ChangeSetName, TemplateBody } = input;
9
+ assertDefined(StackName, "CreateChangeSetCommand.input.StackName");
10
+ assertDefined(ChangeSetName, "CreateChangeSetCommand.input.ChangeSetName");
11
+ assertDefined(TemplateBody, "CreateChangeSetCommand.input.TemplateBody");
12
+ return {
13
+ stackName: StackName,
14
+ changeSetName: ChangeSetName,
15
+ type: simCfnChangeSetType(input.ChangeSetType),
16
+ templateBody: TemplateBody,
17
+ };
18
+ }
@@ -0,0 +1,18 @@
1
+ import type { SimAwsAccountRegionScope } from "../../aws/sim-aws-account-region-scope.js";
2
+ import type { SimCfnStack } from "../stack/sim-cfn-stack.js";
3
+ import type { SimCloudFormationStackName } from "../stack/sim-cfn-stack.type.js";
4
+ import { type SimCfnStackId } from "../stack/sim-cfn-stack-id.js";
5
+ interface SimCfnChangeSetStackIdProperties {
6
+ readonly accountRegionScope: SimAwsAccountRegionScope;
7
+ readonly stacks: ReadonlyMap<SimCloudFormationStackName, SimCfnStack>;
8
+ readonly stackName: SimCloudFormationStackName;
9
+ }
10
+ /**
11
+ * The Stack ID a change set's template resolves `AWS::StackId` to.
12
+ *
13
+ * An `UPDATE` change set is held against a Stack that already has one. A
14
+ * `CREATE` change set brings the Stack into being, and this is the ID that
15
+ * Stack keeps for the rest of its life.
16
+ */
17
+ export declare function simCfnChangeSetStackId(properties: SimCfnChangeSetStackIdProperties): SimCfnStackId;
18
+ export {};
@@ -0,0 +1,13 @@
1
+ import { makeSimCfnStackId, } from "../stack/sim-cfn-stack-id.js";
2
+ /**
3
+ * The Stack ID a change set's template resolves `AWS::StackId` to.
4
+ *
5
+ * An `UPDATE` change set is held against a Stack that already has one. A
6
+ * `CREATE` change set brings the Stack into being, and this is the ID that
7
+ * Stack keeps for the rest of its life.
8
+ */
9
+ export function simCfnChangeSetStackId(properties) {
10
+ const { accountRegionScope, stacks, stackName } = properties;
11
+ return (stacks.get(stackName)?.stackId ??
12
+ makeSimCfnStackId({ accountRegionScope, stackName }));
13
+ }
@@ -0,0 +1,45 @@
1
+ import type { BackgroundCompleter, BackgroundScheduler } from "../../../util/background/background.js";
2
+ import type { SimAws } from "../../aws/sim-aws.js";
3
+ import type { SimAwsAccountRegionScope } from "../../aws/sim-aws-account-region-scope.js";
4
+ import type { SimAwsCaller } from "../../aws/caller/sim-aws-caller.js";
5
+ import { SimCfnStack } from "../stack/sim-cfn-stack.js";
6
+ import type { SimCfnStackId } from "../stack/sim-cfn-stack-id.js";
7
+ import type { SimCloudFormationStackName } from "../stack/sim-cfn-stack.type.js";
8
+ import type { SimCfnExports } from "../export/sim-cfn-exports.js";
9
+ import type { SimCfnTemplate } from "../template/sim-cfn-template.js";
10
+ import type { SimCfnChangeSetType } from "./sim-cfn-change-set.type.js";
11
+ interface SimCfnChangeSetStackProperties {
12
+ readonly simAws: SimAws;
13
+ readonly accountRegionScope: SimAwsAccountRegionScope;
14
+ readonly stacks: Map<SimCloudFormationStackName, SimCfnStack>;
15
+ readonly background: BackgroundScheduler & BackgroundCompleter;
16
+ readonly stackName: SimCloudFormationStackName;
17
+ readonly stackId: SimCfnStackId;
18
+ readonly type: SimCfnChangeSetType;
19
+ readonly template: SimCfnTemplate;
20
+ readonly caller?: SimAwsCaller | undefined;
21
+ readonly exports?: SimCfnExports | undefined;
22
+ }
23
+ /**
24
+ * The Stack a change set is held against.
25
+ *
26
+ * A `CREATE` change set brings the Stack into being in review, which is the
27
+ * status a Stack holds before anything has deployed it. Its Resources are
28
+ * worked out from the template and none of them is created, so executing the
29
+ * change set is what deploys them.
30
+ *
31
+ * An `UPDATE` change set needs a Stack that is already there, and leaves it
32
+ * exactly as it is.
33
+ */
34
+ export declare function simCfnChangeSetStack(properties: SimCfnChangeSetStackProperties): SimCfnStack;
35
+ /**
36
+ * The Stack a change set was created against, for executing it.
37
+ *
38
+ * A Stack that has gone since the change set was created leaves the change set
39
+ * naming nothing, which CloudFormation refuses the way it refuses any command
40
+ * naming a Stack it cannot find.
41
+ */
42
+ export declare function simCfnChangeSetDeployedStack(stacks: ReadonlyMap<SimCloudFormationStackName, SimCfnStack>, changeSet: {
43
+ readonly stackName: SimCloudFormationStackName;
44
+ }): SimCfnStack;
45
+ export {};
@@ -0,0 +1,52 @@
1
+ import { SimCfnStack } from "../stack/sim-cfn-stack.js";
2
+ import { SimCloudFormationAlreadyExistsException, SimCloudFormationValidationError, } from "../error/sim-cloudformation.error.js";
3
+ /**
4
+ * The Stack a change set is held against.
5
+ *
6
+ * A `CREATE` change set brings the Stack into being in review, which is the
7
+ * status a Stack holds before anything has deployed it. Its Resources are
8
+ * worked out from the template and none of them is created, so executing the
9
+ * change set is what deploys them.
10
+ *
11
+ * An `UPDATE` change set needs a Stack that is already there, and leaves it
12
+ * exactly as it is.
13
+ */
14
+ export function simCfnChangeSetStack(properties) {
15
+ const { stacks, stackName, type } = properties;
16
+ const deployed = stacks.get(stackName);
17
+ if (type === "UPDATE") {
18
+ if (deployed === undefined) {
19
+ throw new SimCloudFormationValidationError(`Stack [${stackName}] does not exist`);
20
+ }
21
+ return deployed;
22
+ }
23
+ if (deployed !== undefined) {
24
+ throw new SimCloudFormationAlreadyExistsException(`Stack [${stackName}] already exists`);
25
+ }
26
+ const stack = new SimCfnStack({
27
+ simAws: properties.simAws,
28
+ accountRegionScope: properties.accountRegionScope,
29
+ background: properties.background,
30
+ stackName,
31
+ stackId: properties.stackId,
32
+ template: properties.template,
33
+ caller: properties.caller,
34
+ exports: properties.exports,
35
+ });
36
+ stacks.set(stack.stackName, stack);
37
+ return stack;
38
+ }
39
+ /**
40
+ * The Stack a change set was created against, for executing it.
41
+ *
42
+ * A Stack that has gone since the change set was created leaves the change set
43
+ * naming nothing, which CloudFormation refuses the way it refuses any command
44
+ * naming a Stack it cannot find.
45
+ */
46
+ export function simCfnChangeSetDeployedStack(stacks, changeSet) {
47
+ const stack = stacks.get(changeSet.stackName);
48
+ if (stack === undefined) {
49
+ throw new SimCloudFormationValidationError(`Stack [${changeSet.stackName}] does not exist`);
50
+ }
51
+ return stack;
52
+ }
@@ -0,0 +1,12 @@
1
+ import type { SimCfnChangeSetType } from "./sim-cfn-change-set.type.js";
2
+ /**
3
+ * What CloudFormation answers a change set that would change nothing.
4
+ */
5
+ export declare const simCfnChangeSetNoChangesMessage: string;
6
+ /**
7
+ * Read the ChangeSetType a CreateChangeSet input asks for.
8
+ *
9
+ * CloudFormation defaults to `UPDATE`. `IMPORT` is outside the simulation,
10
+ * because nothing here can adopt a Resource it did not create.
11
+ */
12
+ export declare function simCfnChangeSetType(changeSetType: string | undefined): SimCfnChangeSetType;
@@ -0,0 +1,21 @@
1
+ import { SimCloudFormationValidationError } from "../error/sim-cloudformation.error.js";
2
+ /**
3
+ * What CloudFormation answers a change set that would change nothing.
4
+ */
5
+ export const simCfnChangeSetNoChangesMessage = "The submitted information didn't contain changes. " +
6
+ "Submit different information to create a change set.";
7
+ /**
8
+ * Read the ChangeSetType a CreateChangeSet input asks for.
9
+ *
10
+ * CloudFormation defaults to `UPDATE`. `IMPORT` is outside the simulation,
11
+ * because nothing here can adopt a Resource it did not create.
12
+ */
13
+ export function simCfnChangeSetType(changeSetType) {
14
+ if (changeSetType === undefined || changeSetType === "UPDATE") {
15
+ return "UPDATE";
16
+ }
17
+ if (changeSetType === "CREATE") {
18
+ return "CREATE";
19
+ }
20
+ throw new SimCloudFormationValidationError(`Sim CloudFormation ChangeSetType ${changeSetType} is not supported`);
21
+ }
@@ -0,0 +1,54 @@
1
+ import type { SimAwsAccountRegionScope } from "../../aws/sim-aws-account-region-scope.js";
2
+ import type { SimCfnTemplate } from "../template/sim-cfn-template.js";
3
+ import type { SimCloudFormationStackName } from "../stack/sim-cfn-stack.type.js";
4
+ import type { SimCfnStackId } from "../stack/sim-cfn-stack-id.js";
5
+ import type { SimCfnChangeSetExecutionStatus, SimCfnChangeSetName, SimCfnChangeSetStatus, SimCfnChangeSetType, SimCfnResourceChange } from "./sim-cfn-change-set.type.js";
6
+ interface SimCfnChangeSetProperties {
7
+ readonly accountRegionScope: SimAwsAccountRegionScope;
8
+ readonly changeSetName: SimCfnChangeSetName;
9
+ readonly stackName: SimCloudFormationStackName;
10
+ readonly stackId: SimCfnStackId;
11
+ readonly type: SimCfnChangeSetType;
12
+ readonly template: SimCfnTemplate;
13
+ readonly changes: readonly SimCfnResourceChange[];
14
+ /**
15
+ * The template the Stack was on when the changes were worked out. A Stack
16
+ * that has moved on from it leaves the change set obsolete.
17
+ */
18
+ readonly plannedFrom: SimCfnTemplate;
19
+ readonly description?: string | undefined;
20
+ /** Why the change set failed, for one the simulator refused to build. */
21
+ readonly failureReason?: string | undefined;
22
+ }
23
+ /**
24
+ * One change set held against a simulated CloudFormation Stack.
25
+ *
26
+ * It holds the template it was created from and the Resource changes executing
27
+ * it would make. The changes are worked out when the change set is created and
28
+ * kept as they were, which is the point of a change set: what it reports is
29
+ * what was true of the Stack at the moment it was asked for.
30
+ *
31
+ * Executing it belongs to SimCloudFormation. This class only records how far
32
+ * that execution got.
33
+ */
34
+ export declare class SimCfnChangeSet {
35
+ readonly changeSetId: string;
36
+ readonly changeSetName: SimCfnChangeSetName;
37
+ readonly stackName: SimCloudFormationStackName;
38
+ readonly stackId: SimCfnStackId;
39
+ readonly type: SimCfnChangeSetType;
40
+ readonly template: SimCfnTemplate;
41
+ readonly changes: readonly SimCfnResourceChange[];
42
+ readonly plannedFrom: SimCfnTemplate;
43
+ readonly description: string | undefined;
44
+ /** How far the change set itself got. */
45
+ status: SimCfnChangeSetStatus;
46
+ /** Why the change set is in the status it is in, where there is a reason. */
47
+ readonly statusReason: string | undefined;
48
+ /** Whether the change set can be executed, and how execution went. */
49
+ executionStatus: SimCfnChangeSetExecutionStatus;
50
+ constructor(properties: SimCfnChangeSetProperties);
51
+ /** Whether ExecuteChangeSet will take this change set. */
52
+ get executable(): boolean;
53
+ }
54
+ export {};
@@ -0,0 +1,49 @@
1
+ import { simCfnChangeSetArn } from "./sim-cfn-change-set-arn.js";
2
+ /**
3
+ * One change set held against a simulated CloudFormation Stack.
4
+ *
5
+ * It holds the template it was created from and the Resource changes executing
6
+ * it would make. The changes are worked out when the change set is created and
7
+ * kept as they were, which is the point of a change set: what it reports is
8
+ * what was true of the Stack at the moment it was asked for.
9
+ *
10
+ * Executing it belongs to SimCloudFormation. This class only records how far
11
+ * that execution got.
12
+ */
13
+ export class SimCfnChangeSet {
14
+ changeSetId;
15
+ changeSetName;
16
+ stackName;
17
+ stackId;
18
+ type;
19
+ template;
20
+ changes;
21
+ plannedFrom;
22
+ description;
23
+ /** How far the change set itself got. */
24
+ status;
25
+ /** Why the change set is in the status it is in, where there is a reason. */
26
+ statusReason;
27
+ /** Whether the change set can be executed, and how execution went. */
28
+ executionStatus;
29
+ constructor(properties) {
30
+ const { changeSetName, failureReason } = properties;
31
+ const built = failureReason === undefined;
32
+ this.changeSetName = changeSetName;
33
+ this.stackName = properties.stackName;
34
+ this.stackId = properties.stackId;
35
+ this.type = properties.type;
36
+ this.template = properties.template;
37
+ this.changes = properties.changes;
38
+ this.plannedFrom = properties.plannedFrom;
39
+ this.description = properties.description;
40
+ this.changeSetId = simCfnChangeSetArn(properties.accountRegionScope, changeSetName);
41
+ this.status = built ? "CREATE_COMPLETE" : "FAILED";
42
+ this.statusReason = failureReason;
43
+ this.executionStatus = built ? "AVAILABLE" : "UNAVAILABLE";
44
+ }
45
+ /** Whether ExecuteChangeSet will take this change set. */
46
+ get executable() {
47
+ return this.executionStatus === "AVAILABLE";
48
+ }
49
+ }
@@ -0,0 +1,35 @@
1
+ import type { Brand } from "../../../util/brand.type.js";
2
+ export type SimCfnChangeSetName = Brand<string, "SimCfnChangeSetName">;
3
+ /**
4
+ * How far the change set itself has got.
5
+ *
6
+ * A change set the simulator refused to build lands in `FAILED` carrying the
7
+ * reason, which is what CloudFormation does with a change set describing no
8
+ * change at all.
9
+ */
10
+ export type SimCfnChangeSetStatus = "CREATE_IN_PROGRESS" | "CREATE_COMPLETE" | "DELETE_COMPLETE" | "FAILED";
11
+ /**
12
+ * Whether the change set can be executed, and how the execution went.
13
+ *
14
+ * `OBSOLETE` is what a change set becomes once another one against the same
15
+ * Stack has been executed, because the plan it holds was worked out against a
16
+ * Stack that has moved on.
17
+ */
18
+ export type SimCfnChangeSetExecutionStatus = "UNAVAILABLE" | "AVAILABLE" | "EXECUTE_IN_PROGRESS" | "EXECUTE_COMPLETE" | "EXECUTE_FAILED" | "OBSOLETE";
19
+ /**
20
+ * Whether executing the change set creates the Stack or updates it.
21
+ */
22
+ export type SimCfnChangeSetType = "CREATE" | "UPDATE";
23
+ export type SimCfnResourceChangeAction = "Add" | "Modify" | "Remove";
24
+ /**
25
+ * One Resource a change set would create, replace or delete.
26
+ *
27
+ * `replacement` is `True` on every `Modify`. Simulated CloudFormation replaces
28
+ * a changed Resource, so a modification it reports is always a replacement.
29
+ */
30
+ export interface SimCfnResourceChange {
31
+ readonly action: SimCfnResourceChangeAction;
32
+ readonly logicalResourceId: string;
33
+ readonly resourceType: string | undefined;
34
+ readonly replacement: "True" | undefined;
35
+ }
@@ -0,0 +1,53 @@
1
+ import type { SimCloudFormationStackName } from "../stack/sim-cfn-stack.type.js";
2
+ import type { SimCfnChangeSet } from "./sim-cfn-change-set.js";
3
+ import type { SimCfnChangeSetName } from "./sim-cfn-change-set.type.js";
4
+ /**
5
+ * How CloudFormation refuses a change set that cannot be executed.
6
+ */
7
+ export declare function simCfnChangeSetNotExecutable(changeSet: SimCfnChangeSet): Error;
8
+ interface SimCfnChangeSetLookup {
9
+ /** A change set name, or the change set ARN CreateChangeSet returned. */
10
+ readonly changeSetName: string;
11
+ /** The Stack the change set belongs to, needed alongside a plain name. */
12
+ readonly stackName?: string | undefined;
13
+ }
14
+ /**
15
+ * The change sets one simulated CloudFormation holds, in the order they were
16
+ * created.
17
+ *
18
+ * A change set is reached by its ARN on its own, or by its name together with
19
+ * the Stack it belongs to, which is how CloudFormation reaches one. Two change
20
+ * sets against different Stacks can carry the same name.
21
+ */
22
+ export declare class SimCfnChangeSets {
23
+ private changeSets;
24
+ /** Hold a change set that has just been created. */
25
+ add(changeSet: SimCfnChangeSet): void;
26
+ /** Find a change set, or answer undefined where the lookup names none. */
27
+ find(lookup: SimCfnChangeSetLookup): SimCfnChangeSet | undefined;
28
+ /**
29
+ * Find a change set, refusing a lookup that names none the way
30
+ * CloudFormation refuses it.
31
+ */
32
+ require(lookup: SimCfnChangeSetLookup): SimCfnChangeSet;
33
+ /**
34
+ * Find a change set that can be executed, refusing one that cannot.
35
+ *
36
+ * A change set that failed to build, that has already been executed, or that
37
+ * another execution has made obsolete is refused for the status it is in,
38
+ * the way CloudFormation refuses it.
39
+ */
40
+ requireExecutable(lookup: SimCfnChangeSetLookup): SimCfnChangeSet;
41
+ /** Whether this Stack already holds a change set under this name. */
42
+ has(stackName: SimCloudFormationStackName, name: SimCfnChangeSetName): boolean;
43
+ /** The change sets held against one Stack, in the order they were created. */
44
+ forStack(stackName: SimCloudFormationStackName): readonly SimCfnChangeSet[];
45
+ /** Take a change set away, for DeleteChangeSet. */
46
+ remove(changeSet: SimCfnChangeSet): void;
47
+ /**
48
+ * Give up on every other change set against this Stack, because the one
49
+ * given has been executed and the Stack has moved on from what they saw.
50
+ */
51
+ markOthersObsolete(executed: SimCfnChangeSet): void;
52
+ }
53
+ export {};