@kensio/yulin 1.21.2 → 1.21.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (634) hide show
  1. package/dist/service/athena/engine/sim-athena-column-types.d.ts +2 -0
  2. package/dist/service/athena/engine/sim-athena-column-types.js +4 -0
  3. package/dist/service/athena/engine/sim-athena-delimited-format.d.ts +7 -0
  4. package/dist/service/athena/engine/sim-athena-delimited-format.js +51 -0
  5. package/dist/service/athena/engine/sim-athena-engine-result.js +5 -0
  6. package/dist/service/athena/engine/sim-athena-engine-run.d.ts +22 -2
  7. package/dist/service/athena/engine/sim-athena-engine-run.js +21 -31
  8. package/dist/service/athena/engine/sim-athena-loaded-tables.d.ts +10 -0
  9. package/dist/service/athena/engine/sim-athena-loaded-tables.js +35 -0
  10. package/dist/service/athena/engine/sim-athena-parquet-module.d.ts +25 -0
  11. package/dist/service/athena/engine/sim-athena-parquet-module.js +39 -0
  12. package/dist/service/athena/engine/sim-athena-parquet-records.d.ts +13 -0
  13. package/dist/service/athena/engine/sim-athena-parquet-records.js +57 -0
  14. package/dist/service/athena/engine/sim-athena-query-engine.d.ts +23 -5
  15. package/dist/service/athena/engine/sim-athena-query-engine.js +31 -10
  16. package/dist/service/athena/engine/sim-athena-record-reader.d.ts +12 -6
  17. package/dist/service/athena/engine/sim-athena-record-reader.js +28 -53
  18. package/dist/service/athena/engine/sim-athena-sql-translation.d.ts +15 -9
  19. package/dist/service/athena/engine/sim-athena-sql-translation.js +25 -13
  20. package/dist/service/athena/engine/sim-athena-sqlite-values.d.ts +5 -0
  21. package/dist/service/athena/engine/sim-athena-sqlite-values.js +24 -1
  22. package/dist/service/athena/engine/sim-athena-table-objects.d.ts +7 -2
  23. package/dist/service/athena/engine/sim-athena-table-objects.js +8 -4
  24. package/dist/service/athena/engine/sim-athena-table-rows.js +4 -3
  25. package/dist/service/athena/engine/sim-athena-turn-down.d.ts +26 -0
  26. package/dist/service/athena/engine/sim-athena-turn-down.js +43 -0
  27. package/dist/service/athena/execution/sim-athena-query-completion.d.ts +3 -1
  28. package/dist/service/athena/execution/sim-athena-query-completion.js +7 -1
  29. package/dist/service/athena/index.d.ts +1 -1
  30. package/dist/service/athena/index.js +1 -1
  31. package/dist/service/athena/result/sim-athena-query-answer.d.ts +12 -0
  32. package/dist/service/athena/result/sim-athena-query-answer.js +26 -4
  33. package/dist/service/athena/sim-athena-answered-query.fixture.d.ts +2 -0
  34. package/dist/service/athena/sim-athena-answered-query.fixture.js +1 -0
  35. package/dist/service/athena/sim-athena-engine.fixture.d.ts +20 -0
  36. package/dist/service/athena/sim-athena-engine.fixture.js +34 -0
  37. package/dist/service/cloudformation/authorize/sim-cloudformation-authorization.d.ts +23 -0
  38. package/dist/service/cloudformation/authorize/sim-cloudformation-authorization.js +37 -0
  39. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.d.ts +2 -0
  40. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.js +1 -0
  41. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.d.ts +7 -0
  42. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.js +13 -1
  43. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.d.ts +6 -0
  44. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.js +7 -1
  45. package/dist/service/cloudformation/cdk/s3/bucket-deployment/notify/sim-cdk-bucket-deploy-notifier.d.ts +50 -0
  46. package/dist/service/cloudformation/cdk/s3/bucket-deployment/notify/sim-cdk-bucket-deploy-notifier.js +71 -0
  47. package/dist/service/cloudformation/cdk/s3/bucket-deployment/sim-cdk-bucket-deployment.js +6 -1
  48. package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.d.ts +5 -0
  49. package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.js +7 -0
  50. package/dist/service/cloudformation/changeset/sim-cfn-change-set-arn.d.ts +9 -0
  51. package/dist/service/cloudformation/changeset/sim-cfn-change-set-arn.js +12 -0
  52. package/dist/service/cloudformation/changeset/sim-cfn-change-set-changes.d.ts +42 -0
  53. package/dist/service/cloudformation/changeset/sim-cfn-change-set-changes.js +69 -0
  54. package/dist/service/cloudformation/changeset/sim-cfn-change-set-commands.d.ts +62 -0
  55. package/dist/service/cloudformation/changeset/sim-cfn-change-set-commands.js +89 -0
  56. package/dist/service/cloudformation/changeset/sim-cfn-change-set-execution.d.ts +31 -0
  57. package/dist/service/cloudformation/changeset/sim-cfn-change-set-execution.js +59 -0
  58. package/dist/service/cloudformation/changeset/sim-cfn-change-set-failure.d.ts +21 -0
  59. package/dist/service/cloudformation/changeset/sim-cfn-change-set-failure.js +19 -0
  60. package/dist/service/cloudformation/changeset/sim-cfn-change-set-input.d.ts +17 -0
  61. package/dist/service/cloudformation/changeset/sim-cfn-change-set-input.js +18 -0
  62. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack-id.d.ts +18 -0
  63. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack-id.js +13 -0
  64. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack.d.ts +45 -0
  65. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack.js +52 -0
  66. package/dist/service/cloudformation/changeset/sim-cfn-change-set-type.d.ts +12 -0
  67. package/dist/service/cloudformation/changeset/sim-cfn-change-set-type.js +21 -0
  68. package/dist/service/cloudformation/changeset/sim-cfn-change-set.d.ts +54 -0
  69. package/dist/service/cloudformation/changeset/sim-cfn-change-set.js +49 -0
  70. package/dist/service/cloudformation/changeset/sim-cfn-change-set.type.d.ts +35 -0
  71. package/dist/service/cloudformation/changeset/sim-cfn-change-set.type.js +1 -0
  72. package/dist/service/cloudformation/changeset/sim-cfn-change-sets.d.ts +53 -0
  73. package/dist/service/cloudformation/changeset/sim-cfn-change-sets.js +83 -0
  74. package/dist/service/cloudformation/command/create-change-set/create-change-set.command.d.ts +32 -0
  75. package/dist/service/cloudformation/command/create-change-set/create-change-set.command.js +1 -0
  76. package/dist/service/cloudformation/command/create-change-set/create-change-set.handler.d.ts +38 -0
  77. package/dist/service/cloudformation/command/create-change-set/create-change-set.handler.js +80 -0
  78. package/dist/service/cloudformation/command/create-stack/create-stack.handler.js +12 -12
  79. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.command.d.ts +22 -0
  80. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.command.js +1 -0
  81. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.handler.d.ts +27 -0
  82. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.handler.js +35 -0
  83. package/dist/service/cloudformation/command/delete-stack/delete-stack.command.d.ts +6 -0
  84. package/dist/service/cloudformation/command/delete-stack/delete-stack.handler.d.ts +11 -0
  85. package/dist/service/cloudformation/command/delete-stack/delete-stack.handler.js +15 -1
  86. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.command.d.ts +48 -0
  87. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.command.js +1 -0
  88. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.handler.d.ts +23 -0
  89. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.handler.js +52 -0
  90. package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.d.ts +3 -0
  91. package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.js +8 -4
  92. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-described-stacks.d.ts +18 -6
  93. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-described-stacks.js +22 -7
  94. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-stack-describer.js +1 -1
  95. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.command.d.ts +25 -0
  96. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.command.js +1 -0
  97. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.handler.d.ts +31 -0
  98. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.handler.js +37 -0
  99. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.command.d.ts +36 -0
  100. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.command.js +1 -0
  101. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.handler.d.ts +26 -0
  102. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.handler.js +39 -0
  103. package/dist/service/cloudformation/command/update-stack/update-stack-previous-values.d.ts +31 -0
  104. package/dist/service/cloudformation/command/update-stack/update-stack-previous-values.js +52 -0
  105. package/dist/service/cloudformation/command/update-stack/update-stack-template.d.ts +22 -0
  106. package/dist/service/cloudformation/command/update-stack/update-stack-template.js +34 -0
  107. package/dist/service/cloudformation/command/update-stack/update-stack.command.d.ts +17 -1
  108. package/dist/service/cloudformation/command/update-stack/update-stack.handler.js +8 -15
  109. package/dist/service/cloudformation/error/sim-cloudformation.error.d.ts +21 -0
  110. package/dist/service/cloudformation/error/sim-cloudformation.error.js +25 -0
  111. package/dist/service/cloudformation/parameters/pseudo/sim-cfn-pseudo-parameters.d.ts +7 -0
  112. package/dist/service/cloudformation/parameters/pseudo/sim-cfn-pseudo-parameters.js +3 -1
  113. package/dist/service/cloudformation/parameters/sim-cfn-parameters.d.ts +9 -0
  114. package/dist/service/cloudformation/parameters/sim-cfn-parameters.js +12 -0
  115. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-delete-operation.d.ts +4 -0
  116. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-delete-operation.js +10 -0
  117. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-retention.d.ts +44 -0
  118. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-retention.js +33 -0
  119. package/dist/service/cloudformation/resource/factory/sim-cfn-resource-factory.type.d.ts +9 -0
  120. package/dist/service/cloudformation/resource/sim-cfn-resource-record.d.ts +15 -0
  121. package/dist/service/cloudformation/resource/sim-cfn-resource-record.js +21 -1
  122. package/dist/service/cloudformation/resource/sim-cfn-resource.d.ts +9 -7
  123. package/dist/service/cloudformation/resource/sim-cfn-resource.js +11 -11
  124. package/dist/service/cloudformation/resource/sim-cfn-resource.type.d.ts +19 -0
  125. package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.d.ts +3 -3
  126. package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.js +3 -3
  127. package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.d.ts +4 -0
  128. package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.js +9 -0
  129. package/dist/service/cloudformation/resource/update/sim-cfn-resource-update-validator.d.ts +26 -0
  130. package/dist/service/cloudformation/resource/update/sim-cfn-resource-update-validator.js +55 -0
  131. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.d.ts +37 -0
  132. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.js +77 -0
  133. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.d.ts +51 -0
  134. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.js +10 -0
  135. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.d.ts +11 -0
  136. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.js +34 -0
  137. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.d.ts +21 -0
  138. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.js +31 -0
  139. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.d.ts +14 -0
  140. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.js +1 -0
  141. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.d.ts +26 -0
  142. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.js +58 -0
  143. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.d.ts +18 -0
  144. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.js +89 -0
  145. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.d.ts +15 -0
  146. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.js +65 -0
  147. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.d.ts +13 -0
  148. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.js +60 -0
  149. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.d.ts +13 -0
  150. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.js +50 -0
  151. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.d.ts +13 -0
  152. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.js +30 -0
  153. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.d.ts +26 -0
  154. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.js +44 -0
  155. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.d.ts +15 -0
  156. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.js +59 -0
  157. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.d.ts +11 -0
  158. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.js +43 -0
  159. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.d.ts +15 -0
  160. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.js +67 -0
  161. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.d.ts +26 -0
  162. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.js +61 -0
  163. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.d.ts +18 -0
  164. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.js +59 -0
  165. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api-template.factory.js +1 -1
  166. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.d.ts +4 -0
  167. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.js +12 -5
  168. package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api-template.factory.js +1 -1
  169. package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api.js +7 -3
  170. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-api-event.js +7 -3
  171. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.d.ts +26 -0
  172. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.js +88 -0
  173. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.d.ts +12 -0
  174. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.js +1 -0
  175. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-function-events.js +8 -5
  176. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-event.js +23 -1
  177. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.d.ts +9 -2
  178. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.js +5 -3
  179. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.d.ts +6 -1
  180. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.js +7 -1
  181. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.d.ts +19 -0
  182. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.js +69 -0
  183. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.d.ts +5 -0
  184. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.js +3 -1
  185. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.d.ts +8 -0
  186. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.js +8 -0
  187. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-url.js +1 -4
  188. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.d.ts +6 -4
  189. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.js +2 -4
  190. package/dist/service/cloudformation/sam/sim-cfn-sam-error.d.ts +31 -0
  191. package/dist/service/cloudformation/sam/sim-cfn-sam-error.js +17 -0
  192. package/dist/service/cloudformation/sam/sim-cfn-sam-expansion.js +11 -6
  193. package/dist/service/cloudformation/sdk/sim-cloudformation-sdk-command-router.js +20 -0
  194. package/dist/service/cloudformation/serve/sim-cloudformation-api.d.ts +4 -3
  195. package/dist/service/cloudformation/serve/sim-cloudformation-api.js +6 -3
  196. package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.d.ts +10 -0
  197. package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.js +94 -0
  198. package/dist/service/cloudformation/sim-cloudformation.d.ts +31 -0
  199. package/dist/service/cloudformation/sim-cloudformation.js +56 -9
  200. package/dist/service/cloudformation/stack/resource-map/sim-cfn-stack-resource-map.js +1 -0
  201. package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.d.ts +20 -0
  202. package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.js +23 -0
  203. package/dist/service/cloudformation/stack/sim-cfn-deployed-stack.type.d.ts +6 -0
  204. package/dist/service/cloudformation/stack/sim-cfn-stack-id.d.ts +30 -0
  205. package/dist/service/cloudformation/stack/sim-cfn-stack-id.js +24 -0
  206. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +51 -3
  207. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +84 -6
  208. package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts +28 -16
  209. package/dist/service/cloudformation/stack/sim-cfn-stack.js +59 -32
  210. package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +7 -1
  211. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.d.ts +7 -1
  212. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.js +3 -1
  213. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.d.ts +3 -0
  214. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.js +3 -0
  215. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.d.ts +3 -0
  216. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.js +2 -1
  217. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.d.ts +18 -0
  218. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.js +30 -0
  219. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.d.ts +9 -0
  220. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.js +14 -0
  221. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.d.ts +25 -14
  222. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.js +41 -24
  223. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.d.ts +16 -1
  224. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.js +27 -0
  225. package/dist/service/cloudformation/stack/update/sim-cfn-stack-updater.js +7 -1
  226. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.d.ts +12 -3
  227. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.js +29 -3
  228. package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.d.ts +28 -0
  229. package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.js +39 -0
  230. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.d.ts +25 -1
  231. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.js +43 -11
  232. package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.d.ts +7 -0
  233. package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.js +29 -3
  234. package/dist/service/cloudformation/template/sim-cfn-command-template.d.ts +40 -0
  235. package/dist/service/cloudformation/template/sim-cfn-command-template.js +45 -0
  236. package/dist/service/cloudformation/template/sim-cfn-template.d.ts +7 -0
  237. package/dist/service/cloudformation/template/sim-cfn-template.js +15 -1
  238. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts +2 -0
  239. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js +49 -0
  240. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js +1 -0
  241. package/dist/service/cloudfront/origin/s3/sim-cf-s3-origin-responses.js +1 -0
  242. package/dist/service/cognito/serve/page/sim-cognito-provider-page.js +1 -1
  243. package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.d.ts +5 -0
  244. package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.js +17 -0
  245. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.d.ts +5 -5
  246. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.js +24 -8
  247. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.d.ts +5 -0
  248. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.js +15 -0
  249. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-update-validator.d.ts +24 -0
  250. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-update-validator.js +38 -0
  251. package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.d.ts +11 -8
  252. package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.js +20 -8
  253. package/dist/service/dynamodb/command/query/sim-dynamodb-query.js +2 -0
  254. package/dist/service/dynamodb/command/query/sim-dynamodb-unsimulated-query-input.js +0 -1
  255. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.d.ts +14 -4
  256. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.js +16 -4
  257. package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.d.ts +17 -0
  258. package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.js +39 -0
  259. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.d.ts +28 -0
  260. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.js +50 -0
  261. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan.js +12 -5
  262. package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.d.ts +3 -3
  263. package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.js +3 -4
  264. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.d.ts +5 -16
  265. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.js +4 -21
  266. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.d.ts +15 -0
  267. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.js +18 -1
  268. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.d.ts +13 -0
  269. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.js +15 -0
  270. package/dist/service/dynamodb/table/sim-dynamodb-index-update.js +1 -2
  271. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.js +2 -0
  272. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.js +5 -3
  273. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.d.ts +21 -0
  274. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.js +37 -0
  275. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.js +6 -0
  276. package/dist/service/lambda/command/create-function/create-function.handler.d.ts +3 -0
  277. package/dist/service/lambda/command/create-function/create-function.handler.js +5 -1
  278. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.command.d.ts +2 -3
  279. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.handler.js +1 -0
  280. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts +6 -0
  281. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.js +10 -0
  282. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.js +2 -6
  283. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js +1 -0
  284. package/dist/service/lambda/command/function/sim-lambda-function-commands.d.ts +2 -0
  285. package/dist/service/lambda/command/function-url/function-url-cors-constraints.d.ts +25 -0
  286. package/dist/service/lambda/command/function-url/function-url-cors-constraints.js +49 -0
  287. package/dist/service/lambda/command/function-url/function-url-cors-input.d.ts +25 -0
  288. package/dist/service/lambda/command/function-url/function-url-cors-input.js +57 -0
  289. package/dist/service/lambda/command/function-url/function-url-input.d.ts +7 -0
  290. package/dist/service/lambda/command/function-url/function-url-input.js +9 -0
  291. package/dist/service/lambda/command/invoke/async/sim-lambda-async-invocation.js +10 -13
  292. package/dist/service/lambda/command/invoke/async/sim-lambda-async-outcome.js +2 -0
  293. package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.d.ts +13 -0
  294. package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.js +12 -0
  295. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.command.d.ts +2 -0
  296. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.handler.js +1 -0
  297. package/dist/service/lambda/destination/deliver/sim-lambda-destination-bus.js +1 -1
  298. package/dist/service/lambda/destination/deliver/sim-lambda-destination-function.js +8 -12
  299. package/dist/service/lambda/destination/deliver/sim-lambda-destination-queue.js +4 -3
  300. package/dist/service/lambda/destination/deliver/sim-lambda-destination-send.d.ts +2 -0
  301. package/dist/service/lambda/destination/deliver/sim-lambda-destination-topic.js +4 -3
  302. package/dist/service/lambda/destination/sim-aws-lambda-destinations.d.ts +4 -6
  303. package/dist/service/lambda/destination/sim-aws-lambda-destinations.js +6 -6
  304. package/dist/service/lambda/destination/sim-lambda-destination-targets.d.ts +3 -0
  305. package/dist/service/lambda/event-source/poll/kinesis/sim-lambda-kinesis-stream-delivery.js +4 -9
  306. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.js +4 -9
  307. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.d.ts +22 -3
  308. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.js +39 -9
  309. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.d.ts +7 -6
  310. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.js +14 -12
  311. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.d.ts +9 -15
  312. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.js +9 -16
  313. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.d.ts +10 -6
  314. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.js +22 -12
  315. package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.d.ts +23 -0
  316. package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.js +18 -0
  317. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.d.ts +12 -13
  318. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.js +24 -17
  319. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.d.ts +64 -0
  320. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.js +86 -0
  321. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts +6 -0
  322. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js +8 -1
  323. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.d.ts +6 -0
  324. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.js +7 -0
  325. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.d.ts +11 -1
  326. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.js +13 -0
  327. package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.d.ts +39 -0
  328. package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.js +46 -0
  329. package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.d.ts +56 -0
  330. package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.js +110 -0
  331. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.d.ts +5 -0
  332. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.js +7 -1
  333. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.d.ts +6 -0
  334. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.js +6 -0
  335. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.d.ts +6 -1
  336. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.js +8 -6
  337. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.d.ts +10 -8
  338. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.js +18 -1
  339. package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts +8 -2
  340. package/dist/service/lambda/function/code/sim-lambda-executable-code.js +2 -1
  341. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.d.ts +2 -11
  342. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.js +13 -39
  343. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.d.ts +7 -0
  344. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.js +13 -7
  345. package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.d.ts +23 -0
  346. package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.js +42 -0
  347. package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.d.ts +12 -4
  348. package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.js +15 -5
  349. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.d.ts +7 -0
  350. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.js +6 -2
  351. package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.d.ts +26 -0
  352. package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.js +84 -0
  353. package/dist/service/lambda/function/invoke/sim-lambda-invocation.d.ts +44 -0
  354. package/dist/service/lambda/function/invoke/sim-lambda-invocation.js +44 -0
  355. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.d.ts +6 -0
  356. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.js +1 -2
  357. package/dist/service/lambda/function/invoke/sim-lambda-process-output.d.ts +6 -1
  358. package/dist/service/lambda/function/invoke/sim-lambda-process-output.js +19 -6
  359. package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.d.ts +15 -0
  360. package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.js +18 -0
  361. package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.d.ts +12 -0
  362. package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.js +28 -0
  363. package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.d.ts +46 -0
  364. package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.js +104 -0
  365. package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.d.ts +24 -0
  366. package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.js +27 -0
  367. package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.d.ts +43 -0
  368. package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.js +112 -0
  369. package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.d.ts +57 -0
  370. package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.js +79 -0
  371. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.d.ts +10 -0
  372. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.js +15 -0
  373. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.d.ts +11 -0
  374. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.js +24 -0
  375. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.d.ts +50 -0
  376. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.js +43 -0
  377. package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts +17 -0
  378. package/dist/service/lambda/function/logging/sim-lambda-function-logging.js +12 -1
  379. package/dist/service/lambda/function/logging/sim-lambda-output.d.ts +56 -0
  380. package/dist/service/lambda/function/logging/sim-lambda-output.js +62 -0
  381. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.d.ts +8 -0
  382. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.js +27 -1
  383. package/dist/service/lambda/function/sim-lambda-function.d.ts +1 -1
  384. package/dist/service/lambda/function/sim-lambda-function.js +11 -9
  385. package/dist/service/lambda/function/sim-lambda-function.type.d.ts +15 -0
  386. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.d.ts +16 -0
  387. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.d.ts +22 -0
  388. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.js +17 -0
  389. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.js +1 -0
  390. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.d.ts +2 -0
  391. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.js +2 -1
  392. package/dist/service/lambda/function/url/sim-lambda-function-url-store.d.ts +2 -0
  393. package/dist/service/lambda/function/url/sim-lambda-function-url.d.ts +16 -0
  394. package/dist/service/lambda/function/url/sim-lambda-function-url.js +16 -1
  395. package/dist/service/lambda/index.d.ts +1 -0
  396. package/dist/service/lambda/index.js +1 -0
  397. package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.d.ts +50 -0
  398. package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.js +96 -0
  399. package/dist/service/lambda/serve/sim-lambda-controller.d.ts +14 -0
  400. package/dist/service/lambda/serve/sim-lambda-controller.js +27 -0
  401. package/dist/service/lambda/sim-lambda-commands.d.ts +10 -0
  402. package/dist/service/lambda/sim-lambda-commands.js +11 -0
  403. package/dist/service/lambda/sim-lambda.d.ts +12 -0
  404. package/dist/service/lambda/sim-lambda.js +13 -0
  405. package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.d.ts +67 -0
  406. package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.js +69 -0
  407. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.d.ts +4 -31
  408. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.js +7 -6
  409. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.d.ts +5 -0
  410. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.js +8 -4
  411. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.d.ts +1 -14
  412. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.js +16 -8
  413. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.d.ts +41 -0
  414. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.js +1 -0
  415. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.d.ts +14 -0
  416. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.js +32 -2
  417. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.d.ts +33 -0
  418. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.js +48 -0
  419. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.d.ts +16 -0
  420. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.js +44 -0
  421. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.d.ts +8 -0
  422. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.js +27 -0
  423. package/dist/service/s3/bucket/notification/sim-s3-notification-event.d.ts +1 -1
  424. package/dist/service/s3/bucket/notification/sim-s3-notification-event.js +5 -0
  425. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-events.js +0 -3
  426. package/dist/service/s3/bucket/sim-s3-bucket-access.d.ts +3 -0
  427. package/dist/service/s3/bucket/sim-s3-bucket-access.js +6 -2
  428. package/dist/service/s3/bucket/sim-s3-bucket-configuration.d.ts +84 -0
  429. package/dist/service/s3/bucket/sim-s3-bucket-configuration.js +115 -0
  430. package/dist/service/s3/bucket/sim-s3-bucket-objects.d.ts +10 -0
  431. package/dist/service/s3/bucket/sim-s3-bucket-objects.js +18 -0
  432. package/dist/service/s3/bucket/sim-s3-bucket-properties.d.ts +41 -0
  433. package/dist/service/s3/bucket/sim-s3-bucket-properties.js +1 -0
  434. package/dist/service/s3/bucket/sim-s3-bucket.d.ts +11 -83
  435. package/dist/service/s3/bucket/sim-s3-bucket.js +14 -83
  436. package/dist/service/s3/bucket/sim-s3-public-read.fixture.d.ts +6 -0
  437. package/dist/service/s3/bucket/sim-s3-public-read.fixture.js +20 -6
  438. package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.d.ts +58 -0
  439. package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.js +73 -0
  440. package/dist/service/s3/bucket/versioning/sim-s3-object-version.d.ts +19 -1
  441. package/dist/service/s3/bucket/versioning/sim-s3-object-version.js +20 -0
  442. package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.d.ts +21 -0
  443. package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.js +44 -0
  444. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.js +6 -0
  445. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.d.ts +5 -4
  446. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.js +12 -5
  447. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.d.ts +21 -0
  448. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.js +30 -0
  449. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js +1 -0
  450. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.d.ts +14 -1
  451. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.js +41 -16
  452. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.d.ts +3 -5
  453. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.js +7 -10
  454. package/dist/service/s3/command/authorize/sim-s3-authorize-action.d.ts +6 -1
  455. package/dist/service/s3/command/authorize/sim-s3-authorize-action.js +5 -0
  456. package/dist/service/s3/command/copy-object/copy-object-builder.d.ts +10 -1
  457. package/dist/service/s3/command/copy-object/copy-object-builder.js +17 -1
  458. package/dist/service/s3/command/copy-object/copy-object.command.d.ts +11 -1
  459. package/dist/service/s3/command/copy-object/copy-object.handler.js +2 -1
  460. package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.command.d.ts +5 -1
  461. package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.handler.js +7 -0
  462. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.d.ts +19 -0
  463. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.js +1 -0
  464. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.d.ts +30 -0
  465. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.js +38 -0
  466. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.d.ts +23 -0
  467. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.js +1 -0
  468. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.d.ts +22 -0
  469. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.js +42 -0
  470. package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.d.ts +29 -0
  471. package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.js +49 -0
  472. package/dist/service/s3/command/encryption/sim-s3-encryption-commands.d.ts +22 -0
  473. package/dist/service/s3/command/encryption/sim-s3-encryption-commands.js +30 -0
  474. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.d.ts +24 -0
  475. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.js +1 -0
  476. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.d.ts +31 -0
  477. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.js +39 -0
  478. package/dist/service/s3/command/get-object/get-object-authorizer.d.ts +11 -8
  479. package/dist/service/s3/command/get-object/get-object-authorizer.js +26 -34
  480. package/dist/service/s3/command/get-object/get-object-loader.d.ts +7 -3
  481. package/dist/service/s3/command/get-object/get-object-loader.js +9 -4
  482. package/dist/service/s3/command/get-object/get-object.command.d.ts +2 -1
  483. package/dist/service/s3/command/get-object/get-object.handler.d.ts +4 -0
  484. package/dist/service/s3/command/get-object/get-object.handler.js +13 -7
  485. package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.d.ts +29 -0
  486. package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.js +1 -0
  487. package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.d.ts +21 -0
  488. package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.js +33 -0
  489. package/dist/service/s3/command/head-object/head-object-loader.js +2 -0
  490. package/dist/service/s3/command/head-object/head-object.command.d.ts +2 -1
  491. package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-rules-validation.js +18 -0
  492. package/dist/service/s3/command/list-multipart-uploads/list-multipart-uploads.handler.js +1 -2
  493. package/dist/service/s3/command/list-object-versions/list-object-versions-summaries.js +1 -2
  494. package/dist/service/s3/command/list-objects/list-objects-page-builder.d.ts +5 -0
  495. package/dist/service/s3/command/list-objects/list-objects-page-builder.js +11 -6
  496. package/dist/service/s3/command/list-objects/list-objects.command.d.ts +5 -1
  497. package/dist/service/s3/command/list-objects/list-objects.handler.js +5 -0
  498. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.d.ts +6 -0
  499. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.js +11 -5
  500. package/dist/service/s3/command/list-objects-v2/list-objects-v2.command.d.ts +5 -1
  501. package/dist/service/s3/command/list-objects-v2/list-objects-v2.handler.js +5 -0
  502. package/dist/service/s3/command/list-parts/list-parts.handler.js +3 -3
  503. package/dist/service/s3/command/multipart/sim-s3-multipart-access.js +1 -1
  504. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.d.ts +21 -0
  505. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.js +1 -0
  506. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.d.ts +31 -0
  507. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.js +41 -0
  508. package/dist/service/s3/command/put-object/put-object-builder.d.ts +5 -1
  509. package/dist/service/s3/command/put-object/put-object-builder.js +10 -1
  510. package/dist/service/s3/command/put-object/put-object.command.d.ts +5 -1
  511. package/dist/service/s3/command/put-object/put-object.handler.js +2 -1
  512. package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.d.ts +37 -0
  513. package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.js +1 -0
  514. package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.d.ts +22 -0
  515. package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.js +46 -0
  516. package/dist/service/s3/command/sim-s3-command.types.d.ts +6 -0
  517. package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.d.ts +61 -0
  518. package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.js +49 -0
  519. package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.d.ts +30 -0
  520. package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.js +27 -0
  521. package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.d.ts +26 -0
  522. package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.js +34 -0
  523. package/dist/service/s3/error/sim-s3-upload.error.d.ts +41 -0
  524. package/dist/service/s3/error/sim-s3-upload.error.js +47 -0
  525. package/dist/service/s3/error/sim-s3.error.d.ts +22 -34
  526. package/dist/service/s3/error/sim-s3.error.js +26 -40
  527. package/dist/service/s3/mount/sim-s3-mount.type.d.ts +10 -0
  528. package/dist/service/s3/notification/event/sim-s3-event-records.d.ts +3 -2
  529. package/dist/service/s3/notification/event/sim-s3-event-records.js +5 -3
  530. package/dist/service/s3/notification/event/sim-s3-object-event-builder.d.ts +33 -8
  531. package/dist/service/s3/notification/event/sim-s3-object-event-builder.js +23 -9
  532. package/dist/service/s3/notification/sim-s3-object-notifier.d.ts +5 -1
  533. package/dist/service/s3/notification/sim-s3-object-notifier.js +6 -0
  534. package/dist/service/s3/object/s3-key-encoding.d.ts +12 -0
  535. package/dist/service/s3/object/s3-key-encoding.js +14 -0
  536. package/dist/service/s3/object/s3-listing-encoding.d.ts +42 -0
  537. package/dist/service/s3/object/s3-listing-encoding.js +75 -0
  538. package/dist/service/s3/object/s3-object-response-headers.d.ts +40 -0
  539. package/dist/service/s3/object/s3-object-response-headers.js +49 -2
  540. package/dist/service/s3/object/s3-object-storage-report.d.ts +19 -0
  541. package/dist/service/s3/object/s3-object-storage-report.js +18 -0
  542. package/dist/service/s3/object/s3-object-summary.d.ts +2 -10
  543. package/dist/service/s3/object/s3-object-summary.js +1 -10
  544. package/dist/service/s3/object/s3-object-tags.d.ts +61 -0
  545. package/dist/service/s3/object/s3-object-tags.js +77 -0
  546. package/dist/service/s3/object/s3-object.d.ts +49 -0
  547. package/dist/service/s3/object/s3-object.js +52 -1
  548. package/dist/service/s3/object/s3-server-side-encryption.d.ts +30 -0
  549. package/dist/service/s3/object/s3-server-side-encryption.js +42 -0
  550. package/dist/service/s3/object/s3-storage-class.d.ts +45 -0
  551. package/dist/service/s3/object/s3-storage-class.js +67 -0
  552. package/dist/service/s3/object/s3-write-metadata.d.ts +17 -3
  553. package/dist/service/s3/object/s3-write-metadata.js +43 -0
  554. package/dist/service/s3/object/s3-write-storage.d.ts +27 -0
  555. package/dist/service/s3/object/s3-write-storage.js +21 -0
  556. package/dist/service/s3/object/s3-write-tagging.d.ts +24 -0
  557. package/dist/service/s3/object/s3-write-tagging.js +19 -0
  558. package/dist/service/s3/sdk/sim-s3-sdk-bucket-routes.js +12 -0
  559. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +2 -0
  560. package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.d.ts +9 -0
  561. package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.js +23 -0
  562. package/dist/service/s3/serve/api/sim-s3-api-bucket-routes.js +22 -0
  563. package/dist/service/s3/serve/api/sim-s3-api-configuration-output.d.ts +4 -0
  564. package/dist/service/s3/serve/api/sim-s3-api-configuration-output.js +10 -0
  565. package/dist/service/s3/serve/api/sim-s3-api-encryption-read.d.ts +7 -0
  566. package/dist/service/s3/serve/api/sim-s3-api-encryption-read.js +30 -0
  567. package/dist/service/s3/serve/api/sim-s3-api-head-output.d.ts +4 -2
  568. package/dist/service/s3/serve/api/sim-s3-api-head-output.js +8 -2
  569. package/dist/service/s3/serve/api/sim-s3-api-input.d.ts +0 -6
  570. package/dist/service/s3/serve/api/sim-s3-api-input.js +2 -13
  571. package/dist/service/s3/serve/api/sim-s3-api-listing.d.ts +5 -0
  572. package/dist/service/s3/serve/api/sim-s3-api-listing.js +5 -0
  573. package/dist/service/s3/serve/api/sim-s3-api-object-input.d.ts +16 -0
  574. package/dist/service/s3/serve/api/sim-s3-api-object-input.js +34 -7
  575. package/dist/service/s3/serve/api/sim-s3-api-object-output.d.ts +18 -1
  576. package/dist/service/s3/serve/api/sim-s3-api-object-output.js +21 -2
  577. package/dist/service/s3/serve/api/sim-s3-api-object-routes.js +22 -1
  578. package/dist/service/s3/serve/api/sim-s3-api-output.d.ts +5 -1
  579. package/dist/service/s3/serve/api/sim-s3-api-output.js +16 -5
  580. package/dist/service/s3/serve/api/sim-s3-api-request.d.ts +6 -5
  581. package/dist/service/s3/serve/api/sim-s3-api-request.js +55 -11
  582. package/dist/service/s3/serve/api/sim-s3-api-routes.js +2 -2
  583. package/dist/service/s3/serve/api/sim-s3-api-tagging-read.d.ts +9 -0
  584. package/dist/service/s3/serve/api/sim-s3-api-tagging-read.js +14 -0
  585. package/dist/service/s3/serve/api/sim-s3-api.d.ts +7 -1
  586. package/dist/service/s3/serve/api/sim-s3-api.js +7 -1
  587. package/dist/service/s3/serve/sim-s3-rest-controller.d.ts +1 -5
  588. package/dist/service/s3/serve/sim-s3-rest-controller.js +3 -17
  589. package/dist/service/s3/serve/sim-s3-rest-object-reader.d.ts +3 -0
  590. package/dist/service/s3/serve/sim-s3-rest-object-reader.js +8 -1
  591. package/dist/service/s3/serve/sim-s3-rest-upload.d.ts +20 -0
  592. package/dist/service/s3/serve/sim-s3-rest-upload.js +30 -0
  593. package/dist/service/s3/serve/website/sim-s3-website-object-loader.js +1 -0
  594. package/dist/service/s3/serve/website/sim-s3-website-object.d.ts +2 -0
  595. package/dist/service/s3/serve/website/sim-s3-website-object.js +3 -0
  596. package/dist/service/s3/sim-s3-commands.d.ts +4 -0
  597. package/dist/service/s3/sim-s3-commands.js +6 -0
  598. package/dist/service/s3/sim-s3-operations.d.ts +11 -4
  599. package/dist/service/s3/sim-s3-operations.js +17 -4
  600. package/dist/service/s3/sim-s3-tagging-operations.d.ts +21 -0
  601. package/dist/service/s3/sim-s3-tagging-operations.js +25 -0
  602. package/dist/service/s3/sim-s3.d.ts +12 -0
  603. package/dist/service/s3/sim-s3.js +13 -0
  604. package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.d.ts +34 -0
  605. package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.js +34 -0
  606. package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.d.ts +9 -0
  607. package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.js +24 -0
  608. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.d.ts +5 -4
  609. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.js +5 -3
  610. package/dist/service/s3/upload/sim-s3-completed-upload.js +5 -1
  611. package/dist/service/s3/upload/sim-s3-multipart-upload.d.ts +18 -0
  612. package/dist/service/s3/upload/sim-s3-multipart-upload.js +8 -0
  613. package/dist/service/s3/upload/sim-s3-multipart-uploads.d.ts +6 -0
  614. package/dist/service/s3/upload/sim-s3-multipart-uploads.js +5 -0
  615. package/dist/util/background/background-clock-waits.d.ts +52 -0
  616. package/dist/util/background/background-clock-waits.js +76 -0
  617. package/dist/util/background/background-jitter.js +1 -0
  618. package/dist/util/background/background-pending-tasks.d.ts +55 -0
  619. package/dist/util/background/background-pending-tasks.js +117 -0
  620. package/dist/util/background/background-settled-tasks.d.ts +4 -1
  621. package/dist/util/background/background-settled-tasks.js +4 -1
  622. package/dist/util/background/background.d.ts +43 -0
  623. package/dist/util/background/background.js +27 -19
  624. package/dist/util/background/non-deterministic-background.d.ts +12 -0
  625. package/dist/util/background/non-deterministic-background.js +24 -20
  626. package/dist/util/clock/sim-clock-control.js +23 -2
  627. package/docs/services/apigateway/README.md +3 -1
  628. package/docs/services/athena/README.md +126 -3
  629. package/docs/services/cloudformation/README.md +775 -65
  630. package/docs/services/cognito/README.md +5 -0
  631. package/docs/services/dynamodb/README.md +86 -11
  632. package/docs/services/lambda/README.md +603 -39
  633. package/docs/services/s3/README.md +688 -57
  634. package/package.json +8 -2
