@kensio/yulin 1.21.3 → 1.21.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (650) hide show
  1. package/dist/service/athena/engine/sim-athena-column-types.d.ts +2 -0
  2. package/dist/service/athena/engine/sim-athena-column-types.js +4 -0
  3. package/dist/service/athena/engine/sim-athena-delimited-format.d.ts +7 -0
  4. package/dist/service/athena/engine/sim-athena-delimited-format.js +51 -0
  5. package/dist/service/athena/engine/sim-athena-engine-result.js +5 -0
  6. package/dist/service/athena/engine/sim-athena-engine-run.d.ts +22 -2
  7. package/dist/service/athena/engine/sim-athena-engine-run.js +21 -31
  8. package/dist/service/athena/engine/sim-athena-loaded-tables.d.ts +10 -0
  9. package/dist/service/athena/engine/sim-athena-loaded-tables.js +35 -0
  10. package/dist/service/athena/engine/sim-athena-parquet-module.d.ts +25 -0
  11. package/dist/service/athena/engine/sim-athena-parquet-module.js +39 -0
  12. package/dist/service/athena/engine/sim-athena-parquet-records.d.ts +13 -0
  13. package/dist/service/athena/engine/sim-athena-parquet-records.js +57 -0
  14. package/dist/service/athena/engine/sim-athena-query-engine.d.ts +23 -5
  15. package/dist/service/athena/engine/sim-athena-query-engine.js +31 -10
  16. package/dist/service/athena/engine/sim-athena-record-reader.d.ts +12 -6
  17. package/dist/service/athena/engine/sim-athena-record-reader.js +28 -53
  18. package/dist/service/athena/engine/sim-athena-sql-translation.d.ts +15 -9
  19. package/dist/service/athena/engine/sim-athena-sql-translation.js +25 -13
  20. package/dist/service/athena/engine/sim-athena-sqlite-values.d.ts +5 -0
  21. package/dist/service/athena/engine/sim-athena-sqlite-values.js +24 -1
  22. package/dist/service/athena/engine/sim-athena-table-objects.d.ts +7 -2
  23. package/dist/service/athena/engine/sim-athena-table-objects.js +8 -4
  24. package/dist/service/athena/engine/sim-athena-table-rows.js +4 -3
  25. package/dist/service/athena/engine/sim-athena-turn-down.d.ts +26 -0
  26. package/dist/service/athena/engine/sim-athena-turn-down.js +43 -0
  27. package/dist/service/athena/execution/sim-athena-query-completion.d.ts +3 -1
  28. package/dist/service/athena/execution/sim-athena-query-completion.js +7 -1
  29. package/dist/service/athena/index.d.ts +1 -1
  30. package/dist/service/athena/index.js +1 -1
  31. package/dist/service/athena/result/sim-athena-query-answer.d.ts +12 -0
  32. package/dist/service/athena/result/sim-athena-query-answer.js +26 -4
  33. package/dist/service/athena/sim-athena-answered-query.fixture.d.ts +2 -0
  34. package/dist/service/athena/sim-athena-answered-query.fixture.js +1 -0
  35. package/dist/service/athena/sim-athena-engine.fixture.d.ts +20 -0
  36. package/dist/service/athena/sim-athena-engine.fixture.js +34 -0
  37. package/dist/service/cloudformation/authorize/sim-cloudformation-authorization.d.ts +23 -0
  38. package/dist/service/cloudformation/authorize/sim-cloudformation-authorization.js +37 -0
  39. package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.d.ts +18 -13
  40. package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.js +16 -24
  41. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.d.ts +2 -0
  42. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.js +1 -0
  43. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.d.ts +7 -0
  44. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.js +13 -1
  45. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.d.ts +6 -0
  46. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.js +7 -1
  47. package/dist/service/cloudformation/cdk/s3/bucket-deployment/notify/sim-cdk-bucket-deploy-notifier.d.ts +50 -0
  48. package/dist/service/cloudformation/cdk/s3/bucket-deployment/notify/sim-cdk-bucket-deploy-notifier.js +71 -0
  49. package/dist/service/cloudformation/cdk/s3/bucket-deployment/sim-cdk-bucket-deployment.js +6 -1
  50. package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.d.ts +5 -0
  51. package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.js +7 -0
  52. package/dist/service/cloudformation/cdk/sim-cdk-cloud-assembly.factory.d.ts +12 -0
  53. package/dist/service/cloudformation/cdk/sim-cdk-cloud-assembly.factory.js +16 -7
  54. package/dist/service/cloudformation/changeset/sim-cfn-change-set-arn.d.ts +9 -0
  55. package/dist/service/cloudformation/changeset/sim-cfn-change-set-arn.js +12 -0
  56. package/dist/service/cloudformation/changeset/sim-cfn-change-set-changes.d.ts +42 -0
  57. package/dist/service/cloudformation/changeset/sim-cfn-change-set-changes.js +69 -0
  58. package/dist/service/cloudformation/changeset/sim-cfn-change-set-commands.d.ts +62 -0
  59. package/dist/service/cloudformation/changeset/sim-cfn-change-set-commands.js +89 -0
  60. package/dist/service/cloudformation/changeset/sim-cfn-change-set-execution.d.ts +31 -0
  61. package/dist/service/cloudformation/changeset/sim-cfn-change-set-execution.js +59 -0
  62. package/dist/service/cloudformation/changeset/sim-cfn-change-set-failure.d.ts +21 -0
  63. package/dist/service/cloudformation/changeset/sim-cfn-change-set-failure.js +19 -0
  64. package/dist/service/cloudformation/changeset/sim-cfn-change-set-input.d.ts +17 -0
  65. package/dist/service/cloudformation/changeset/sim-cfn-change-set-input.js +18 -0
  66. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack-id.d.ts +18 -0
  67. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack-id.js +13 -0
  68. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack.d.ts +45 -0
  69. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack.js +52 -0
  70. package/dist/service/cloudformation/changeset/sim-cfn-change-set-type.d.ts +12 -0
  71. package/dist/service/cloudformation/changeset/sim-cfn-change-set-type.js +21 -0
  72. package/dist/service/cloudformation/changeset/sim-cfn-change-set.d.ts +54 -0
  73. package/dist/service/cloudformation/changeset/sim-cfn-change-set.js +49 -0
  74. package/dist/service/cloudformation/changeset/sim-cfn-change-set.type.d.ts +35 -0
  75. package/dist/service/cloudformation/changeset/sim-cfn-change-set.type.js +1 -0
  76. package/dist/service/cloudformation/changeset/sim-cfn-change-sets.d.ts +53 -0
  77. package/dist/service/cloudformation/changeset/sim-cfn-change-sets.js +83 -0
  78. package/dist/service/cloudformation/command/create-change-set/create-change-set.command.d.ts +32 -0
  79. package/dist/service/cloudformation/command/create-change-set/create-change-set.command.js +1 -0
  80. package/dist/service/cloudformation/command/create-change-set/create-change-set.handler.d.ts +38 -0
  81. package/dist/service/cloudformation/command/create-change-set/create-change-set.handler.js +80 -0
  82. package/dist/service/cloudformation/command/create-stack/create-stack.handler.d.ts +3 -0
  83. package/dist/service/cloudformation/command/create-stack/create-stack.handler.js +16 -13
  84. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.command.d.ts +22 -0
  85. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.command.js +1 -0
  86. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.handler.d.ts +27 -0
  87. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.handler.js +35 -0
  88. package/dist/service/cloudformation/command/delete-stack/delete-stack.command.d.ts +6 -0
  89. package/dist/service/cloudformation/command/delete-stack/delete-stack.handler.d.ts +11 -0
  90. package/dist/service/cloudformation/command/delete-stack/delete-stack.handler.js +15 -1
  91. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.command.d.ts +48 -0
  92. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.command.js +1 -0
  93. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.handler.d.ts +23 -0
  94. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.handler.js +52 -0
  95. package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.d.ts +3 -0
  96. package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.js +8 -4
  97. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-described-stacks.d.ts +18 -6
  98. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-described-stacks.js +22 -7
  99. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-stack-describer.js +1 -1
  100. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.command.d.ts +25 -0
  101. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.command.js +1 -0
  102. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.handler.d.ts +31 -0
  103. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.handler.js +37 -0
  104. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.command.d.ts +36 -0
  105. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.command.js +1 -0
  106. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.handler.d.ts +26 -0
  107. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.handler.js +39 -0
  108. package/dist/service/cloudformation/command/update-stack/update-stack-previous-values.d.ts +31 -0
  109. package/dist/service/cloudformation/command/update-stack/update-stack-previous-values.js +52 -0
  110. package/dist/service/cloudformation/command/update-stack/update-stack-template.d.ts +22 -0
  111. package/dist/service/cloudformation/command/update-stack/update-stack-template.js +34 -0
  112. package/dist/service/cloudformation/command/update-stack/update-stack.command.d.ts +17 -1
  113. package/dist/service/cloudformation/command/update-stack/update-stack.handler.d.ts +6 -0
  114. package/dist/service/cloudformation/command/update-stack/update-stack.handler.js +15 -16
  115. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js +2 -1
  116. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-options-deployed.d.ts +10 -0
  117. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-options-deployed.js +14 -0
  118. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.d.ts +11 -1
  119. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.js +3 -2
  120. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts +5 -8
  121. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.js +0 -14
  122. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts +9 -0
  123. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js +2 -0
  124. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.d.ts +10 -0
  125. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.js +2 -1
  126. package/dist/service/cloudformation/deploy/sim-cfn-template-file-updater.js +1 -0
  127. package/dist/service/cloudformation/error/sim-cloudformation.error.d.ts +21 -0
  128. package/dist/service/cloudformation/error/sim-cloudformation.error.js +25 -0
  129. package/dist/service/cloudformation/parameters/pseudo/sim-cfn-pseudo-parameters.d.ts +7 -0
  130. package/dist/service/cloudformation/parameters/pseudo/sim-cfn-pseudo-parameters.js +3 -1
  131. package/dist/service/cloudformation/parameters/sim-cfn-parameters.d.ts +9 -0
  132. package/dist/service/cloudformation/parameters/sim-cfn-parameters.js +12 -0
  133. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-delete-operation.d.ts +4 -0
  134. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-delete-operation.js +10 -0
  135. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-retention.d.ts +44 -0
  136. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-retention.js +33 -0
  137. package/dist/service/cloudformation/resource/sim-cfn-resource-record.d.ts +15 -0
  138. package/dist/service/cloudformation/resource/sim-cfn-resource-record.js +21 -1
  139. package/dist/service/cloudformation/resource/sim-cfn-resource.d.ts +9 -7
  140. package/dist/service/cloudformation/resource/sim-cfn-resource.js +11 -11
  141. package/dist/service/cloudformation/resource/sim-cfn-resource.type.d.ts +8 -0
  142. package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.d.ts +3 -3
  143. package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.js +3 -3
  144. package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.d.ts +4 -0
  145. package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.js +9 -0
  146. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.d.ts +37 -0
  147. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.js +77 -0
  148. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.d.ts +51 -0
  149. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.js +10 -0
  150. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.d.ts +11 -0
  151. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.js +34 -0
  152. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.d.ts +21 -0
  153. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.js +31 -0
  154. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.d.ts +14 -0
  155. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.js +1 -0
  156. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.d.ts +26 -0
  157. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.js +58 -0
  158. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.d.ts +18 -0
  159. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.js +89 -0
  160. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.d.ts +15 -0
  161. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.js +65 -0
  162. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.d.ts +13 -0
  163. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.js +60 -0
  164. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.d.ts +13 -0
  165. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.js +50 -0
  166. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.d.ts +13 -0
  167. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.js +30 -0
  168. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.d.ts +26 -0
  169. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.js +44 -0
  170. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.d.ts +15 -0
  171. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.js +59 -0
  172. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.d.ts +11 -0
  173. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.js +43 -0
  174. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.d.ts +15 -0
  175. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.js +67 -0
  176. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.d.ts +26 -0
  177. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.js +61 -0
  178. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.d.ts +18 -0
  179. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.js +59 -0
  180. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api-template.factory.js +1 -1
  181. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.d.ts +4 -0
  182. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.js +12 -5
  183. package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api-template.factory.js +1 -1
  184. package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api.js +7 -3
  185. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-api-event.js +7 -3
  186. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.d.ts +26 -0
  187. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.js +88 -0
  188. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.d.ts +12 -0
  189. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.js +1 -0
  190. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-function-events.js +8 -5
  191. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-event.js +23 -1
  192. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.d.ts +9 -2
  193. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.js +5 -3
  194. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.d.ts +6 -1
  195. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.js +7 -1
  196. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.d.ts +19 -0
  197. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.js +69 -0
  198. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.d.ts +5 -0
  199. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.js +3 -1
  200. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.d.ts +8 -0
  201. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.js +8 -0
  202. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-url.js +1 -4
  203. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.d.ts +6 -4
  204. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.js +2 -4
  205. package/dist/service/cloudformation/sam/sim-cfn-sam-error.d.ts +31 -0
  206. package/dist/service/cloudformation/sam/sim-cfn-sam-error.js +17 -0
  207. package/dist/service/cloudformation/sam/sim-cfn-sam-expansion.js +11 -6
  208. package/dist/service/cloudformation/sdk/sim-cloudformation-sdk-command-router.js +20 -0
  209. package/dist/service/cloudformation/serve/sim-cloudformation-api.d.ts +4 -3
  210. package/dist/service/cloudformation/serve/sim-cloudformation-api.js +6 -3
  211. package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.d.ts +10 -0
  212. package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.js +94 -0
  213. package/dist/service/cloudformation/sim-cloudformation.d.ts +31 -0
  214. package/dist/service/cloudformation/sim-cloudformation.js +56 -9
  215. package/dist/service/cloudformation/stack/resource-map/sim-cfn-stack-resource-map.js +1 -0
  216. package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.d.ts +20 -0
  217. package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.js +23 -0
  218. package/dist/service/cloudformation/stack/sim-cfn-deployed-stack.type.d.ts +6 -0
  219. package/dist/service/cloudformation/stack/sim-cfn-stack-deploy-context.d.ts +47 -0
  220. package/dist/service/cloudformation/stack/sim-cfn-stack-deploy-context.js +46 -0
  221. package/dist/service/cloudformation/stack/sim-cfn-stack-id.d.ts +30 -0
  222. package/dist/service/cloudformation/stack/sim-cfn-stack-id.js +24 -0
  223. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +53 -20
  224. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +79 -32
  225. package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts +28 -16
  226. package/dist/service/cloudformation/stack/sim-cfn-stack.js +60 -32
  227. package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +21 -1
  228. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.d.ts +7 -1
  229. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.js +3 -1
  230. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.d.ts +3 -0
  231. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.js +3 -0
  232. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.d.ts +3 -0
  233. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.js +2 -1
  234. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.d.ts +18 -0
  235. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.js +30 -0
  236. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.d.ts +9 -0
  237. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.js +14 -0
  238. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.d.ts +25 -14
  239. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.js +41 -24
  240. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.d.ts +9 -0
  241. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.js +14 -0
  242. package/dist/service/cloudformation/stack/update/sim-cfn-stack-updater.js +6 -1
  243. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.d.ts +12 -3
  244. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.js +29 -3
  245. package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.d.ts +28 -0
  246. package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.js +39 -0
  247. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.d.ts +25 -1
  248. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.js +43 -11
  249. package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.d.ts +7 -0
  250. package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.js +29 -3
  251. package/dist/service/cloudformation/template/sim-cfn-command-template.d.ts +40 -0
  252. package/dist/service/cloudformation/template/sim-cfn-command-template.js +45 -0
  253. package/dist/service/cloudformation/template/sim-cfn-template.d.ts +7 -0
  254. package/dist/service/cloudformation/template/sim-cfn-template.js +15 -1
  255. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts +2 -0
  256. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js +49 -0
  257. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js +1 -0
  258. package/dist/service/cloudfront/origin/s3/sim-cf-s3-origin-responses.js +1 -0
  259. package/dist/service/cognito/serve/page/sim-cognito-provider-page.js +1 -1
  260. package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.d.ts +5 -0
  261. package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.js +17 -0
  262. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.d.ts +5 -5
  263. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.js +24 -8
  264. package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.d.ts +11 -8
  265. package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.js +20 -8
  266. package/dist/service/dynamodb/command/query/sim-dynamodb-query.js +2 -0
  267. package/dist/service/dynamodb/command/query/sim-dynamodb-unsimulated-query-input.js +0 -1
  268. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.d.ts +14 -4
  269. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.js +16 -4
  270. package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.d.ts +17 -0
  271. package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.js +39 -0
  272. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.d.ts +28 -0
  273. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.js +50 -0
  274. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan.js +12 -5
  275. package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.d.ts +3 -3
  276. package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.js +3 -4
  277. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.d.ts +5 -16
  278. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.js +4 -21
  279. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.d.ts +15 -0
  280. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.js +18 -1
  281. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.d.ts +13 -0
  282. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.js +15 -0
  283. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.js +2 -0
  284. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.js +5 -3
  285. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.d.ts +21 -0
  286. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.js +37 -0
  287. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.js +6 -0
  288. package/dist/service/lambda/command/create-function/create-function.handler.d.ts +3 -0
  289. package/dist/service/lambda/command/create-function/create-function.handler.js +5 -1
  290. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.command.d.ts +2 -3
  291. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.handler.js +1 -0
  292. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts +6 -0
  293. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.js +10 -0
  294. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.js +2 -6
  295. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js +1 -0
  296. package/dist/service/lambda/command/function/sim-lambda-function-commands.d.ts +2 -0
  297. package/dist/service/lambda/command/function-url/function-url-cors-constraints.d.ts +25 -0
  298. package/dist/service/lambda/command/function-url/function-url-cors-constraints.js +49 -0
  299. package/dist/service/lambda/command/function-url/function-url-cors-input.d.ts +25 -0
  300. package/dist/service/lambda/command/function-url/function-url-cors-input.js +57 -0
  301. package/dist/service/lambda/command/function-url/function-url-input.d.ts +7 -0
  302. package/dist/service/lambda/command/function-url/function-url-input.js +9 -0
  303. package/dist/service/lambda/command/invoke/async/sim-lambda-async-invocation.js +10 -13
  304. package/dist/service/lambda/command/invoke/async/sim-lambda-async-outcome.js +2 -0
  305. package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.d.ts +13 -0
  306. package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.js +12 -0
  307. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.command.d.ts +2 -0
  308. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.handler.js +1 -0
  309. package/dist/service/lambda/destination/deliver/sim-lambda-destination-bus.js +1 -1
  310. package/dist/service/lambda/destination/deliver/sim-lambda-destination-function.js +8 -12
  311. package/dist/service/lambda/destination/deliver/sim-lambda-destination-queue.js +4 -3
  312. package/dist/service/lambda/destination/deliver/sim-lambda-destination-send.d.ts +2 -0
  313. package/dist/service/lambda/destination/deliver/sim-lambda-destination-topic.js +4 -3
  314. package/dist/service/lambda/destination/sim-aws-lambda-destinations.d.ts +4 -6
  315. package/dist/service/lambda/destination/sim-aws-lambda-destinations.js +6 -6
  316. package/dist/service/lambda/destination/sim-lambda-destination-targets.d.ts +3 -0
  317. package/dist/service/lambda/event-source/poll/kinesis/sim-lambda-kinesis-stream-delivery.js +4 -9
  318. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.js +4 -9
  319. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.d.ts +22 -3
  320. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.js +39 -9
  321. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.d.ts +7 -6
  322. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.js +14 -12
  323. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.d.ts +9 -15
  324. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.js +9 -16
  325. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.d.ts +10 -6
  326. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.js +22 -12
  327. package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.d.ts +23 -0
  328. package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.js +18 -0
  329. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.d.ts +12 -13
  330. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.js +24 -17
  331. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.d.ts +64 -0
  332. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.js +86 -0
  333. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts +6 -0
  334. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js +8 -1
  335. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.d.ts +6 -0
  336. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.js +7 -0
  337. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.d.ts +11 -1
  338. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.js +13 -0
  339. package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.d.ts +39 -0
  340. package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.js +46 -0
  341. package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.d.ts +56 -0
  342. package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.js +110 -0
  343. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.d.ts +5 -0
  344. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.js +7 -1
  345. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.d.ts +6 -0
  346. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.js +6 -0
  347. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.d.ts +6 -1
  348. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.js +8 -6
  349. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.d.ts +10 -8
  350. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.js +18 -1
  351. package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts +8 -2
  352. package/dist/service/lambda/function/code/sim-lambda-executable-code.js +2 -1
  353. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.d.ts +2 -11
  354. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.js +13 -39
  355. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.d.ts +7 -0
  356. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.js +13 -7
  357. package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.d.ts +23 -0
  358. package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.js +42 -0
  359. package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.d.ts +12 -4
  360. package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.js +15 -5
  361. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.d.ts +7 -0
  362. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.js +6 -2
  363. package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.d.ts +26 -0
  364. package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.js +84 -0
  365. package/dist/service/lambda/function/invoke/sim-lambda-invocation.d.ts +44 -0
  366. package/dist/service/lambda/function/invoke/sim-lambda-invocation.js +44 -0
  367. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.d.ts +6 -0
  368. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.js +1 -2
  369. package/dist/service/lambda/function/invoke/sim-lambda-process-output.d.ts +6 -1
  370. package/dist/service/lambda/function/invoke/sim-lambda-process-output.js +19 -6
  371. package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.d.ts +15 -0
  372. package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.js +18 -0
  373. package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.d.ts +12 -0
  374. package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.js +28 -0
  375. package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.d.ts +46 -0
  376. package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.js +104 -0
  377. package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.d.ts +24 -0
  378. package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.js +27 -0
  379. package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.d.ts +43 -0
  380. package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.js +112 -0
  381. package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.d.ts +57 -0
  382. package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.js +79 -0
  383. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.d.ts +10 -0
  384. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.js +15 -0
  385. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.d.ts +11 -0
  386. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.js +24 -0
  387. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.d.ts +50 -0
  388. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.js +43 -0
  389. package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts +17 -0
  390. package/dist/service/lambda/function/logging/sim-lambda-function-logging.js +12 -1
  391. package/dist/service/lambda/function/logging/sim-lambda-output.d.ts +56 -0
  392. package/dist/service/lambda/function/logging/sim-lambda-output.js +62 -0
  393. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.d.ts +8 -0
  394. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.js +27 -1
  395. package/dist/service/lambda/function/sim-lambda-function.d.ts +1 -1
  396. package/dist/service/lambda/function/sim-lambda-function.js +11 -9
  397. package/dist/service/lambda/function/sim-lambda-function.type.d.ts +15 -0
  398. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.d.ts +16 -0
  399. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.d.ts +22 -0
  400. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.js +17 -0
  401. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.js +1 -0
  402. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.d.ts +2 -0
  403. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.js +2 -1
  404. package/dist/service/lambda/function/url/sim-lambda-function-url-store.d.ts +2 -0
  405. package/dist/service/lambda/function/url/sim-lambda-function-url.d.ts +16 -0
  406. package/dist/service/lambda/function/url/sim-lambda-function-url.js +16 -1
  407. package/dist/service/lambda/index.d.ts +1 -0
  408. package/dist/service/lambda/index.js +1 -0
  409. package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.d.ts +50 -0
  410. package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.js +96 -0
  411. package/dist/service/lambda/serve/sim-lambda-controller.d.ts +14 -0
  412. package/dist/service/lambda/serve/sim-lambda-controller.js +27 -0
  413. package/dist/service/lambda/sim-lambda-commands.d.ts +10 -0
  414. package/dist/service/lambda/sim-lambda-commands.js +11 -0
  415. package/dist/service/lambda/sim-lambda.d.ts +12 -0
  416. package/dist/service/lambda/sim-lambda.js +13 -0
  417. package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.d.ts +67 -0
  418. package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.js +69 -0
  419. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.d.ts +4 -31
  420. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.js +7 -6
  421. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.d.ts +5 -0
  422. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.js +8 -4
  423. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.d.ts +1 -14
  424. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.js +16 -8
  425. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.d.ts +41 -0
  426. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.js +1 -0
  427. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.d.ts +14 -0
  428. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.js +32 -2
  429. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.d.ts +33 -0
  430. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.js +48 -0
  431. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.d.ts +16 -0
  432. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.js +44 -0
  433. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.d.ts +8 -0
  434. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.js +27 -0
  435. package/dist/service/s3/bucket/notification/sim-s3-notification-event.d.ts +1 -1
  436. package/dist/service/s3/bucket/notification/sim-s3-notification-event.js +5 -0
  437. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-events.js +0 -3
  438. package/dist/service/s3/bucket/sim-s3-bucket-access.d.ts +3 -0
  439. package/dist/service/s3/bucket/sim-s3-bucket-access.js +6 -2
  440. package/dist/service/s3/bucket/sim-s3-bucket-configuration.d.ts +84 -0
  441. package/dist/service/s3/bucket/sim-s3-bucket-configuration.js +115 -0
  442. package/dist/service/s3/bucket/sim-s3-bucket-maker.d.ts +31 -0
  443. package/dist/service/s3/bucket/sim-s3-bucket-maker.js +41 -0
  444. package/dist/service/s3/bucket/sim-s3-bucket-objects.d.ts +10 -0
  445. package/dist/service/s3/bucket/sim-s3-bucket-objects.js +18 -0
  446. package/dist/service/s3/bucket/sim-s3-bucket-properties.d.ts +41 -0
  447. package/dist/service/s3/bucket/sim-s3-bucket-properties.js +1 -0
  448. package/dist/service/s3/bucket/sim-s3-bucket.d.ts +11 -83
  449. package/dist/service/s3/bucket/sim-s3-bucket.js +14 -83
  450. package/dist/service/s3/bucket/sim-s3-public-read.fixture.d.ts +6 -0
  451. package/dist/service/s3/bucket/sim-s3-public-read.fixture.js +20 -6
  452. package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.d.ts +58 -0
  453. package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.js +73 -0
  454. package/dist/service/s3/bucket/versioning/sim-s3-object-version.d.ts +19 -1
  455. package/dist/service/s3/bucket/versioning/sim-s3-object-version.js +20 -0
  456. package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.d.ts +21 -0
  457. package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.js +44 -0
  458. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.js +6 -0
  459. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.d.ts +5 -4
  460. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.js +12 -5
  461. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.d.ts +21 -0
  462. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.js +30 -0
  463. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js +1 -0
  464. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.d.ts +14 -1
  465. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.js +41 -16
  466. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.d.ts +3 -5
  467. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.js +7 -10
  468. package/dist/service/s3/command/authorize/sim-s3-authorize-action.d.ts +6 -1
  469. package/dist/service/s3/command/authorize/sim-s3-authorize-action.js +5 -0
  470. package/dist/service/s3/command/copy-object/copy-object-builder.d.ts +10 -1
  471. package/dist/service/s3/command/copy-object/copy-object-builder.js +17 -1
  472. package/dist/service/s3/command/copy-object/copy-object.command.d.ts +11 -1
  473. package/dist/service/s3/command/copy-object/copy-object.handler.js +2 -1
  474. package/dist/service/s3/command/create-bucket/create-bucket.handler.d.ts +2 -2
  475. package/dist/service/s3/command/create-bucket/create-bucket.handler.js +4 -12
  476. package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.command.d.ts +5 -1
  477. package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.handler.js +7 -0
  478. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.d.ts +19 -0
  479. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.js +1 -0
  480. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.d.ts +30 -0
  481. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.js +38 -0
  482. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.d.ts +23 -0
  483. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.js +1 -0
  484. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.d.ts +22 -0
  485. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.js +42 -0
  486. package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.d.ts +29 -0
  487. package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.js +49 -0
  488. package/dist/service/s3/command/encryption/sim-s3-encryption-commands.d.ts +22 -0
  489. package/dist/service/s3/command/encryption/sim-s3-encryption-commands.js +30 -0
  490. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.d.ts +24 -0
  491. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.js +1 -0
  492. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.d.ts +31 -0
  493. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.js +39 -0
  494. package/dist/service/s3/command/get-object/get-object-authorizer.d.ts +11 -8
  495. package/dist/service/s3/command/get-object/get-object-authorizer.js +26 -34
  496. package/dist/service/s3/command/get-object/get-object-loader.d.ts +7 -3
  497. package/dist/service/s3/command/get-object/get-object-loader.js +9 -4
  498. package/dist/service/s3/command/get-object/get-object.command.d.ts +2 -1
  499. package/dist/service/s3/command/get-object/get-object.handler.d.ts +4 -0
  500. package/dist/service/s3/command/get-object/get-object.handler.js +13 -7
  501. package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.d.ts +29 -0
  502. package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.js +1 -0
  503. package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.d.ts +21 -0
  504. package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.js +33 -0
  505. package/dist/service/s3/command/head-object/head-object-loader.js +2 -0
  506. package/dist/service/s3/command/head-object/head-object.command.d.ts +2 -1
  507. package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-rules-validation.js +18 -0
  508. package/dist/service/s3/command/list-multipart-uploads/list-multipart-uploads.handler.js +1 -2
  509. package/dist/service/s3/command/list-object-versions/list-object-versions-summaries.js +1 -2
  510. package/dist/service/s3/command/list-objects/list-objects-page-builder.d.ts +5 -0
  511. package/dist/service/s3/command/list-objects/list-objects-page-builder.js +11 -6
  512. package/dist/service/s3/command/list-objects/list-objects.command.d.ts +5 -1
  513. package/dist/service/s3/command/list-objects/list-objects.handler.js +5 -0
  514. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.d.ts +6 -0
  515. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.js +11 -5
  516. package/dist/service/s3/command/list-objects-v2/list-objects-v2.command.d.ts +5 -1
  517. package/dist/service/s3/command/list-objects-v2/list-objects-v2.handler.js +5 -0
  518. package/dist/service/s3/command/list-parts/list-parts.handler.js +3 -3
  519. package/dist/service/s3/command/multipart/sim-s3-multipart-access.js +1 -1
  520. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.d.ts +21 -0
  521. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.js +1 -0
  522. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.d.ts +31 -0
  523. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.js +41 -0
  524. package/dist/service/s3/command/put-object/put-object-builder.d.ts +5 -1
  525. package/dist/service/s3/command/put-object/put-object-builder.js +10 -1
  526. package/dist/service/s3/command/put-object/put-object.command.d.ts +5 -1
  527. package/dist/service/s3/command/put-object/put-object.handler.js +2 -1
  528. package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.d.ts +37 -0
  529. package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.js +1 -0
  530. package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.d.ts +22 -0
  531. package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.js +46 -0
  532. package/dist/service/s3/command/sim-s3-command.types.d.ts +6 -0
  533. package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.d.ts +61 -0
  534. package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.js +49 -0
  535. package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.d.ts +30 -0
  536. package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.js +27 -0
  537. package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.d.ts +26 -0
  538. package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.js +34 -0
  539. package/dist/service/s3/error/sim-s3-upload.error.d.ts +41 -0
  540. package/dist/service/s3/error/sim-s3-upload.error.js +47 -0
  541. package/dist/service/s3/error/sim-s3.error.d.ts +22 -34
  542. package/dist/service/s3/error/sim-s3.error.js +26 -40
  543. package/dist/service/s3/mount/sim-s3-mount.type.d.ts +10 -0
  544. package/dist/service/s3/notification/event/sim-s3-event-records.d.ts +3 -2
  545. package/dist/service/s3/notification/event/sim-s3-event-records.js +5 -3
  546. package/dist/service/s3/notification/event/sim-s3-object-event-builder.d.ts +33 -8
  547. package/dist/service/s3/notification/event/sim-s3-object-event-builder.js +23 -9
  548. package/dist/service/s3/notification/sim-s3-object-notifier.d.ts +5 -1
  549. package/dist/service/s3/notification/sim-s3-object-notifier.js +6 -0
  550. package/dist/service/s3/object/s3-key-encoding.d.ts +12 -0
  551. package/dist/service/s3/object/s3-key-encoding.js +14 -0
  552. package/dist/service/s3/object/s3-listing-encoding.d.ts +42 -0
  553. package/dist/service/s3/object/s3-listing-encoding.js +75 -0
  554. package/dist/service/s3/object/s3-object-response-headers.d.ts +40 -0
  555. package/dist/service/s3/object/s3-object-response-headers.js +49 -2
  556. package/dist/service/s3/object/s3-object-storage-report.d.ts +19 -0
  557. package/dist/service/s3/object/s3-object-storage-report.js +18 -0
  558. package/dist/service/s3/object/s3-object-summary.d.ts +2 -10
  559. package/dist/service/s3/object/s3-object-summary.js +1 -10
  560. package/dist/service/s3/object/s3-object-tags.d.ts +61 -0
  561. package/dist/service/s3/object/s3-object-tags.js +77 -0
  562. package/dist/service/s3/object/s3-object.d.ts +49 -0
  563. package/dist/service/s3/object/s3-object.js +52 -1
  564. package/dist/service/s3/object/s3-server-side-encryption.d.ts +30 -0
  565. package/dist/service/s3/object/s3-server-side-encryption.js +42 -0
  566. package/dist/service/s3/object/s3-storage-class.d.ts +45 -0
  567. package/dist/service/s3/object/s3-storage-class.js +67 -0
  568. package/dist/service/s3/object/s3-write-metadata.d.ts +17 -3
  569. package/dist/service/s3/object/s3-write-metadata.js +43 -0
  570. package/dist/service/s3/object/s3-write-storage.d.ts +27 -0
  571. package/dist/service/s3/object/s3-write-storage.js +21 -0
  572. package/dist/service/s3/object/s3-write-tagging.d.ts +24 -0
  573. package/dist/service/s3/object/s3-write-tagging.js +19 -0
  574. package/dist/service/s3/sdk/sim-s3-sdk-bucket-routes.js +12 -0
  575. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +2 -0
  576. package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.d.ts +9 -0
  577. package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.js +23 -0
  578. package/dist/service/s3/serve/api/sim-s3-api-bucket-routes.js +22 -0
  579. package/dist/service/s3/serve/api/sim-s3-api-configuration-output.d.ts +4 -0
  580. package/dist/service/s3/serve/api/sim-s3-api-configuration-output.js +10 -0
  581. package/dist/service/s3/serve/api/sim-s3-api-encryption-read.d.ts +7 -0
  582. package/dist/service/s3/serve/api/sim-s3-api-encryption-read.js +30 -0
  583. package/dist/service/s3/serve/api/sim-s3-api-head-output.d.ts +4 -2
  584. package/dist/service/s3/serve/api/sim-s3-api-head-output.js +8 -2
  585. package/dist/service/s3/serve/api/sim-s3-api-input.d.ts +0 -6
  586. package/dist/service/s3/serve/api/sim-s3-api-input.js +2 -13
  587. package/dist/service/s3/serve/api/sim-s3-api-listing.d.ts +5 -0
  588. package/dist/service/s3/serve/api/sim-s3-api-listing.js +5 -0
  589. package/dist/service/s3/serve/api/sim-s3-api-object-input.d.ts +16 -0
  590. package/dist/service/s3/serve/api/sim-s3-api-object-input.js +34 -7
  591. package/dist/service/s3/serve/api/sim-s3-api-object-output.d.ts +18 -1
  592. package/dist/service/s3/serve/api/sim-s3-api-object-output.js +21 -2
  593. package/dist/service/s3/serve/api/sim-s3-api-object-routes.js +22 -1
  594. package/dist/service/s3/serve/api/sim-s3-api-output.d.ts +5 -1
  595. package/dist/service/s3/serve/api/sim-s3-api-output.js +16 -5
  596. package/dist/service/s3/serve/api/sim-s3-api-request.d.ts +6 -5
  597. package/dist/service/s3/serve/api/sim-s3-api-request.js +55 -11
  598. package/dist/service/s3/serve/api/sim-s3-api-routes.js +2 -2
  599. package/dist/service/s3/serve/api/sim-s3-api-tagging-read.d.ts +9 -0
  600. package/dist/service/s3/serve/api/sim-s3-api-tagging-read.js +14 -0
  601. package/dist/service/s3/serve/api/sim-s3-api.d.ts +7 -1
  602. package/dist/service/s3/serve/api/sim-s3-api.js +7 -1
  603. package/dist/service/s3/serve/sim-s3-rest-controller.d.ts +1 -5
  604. package/dist/service/s3/serve/sim-s3-rest-controller.js +3 -17
  605. package/dist/service/s3/serve/sim-s3-rest-object-reader.d.ts +3 -0
  606. package/dist/service/s3/serve/sim-s3-rest-object-reader.js +8 -1
  607. package/dist/service/s3/serve/sim-s3-rest-upload.d.ts +20 -0
  608. package/dist/service/s3/serve/sim-s3-rest-upload.js +30 -0
  609. package/dist/service/s3/serve/website/sim-s3-website-object-loader.js +1 -0
  610. package/dist/service/s3/serve/website/sim-s3-website-object.d.ts +2 -0
  611. package/dist/service/s3/serve/website/sim-s3-website-object.js +3 -0
  612. package/dist/service/s3/sim-s3-commands.d.ts +10 -0
  613. package/dist/service/s3/sim-s3-commands.js +13 -0
  614. package/dist/service/s3/sim-s3-operations.d.ts +11 -4
  615. package/dist/service/s3/sim-s3-operations.js +17 -4
  616. package/dist/service/s3/sim-s3-tagging-operations.d.ts +21 -0
  617. package/dist/service/s3/sim-s3-tagging-operations.js +25 -0
  618. package/dist/service/s3/sim-s3.d.ts +28 -0
  619. package/dist/service/s3/sim-s3.js +38 -0
  620. package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.d.ts +34 -0
  621. package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.js +34 -0
  622. package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.d.ts +9 -0
  623. package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.js +24 -0
  624. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.d.ts +5 -4
  625. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.js +5 -3
  626. package/dist/service/s3/upload/sim-s3-completed-upload.js +5 -1
  627. package/dist/service/s3/upload/sim-s3-multipart-upload.d.ts +18 -0
  628. package/dist/service/s3/upload/sim-s3-multipart-upload.js +8 -0
  629. package/dist/service/s3/upload/sim-s3-multipart-uploads.d.ts +6 -0
  630. package/dist/service/s3/upload/sim-s3-multipart-uploads.js +5 -0
  631. package/dist/util/background/background-clock-waits.d.ts +52 -0
  632. package/dist/util/background/background-clock-waits.js +76 -0
  633. package/dist/util/background/background-jitter.js +1 -0
  634. package/dist/util/background/background-pending-tasks.d.ts +55 -0
  635. package/dist/util/background/background-pending-tasks.js +117 -0
  636. package/dist/util/background/background-settled-tasks.d.ts +4 -1
  637. package/dist/util/background/background-settled-tasks.js +4 -1
  638. package/dist/util/background/background.d.ts +43 -0
  639. package/dist/util/background/background.js +27 -19
  640. package/dist/util/background/non-deterministic-background.d.ts +12 -0
  641. package/dist/util/background/non-deterministic-background.js +24 -20
  642. package/dist/util/clock/sim-clock-control.js +23 -2
  643. package/docs/services/apigateway/README.md +3 -1
  644. package/docs/services/athena/README.md +126 -3
  645. package/docs/services/cloudformation/README.md +831 -67
  646. package/docs/services/cognito/README.md +5 -0
  647. package/docs/services/dynamodb/README.md +86 -11
  648. package/docs/services/lambda/README.md +603 -39
  649. package/docs/services/s3/README.md +688 -57
  650. package/package.json +8 -2
