@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
@@ -8,6 +8,7 @@ import type { SimLambdaContainerImages } from "../../function/code/image/sim-lam
8
8
  import type { SimLambdaCodeStore } from "../../function/code/store/sim-lambda-code-store.js";
9
9
  import type { SimLambdaVmSdkModuleProvider } from "../../function/code/vm/sdk/sim-lambda-vm-sdk-module-provider.js";
10
10
  import type { SimCloudWatchServiceWriter } from "../../../cloudwatch/write/sim-cloudwatch-service-writer.js";
11
+ import type { SimLambdaOutput } from "../../function/logging/sim-lambda-output.js";
11
12
  import type { SimLogsServiceWriter } from "../../../logs/write/sim-logs-service-writer.js";
12
13
  import type { SimLambdaOutboundHttp } from "../../function/outbound/sim-lambda-outbound-http.js";
13
14
  import { SimLambdaEnvironmentConflicts } from "../../function/environment/sim-lambda-environment-conflicts.js";
@@ -24,6 +25,7 @@ interface CreateFunctionCommandHandlerProperties {
24
25
  vmSdkModuleProvider?: SimLambdaVmSdkModuleProvider | undefined;
25
26
  environmentConflicts?: SimLambdaEnvironmentConflicts;
26
27
  logs?: SimLogsServiceWriter | undefined;
28
+ output?: SimLambdaOutput | undefined;
27
29
  metrics?: SimCloudWatchServiceWriter | undefined;
28
30
  outboundHttp?: SimLambdaOutboundHttp | undefined;
29
31
  }
@@ -44,6 +46,7 @@ export declare class CreateFunctionCommandHandler implements CommandHandler<SimC
44
46
  private readonly codeResolver;
45
47
  private readonly environmentConflicts;
46
48
  private readonly logs;
49
+ private readonly output;
47
50
  private readonly metrics;
48
51
  private readonly outboundHttp;
49
52
  constructor(properties: CreateFunctionCommandHandlerProperties);
@@ -22,10 +22,11 @@ export class CreateFunctionCommandHandler {
22
22
  codeResolver;
23
23
  environmentConflicts;
24
24
  logs;
25
+ output;
25
26
  metrics;
26
27
  outboundHttp;
27
28
  constructor(properties) {
28
- const { accountRegionScope, functions, runAsOwner, iam = new SimIamAllowAllAuth(), background = new BackgroundTasks(), codeStore, containerImages, vmSdkModuleProvider, environmentConflicts = new SimLambdaEnvironmentConflicts(), logs, metrics, outboundHttp, } = properties;
29
+ const { accountRegionScope, functions, runAsOwner, iam = new SimIamAllowAllAuth(), background = new BackgroundTasks(), codeStore, containerImages, vmSdkModuleProvider, environmentConflicts = new SimLambdaEnvironmentConflicts(), logs, output, metrics, outboundHttp, } = properties;
29
30
  this.accountRegionScope = accountRegionScope;
30
31
  this.functions = functions;
31
32
  this.runAsOwner = runAsOwner;
@@ -42,6 +43,7 @@ export class CreateFunctionCommandHandler {
42
43
  });
43
44
  this.environmentConflicts = environmentConflicts;
44
45
  this.logs = logs;
46
+ this.output = output;
45
47
  this.metrics = metrics;
46
48
  this.outboundHttp = outboundHttp;
47
49
  }
@@ -71,7 +73,9 @@ export class CreateFunctionCommandHandler {
71
73
  accountRegionScope: this.accountRegionScope,
72
74
  runAsOwner: this.runAsOwner,
73
75
  clock: this.background,
76
+ background: this.background,
74
77
  logs: this.logs,
78
+ output: this.output,
75
79
  metrics: this.metrics,
76
80
  outboundHttp: this.outboundHttp,
77
81
  });
@@ -2,6 +2,7 @@
2
2
  * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/lambda/command/CreateFunctionUrlConfigCommand/
3
3
  */
4
4
  import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