@@ -0,0 +1,26 @@
1
+ import type { SimCfnTemplateValueRecord } from "../../../template/value/sim-cfn-template-value.js";
2
+ import type { SamApiAuthApi } from "./sim-cfn-sam-api-auth.types.js";
3
+ /**
4
+ * What one authorizer's `Identity` block is read against.
5
+ */
6
+ export interface SamApiIdentityProperties {
7
+ readonly api: SamApiAuthApi;
8
+ /** The name the `Authorizers` map declared this authorizer under. */
9
+ readonly authorizerName: string;
10
+ /** The authorizer's own properties, which may declare no `Identity` at all. */
11
+ readonly authorizer: SimCfnTemplateValueRecord;
12
+ /** How the API this authorizer belongs to names the parts of a request. */
13
+ readonly prefixes: ReadonlyMap<string, string>;
14
+ }
15
+ /**
16
+ * The request parts the authorizer is keyed on, in the order the API names
17
+ * them.
18
+ *
19
+ * The singular `Header` a Cognito or `TOKEN` authorizer states reads as a
20
+ * `Headers` of one, so both spellings arrive under the same prefix.
21
+ */
22
+ export declare function samIdentitySource(properties: SamApiIdentityProperties, identity: SimCfnTemplateValueRecord): readonly string[];
23
+ /**
24
+ * The error a property of an authorizer's `Identity` block is refused with.
25
+ */
26
+ export declare function samIdentityError(properties: SamApiIdentityProperties, property: string, reason: string): Error;
@@ -0,0 +1,44 @@
1
+ import { samAuthError } from "./sim-cfn-sam-api-auth.js";
2
+ /**
3
+ * The request parts the authorizer is keyed on, in the order the API names
4
+ * them.
5
+ *
6
+ * The singular `Header` a Cognito or `TOKEN` authorizer states reads as a
7
+ * `Headers` of one, so both spellings arrive under the same prefix.
8
+ */
9
+ export function samIdentitySource(properties, identity) {
10
+ return properties.prefixes
11
+ .entries()
12
+ .flatMap(([name, prefix]) => identityNames(properties, identity, name).map((part) => `${prefix}${part}`))
13
+ .toArray();
14
+ }
15
+ /**
16
+ * The error a property of an authorizer's `Identity` block is refused with.
17
+ */
18
+ export function samIdentityError(properties, property, reason) {
19
+ return samAuthError(properties.api, `Auth.Authorizers.${properties.authorizerName}.${property}`, reason);
20
+ }
21
+ function identityNames(properties, identity, name) {
22
+ const singular = name === "Headers" ? identity["Header"] : undefined;
23
+ // oxlint-disable-next-line security/detect-object-injection -- a template record read by one of the Identity property names.
24
+ const declared = identity[name];
25
+ return [
26
+ ...(singular === undefined ? [] : [singular]),
27
+ ...asList(properties, name, declared),
28
+ ].map((value) => identityName(properties, name, value));
29
+ }
30
+ function asList(properties, name, declared) {
31
+ if (declared === undefined) {
32
+ return [];
33
+ }
34
+ if (!Array.isArray(declared)) {
35
+ throw samIdentityError(properties, `Identity.${name}`, "it is not a list of names");
36
+ }
37
+ return declared;
38
+ }
39
+ function identityName(properties, name, value) {
40
+ if (typeof value !== "string") {
41
+ throw samIdentityError(properties, `Identity.${name}`, "it names a part of the request as something other than a string");
42
+ }
43
+ return value;
44
+ }
@@ -0,0 +1,15 @@
1
+ import type { SimCfnTemplateValueRecord } from "../../../template/value/sim-cfn-template-value.js";
2
+ import type { SamApiAuth } from "./sim-cfn-sam-api-auth.types.js";
3
+ /**
4
+ * The `Auth` of one AWS::Serverless::Api, as the authorizer Resources it
5
+ * declares and the default every method takes.
6
+ *
7
+ * SAM writes these into the Swagger document it generates. They are written as
8
+ * `AWS::ApiGateway::Authorizer` Resources here, the way the methods beside them
9
+ * are written as Resources, so an authorizer is something a Stack holds,
10
+ * answers `Ref` for and tears down.
11
+ *
12
+ * `AWS_IAM` is an authorizer of every REST API without being declared, since a
13
+ * SAM template names it as a `DefaultAuthorizer` without declaring one.
14
+ */
15
+ export declare function samRestApiAuth(logicalId: string, apiProperties: SimCfnTemplateValueRecord): SamApiAuth;
@@ -0,0 +1,59 @@
1
+ import { samApiAuthBlock, samAuthError, samIamAuthorizer, } from "./sim-cfn-sam-api-auth.js";
2
+ import { samApiAuthorizerDefinitions, samApiDefaultAuthorizer, } from "./sim-cfn-sam-api-authorizers.js";
3
+ import { samIamAuthorizerName } from "./sim-cfn-sam-api-auth.types.js";
4
+ import { samRestCognitoAuthorizer } from "./sim-cfn-sam-rest-cognito-authorizer.js";
5
+ import { samRestLambdaAuthorizer } from "./sim-cfn-sam-rest-lambda-authorizer.js";
6
+ /**
7
+ * The SAM Resource type a REST API `Auth` block is declared on.
8
+ */
9
+ const resourceType = "AWS::Serverless::Api";
10
+ /**
11
+ * The `Auth` properties this expansion reads on a REST API. Everything else
12
+ * SAM has there is refused by name.
13
+ */
14
+ const supportedProperties = new Set(["Authorizers", "DefaultAuthorizer"]);
15
+ /**
16
+ * The `Auth` of one AWS::Serverless::Api, as the authorizer Resources it
17
+ * declares and the default every method takes.
18
+ *
19
+ * SAM writes these into the Swagger document it generates. They are written as
20
+ * `AWS::ApiGateway::Authorizer` Resources here, the way the methods beside them
21
+ * are written as Resources, so an authorizer is something a Stack holds,
22
+ * answers `Ref` for and tears down.
23
+ *
24
+ * `AWS_IAM` is an authorizer of every REST API without being declared, since a
25
+ * SAM template names it as a `DefaultAuthorizer` without declaring one.
26
+ */
27
+ export function samRestApiAuth(logicalId, apiProperties) {
28
+ const api = { resourceType, logicalId };
29
+ const auth = samApiAuthBlock(api, apiProperties, supportedProperties);
30
+ return {
31
+ api,
32
+ authorizers: new Map([
33
+ [samIamAuthorizerName, samIamAuthorizer()],
34
+ ...samApiAuthorizerDefinitions(api, auth).map(([name, definition]) => [name, restAuthorizer({ api, name, definition })]),
35
+ ]),
36
+ defaultAuthorizer: samApiDefaultAuthorizer(api, auth),
37
+ };
38
+ }
39
+ /**
40
+ * One authorizer of a REST API, as the Resource it becomes and what a method
41
+ * naming it carries.
42
+ *
43
+ * A Cognito authorizer is the one that names a `UserPoolArn`, and a Lambda one
44
+ * the one that names a `FunctionArn`. That is how SAM tells them apart, and an
45
+ * authorizer naming neither is refused rather than deployed as something it
46
+ * did not ask to be.
47
+ */
48
+ function restAuthorizer(authorizer) {
49
+ const userPoolArn = authorizer.definition["UserPoolArn"];
50
+ if (userPoolArn !== undefined) {
51
+ return samRestCognitoAuthorizer(authorizer, userPoolArn);
52
+ }
53
+ const functionArn = authorizer.definition["FunctionArn"];
54
+ if (functionArn !== undefined) {
55
+ return samRestLambdaAuthorizer(authorizer, functionArn);
56
+ }
57
+ throw samAuthError(authorizer.api, `Auth.Authorizers.${authorizer.name}`, "it names neither a UserPoolArn nor a FunctionArn, so there is no " +
58
+ "telling what would decide a request");
59
+ }
@@ -0,0 +1,11 @@
1
+ import type { SimCfnTemplateValue } from "../../../template/value/sim-cfn-template-value.js";
2
+ import type { SamApiAuthorizer } from "./sim-cfn-sam-api-auth.types.js";
3
+ import type { SamAuthorizerDefinition } from "./sim-cfn-sam-authorizer-definition.js";
4
+ /**
5
+ * A REST API Cognito user pool authorizer, which verifies the token a request
6
+ * carries against the pool it names.
7
+ *
8
+ * `AuthorizationScopes` on the authorizer is what every method it decides asks
9
+ * of the token, and an event may ask for different ones of its own.
10
+ */
11
+ export declare function samRestCognitoAuthorizer(authorizer: SamAuthorizerDefinition, userPoolArn: SimCfnTemplateValue): SamApiAuthorizer;
@@ -0,0 +1,43 @@
1
+ import { samAuthorizerLogicalId, samAuthorizerResultTtl, } from "./sim-cfn-sam-api-auth.js";
2
+ import { samApiIdentity } from "./sim-cfn-sam-api-identity.js";
3
+ import { samRestIdentityPrefixes } from "./sim-cfn-sam-identity-prefixes.js";
4
+ /**
5
+ * The header a Cognito authorizer reads its token from where the template says
6
+ * nothing, which is the one real API Gateway defaults to.
7
+ */
8
+ const defaultIdentitySource = "method.request.header.Authorization";
9
+ /**
10
+ * A REST API Cognito user pool authorizer, which verifies the token a request
11
+ * carries against the pool it names.
12
+ *
13
+ * `AuthorizationScopes` on the authorizer is what every method it decides asks
14
+ * of the token, and an event may ask for different ones of its own.
15
+ */
16
+ export function samRestCognitoAuthorizer(authorizer, userPoolArn) {
17
+ const { api, name, definition } = authorizer;
18
+ const identity = samApiIdentity({
19
+ api,
20
+ authorizerName: name,
21
+ authorizer: definition,
22
+ prefixes: samRestIdentityPrefixes,
23
+ });
24
+ const logicalId = samAuthorizerLogicalId(api, name);
25
+ return {
26
+ authorizationType: "COGNITO_USER_POOLS",
27
+ logicalId,
28
+ authorizationScopes: definition["AuthorizationScopes"],
29
+ resources: {
30
+ [logicalId]: {
31
+ Type: "AWS::ApiGateway::Authorizer",
32
+ Properties: {
33
+ RestApiId: { Ref: api.logicalId },
34
+ Name: name,
35
+ Type: "COGNITO_USER_POOLS",
36
+ ProviderARNs: [userPoolArn],
37
+ IdentitySource: identity.identitySource.join(",") || defaultIdentitySource,
38
+ ...samAuthorizerResultTtl(identity.reauthorizeEvery),
39
+ },
40
+ },
41
+ },
42
+ };
43
+ }
@@ -0,0 +1,15 @@
1
+ import type { SimCfnTemplateValue } from "../../../template/value/sim-cfn-template-value.js";
2
+ import type { SamApiAuthorizer } from "./sim-cfn-sam-api-auth.types.js";
3
+ import type { SamAuthorizerDefinition } from "./sim-cfn-sam-authorizer-definition.js";
4
+ /**
5
+ * A REST API Lambda authorizer, which asks a function of the template what to
6
+ * do with the request.
7
+ *
8
+ * `FunctionPayloadType` decides which of the two kinds it is. A `TOKEN`
9
+ * authorizer is handed one header, and a `REQUEST` authorizer the whole
10
+ * request. SAM defaults to `TOKEN`, and so does this. A `TOKEN` authorizer
11
+ * naming no header of its own reads `Authorization`, and a `REQUEST` one is
12
+ * allowed to read nothing by name, which is how it is asked to run on every
13
+ * request.
14
+ */
15
+ export declare function samRestLambdaAuthorizer(authorizer: SamAuthorizerDefinition, functionArn: SimCfnTemplateValue): SamApiAuthorizer;
@@ -0,0 +1,67 @@
1
+ import { samAuthError, samAuthorizerLogicalId, samAuthorizerResultTtl, } from "./sim-cfn-sam-api-auth.js";
2
+ import { samApiIdentity } from "./sim-cfn-sam-api-identity.js";
3
+ import { samAuthorizerPermissionResource, samAuthorizerUri, } from "./sim-cfn-sam-authorizer-function.js";
4
+ import { samRestIdentityPrefixes } from "./sim-cfn-sam-identity-prefixes.js";
5
+ /**
6
+ * A REST API Lambda authorizer, which asks a function of the template what to
7
+ * do with the request.
8
+ *
9
+ * `FunctionPayloadType` decides which of the two kinds it is. A `TOKEN`
10
+ * authorizer is handed one header, and a `REQUEST` authorizer the whole
11
+ * request. SAM defaults to `TOKEN`, and so does this. A `TOKEN` authorizer
12
+ * naming no header of its own reads `Authorization`, and a `REQUEST` one is
13
+ * allowed to read nothing by name, which is how it is asked to run on every
14
+ * request.
15
+ */
16
+ export function samRestLambdaAuthorizer(authorizer, functionArn) {
17
+ const { api, name, definition } = authorizer;
18
+ const identity = samApiIdentity({
19
+ api,
20
+ authorizerName: name,
21
+ authorizer: definition,
22
+ prefixes: samRestIdentityPrefixes,
23
+ });
24
+ const logicalId = samAuthorizerLogicalId(api, name);
25
+ const type = payloadType(authorizer);
26
+ const declared = identity.identitySource.join(",");
27
+ return {
28
+ authorizationType: "CUSTOM",
29
+ logicalId,
30
+ authorizationScopes: undefined,
31
+ resources: {
32
+ [logicalId]: {
33
+ Type: "AWS::ApiGateway::Authorizer",
34
+ Properties: {
35
+ RestApiId: { Ref: api.logicalId },
36
+ Name: name,
37
+ Type: type,
38
+ AuthorizerUri: samAuthorizerUri(functionArn),
39
+ ...identitySource(type, declared),
40
+ ...samAuthorizerResultTtl(identity.reauthorizeEvery),
41
+ },
42
+ },
43
+ [`${logicalId}Permission`]: samAuthorizerPermissionResource({
44
+ functionArn,
45
+ apiLogicalId: api.logicalId,
46
+ }),
47
+ },
48
+ };
49
+ }
50
+ /**
51
+ * Which kind of Lambda authorizer the definition asks for.
52
+ */
53
+ function payloadType(authorizer) {
54
+ const declared = authorizer.definition["FunctionPayloadType"] ?? "TOKEN";
55
+ if (declared !== "TOKEN" && declared !== "REQUEST") {
56
+ throw samAuthError(authorizer.api, `Auth.Authorizers.${authorizer.name}.FunctionPayloadType`, "it is neither TOKEN nor REQUEST");
57
+ }
58
+ return declared;
59
+ }
60
+ /**
61
+ * The `IdentitySource` the authorizer is created with, which a REST API states
62
+ * as one comma-separated string.
63
+ */
64
+ function identitySource(type, declared) {
65
+ const source = declared || (type === "TOKEN" ? "method.request.header.Authorization" : "");
66
+ return source === "" ? {} : { IdentitySource: source };
67
+ }
@@ -0,0 +1,26 @@
1
+ import type { CfnTemplateBodyRecord } from "../../../template/sim-cfn-template.js";
2
+ import type { SamTemplateGlobals } from "../../sim-cfn-sam-globals.js";
3
+ import type { SamApiAuth } from "./sim-cfn-sam-api-auth.types.js";
4
+ /**
5
+ * The `Auth` of every API of a template, by the logical ID the API is expanded
6
+ * under.
7
+ *
8
+ * An `Api` or `HttpApi` event puts its method on an API declared somewhere
9
+ * else in the template, and has to know what that API's `Auth` block declared
10
+ * before it can name one of its authorizers. This is read once for the whole
11
+ * template and handed to every event.
12
+ */
13
+ export type SamTemplateApiAuth = ReadonlyMap<string, SamApiAuth>;
14
+ /**
15
+ * Read the `Auth` of every API a template declares, and of the two implicit
16
+ * APIs its events may make.
17
+ *
18
+ * The implicit APIs are read from `Globals`, which is where SAM says their
19
+ * `Auth` comes from. An API the template declares under one of their logical
20
+ * IDs is the API of that name, and is read last for that reason.
21
+ *
22
+ * An API naming a `DefinitionUri` is left out. Nothing here reads the document
23
+ * it points at, so the API is not expanded at all and there is no authorizer
24
+ * Resource for a method to name.
25
+ */
26
+ export declare function samTemplateApiAuth(template: CfnTemplateBodyRecord, globals: SamTemplateGlobals): SamTemplateApiAuth;
@@ -0,0 +1,61 @@
1
+ import { samImplicitHttpApiLogicalId } from "../../function/event/sim-cfn-sam-implicit-http-api.js";
2
+ import { samImplicitRestApiLogicalId } from "../../function/event/sim-cfn-sam-implicit-rest-api.js";
3
+ import { samResourceProperties } from "../../function/sim-cfn-sam-function-properties.js";
4
+ import { samMergedApiProperties } from "../../sim-cfn-sam-globals.js";
5
+ import { isSamTemplateRecord } from "../../sim-cfn-sam-record.js";
6
+ import { samHttpApiType } from "../sim-cfn-sam-http-api.js";
7
+ import { samRestApiType } from "../sim-cfn-sam-rest-api.js";
8
+ import { samHttpApiAuth } from "./sim-cfn-sam-http-api-auth.js";
9
+ import { samRestApiAuth } from "./sim-cfn-sam-rest-api-auth.js";
10
+ /**
11
+ * Read the `Auth` of every API a template declares, and of the two implicit
12
+ * APIs its events may make.
13
+ *
14
+ * The implicit APIs are read from `Globals`, which is where SAM says their
15
+ * `Auth` comes from. An API the template declares under one of their logical
16
+ * IDs is the API of that name, and is read last for that reason.
17
+ *
18
+ * An API naming a `DefinitionUri` is left out. Nothing here reads the document
19
+ * it points at, so the API is not expanded at all and there is no authorizer
20
+ * Resource for a method to name.
21
+ */
22
+ export function samTemplateApiAuth(template, globals) {
23
+ const resources = isSamTemplateRecord(template.Resources)
24
+ ? Object.entries(template.Resources)
25
+ : [];
26
+ return new Map([
27
+ [
28
+ samImplicitRestApiLogicalId,
29
+ samRestApiAuth(samImplicitRestApiLogicalId, globals.forApi),
30
+ ],
31
+ [
32
+ samImplicitHttpApiLogicalId,
33
+ samHttpApiAuth(samImplicitHttpApiLogicalId, globals.forHttpApi),
34
+ ],
35
+ ...resources.flatMap(([logicalId, resource]) => declaredApiAuth(logicalId, resource, globals)),
36
+ ]);
37
+ }
38
+ /**
39
+ * The `Auth` of one Resource of the template, where the Resource is a SAM API
40
+ * this expansion covers.
41
+ */
42
+ function declaredApiAuth(logicalId, resource, globals) {
43
+ if (!isSamTemplateRecord(resource)) {
44
+ return [];
45
+ }
46
+ const type = resource["Type"];
47
+ if (type === samRestApiType) {
48
+ return apiAuth(logicalId, resource, globals.forApi, samRestApiAuth);
49
+ }
50
+ if (type === samHttpApiType) {
51
+ return apiAuth(logicalId, resource, globals.forHttpApi, samHttpApiAuth);
52
+ }
53
+ return [];
54
+ }
55
+ function apiAuth(logicalId, resource, globals, read) {
56
+ const apiProperties = samMergedApiProperties(globals, samResourceProperties(resource));
57
+ if (apiProperties["DefinitionUri"] !== undefined) {
58
+ return [];
59
+ }
60
+ return [[logicalId, read(logicalId, apiProperties)]];
61
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * The `Auth` properties an API can declare that this expansion does not model,
3
+ * and what each one would have done.
4
+ *
5
+ * Every one of them is refused by name rather than dropped, because an API
6
+ * that quietly lost part of its `Auth` block deploys open under a template
7
+ * that reads as closed.
8
+ */
9
+ export declare const samUnsupportedApiAuth: ReadonlyMap<string, string>;
10
+ /**
11
+ * The `Auth` properties an `Api` or `HttpApi` event can declare that this
12
+ * expansion does not model.
13
+ */
14
+ export declare const samUnsupportedEventAuth: ReadonlyMap<string, string>;
15
+ /**
16
+ * The `Identity` properties of an authorizer this expansion does not model.
17
+ */
18
+ export declare const samUnsupportedIdentity: ReadonlyMap<string, string>;
@@ -0,0 +1,59 @@
1
+ /**
2
+ * The `Auth` properties an API can declare that this expansion does not model,
3
+ * and what each one would have done.
4
+ *
5
+ * Every one of them is refused by name rather than dropped, because an API
6
+ * that quietly lost part of its `Auth` block deploys open under a template
7
+ * that reads as closed.
8
+ */
9
+ export const samUnsupportedApiAuth = new Map([
10
+ [
11
+ "AddDefaultAuthorizerToCorsPreflight",
12
+ "it decides whether the OPTIONS method a Cors block generates is " +
13
+ "authorized, and Cors is not expanded here",
14
+ ],
15
+ ["ApiKeyRequired", "API keys and usage plans are not simulated"],
16
+ ["UsagePlan", "API keys and usage plans are not simulated"],
17
+ [
18
+ "InvokeRole",
19
+ "it names the Role API Gateway calls the integration as, and an " +
20
+ "integration here is invoked as the API rather than as a Role",
21
+ ],
22
+ [
23
+ "ResourcePolicy",
24
+ "an API Gateway resource policy is not simulated. Close the API with an " +
25
+ "authorizer instead",
26
+ ],
27
+ ]);
28
+ /**
29
+ * The `Auth` properties an `Api` or `HttpApi` event can declare that this
30
+ * expansion does not model.
31
+ */
32
+ export const samUnsupportedEventAuth = new Map([
33
+ ["ApiKeyRequired", "API keys and usage plans are not simulated"],
34
+ [
35
+ "InvokeRole",
36
+ "it names the Role API Gateway calls the integration as, and an " +
37
+ "integration here is invoked as the API rather than as a Role",
38
+ ],
39
+ [
40
+ "ResourcePolicy",
41
+ "an API Gateway resource policy is not simulated. Close the method with " +
42
+ "an authorizer instead",
43
+ ],
44
+ [
45
+ "OverrideApiAuth",
46
+ "it lets an event replace the API's own Auth block rather than name one " +
47
+ "of its authorizers",
48
+ ],
49
+ ]);
50
+ /**
51
+ * The `Identity` properties of an authorizer this expansion does not model.
52
+ */
53
+ export const samUnsupportedIdentity = new Map([
54
+ [
55
+ "ValidationExpression",
56
+ "it turns a token that does not match into a 401 before the authorizer " +
57
+ "runs, and that check is not simulated",
58
+ ],
59
+ ]);
@@ -1,5 +1,5 @@
1
1
  import { MappedFactory } from "@kensio/part-factory";
2
- import { samFunctionType } from "../function/sim-cfn-sam-function.js";
2
+ import { samFunctionType } from "../function/sim-cfn-sam-function-type.js";
3
3
  import { samTransformName } from "../sim-cfn-sam-transform.js";
4
4
  import { samHttpApiType } from "./sim-cfn-sam-http-api.js";
5
5
  /**
@@ -22,6 +22,10 @@ export declare const samHttpApiType = "AWS::Serverless::HttpApi";
22
22
  * points at a document on disk or in S3. Nothing here reads either, and an API
23
23
  * declaring one is left as the template wrote it, to be recorded as
24
24
  * unsupported. The alternative is an API deployed with no routes at all.
25
+ *
26
+ * An `Auth` block becomes one `AWS::ApiGatewayV2::Authorizer` per authorizer it
27
+ * declares, named after the API and the authorizer, which the routes on the API
28
+ * name by `Ref`.
25
29
  */
26
30
  export declare function samHttpApiResources(properties: SamHttpApiExpansionProperties): Record<string, SimCfnTemplateValue>;
27
31
  export {};
@@ -1,6 +1,8 @@
1
- import { samCarriedAttributes, samResourceProperties, } from "../function/sim-cfn-sam-function-properties.js";
1
+ import { samCarriedAttributes, samConditionAttribute, samResourceProperties, } from "../function/sim-cfn-sam-function-properties.js";
2
2
  import { samMergedApiProperties } from "../sim-cfn-sam-globals.js";
3
3
  import { samPickedProperties } from "../sim-cfn-sam-picked.js";
4
+ import { samApiAuthResources } from "./auth/sim-cfn-sam-api-auth.js";
5
+ import { samHttpApiAuth } from "./auth/sim-cfn-sam-http-api-auth.js";
4
6
  import { samHttpApiStageResources } from "./sim-cfn-sam-http-api-stage.js";
5
7
  /**
6
8
  * The SAM Resource type this expansion covers.
@@ -10,10 +12,10 @@ export const samHttpApiType = "AWS::Serverless::HttpApi";
10
12
  * The properties whose names and meanings are the same on both Resource types.
11
13
  * Expanding one of them is carrying it across.
12
14
  *
13
- * `Auth` and `Domain` are absent from the list. SAM writes an `Auth` block
14
- * into the OpenAPI document it generates, and deploys a `Domain` as a custom
15
- * domain name Resource. Neither is expanded here, and an API declaring one is
16
- * deployed without it.
15
+ * `Auth` and `Domain` are absent from the list. SAM deploys a `Domain` as a
16
+ * custom domain name Resource. That is not expanded here, and an API declaring
17
+ * one is deployed without it. `Auth` becomes authorizer Resources of its own
18
+ * beside the API.
17
19
  */
18
20
  const propertyNames = new Set([
19
21
  "CorsConfiguration",
@@ -36,6 +38,10 @@ const propertyNames = new Set([
36
38
  * points at a document on disk or in S3. Nothing here reads either, and an API
37
39
  * declaring one is left as the template wrote it, to be recorded as
38
40
  * unsupported. The alternative is an API deployed with no routes at all.
41
+ *
42
+ * An `Auth` block becomes one `AWS::ApiGatewayV2::Authorizer` per authorizer it
43
+ * declares, named after the API and the authorizer, which the routes on the API
44
+ * name by `Ref`.
39
45
  */
40
46
  export function samHttpApiResources(properties) {
41
47
  const { logicalId, resource, globals } = properties;
@@ -55,6 +61,7 @@ export function samHttpApiResources(properties) {
55
61
  },
56
62
  },
57
63
  ...samHttpApiStageResources({ logicalId, resource, apiProperties }),
64
+ ...samApiAuthResources(samHttpApiAuth(logicalId, apiProperties), samConditionAttribute(resource["Condition"])),
58
65
  };
59
66
  }
60
67
  /**
@@ -1,5 +1,5 @@
1
1
  import { MappedFactory } from "@kensio/part-factory";
2
- import { samFunctionType } from "../function/sim-cfn-sam-function.js";
2
+ import { samFunctionType } from "../function/sim-cfn-sam-function-type.js";
3
3
  import { samTransformName } from "../sim-cfn-sam-transform.js";
4
4
  import { samRestApiType } from "./sim-cfn-sam-rest-api.js";
5
5
  /**
@@ -1,6 +1,8 @@
1
- import { samCarriedAttributes, samResourceProperties, } from "../function/sim-cfn-sam-function-properties.js";
1
+ import { samCarriedAttributes, samConditionAttribute, samResourceProperties, } from "../function/sim-cfn-sam-function-properties.js";
2
2
  import { samMergedApiProperties } from "../sim-cfn-sam-globals.js";
3
3
  import { samPickedProperties } from "../sim-cfn-sam-picked.js";
4
+ import { samApiAuthResources } from "./auth/sim-cfn-sam-api-auth.js";
5
+ import { samRestApiAuth } from "./auth/sim-cfn-sam-rest-api-auth.js";
4
6
  import { samRestApiStageResources } from "./sim-cfn-sam-rest-api-stage.js";
5
7
  /**
6
8
  * The SAM Resource type this expansion covers.
@@ -10,10 +12,11 @@ export const samRestApiType = "AWS::Serverless::Api";
10
12
  * The properties whose names and meanings are the same on both Resource types.
11
13
  * Expanding one of them is carrying it across.
12
14
  *
13
- * `Auth`, `Cors`, `Domain`, `GatewayResponses`, `MethodSettings` and
15
+ * `Cors`, `Domain`, `GatewayResponses`, `MethodSettings` and
14
16
  * `BinaryMediaTypes` are absent from the list. SAM writes all of them into the
15
17
  * Swagger document it generates, and none is expanded here, so an API
16
- * declaring one is deployed without it.
18
+ * declaring one is deployed without it. `Auth` is absent for the opposite
19
+ * reason. It becomes authorizer Resources of its own beside the API.
17
20
  */
18
21
  const propertyNames = new Set([
19
22
  "Description",
@@ -60,6 +63,7 @@ export function samRestApiResources(properties) {
60
63
  },
61
64
  },
62
65
  ...samRestApiStageResources({ logicalId, resource, apiProperties }),
66
+ ...samApiAuthResources(samRestApiAuth(logicalId, apiProperties), samConditionAttribute(resource["Condition"])),
63
67
  };
64
68
  }
65
69
  /**
@@ -1,3 +1,4 @@
1
+ import { samEventAuthorization } from "../../api/auth/sim-cfn-sam-event-authorization.js";
1
2
  import { isSamTemplateRecord } from "../../sim-cfn-sam-record.js";
2
3
  import { samApiInvokePermissionResource } from "./sim-cfn-sam-api-invoke-permission.js";
3
4
  import { samApiEventPathParts, samApiEventPathResources, samApiEventResourceId, } from "./sim-cfn-sam-api-event-path.js";
@@ -84,8 +85,11 @@ function samApiEventPath(properties) {
84
85
  *
85
86
  * SAM integrates an `Api` event as a proxy, which is the shape the function is
86
87
  * handed the request in, and the REST API declares an integration as a block
87
- * of the method. `Auth` on the event is not expanded, so the method authorizes
88
- * nothing and every request matching it reaches the function.
88
+ * of the method.
89
+ *
90
+ * `Auth` on the event names one of the API's authorizers, and an event naming
91
+ * none takes the API's `DefaultAuthorizer`. A method neither of them closes
92
+ * authorizes nothing, and every request matching it reaches the function.
89
93
  */
90
94
  function methodResource(properties) {
91
95
  const { event, apiLogicalId, path } = properties;
@@ -96,7 +100,7 @@ function methodResource(properties) {
96
100
  RestApiId: { Ref: apiLogicalId },
97
101
  ResourceId: samApiEventResourceId(apiLogicalId, path),
98
102
  HttpMethod: samApiEventHttpMethod(event.properties),
99
- AuthorizationType: "NONE",
103
+ ...samEventAuthorization(event, apiLogicalId),
100
104
  Integration: {
101
105
  Type: "AWS_PROXY",
102
106
  IntegrationHttpMethod: "POST",
@@ -0,0 +1,26 @@
1
+ import type { SimCfnTemplateValue } from "../../../template/value/sim-cfn-template-value.js";
2
+ import type { SamFunctionEvent } from "./sim-cfn-sam-declared-event.js";
3
+ import type { SamResourceEdit } from "./sim-cfn-sam-resource-edit.js";
4
+ /**
5
+ * The Resource a `Cognito` event expands into, which is the permission the
6
+ * pool invokes the function under.
7
+ *
8
+ * A user pool checks the function's resource policy every time a trigger
9
+ * fires, so the entry in its `LambdaConfig` is not enough on its own. The
10
+ * grant names the pool as the source, so a permission written for one pool
11
+ * does not open the function to another.
12
+ *
13
+ * The pool is not made to depend on the permission. Cognito reads the policy
14
+ * when the trigger fires rather than when the pool is created, and a pool
15
+ * depending on a permission that names the pool is the circular dependency
16
+ * CloudFormation refuses.
17
+ */
18
+ export declare function samCognitoEventResources(event: SamFunctionEvent): Record<string, SimCfnTemplateValue>;
19
+ /**
20
+ * The change a `Cognito` event makes to the user pool the template already
21
+ * declares.
22
+ *
23
+ * A trigger is a property of the pool, so this is the second event type with
24
+ * no Resource of its own to be.
25
+ */
26
+ export declare function samCognitoEventEdits(event: SamFunctionEvent): readonly SamResourceEdit[];