@@ -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
  }
@@ -8,12 +8,16 @@ interface SimCdkAssetsPublisherProperties {
8
8
  readonly stackName?: string | undefined;
9
9
  readonly cdkOutContext?: SimCdkOutContext | undefined;
10
10
  /**
11
- * The principal the deployment runs as, which the staging Bucket is created
12
- * and written to as. A real `cdk deploy` publishes assets before
13
- * CloudFormation sees the template, and it publishes them as somebody; a
14
- * deployment that names a caller is what says who.
11
+ * The principal the assets are published as.
12
+ *
13
+ * A real `cdk deploy` publishes assets before CloudFormation sees the
14
+ * template, as the file publishing Role the assets manifest names in each
15
+ * destination's `assumeRoleArn`. CloudFormation then processes the template
16
+ * as the execution Role. A deployment that names an assets caller is what
17
+ * tells the two apart here, and one that names none publishes as whoever
18
+ * deploys.
15
19
  */
16
- readonly caller?: SimAwsCaller | undefined;
20
+ readonly assetsCaller?: SimAwsCaller | undefined;
17
21
  }
18
22
  /**
19
23
  * Publishes a CDK cloud assembly's file assets into simulated S3.
@@ -25,7 +29,7 @@ interface SimCdkAssetsPublisherProperties {
25
29
  * Lambda function resolves its code through the ordinary sim S3 fetch with no
26
30
  * Lambda-specific asset handling.
27
31
  *
28
- * Publishing is byte movement only; nothing here runs asset code. Functions
32
+ * Publishing is byte movement only. Nothing here runs asset code. Functions
29
33
  * sim Lambda cannot run, such as a CDK BucketDeployment provider written in
30
34
  * Python, are declined later by the Lambda resource creator on their Runtime.
31
35
  */