5
+ import type { SimLambdaFunctionUrlCors } from "../../function/url/sim-lambda-function-url-cors.js";
5
6
  import type { SimLambdaFunctionUrlAuthType, SimLambdaFunctionUrlConfiguration, SimLambdaFunctionUrlInvokeMode } from "../../function/url/sim-lambda-function-url.js";
6
7
  /**
7
8
  * Minimal structural sim Lambda CreateFunctionUrlConfig command.
@@ -11,14 +12,12 @@ export interface SimCreateFunctionUrlConfigCommand {
11
12
  }
12
13
  /**
13
14
  * Minimal structural sim Lambda CreateFunctionUrlConfig input.
14
- *
15
- * The Cors block real Lambda accepts here is not simulated, so it is left out
16
- * rather than accepted and ignored.
17
15
  */
18
16
  export interface SimCreateFunctionUrlConfigCommandInput {
19
17
  readonly FunctionName?: string | undefined;
20
18
  readonly AuthType?: SimLambdaFunctionUrlAuthType | undefined;
21
19
  readonly InvokeMode?: SimLambdaFunctionUrlInvokeMode | undefined;
20
+ readonly Cors?: SimLambdaFunctionUrlCors | undefined;
22
21
  }
23
22
  /**
24
23
  * Minimal structural sim Lambda CreateFunctionUrlConfig output.
@@ -37,6 +37,7 @@ export class CreateFunctionUrlConfigCommandHandler {
37
37
  simFunction: this.functions.require(functionName),
38
38
  authType: this.inputParser.requireAuthType(command.input.AuthType),
39
39
  invokeMode: this.inputParser.parseOptionalInvokeMode(command.input.InvokeMode),
40
+ cors: this.inputParser.parseOptionalCors(command.input.Cors),
40
41
  });
41
42
  return {
42
43
  $metadata: {},
@@ -1,6 +1,7 @@
1
1
  import type { SimAwsAccountRegionScope } from "../../../aws/sim-aws-account-region-scope.js";
2
2
  import { type SimLambdaEventSourceArn } from "../../event-source/sim-lambda-event-source-arn.js";
3
3
  import type { SimLambdaFunctionResponseType } from "../../event-source/sim-lambda-event-source-mapping.js";
4
+ import type { SimLambdaStreamRetryLimits } from "../../event-source/sim-lambda-stream-retry-limits.js";
4
5
  import type { SimLambdaEventSourceStart } from "../../event-source/sim-lambda-event-source-starting-position.js";
5
6
  import type { SimCreateEventSourceMappingCommandInput } from "./event-source-mapping.command.js";
6
7
  /**
@@ -28,6 +29,11 @@ export declare class SimLambdaEventSourceMappingInput {
28
29
  readonly start: SimLambdaEventSourceStart | undefined;
29
30
  readonly enabled: boolean;
30
31
  readonly functionResponseTypes: readonly SimLambdaFunctionResponseType[];
32
+ /**
33
+ * When a failed batch stops being delivered again, for a source that leaves
34
+ * the counting to the mapping.
35
+ */
36
+ readonly streamRetryLimits: SimLambdaStreamRetryLimits | undefined;
31
37
  private constructor();
