@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
@@ -33,10 +33,33 @@ export declare class SimCloudFormationAuthorization {
33
33
  * Ensure the caller may delete the named Stack.
34
34
  */
35
35
  deleteStack(stackName: string | undefined, caller?: SimAwsCaller): void;
36
+ /**
37
+ * Ensure the caller may create a change set against the named Stack.
38
+ */
39
+ createChangeSet(stackName: string | undefined, caller?: SimAwsCaller): void;
40
+ /**
41
+ * Ensure the caller may describe a change set against the named Stack.
42
+ */
43
+ describeChangeSet(stackName: string | undefined, caller?: SimAwsCaller): void;
44
+ /**
45
+ * Ensure the caller may execute a change set against the named Stack.
46
+ */
47
+ executeChangeSet(stackName: string | undefined, caller?: SimAwsCaller): void;
48
+ /**
49
+ * Ensure the caller may delete a change set against the named Stack.
50
+ */
51
+ deleteChangeSet(stackName: string | undefined, caller?: SimAwsCaller): void;
52
+ /**
53
+ * Ensure the caller may list the change sets against the named Stack.
54
+ */
55
+ listChangeSets(stackName: string | undefined, caller?: SimAwsCaller): void;
36
56
  private authorize;
37
57
  /**
38
58
  * The Stack ARN a command operates on. A command naming no Stack, which
39
59
  * DescribeStacks allows, is asking about every Stack in the scope.
60
+ *
61
+ * A command that named the Stack by its ID named the ARN itself, so that is
62
+ * what gets authorized rather than an ARN built around it.
40
63
  */
41
64
  private stackArn;
42
65
  }
@@ -1,4 +1,5 @@
1
1
  import { SimIamActionAuthorizer } from "../../iam/authorize/sim-iam-action-authorizer.js";
2
+ import { isSimCfnStackId } from "../stack/sim-cfn-stack-id.js";
2
3
  /**
3
4
  * Who may do what to a simulated CloudFormation Stack.
4
5
  *
@@ -38,14 +39,50 @@ export class SimCloudFormationAuthorization {
38
39
  deleteStack(stackName, caller) {
39
40
  this.authorize("cloudformation:DeleteStack", stackName, caller);
40
41
  }
42
+ /**
43
+ * Ensure the caller may create a change set against the named Stack.
44
+ */
45
+ createChangeSet(stackName, caller) {
46
+ this.authorize("cloudformation:CreateChangeSet", stackName, caller);
47
+ }
48
+ /**
49
+ * Ensure the caller may describe a change set against the named Stack.
50
+ */
51
+ describeChangeSet(stackName, caller) {
52
+ this.authorize("cloudformation:DescribeChangeSet", stackName, caller);
53
+ }
54
+ /**
55
+ * Ensure the caller may execute a change set against the named Stack.
56
+ */
57
+ executeChangeSet(stackName, caller) {
58
+ this.authorize("cloudformation:ExecuteChangeSet", stackName, caller);
59
+ }
60
+ /**
61
+ * Ensure the caller may delete a change set against the named Stack.
62
+ */
63
+ deleteChangeSet(stackName, caller) {
64
+ this.authorize("cloudformation:DeleteChangeSet", stackName, caller);
65
+ }
66
+ /**
67
+ * Ensure the caller may list the change sets against the named Stack.
68
+ */
69
+ listChangeSets(stackName, caller) {
70
+ this.authorize("cloudformation:ListChangeSets", stackName, caller);
71
+ }
41
72
  authorize(action, stackName, caller) {
42
73
  this.authorizer.authorize(action, this.stackArn(stackName), caller);
43
74
  }
44
75
  /**
45
76
  * The Stack ARN a command operates on. A command naming no Stack, which
46
77
  * DescribeStacks allows, is asking about every Stack in the scope.
78
+ *
79
+ * A command that named the Stack by its ID named the ARN itself, so that is
80
+ * what gets authorized rather than an ARN built around it.
47
81
  */