@@ -42,15 +46,16 @@ export declare class SimCdkAssetsPublisher {
42
46
  publish(): Promise<void>;
43
47
  private publishAsset;
44
48
  /**
45
- * Create the staging Bucket if this is the first asset published into it,
49
+ * Make the staging Bucket if this is the first asset published into it,
46
50
  * standing in for the CDK bootstrap stack that provisions it for real.
47
51
  *
48
- * Stacks deployed concurrently share one staging Bucket, and creating it is
49
- * not atomic: sim S3 reaches a sequencing point before registering the
50
- * Bucket, so both can pass the check above and the loser is refused. A
51
- * Bucket that exists by the time the failure lands is the outcome this
52
- * wanted, whoever created it. Anything else, such as the name already being
53
- * taken in another scope, is a real failure and is reported.
52
+ * The bootstrap stack runs long before the deployment, and neither the file
53
+ * publishing Role nor the execution Role creates this Bucket. It comes
54
+ * through `makeSimBucket` for that reason, which asks IAM nothing. A
55
+ * deployment scoped to the permissions its real execution Role holds would
56
+ * otherwise be refused `s3:CreateBucket` before creating a Resource.
57
+ *
58
+ * A name already taken in another scope is a real failure, and is reported.
54
59
  */
55
60
  private ensureBucket;
56
61
  private stagingS3;
@@ -1,7 +1,7 @@
1
1
  import { SimCfnPseudoParameters } from "../../parameters/pseudo/sim-cfn-pseudo-parameters.js";
2
2
  import { SimCdkAssetPublications, } from "./sim-cdk-asset-publications.js";
3
3
  import { readSimCdkAssetBytes } from "./sim-cdk-asset-bytes.js";
4
- import { simCfnResourceCallerOptions, } from "../../resource/caller/sim-cfn-resource-caller-options.js";
4
+ import { simCfnResourceCallerOptions } from "../../resource/caller/sim-cfn-resource-caller-options.js";
5
5
  /**
6
6
  * Publishes a CDK cloud assembly's file assets into simulated S3.
7
7
  *
@@ -12,7 +12,7 @@ import { simCfnResourceCallerOptions, } from "../../resource/caller/sim-cfn-reso
12
12
  * Lambda function resolves its code through the ordinary sim S3 fetch with no
13
13
  * Lambda-specific asset handling.
14
14
  *
15
- * Publishing is byte movement only; nothing here runs asset code. Functions
15
+ * Publishing is byte movement only. Nothing here runs asset code. Functions
16
16
  * sim Lambda cannot run, such as a CDK BucketDeployment provider written in
17
17
  * Python, are declined later by the Lambda resource creator on their Runtime.
18
18
  */
@@ -42,7 +42,7 @@ export class SimCdkAssetsPublisher {
42
42
  }),