32
38
  /**
33
39
  * Read a CreateEventSourceMapping request, refusing what this simulation
@@ -28,6 +28,11 @@ export class SimLambdaEventSourceMappingInput {
28
28
  start;
29
29
  enabled;
30
30
  functionResponseTypes;
31
+ /**
32
+ * When a failed batch stops being delivered again, for a source that leaves
33
+ * the counting to the mapping.
34
+ */
35
+ streamRetryLimits;
31
36
  constructor(properties) {
32
37
  this.eventSourceArn = properties.eventSourceArn;
33
38
  this.functionName = properties.functionName;
@@ -36,6 +41,7 @@ export class SimLambdaEventSourceMappingInput {
36
41
  this.start = properties.start;
37
42
  this.enabled = properties.enabled;
38
43
  this.functionResponseTypes = properties.functionResponseTypes;
44
+ this.streamRetryLimits = properties.streamRetryLimits;
39
45
  }
40
46
  /**
41
47
  * Read a CreateEventSourceMapping request, refusing what this simulation
@@ -55,6 +61,10 @@ export class SimLambdaEventSourceMappingInput {
55
61
  }),
56
62
  enabled: input.Enabled ?? true,
57
63
  functionResponseTypes: functionResponseTypesIn(input),
64
+ streamRetryLimits: eventSourceArn.retryLimitRules.limitsIn({
65
+ maximumRetryAttempts: input.MaximumRetryAttempts,
66
+ maximumRecordAgeInSeconds: input.MaximumRecordAgeInSeconds,
67
+ }),
58
68
  });
59
69
  }
60
70
  }
@@ -17,11 +17,6 @@ const unsimulatedInputs = new Map([
17
17
  "failure destinations are not simulated, so a stream batch that runs out " +
18
18
  "of attempts is discarded rather than sent anywhere",
19
19
  ],
20
- [
21
- "MaximumRetryAttempts",
22
- "the number of times a stream batch is delivered again is fixed",
23
- ],
24
- ["MaximumRecordAgeInSeconds", "record ages are not simulated"],
25
20
  [
26
21
  "BisectBatchOnFunctionError",
27
22
  "batch bisection is not simulated, so a failing stream batch is retried " +
@@ -51,7 +46,8 @@ const unsimulatedInputs = new Map([
51
46
  *
52
47
  * `StartingPosition` is not among them, because whether a source has one is the
53
48
  * source's own rule: a stream is refused without it and a queue is refused with
54
- * it.
49
+ * it. The two failed-batch limits are left out for the same reason: a stream
50
+ * mapping keeps them and a queue mapping is refused for naming one.
55
51
  */
56
52
  const unsupportedEventSourceInputs = new Set([
57
53
  "Topics",
@@ -80,6 +80,7 @@ export class CreateEventSourceMappingCommandHandler {
80
80
  start: input.start,
81
81
  enabled: input.enabled,
82
82
  functionResponseTypes: input.functionResponseTypes,
83
+ streamRetryLimits: input.streamRetryLimits,
83
84
  createdAt: this.properties.background.now(),
84
85
  });
85
86
  this.properties.mappings.add(mapping);
@@ -7,6 +7,7 @@ import type { SimLambdaContainerImages } from "../../function/code/image/sim-lam
7
7
  import type { SimLambdaCodeStore } from "../../function/code/store/sim-lambda-code-store.js";
8
8
  import type { SimLambdaVmSdkModuleProvider } from "../../function/code/vm/sdk/sim-lambda-vm-sdk-module-provider.js";
9
9
  import type { SimCloudWatchServiceWriter } from "../../../cloudwatch/write/sim-cloudwatch-service-writer.js";
10
+ import type { SimLambdaOutput } from "../../function/logging/sim-lambda-output.js";
10
11
  import type { SimLogsServiceWriter } from "../../../logs/write/sim-logs-service-writer.js";
11
12
  import type { SimLambdaOutboundHttp } from "../../function/outbound/sim-lambda-outbound-http.js";
12
13
  import type { SimLambdaDestinationTargets } from "../../destination/sim-lambda-destination-targets.js";
@@ -39,6 +40,7 @@ interface SimLambdaFunctionCommandsProperties {
39
40
  readonly containerImages?: SimLambdaContainerImages | undefined;
40
41
  readonly vmSdkModuleProvider?: SimLambdaVmSdkModuleProvider | undefined;
41
42
  readonly logs?: SimLogsServiceWriter | undefined;
43
+ readonly output?: SimLambdaOutput | undefined;
42
44
  readonly metrics?: SimCloudWatchServiceWriter | undefined;
43
45
  readonly outboundHttp?: SimLambdaOutboundHttp | undefined;
44
46
  }
@@ -0,0 +1,25 @@
1
+ /**
2
+ * One list member of a `Cors` block and the bounds Lambda puts on it.
3
+ *
4
+ * `AllowMethods` is capped at six characters. That is what leaves `OPTIONS`
5
+ * out of the list a caller may state, since Lambda answers the preflight
6
+ * itself.
7
+ *
8
+ * https://docs.aws.amazon.com/lambda/latest/api/API_Cors.html
9
+ */
10
+ export interface CorsListConstraint {
11
+ readonly member: "AllowHeaders" | "AllowMethods" | "AllowOrigins" | "ExposeHeaders";
12
+ readonly field: string;
13
+ readonly maxItems: number;
14
+ readonly minLength: number;
15
+ readonly maxLength: number;
16
+ }
17
+ /**
18
+ * The bounds Lambda publishes for each list member of a `Cors` block.
19
+ */
20
+ export declare const corsListConstraints: readonly CorsListConstraint[];
21
+ /**
22
+ * The bound a list broke, worded as Lambda words it, or nothing when the list
23
+ * is within every bound.
24
+ */
25
+ export declare function corsListViolation(values: readonly string[], constraint: CorsListConstraint): string | undefined;
@@ -0,0 +1,49 @@
1
+ /**
2
+ * The bounds Lambda publishes for each list member of a `Cors` block.
3
+ */
4
+ export const corsListConstraints = [
5
+ {
6
+ member: "AllowHeaders",
7
+ field: "cors.allowHeaders",
8
+ maxItems: 100,
9
+ minLength: 0,
10
+ maxLength: 1024,
11
+ },
12
+ {
13
+ member: "AllowMethods",
14
+ field: "cors.allowMethods",
15
+ maxItems: 6,
16
+ minLength: 0,
17
+ maxLength: 6,
18
+ },
19
+ {
20
+ member: "AllowOrigins",
21
+ field: "cors.allowOrigins",
22
+ maxItems: 100,
23
+ minLength: 1,
24
+ maxLength: 253,
25
+ },
26
+ {
27
+ member: "ExposeHeaders",
28
+ field: "cors.exposeHeaders",
29
+ maxItems: 100,
30
+ minLength: 0,
31
+ maxLength: 1024,
32
+ },
33
+ ];
34
+ /**
35
+ * The bound a list broke, worded as Lambda words it, or nothing when the list
36
+ * is within every bound.
37
+ */
38
+ export function corsListViolation(values, constraint) {
39
+ const { maxItems, minLength, maxLength } = constraint;
40
+ if (values.length > maxItems) {
41
+ return `Member must have length less than or equal to ${String(maxItems)}`;
42
+ }
43
+ const outOfRange = values.some((value) => value.length < minLength || value.length > maxLength);
44
+ return outOfRange
45
+ ? "Member must satisfy constraint: [Member must have length less than " +
46
+ `or equal to ${String(maxLength)}, Member must have length greater ` +
47
+ `than or equal to ${String(minLength)}]`
48
+ : undefined;
49
+ }
@@ -0,0 +1,25 @@
1
+ import type { SimLambdaFunctionUrlCors } from "../../function/url/sim-lambda-function-url-cors.js";
2
+ /**
3
+ * Validates the `Cors` block of Function URL config command input.
4
+ *
5
+ * Every check here is against a bound real Lambda publishes. A configuration
6
+ * this accepts is one the API would have taken. Nothing else is checked,
7
+ * because a refusal the real service would not make costs a working
8
+ * deployment.
9
+ *
10
+ * The check runs before the Function URL is created or updated, leaving a
11
+ * refused configuration with the URL as it was.
12
+ */
13
+ export declare class FunctionUrlCorsInputParser {
14
+ /**
15
+ * Parse an optional `Cors` block, which every Function URL config command
16
+ * allows a caller to leave out.
17
+ */
18
+ parseOptional(cors: SimLambdaFunctionUrlCors | undefined): SimLambdaFunctionUrlCors | undefined;
19
+ private checkMaxAge;
20
+ private maxAgeViolation;
21
+ /**
22
+ * Fail the way Lambda fails a request that broke one bound.
23
+ */
24
+ private refuse;
25
+ }
@@ -0,0 +1,57 @@
1
+ import { SimLambdaValidationException } from "../../error/sim-lambda.error.js";
2
+ import { corsListConstraints, corsListViolation, } from "./function-url-cors-constraints.js";
3
+ const maxAgeSeconds = 86_400;
4
+ /**
5
+ * Validates the `Cors` block of Function URL config command input.
6
+ *
7
+ * Every check here is against a bound real Lambda publishes. A configuration
8
+ * this accepts is one the API would have taken. Nothing else is checked,
9
+ * because a refusal the real service would not make costs a working
10
+ * deployment.
11
+ *
12
+ * The check runs before the Function URL is created or updated, leaving a
13
+ * refused configuration with the URL as it was.
14
+ */
15
+ export class FunctionUrlCorsInputParser {
16
+ /**
17
+ * Parse an optional `Cors` block, which every Function URL config command
18
+ * allows a caller to leave out.
19
+ */
20
+ parseOptional(cors) {
21
+ if (cors === undefined) {
22
+ return undefined;
23
+ }
24
+ for (const constraint of corsListConstraints) {
25
+ const values = cors[constraint.member];
26
+ if (values !== undefined) {
27
+ this.refuse(`[${values.join(", ")}]`, constraint.field, corsListViolation(values, constraint));
28
+ }
29
+ }
30
+ this.checkMaxAge(cors.MaxAge);
31
+ return cors;
32
+ }
33
+ checkMaxAge(maxAge) {
34
+ if (maxAge === undefined) {
35
+ return;
36
+ }
37
+ this.refuse(String(maxAge), "cors.maxAge", this.maxAgeViolation(maxAge));
38
+ }
39
+ maxAgeViolation(maxAge) {
40
+ if (maxAge > maxAgeSeconds) {
41
+ return `Member must have value less than or equal to ${String(maxAgeSeconds)}`;
42
+ }
43
+ return maxAge < 0
44
+ ? "Member must have value greater than or equal to 0"
45
+ : undefined;
46
+ }
47
+ /**
48
+ * Fail the way Lambda fails a request that broke one bound.
49
+ */
50
+ refuse(value, field, violation) {
51
+ if (violation === undefined) {
52
+ return;
53
+ }
54
+ throw new SimLambdaValidationException(`1 validation error detected: Value '${value}' at '${field}' failed ` +
55
+ `to satisfy constraint: ${violation}`);
56
+ }
57
+ }
@@ -1,3 +1,4 @@
1
+ import type { SimLambdaFunctionUrlCors } from "../../function/url/sim-lambda-function-url-cors.js";
1
2
  import type { SimLambdaFunctionUrlAuthType, SimLambdaFunctionUrlInvokeMode } from "../../function/url/sim-lambda-function-url.js";
2
3
  /**
3
4
  * Validates the enumerated values in Function URL config command input.
@@ -7,6 +8,7 @@ import type { SimLambdaFunctionUrlAuthType, SimLambdaFunctionUrlInvokeMode } fro
7
8
  * runtime and reported the way real Lambda reports a bad enum member.
8
9
  */
9
10
  export declare class FunctionUrlInputParser {
11
+ private readonly corsParser;
10
12
  /**
11
13
  * Parse a required AuthType, as CreateFunctionUrlConfig requires one.
12
14
  */
@@ -19,5 +21,10 @@ export declare class FunctionUrlInputParser {
19
21
  * Parse an optional InvokeMode, which defaults to BUFFERED on real Lambda.
20
22
  */
21
23
  parseOptionalInvokeMode(value: string | undefined): SimLambdaFunctionUrlInvokeMode | undefined;
24
+ /**
25
+ * Parse an optional `Cors` block, which every Function URL config command
26
+ * allows a caller to leave out.
27
+ */
28
+ parseOptionalCors(value: SimLambdaFunctionUrlCors | undefined): SimLambdaFunctionUrlCors | undefined;
22
29
  private parseAuthType;
23
30
  }
@@ -1,4 +1,5 @@
1
1
  import { SimLambdaValidationException } from "../../error/sim-lambda.error.js";
2
+ import { FunctionUrlCorsInputParser } from "./function-url-cors-input.js";
2
3
  const authTypes = ["NONE", "AWS_IAM"];
3
4
  const invokeModes = ["BUFFERED", "RESPONSE_STREAM"];
4
5
  /**
@@ -9,6 +10,7 @@ const invokeModes = ["BUFFERED", "RESPONSE_STREAM"];
9
10
  * runtime and reported the way real Lambda reports a bad enum member.
10
11
  */
11
12
  export class FunctionUrlInputParser {
13
+ corsParser = new FunctionUrlCorsInputParser();
12
14
  /**
13
15
  * Parse a required AuthType, as CreateFunctionUrlConfig requires one.
14
16
  */
@@ -39,6 +41,13 @@ export class FunctionUrlInputParser {
39
41
  }
40
42
  return value;
41
43
  }
44
+ /**
45
+ * Parse an optional `Cors` block, which every Function URL config command
46
+ * allows a caller to leave out.
47
+ */
48
+ parseOptionalCors(value) {
49
+ return this.corsParser.parseOptional(value);
50
+ }
42
51
  parseAuthType(value) {
43
52
  if (!authTypes.includes(value)) {
44
53
  throw new SimLambdaValidationException(`1 validation error detected: Value '${value}' at 'authType' failed to satisfy constraint: Member must satisfy enum value set: [${authTypes.join(", ")}]`);
@@ -1,5 +1,6 @@
1
1
  import { simLambdaEventTooOld, simLambdaRetryDueTime, } from "../../../function/event-invoke/sim-lambda-event-invoke-settings.js";
2
2
  import { simLambdaAbandonedOutcome, SimLambdaAsyncOutcomeDelivery, simLambdaSuccessOutcome, } from "./sim-lambda-async-outcome.js";
3
+ import { simLambdaHandlerAttempt } from "./sim-lambda-handler-attempt.js";
3
4
  /**
4
5
  * One asynchronous invocation of a simulated Lambda function, from the first
5
6
  * attempt to wherever its result ends up.
@@ -22,19 +23,17 @@ export class SimLambdaAsyncInvocation {
22
23
  * Accept the invocation and let it run behind the caller.
23
24
  */
24
25
  start() {
25
- this.properties.background.schedule(async () => {
26
- await this.attempt();
27
- });
26
+ this.properties.background.schedule(() => this.attempt());
28
27
  }
29
28
  async attempt() {
30
29
  const { simFunction, event } = this.properties;
31
30
  this.attemptCount += 1;
32
- try {
33
- await this.outcomes.deliver(simLambdaSuccessOutcome(await simFunction.invoke(event)), this.attemptCount);
34
- }
35
- catch (error) {
36
- await this.failed(error);
31
+ const attempt = await simLambdaHandlerAttempt(simFunction, event);
32
+ if (!attempt.succeeded) {
33
+ await this.failed(attempt.error);
34
+ return;
37
35
  }
36
+ await this.outcomes.deliver(simLambdaSuccessOutcome(attempt.result), this.attemptCount);
38
37
  }
39
38
  /**
40
39
  * Retry the attempt that threw, or give up where the last one has been
@@ -46,11 +45,9 @@ export class SimLambdaAsyncInvocation {
46
45
  await this.abandon(error, "RetriesExhausted");
47
46
  return;
48
47
  }
49
- background.scheduleAt(simLambdaRetryDueTime(background.now(), this.attemptCount), async () => {
50
- await (simLambdaEventTooOld(this.startedAt, background.now(), settings)
51
- ? this.abandon(error, "EventAgeExceeded")
52
- : this.attempt());
53
- });
48
+ background.scheduleAt(simLambdaRetryDueTime(background.now(), this.attemptCount), () => simLambdaEventTooOld(this.startedAt, background.now(), settings)
49
+ ? this.abandon(error, "EventAgeExceeded")
50
+ : this.attempt());
54
51
  }
55
52
  /**
56
53
  * Give up on the invocation, telling its failure destination why and
@@ -58,6 +58,7 @@ export class SimLambdaAsyncOutcomeDelivery {
58
58
  await destinations.deliver({
59
59
  destinationArn: SimLambdaDestinationArn.of(destination),
60
60
  sourceFunctionArn: simFunction.arn,
61
+ sourceFunctionRoleArn: simFunction.roleArn,
61
62
  record: makeSimLambdaDestinationRecord({
62
63
  requestId: this.requestId,
63
64
  functionArn: simFunction.arn,
@@ -82,6 +83,7 @@ export class SimLambdaAsyncOutcomeDelivery {
82
83
  targetArn: SimLambdaDestinationArn.of(settings.deadLetterArn),
83
84
  payload: event,
84
85
  sourceFunctionArn: simFunction.arn,
86
+ sourceFunctionRoleArn: simFunction.roleArn,
85
87
  });
86
88
  }
87
89
  }
@@ -0,0 +1,13 @@
1
+ import type { SimLambdaFunction } from "../../../function/sim-lambda-function.js";
2
+ export type SimLambdaHandlerAttempt = {
3
+ readonly succeeded: true;
4
+ readonly result: unknown;
5
+ } | {
6
+ readonly succeeded: false;
7
+ readonly error: unknown;
8
+ };
9
+ /**
10
+ * Invoke a function handler while keeping its error separate from later
11
+ * destination delivery errors.
12
+ */
13
+ export declare function simLambdaHandlerAttempt(simFunction: SimLambdaFunction, event: unknown): Promise<SimLambdaHandlerAttempt>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Invoke a function handler while keeping its error separate from later
3
+ * destination delivery errors.
4
+ */
5
+ export async function simLambdaHandlerAttempt(simFunction, event) {
6
+ try {
7
+ return { succeeded: true, result: await simFunction.invoke(event) };
8
+ }
9
+ catch (error) {
10
+ return { succeeded: false, error };
11
+ }
12
+ }
@@ -2,6 +2,7 @@
2
2
  * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/lambda/command/UpdateFunctionUrlConfigCommand/
3
3
  */
4
4
  import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
5
+ import type { SimLambdaFunctionUrlCors } from "../../function/url/sim-lambda-function-url-cors.js";
5
6
  import type { SimLambdaFunctionUrlAuthType, SimLambdaFunctionUrlConfiguration, SimLambdaFunctionUrlInvokeMode } from "../../function/url/sim-lambda-function-url.js";
6
7
  /**
7
8
  * Minimal structural sim Lambda UpdateFunctionUrlConfig command.
@@ -19,6 +20,7 @@ export interface SimUpdateFunctionUrlConfigCommandInput {
19
20
  readonly FunctionName?: string | undefined;
20
21
  readonly AuthType?: SimLambdaFunctionUrlAuthType | undefined;
21
22
  readonly InvokeMode?: SimLambdaFunctionUrlInvokeMode | undefined;
23
+ readonly Cors?: SimLambdaFunctionUrlCors | undefined;
22
24
  }
23
25
  /**
24
26
  * Minimal structural sim Lambda UpdateFunctionUrlConfig output.
@@ -38,6 +38,7 @@ export class UpdateFunctionUrlConfigCommandHandler {
38
38
  functionUrl.update({
39
39
  authType: this.inputParser.parseOptionalAuthType(command.input.AuthType),
40
40
  invokeMode: this.inputParser.parseOptionalInvokeMode(command.input.InvokeMode),
41
+ cors: this.inputParser.parseOptionalCors(command.input.Cors),
41
42
  });
42
43
  return {
43
44
  $metadata: {},
@@ -25,6 +25,6 @@ export class SimLambdaDestinationBus {
25
25
  },
26
26
  ],
27
27
  },
28
- });
28
+ }, { caller: { kind: "arn", arn: request.sourceFunctionRoleArn } });
29
29
  }
30
30
  }
@@ -1,4 +1,3 @@
1
- import { SimLambdaError } from "../../error/sim-lambda.error.js";
2
1
  /**
3
2
  * A function a function is sending an asynchronous invocation result to, in
4
3
  * the Account and Region the destination ARN names.
@@ -9,16 +8,13 @@ export class SimLambdaDestinationFunction {
9
8
  */
10
9
  async deliver(scope, request) {
11
10
  const { destinationArn: arn } = request;
12
- const target = scope
13
- .lambda()
14
- .getSimFunctionTarget(arn.functionName, arn.functionQualifier);
15
- if (target === undefined) {
16
- throw new SimLambdaError(`${arn.value} is not a simulated Lambda function.`);
17
- }
18
- // Invoked directly rather than through an Invoke command, because this is
19
- // already inside the background task standing for the asynchronous
20
- // invocation, and because a delivery failure has to reach the caller who
21
- // advanced the clock rather than being swallowed a second time.
22
- await target.simFunction.invoke(request.record);
11
+ await scope.lambda().invoke({
12
+ input: {
13
+ FunctionName: arn.functionName,
14
+ Qualifier: arn.functionQualifier,
15
+ InvocationType: "Event",
16
+ Payload: JSON.stringify(request.record),
17
+ },
18
+ }, { caller: { kind: "arn", arn: request.sourceFunctionRoleArn } });
23
19
  }
24
20
  }
@@ -17,8 +17,9 @@ export class SimLambdaDestinationQueue {
17
17
  }
18
18
  // Sent through the ordinary SendMessage path, so what arrives is the same
19
19
  // thing an SDK caller would have sent.
20
- await send.scope
21
- .sqs()
22
- .sendMessage({ input: { QueueUrl: queue.arn.url, MessageBody: send.body } }, { sourceArn: send.sourceFunctionArn });
20
+ await send.scope.sqs().sendMessage({ input: { QueueUrl: queue.arn.url, MessageBody: send.body } }, {
21
+ caller: { kind: "arn", arn: send.sourceFunctionRoleArn },
22
+ sourceArn: send.sourceFunctionArn,
23
+ });
23
24
  }
24
25
  }
@@ -11,4 +11,6 @@ export interface SimLambdaDestinationSend {
11
11
  * The function this came from, supplied to IAM as `aws:SourceArn`.
12
12
  */
13
13
  readonly sourceFunctionArn: string;
14
+ /** The execution Role Lambda uses to send the document. */
15
+ readonly sourceFunctionRoleArn: string;
14
16
  }
@@ -15,8 +15,9 @@ export class SimLambdaDestinationTopic {
15
15
  if (topic === undefined) {
16
16
  throw new SimLambdaError(`${send.arn.value} is not a simulated SNS topic.`);
17
17
  }
18
- await send.scope
19
- .sns()
20
- .publish({ input: { TopicArn: topic.arn.value, Message: send.body } }, { sourceArn: send.sourceFunctionArn });
18
+ await send.scope.sns().publish({ input: { TopicArn: topic.arn.value, Message: send.body } }, {
19
+ caller: { kind: "arn", arn: send.sourceFunctionRoleArn },
20
+ sourceArn: send.sourceFunctionArn,
21
+ });
21
22
  }
22
23
  }
@@ -11,12 +11,10 @@ interface SimAwsLambdaDestinationsProperties {
11
11
  * built: reaching another service while this one is being constructed is a
12
12
  * cycle with no bottom to it.
13
13
  *
14
- * Real Lambda delivers under the function's own execution role, and delivers
15
- * nothing when that role cannot write to the destination. The permission is
16
- * left unchecked here, so a delivery is made as the destination Account's own
17
- * root. A record that silently goes nowhere is the harder failure to find, and
18
- * a destination needs no resource policy on real AWS either, so nothing about
19
- * the destination itself has to be set up for a record to arrive.
14
+ * Every delivery uses the source function's execution Role as its caller. The
15
+ * destination service applies its ordinary IAM checks to that Role before it
16
+ * changes any state.
17
+ * @see https://docs.aws.amazon.com/lambda/latest/dg/invocation-async-retain-records.html
20
18
  */
21
19
  export declare class SimAwsLambdaDestinations implements SimLambdaDestinationTargets {
22
20
  private readonly simAws;