48
82
  stackArn(stackName) {
83
+ if (stackName !== undefined && isSimCfnStackId(stackName)) {
84
+ return stackName;
85
+ }
49
86
  const { accountId, regionName } = this.accountRegionScope;
50
87
  return `arn:aws:cloudformation:${regionName}:${accountId}:stack/${stackName ?? "*"}/*`;
51
88
  }
@@ -1,8 +1,10 @@
1
1
  import type { SimS3Bucket } from "../../../../../s3/bucket/sim-s3-bucket.js";
2
+ import type { SimCdkBucketDeployNotifier } from "../notify/sim-cdk-bucket-deploy-notifier.js";
2
3
  import type { SimCdkBucketDeployProperties } from "../property/sim-cdk-bucket-deploy-properties.js";
3
4
  interface SimCdkBucketDeployCopierProperties {
4
5
  readonly bucket: SimS3Bucket;
5
6
  readonly properties: SimCdkBucketDeployProperties;
7
+ readonly notifier: SimCdkBucketDeployNotifier;
6
8
  }
7
9
  /**
8
10
  * Copies a staged CDK asset into a simulated destination Bucket.
@@ -31,6 +31,7 @@ export class SimCdkBucketDeployCopier {
31
31
  bucket: properties.bucket,
32
32
  filter: this.filter,
33
33
  keyPrefix: this.properties.destinationKeyPrefix,
34
+ notifier: properties.notifier,
34
35
  });
35
36
  }
36
37
  /**
@@ -1,8 +1,10 @@
1
1
  import type { SimS3Bucket } from "../../../../../s3/bucket/sim-s3-bucket.js";
2
+ import type { SimCdkBucketDeployNotifier } from "../notify/sim-cdk-bucket-deploy-notifier.js";
2
3
  import type { SimCdkBucketDeployProperties } from "../property/sim-cdk-bucket-deploy-properties.js";
3
4
  interface SimCdkBucketDeployFileProperties {
4
5
  readonly bucket: SimS3Bucket;
5
6
  readonly properties: SimCdkBucketDeployProperties;
7
+ readonly notifier: SimCdkBucketDeployNotifier;
6
8
  }
7
9
  /**
8
10
  * Copies one file from a staged CDK asset into a simulated Bucket.
@@ -13,9 +15,14 @@ interface SimCdkBucketDeployFileProperties {
13
15
  export declare class SimCdkBucketDeployFile {
14
16
  private readonly bucket;
15
17
  private readonly properties;
18
+ private readonly notifier;
16
19
  constructor(properties: SimCdkBucketDeployFileProperties);
17
20
  /**
18
21
  * Store one file as an Object, and answer with the key it went under.
22
+ *
23
+ * The Object goes into the Bucket rather than through PutObject, so the
24
+ * event a Put would have raised is raised here, once the write has happened
25
+ * and carrying the version it was given.
19
26
  */
20
27
  copy(sourceDirectoryPath: string, relativePath: string): Promise<string>;
21
28
  /**
@@ -11,18 +11,30 @@ import { metadataForFilesystemS3ObjectKey } from "../../../../../s3/storage/file
11
11
  export class SimCdkBucketDeployFile {
12
12
  bucket;
13
13
  properties;
14
+ notifier;
14
15
  constructor(properties) {
15
16
  this.bucket = properties.bucket;
16
17
  this.properties = properties.properties;
18
+ this.notifier = properties.notifier;
17
19
  }
18
20
  /**
19
21
  * Store one file as an Object, and answer with the key it went under.
22
+ *
23
+ * The Object goes into the Bucket rather than through PutObject, so the
24
+ * event a Put would have raised is raised here, once the write has happened
25
+ * and carrying the version it was given.
20
26
  */