43
43
  }).resolve(cdkOutContext.assetsManifest);
44
44
  for (const publication of publications) {
45
- // oxlint-disable-next-line no-await-in-loop -- assets sharing a staging Bucket must not race to create it
45
+ // oxlint-disable-next-line no-await-in-loop -- published in manifest order, as cdk-assets publishes them
46
46
  await this.publishAsset(publication);
47
47
  }
48
48
  }
@@ -52,38 +52,30 @@ export class SimCdkAssetsPublisher {
52
52
  return;
53
53
  }
54
54
  const s3 = this.stagingS3();
55
- const options = simCfnResourceCallerOptions(this.properties.caller);
56
- await this.ensureBucket(s3, publication.bucketName, options);
55
+ this.ensureBucket(s3, publication.bucketName);
57
56
  await s3.putObject({
58
57
  input: {
59
58
  Bucket: publication.bucketName,
60
59
  Key: publication.objectKey,
61
60
  Body: assetBytes,
62
61
  },
63
- }, options);
62
+ }, simCfnResourceCallerOptions(this.properties.assetsCaller));
64
63
  }
65
64
  /**
66
- * Create the staging Bucket if this is the first asset published into it,
65
+ * Make the staging Bucket if this is the first asset published into it,
67
66
  * standing in for the CDK bootstrap stack that provisions it for real.
68
67
  *
69
- * Stacks deployed concurrently share one staging Bucket, and creating it is
70
- * not atomic: sim S3 reaches a sequencing point before registering the
71
- * Bucket, so both can pass the check above and the loser is refused. A
72
- * Bucket that exists by the time the failure lands is the outcome this
73
- * wanted, whoever created it. Anything else, such as the name already being
74
- * taken in another scope, is a real failure and is reported.
68
+ * The bootstrap stack runs long before the deployment, and neither the file
69
+ * publishing Role nor the execution Role creates this Bucket. It comes
70
+ * through `makeSimBucket` for that reason, which asks IAM nothing. A
71
+ * deployment scoped to the permissions its real execution Role holds would
72
+ * otherwise be refused `s3:CreateBucket` before creating a Resource.
73
+ *
74
+ * A name already taken in another scope is a real failure, and is reported.
75
75
  */