21
27
  async copy(sourceDirectoryPath, relativePath) {
22
28
  const key = this.properties.objectKey(relativePath);
23
29
  // oxlint-disable-next-line security/detect-non-literal-fs-filename
24
30
  const body = await readFile(path.join(sourceDirectoryPath, relativePath));
25
- await this.bucket.putObject(new SimS3Object({ key, body, metadata: this.metadata(relativePath) }));
31
+ const object = new SimS3Object({
32
+ key,
33
+ body,
34
+ metadata: this.metadata(relativePath),
35
+ });
36
+ const version = await this.bucket.putObject(object);
37
+ this.notifier.deployed(object, version?.versionId);
26
38
  return key;
27
39
  }
28
40
  /**
@@ -1,9 +1,11 @@
1
1
  import type { SimS3Bucket } from "../../../../../s3/bucket/sim-s3-bucket.js";
2
2
  import type { SimCdkBucketDeployFilter } from "../filter/sim-cdk-bucket-deploy-filter.js";
3
+ import type { SimCdkBucketDeployNotifier } from "../notify/sim-cdk-bucket-deploy-notifier.js";
3
4
  interface SimCdkBucketDeployPrunerProperties {
4
5
  readonly bucket: SimS3Bucket;
5
6
  readonly filter: SimCdkBucketDeployFilter;
6
7
  readonly keyPrefix: string;
8
+ readonly notifier: SimCdkBucketDeployNotifier;
7
9
  }
8
10
  /**
9
11
  * Removes the Objects a deployment covers but no longer holds.
@@ -19,9 +21,13 @@ export declare class SimCdkBucketDeployPruner {
19
21
  private readonly bucket;
20
22
  private readonly filter;
21
23
  private readonly keyPrefix;
24
+ private readonly notifier;
22
25
  constructor(properties: SimCdkBucketDeployPrunerProperties);
23
26
  /**
24
27
  * Remove everything this deployment would have copied and did not.
28
+ *
29
+ * Each removal raises what a DeleteObject would have raised, since the sync
30
+ * this stands in for deletes through the API like any other caller.
25
31
  */
26
32
  prune(deployedKeys: ReadonlySet<string>): Promise<void>;
27
33
  private isStale;