76
- async ensureBucket(s3, bucketName, options) {
77
- if (s3.getSimBucketByName(bucketName) !== undefined) {
78
- return;
79
- }
80
- try {
81
- await s3.createBucket({ input: { Bucket: bucketName } }, options);
82
- }
83
- catch (error) {
84
- if (s3.getSimBucketByName(bucketName) === undefined) {
85
- throw error;
86
- }
76
+ ensureBucket(s3, bucketName) {
77
+ if (s3.getSimBucketByName(bucketName) === undefined) {
78
+ s3.makeSimBucket(bucketName);
87
79
  }
88
80
  }
89
81
  stagingS3() {
@@ -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
  */
@@ -1,6 +1,7 @@
1
1
  import { AsyncMappedFactory } from "@kensio/part-factory";
2
2
  import { TemporaryDirectory } from "../../../util/filesystem/temporary-directory.js";
3
3
  import type { SimCfnTemplateValueRecord } from "../template/value/sim-cfn-template-value.js";
4
+ import type { SimCdkAssetsManifest } from "./sim-cdk-out-context.js";
4
5
  /**
5
6
  * One synthesized Stack in a cloud assembly a test writes.
6
7
  */
@@ -25,9 +26,20 @@ export interface SimCdkCloudAssemblyStackInput {
25
26
  readonly resources?: SimCfnTemplateValueRecord | undefined;
26
27
  /** The template's Outputs, which a Stack sharing a value needs. */
27
28
  readonly outputs?: SimCfnTemplateValueRecord | undefined;
29
+ /**
30
+ * The assets manifest `cdk synth` writes beside the template, for a Stack
31
+ * that stages file assets. A Stack given none has no manifest file at all,
32
+ * which is what a Stack with nothing to stage synthesizes.
33
+ */
34
+ readonly assets?: SimCdkAssetsManifest | undefined;
28
35
  }
29
36
  export interface SimCdkCloudAssemblyInput {
30
37
  readonly stacks: readonly SimCdkCloudAssemblyStackInput[];
38
+ /**
39
+ * Staged asset files to write into the assembly, keyed by the path an assets
40
+ * manifest source names.
41
+ */
42
+ readonly assetFiles?: Record<string, string> | undefined;
31
43
  }
32
44
  /** The Bucket a Stack in a written assembly creates, unless it is given others. */
33
45
  export declare function assemblyStackBucketName(artifactId: string): string;
@@ -23,13 +23,19 @@ export function assemblyStackBucketName(artifactId) {
23
23
  export const simCdkCloudAssemblyFactory = new AsyncMappedFactory(() => ({ stacks: [{ artifactId: "SiteStack", regionName: "eu-west-2" }] }), async (input) => {
24
24
  const directory = new TemporaryDirectory();
25
25
  await directory.writeFile(["cdk.out", "manifest.json"], jsonStringify(assemblyManifest(input.stacks)));
26
- await Promise.all(input.stacks.map(async (stack) => directory.writeFile(["cdk.out", templateFileName(stack)],
27
- // JSON.stringify drops an undefined value, so a Stack given no
28
- // Outputs writes a template with none rather than a null one.
29
- jsonStringify({
30
- Resources: stackResources(stack),
31
- Outputs: stack.outputs,
32
- }))));
26
+ await Promise.all([
27
+ ...input.stacks.map(async (stack) => directory.writeFile(["cdk.out", templateFileName(stack)],
28
+ // JSON.stringify drops an undefined value, so a Stack given no
29
+ // Outputs writes a template with none rather than a null one.
30
+ jsonStringify({
31
+ Resources: stackResources(stack),
32
+ Outputs: stack.outputs,
33
+ }))),
34
+ ...input.stacks
35
+ .filter((stack) => stack.assets !== undefined)
36
+ .map(async (stack) => directory.writeFile(["cdk.out", assetsFileName(stack)], jsonStringify(stack.assets))),
37
+ ...Object.entries(input.assetFiles ?? {}).map(async ([assetPath, content]) => directory.writeFile(["cdk.out", assetPath], content)),
38
+ ]);
33
39
  return directory;
34
40
  });
35
41
  function assemblyManifest(stacks) {
@@ -56,6 +62,9 @@ function assemblyManifest(stacks) {
56
62
  function templateFileName(stack) {
57
63
  return `${stack.artifactId}.template.json`;
58
64
  }
65
+ function assetsFileName(stack) {
66
+ return `${stack.artifactId}.assets.json`;
67
+ }
59
68
  function stackResources(stack) {
60
69
  return (stack.resources ?? {
61
70
  [`${stack.artifactId}Bucket`]: {
@@ -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
+ }