@@ -12,19 +12,25 @@ export class SimCdkBucketDeployPruner {
12
12
  bucket;
13
13
  filter;
14
14
  keyPrefix;
15
+ notifier;
15
16
  constructor(properties) {
16
17
  this.bucket = properties.bucket;
17
18
  this.filter = properties.filter;
18
19
  this.keyPrefix = properties.keyPrefix;
20
+ this.notifier = properties.notifier;
19
21
  }
20
22
  /**
21
23
  * Remove everything this deployment would have copied and did not.
24
+ *
25
+ * Each removal raises what a DeleteObject would have raised, since the sync
26
+ * this stands in for deletes through the API like any other caller.
22
27
  */
23
28
  async prune(deployedKeys) {
24
29
  const existing = await this.bucket.listObjects(this.keyPrefix);
25
30
  const stale = existing.filter((object) => this.isStale(object.key, deployedKeys));
26
31
  await Promise.all(stale.map(async (object) => {
27
- await this.bucket.deleteObject(object.key);
32
+ const deletion = await this.bucket.deleteObject(object.key);
33
+ this.notifier.pruned(object.key, deletion);
28
34
  }));
29
35
  }
30
36
  isStale(key, deployedKeys) {
@@ -0,0 +1,50 @@
1
+ import type { SimAwsResolvedCaller } from "../../../../../aws/caller/sim-aws-caller-resolver.js";
2
+ import type { SimS3Bucket } from "../../../../../s3/bucket/sim-s3-bucket.js";
3
+ import type { SimS3ObjectDeletion } from "../../../../../s3/bucket/sim-s3-object-deletion.js";
4
+ import type { SimS3ObjectNotifier } from "../../../../../s3/notification/sim-s3-object-notifier.js";
5
+ import type { SimS3Object } from "../../../../../s3/object/s3-object.js";
6
+ import type { SimCfnResource, SimCloudFormationResourceCreateContext } from "../../../../resource/sim-cfn-resource.js";
7
+ interface SimCdkBucketDeployNotifierProperties {
8
+ readonly bucket: SimS3Bucket;
9
+ readonly notifications: SimS3ObjectNotifier;
10
+ readonly caller: SimAwsResolvedCaller;
11
+ }
12
+ /**
13
+ * Raises the S3 Object events a deployment into a Bucket earns.
14
+ *
15
+ * A deployment writes Objects rather than sending S3 commands, so it says here
16
+ * what a command would have said for it. Real CDK runs a provider function
17
+ * that syncs the staged asset into the Bucket, one PutObject per file and one
18
+ * DeleteObject per Object the sync deletes, and a Bucket with a notification
19
+ * configuration hears all of them.
20
+ */
21
+ export declare class SimCdkBucketDeployNotifier {
22
+ private readonly bucket;
23
+ private readonly notifications;
24
+ private readonly caller;
25
+ constructor(properties: SimCdkBucketDeployNotifierProperties);
26
+ /**
27
+ * Say that the deployment wrote an Object.
28
+ */
29
+ deployed(object: SimS3Object, versionId: string | undefined): void;
30
+ /**
31
+ * Say that the deployment pruned a key, as far as the delete got.
32
+ *
33
+ * A pruning deployment deletes rather than removes. A versioned Bucket keeps
34
+ * what it held behind a marker, and the event says so. That is the same
35
+ * three-way answer a DeleteObject command gets, so the same reading of it
36
+ * serves here.
37
+ */
38
+ pruned(key: string, deletion: SimS3ObjectDeletion): void;
39
+ }
40
+ /**
41
+ * The notifier for one deployment, reaching the Bucket's own simulated S3.
42
+ *
43
+ * The events are attributed to the Account root rather than to the deployment's
44
+ * caller. Real S3 names the identity that wrote the Object, which for a CDK
45
+ * BucketDeployment is the provider function's execution role, and neither that
46
+ * function nor its role is simulated. Root is what simulated AWS attributes an
47
+ * unstated caller to everywhere else.
48
+ */
49
+ export declare function simCdkBucketDeployNotifier(resource: SimCfnResource, bucket: SimS3Bucket, context: SimCloudFormationResourceCreateContext): SimCdkBucketDeployNotifier;
50
+ export {};
@@ -0,0 +1,71 @@
1
+ import { makeSimAwsAccountRootPrincipal } from "../../../../../aws/caller/sim-aws-account-root-principal.js";
2
+ import { simAwsResolvedCallerOf } from "../../../../../aws/caller/sim-aws-resolved-caller.js";
3
+ import { simS3NotifyDeleted } from "../../../../../s3/command/delete-object/sim-s3-notify-deleted.js";
4
+ /**
5
+ * Raises the S3 Object events a deployment into a Bucket earns.
6
+ *
7
+ * A deployment writes Objects rather than sending S3 commands, so it says here
8
+ * what a command would have said for it. Real CDK runs a provider function
9
+ * that syncs the staged asset into the Bucket, one PutObject per file and one
10
+ * DeleteObject per Object the sync deletes, and a Bucket with a notification
11
+ * configuration hears all of them.
12
+ */
13
+ export class SimCdkBucketDeployNotifier {
14
+ bucket;
15
+ notifications;
16
+ caller;
17
+ constructor(properties) {
18
+ this.bucket = properties.bucket;
19
+ this.notifications = properties.notifications;
20
+ this.caller = properties.caller;
21
+ }
22
+ /**
23
+ * Say that the deployment wrote an Object.
24
+ */
25
+ deployed(object, versionId) {
26
+ this.notifications.objectCreated({
27
+ bucket: this.bucket,
28
+ object,
29
+ caller: this.caller,
30
+ eventName: "s3:ObjectCreated:Put",
31
+ versionId,
32
+ });
33
+ }
34
+ /**
35
+ * Say that the deployment pruned a key, as far as the delete got.
36
+ *
37
+ * A pruning deployment deletes rather than removes. A versioned Bucket keeps
38
+ * what it held behind a marker, and the event says so. That is the same
39
+ * three-way answer a DeleteObject command gets, so the same reading of it
40
+ * serves here.
41
+ */
42
+ pruned(key, deletion) {
43
+ simS3NotifyDeleted({
44
+ notifications: this.notifications,
45
+ bucket: this.bucket,
46
+ key,
47
+ caller: this.caller,
48
+ deletion,
49
+ });
50
+ }
51
+ }
52
+ /**
53
+ * The notifier for one deployment, reaching the Bucket's own simulated S3.
54
+ *
55
+ * The events are attributed to the Account root rather than to the deployment's
56
+ * caller. Real S3 names the identity that wrote the Object, which for a CDK
57
+ * BucketDeployment is the provider function's execution role, and neither that
58
+ * function nor its role is simulated. Root is what simulated AWS attributes an
59
+ * unstated caller to everywhere else.
60
+ */
61
+ export function simCdkBucketDeployNotifier(resource, bucket, context) {
62
+ const { accountId, regionName } = resource.accountRegionScope;
63
+ return new SimCdkBucketDeployNotifier({
64
+ bucket,
65
+ notifications: context.simAws
66
+ .accountRegionScope(accountId, regionName)
67
+ .s3()
68
+ .objectNotifier(),
69
+ caller: simAwsResolvedCallerOf(makeSimAwsAccountRootPrincipal(accountId)),
70
+ });
71
+ }
@@ -2,6 +2,7 @@ import { SimCdkBucketDeploySource } from "./source/sim-cdk-bucket-deploy-source.
2
2
  import { SimCdkBucketDeployCopier } from "./copy/sim-cdk-bucket-deploy-copier.js";
3
3
  import { SimCdkBucketDeployProperties } from "./property/sim-cdk-bucket-deploy-properties.js";
4
4
  import { declareSimCdkBucketDeployMetadata } from "./metadata/sim-cdk-bucket-deploy-metadata.js";
5
+ import { simCdkBucketDeployNotifier } from "./notify/sim-cdk-bucket-deploy-notifier.js";
5
6
  import { simCdkBucketDeployDestination } from "./destination/sim-cdk-bucket-deploy-destination.js";
6
7
  /**
7
8
  * CloudFormation Resource factory for CDK BucketDeployment compatibility.
@@ -36,10 +37,14 @@ export class SimCdkBucketDeploymentResourceFactory {
36
37
  async createCdkBucketDeployment(resource, context) {
37
38
  const properties = new SimCdkBucketDeployProperties(resource, context.resolvedProperties ?? resource.properties);
38
39
  const bucket = simCdkBucketDeployDestination(resource, properties, context);
39
- const sourceDirectoryPaths = properties.sourceObjectKeys.map((sourceObjectKey) => this.sourceResolver.sourceDirectoryPathForObjectKey(resource, sourceObjectKey, context.cdkOutContext));
40
+ const sourceDirectoryPaths = this.sourceResolver.sourceDirectoryPaths(resource, properties.sourceObjectKeys, context.cdkOutContext);
41
+ // The copier writes Objects into the Bucket instead of sending PutObject,
42
+ // and a Bucket configured to notify still hears about every file it writes
43
+ // and every Object it prunes.
40
44
  const publishedKeys = await new SimCdkBucketDeployCopier({
41
45
  bucket,
42
46
  properties,
47
+ notifier: simCdkBucketDeployNotifier(resource, bucket, context),
43
48
  }).copy(sourceDirectoryPaths);
44
49
  // Said as well as set. The Objects above carry these headers themselves,
45
50
  // and a directory mounted over them later cannot, so the Bucket keeps what
@@ -4,6 +4,11 @@ import type { SimCdkOutContext } from "../../../sim-cdk-out-context.js";
4
4
  * Resolves the filesystem source directory for a CDK BucketDeployment asset.
5
5
  */
6
6
  export declare class SimCdkBucketDeploySource {
7
+ /**
8
+ * Find the local source directory for every source object key a deployment
9
+ * names, in the order it names them.
10
+ */
11
+ sourceDirectoryPaths(resource: SimCfnResource, sourceObjectKeys: readonly string[], cdkOutContext: SimCdkOutContext | undefined): string[];
7
12
  /**
8
13
  * Find the local source directory for a CDK BucketDeployment source object key.
9
14
  */
@@ -4,6 +4,13 @@ import { SimCdkBucketDeployErrorMessage } from "../error-message/sim-cdk-bucket-
4
4
  * Resolves the filesystem source directory for a CDK BucketDeployment asset.
5
5
  */
6
6
  export class SimCdkBucketDeploySource {
7
+ /**
8
+ * Find the local source directory for every source object key a deployment
9
+ * names, in the order it names them.
10
+ */
11
+ sourceDirectoryPaths(resource, sourceObjectKeys, cdkOutContext) {
12
+ return sourceObjectKeys.map((objectKey) => this.sourceDirectoryPathForObjectKey(resource, objectKey, cdkOutContext));
13
+ }
7
14
  /**
8
15
  * Find the local source directory for a CDK BucketDeployment source object key.
9
16
  */
@@ -0,0 +1,9 @@
1
+ import type { SimAwsAccountRegionScope } from "../../aws/sim-aws-account-region-scope.js";
2
+ /**
3
+ * The ARN CloudFormation gives one change set.
4
+ *
5
+ * The unique part is a UUID, as it is for a Stack ID, so two change sets
6
+ * created under the same name against different Stacks are still told apart by
7
+ * their ARN alone.
8
+ */
9
+ export declare function simCfnChangeSetArn(scope: SimAwsAccountRegionScope, changeSetName: string): string;
@@ -0,0 +1,12 @@
1
+ import { randomUUID } from "node:crypto";
2
+ /**
3
+ * The ARN CloudFormation gives one change set.
4
+ *
5
+ * The unique part is a UUID, as it is for a Stack ID, so two change sets
6
+ * created under the same name against different Stacks are still told apart by
7
+ * their ARN alone.
8
+ */
9
+ export function simCfnChangeSetArn(scope, changeSetName) {
10
+ const { regionName, accountId } = scope;
11
+ return `arn:aws:cloudformation:${regionName}:${accountId}:changeSet/${changeSetName}/${randomUUID()}`;
12
+ }
@@ -0,0 +1,42 @@
1
+ import type { BackgroundScheduler } from "../../../util/background/background.js";
2
+ import type { SimAwsAccountRegionScope } from "../../aws/sim-aws-account-region-scope.js";
3
+ import type { SimCfnResource } from "../resource/sim-cfn-resource.js";
4
+ import type { SimCfnStack } from "../stack/sim-cfn-stack.js";
5
+ import type { SimCfnTemplate } from "../template/sim-cfn-template.js";
6
+ import type { SimCfnChangeSetType, SimCfnResourceChange } from "./sim-cfn-change-set.type.js";
7
+ interface SimCfnChangeSetPlanProperties {
8
+ readonly accountRegionScope: SimAwsAccountRegionScope;
9
+ readonly background: BackgroundScheduler;
10
+ readonly stack: SimCfnStack;
11
+ readonly type: SimCfnChangeSetType;
12
+ readonly template: SimCfnTemplate;
13
+ }
14
+ /**
15
+ * What executing a change set would do to the Stack it is held against.
16
+ *
17
+ * A `CREATE` change set is compared against nothing, because the Stack it
18
+ * brought into being holds no created Resource yet.
19
+ */
20
+ export declare function simCfnChangeSetPlan(properties: SimCfnChangeSetPlanProperties): readonly SimCfnResourceChange[];
21
+ interface SimCfnChangeSetChangesProperties {
22
+ /** The Resources the Stack holds now. Empty for a Stack in review. */
23
+ readonly current: ReadonlyMap<string, SimCfnResource>;
24
+ /** The Resources the change set's template describes. */
25
+ readonly updated: ReadonlyMap<string, SimCfnResource>;
26
+ }
27
+ /**
28
+ * What executing a change set would do to a Stack's Resources.
29
+ *
30
+ * The same comparison an update makes, reported rather than applied. A
31
+ * Resource only the new template has is an `Add`, one only the Stack has is a
32
+ * `Remove`, and one both have whose resolved template entry changed is a
33
+ * `Modify`. A Resource that would be replaced because it names a replaced one
34
+ * is a `Modify` too, which is how CloudFormation reports a dependent it has to
35
+ * hand a new physical name to.
36
+ *
37
+ * The order follows the templates. The new template's Resources come first, in
38
+ * the order it declares them, and the dropped ones after in the order the Stack
39
+ * holds them.
40
+ */
41
+ export declare function simCfnChangeSetChanges(properties: SimCfnChangeSetChangesProperties): readonly SimCfnResourceChange[];
42
+ export {};
@@ -0,0 +1,69 @@
1
+ import { makeSimCfnStackResourceMap } from "../stack/resource-map/sim-cfn-stack-resource-map.js";
2
+ import { simCfnStackReplacedLogicalIds } from "../stack/update/sim-cfn-stack-replaced-resources.js";
3
+ /**
4
+ * What executing a change set would do to the Stack it is held against.
5
+ *
6
+ * A `CREATE` change set is compared against nothing, because the Stack it
7
+ * brought into being holds no created Resource yet.
8
+ */
9
+ export function simCfnChangeSetPlan(properties) {
10
+ const { accountRegionScope, background, stack, type, template } = properties;
11
+ return simCfnChangeSetChanges({
12
+ current: type === "CREATE" ? new Map() : stack.resourceMap,
13
+ updated: makeSimCfnStackResourceMap({
14
+ accountRegionScope,
15
+ background,
16
+ template,
17
+ }),
18
+ });
19
+ }
20
+ /**
21
+ * What executing a change set would do to a Stack's Resources.
22
+ *
23
+ * The same comparison an update makes, reported rather than applied. A
24
+ * Resource only the new template has is an `Add`, one only the Stack has is a
25
+ * `Remove`, and one both have whose resolved template entry changed is a
26
+ * `Modify`. A Resource that would be replaced because it names a replaced one
27
+ * is a `Modify` too, which is how CloudFormation reports a dependent it has to
28
+ * hand a new physical name to.
29
+ *
30
+ * The order follows the templates. The new template's Resources come first, in
31
+ * the order it declares them, and the dropped ones after in the order the Stack
32
+ * holds them.
33
+ */
34
+ export function simCfnChangeSetChanges(properties) {
35
+ const { current, updated } = properties;
36
+ const replaced = simCfnStackReplacedLogicalIds({ current, updated });
37
+ const changed = updated
38
+ .values()
39
+ .filter((resource) => !unchanged(resource, current, replaced))
40
+ .map((resource) => ({
41
+ action: current.has(resource.logicalId)
42
+ ? "Modify"
43
+ : "Add",
44
+ logicalResourceId: resource.logicalId,
45
+ resourceType: resource.type,
46
+ replacement: current.has(resource.logicalId)
47
+ ? "True"
48
+ : undefined,
49
+ }))
50
+ .toArray();
51
+ const removed = current
52
+ .values()
53
+ .filter((resource) => !updated.has(resource.logicalId))
54
+ .map((resource) => ({
55
+ action: "Remove",
56
+ logicalResourceId: resource.logicalId,
57
+ resourceType: resource.type,
58
+ replacement: undefined,
59
+ }))
60
+ .toArray();
61
+ return [...changed, ...removed];
62
+ }
63
+ /**
64
+ * Whether the Stack already holds this Resource as the new template describes
65
+ * it, which is a Resource the change set leaves out.
66
+ */
67
+ function unchanged(resource, current, replaced) {
68
+ return current.has(resource.logicalId) && !replaced.has(resource.logicalId);
69
+ }
@@ -0,0 +1,62 @@
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 type { SimCfnStack } from "../stack/sim-cfn-stack.js";
6
+ import type { SimCloudFormationStackName } from "../stack/sim-cfn-stack.type.js";
7
+ import type { SimCfnExports } from "../export/sim-cfn-exports.js";
8
+ import type { SimCloudFormationAuthorization } from "../authorize/sim-cloudformation-authorization.js";
9
+ import type { SimCreateChangeSetCommand, SimCreateChangeSetCommandOutput } from "../command/create-change-set/create-change-set.command.js";
10
+ import type { SimDescribeChangeSetCommand, SimDescribeChangeSetCommandOutput } from "../command/describe-change-set/describe-change-set.command.js";
11
+ import type { SimExecuteChangeSetCommand, SimExecuteChangeSetCommandOutput } from "../command/execute-change-set/execute-change-set.command.js";
12
+ import type { SimDeleteChangeSetCommand, SimDeleteChangeSetCommandOutput } from "../command/delete-change-set/delete-change-set.command.js";
13
+ import type { SimListChangeSetsCommand, SimListChangeSetsCommandOutput } from "../command/list-change-sets/list-change-sets.command.js";
14
+ interface SimCfnChangeSetCommandsProperties {
15
+ readonly simAws: SimAws;
16
+ readonly accountRegionScope: SimAwsAccountRegionScope;
17
+ readonly stacks: Map<SimCloudFormationStackName, SimCfnStack>;
18
+ readonly background: BackgroundScheduler & BackgroundCompleter;
19
+ readonly authorization: SimCloudFormationAuthorization;
20
+ readonly exports?: SimCfnExports | undefined;
21
+ }
22
+ /**
23
+ * The change set half of simulated CloudFormation's SDK surface.
24
+ *
25
+ * The five change set commands share one registry of held change sets and the
26
+ * same Stack map every other command reads, so they are assembled once here
27
+ * rather than in SimCloudFormation alongside the Stack commands.
28
+ *
29
+ * Authorization happens here rather than in SimCloudFormation, because three of
30
+ * the five commands can name a change set by its ARN alone. The Stack such a
31
+ * request operates on is the one the change set belongs to, and only this
32
+ * registry knows which that is.
33
+ */
34
+ export declare class SimCfnChangeSetCommands {
35
+ private readonly properties;
36
+ private readonly changeSets;
37
+ constructor(properties: SimCfnChangeSetCommandsProperties);
38
+ /** Work out what a template would change about a Stack, and hold it. */
39
+ create(command: SimCreateChangeSetCommand, caller?: SimAwsCaller): Promise<SimCreateChangeSetCommandOutput>;
40
+ /** Report what a held change set would do to its Stack. */
41
+ describe(command: SimDescribeChangeSetCommand, caller?: SimAwsCaller): Promise<SimDescribeChangeSetCommandOutput>;
42
+ /** Apply what a change set describes to its Stack. */
43
+ execute(command: SimExecuteChangeSetCommand, caller?: SimAwsCaller): Promise<SimExecuteChangeSetCommandOutput>;
44
+ /** Take a change set away without executing it. */
45
+ delete(command: SimDeleteChangeSetCommand, caller?: SimAwsCaller): Promise<SimDeleteChangeSetCommandOutput>;
46
+ /** List the change sets held against one Stack. */
47
+ list(command: SimListChangeSetsCommand, caller?: SimAwsCaller): Promise<SimListChangeSetsCommandOutput>;
48
+ /**
49
+ * The Stack a request naming one change set operates on.
50
+ *
51
+ * A request carrying the change set ARN alone leaves out the Stack name, and
52
+ * the change set it names knows which Stack it belongs to. Authorizing on
53
+ * what the request said would ask about every Stack in the scope, so a
54
+ * caller allowed one Stack would be refused a change set against it.
55
+ *
56
+ * A change set the registry does not hold falls back to what the request
57
+ * said. The handler refuses it, and refusing an unauthorized caller first is
58
+ * what keeps that refusal from saying which change sets exist.
59
+ */
60
+ private stackNameFor;
61
+ }
62
+ export {};