@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,51 @@
1
+ import type { SimCfnTemplateValue, SimCfnTemplateValueRecord } from "../../../template/value/sim-cfn-template-value.js";
2
+ /**
3
+ * The API an `Auth` block was read from, for a refusal to name it.
4
+ */
5
+ export interface SamApiAuthApi {
6
+ /** `AWS::Serverless::Api` or `AWS::Serverless::HttpApi`. */
7
+ readonly resourceType: string;
8
+ /** The logical ID the API is expanded under. */
9
+ readonly logicalId: string;
10
+ }
11
+ /**
12
+ * One authorizer an API's `Auth` block declares, as the methods and routes it
13
+ * decides need it.
14
+ */
15
+ export interface SamApiAuthorizer {
16
+ /** What a method or route naming this authorizer sets as its type. */
17
+ readonly authorizationType: string;
18
+ /**
19
+ * The logical ID of the authorizer Resource, which a method or route names
20
+ * by `Ref`. The built-in `AWS_IAM` authorizer has none: IAM itself decides,
21
+ * and there is no authorizer to point at.
22
+ */
23
+ readonly logicalId: string | undefined;
24
+ /** The scopes the authorizer asks of every method it decides. */
25
+ readonly authorizationScopes: SimCfnTemplateValue | undefined;
26
+ /** The Resources the authorizer is expanded into. */
27
+ readonly resources: Record<string, SimCfnTemplateValueRecord>;
28
+ }
29
+ /**
30
+ * The `Auth` of one API, once expanded.
31
+ *
32
+ * Both API kinds arrive here. What differs between them is how one authorizer
33
+ * becomes a Resource, and that is decided before this is built.
34
+ */
35
+ export interface SamApiAuth {
36
+ readonly api: SamApiAuthApi;
37
+ /** The authorizers, by the name `Authorizers` declared each under. */
38
+ readonly authorizers: ReadonlyMap<string, SamApiAuthorizer>;
39
+ /** The authorizer every method takes when its event names none. */
40
+ readonly defaultAuthorizer: string | undefined;
41
+ }
42
+ /**
43
+ * The name SAM reserves for the authorizer IAM itself decides, on either API
44
+ * kind.
45
+ */
46
+ export declare const samIamAuthorizerName = "AWS_IAM";
47
+ /**
48
+ * The name an event writes to open a method the API's `DefaultAuthorizer`
49
+ * would otherwise have closed.
50
+ */
51
+ export declare const samNoAuthorizerName = "NONE";
@@ -0,0 +1,10 @@
1
+ /**
2
+ * The name SAM reserves for the authorizer IAM itself decides, on either API
3
+ * kind.
4
+ */
5
+ export const samIamAuthorizerName = "AWS_IAM";
6
+ /**
7
+ * The name an event writes to open a method the API's `DefaultAuthorizer`
8
+ * would otherwise have closed.
9
+ */
10
+ export const samNoAuthorizerName = "NONE";
@@ -0,0 +1,11 @@
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
+ * The authorizers an `Auth` block declares, in the order it declares them.
5
+ */
6
+ export declare function samApiAuthorizerDefinitions(api: SamApiAuthApi, auth: SimCfnTemplateValueRecord): readonly (readonly [string, SimCfnTemplateValueRecord])[];
7
+ /**
8
+ * The `DefaultAuthorizer` an `Auth` block names, which every method it decides
9
+ * takes when its own event names none.
10
+ */
11
+ export declare function samApiDefaultAuthorizer(api: SamApiAuthApi, auth: SimCfnTemplateValueRecord): string | undefined;
@@ -0,0 +1,34 @@
1
+ import { isSamTemplateRecord } from "../../sim-cfn-sam-record.js";
2
+ import { samAuthError } from "./sim-cfn-sam-api-auth.js";
3
+ /**
4
+ * The authorizers an `Auth` block declares, in the order it declares them.
5
+ */
6
+ export function samApiAuthorizerDefinitions(api, auth) {
7
+ const declared = auth["Authorizers"];
8
+ if (declared === undefined) {
9
+ return [];
10
+ }
11
+ if (!isSamTemplateRecord(declared)) {
12
+ throw samAuthError(api, "Auth.Authorizers", "it is not a map of authorizers by name");
13
+ }
14
+ return Object.entries(declared).map(([name, definition]) => {
15
+ if (!isSamTemplateRecord(definition)) {
16
+ throw samAuthError(api, `Auth.Authorizers.${name}`, "it is not a block of authorizer settings");
17
+ }
18
+ return [name, definition];
19
+ });
20
+ }
21
+ /**
22
+ * The `DefaultAuthorizer` an `Auth` block names, which every method it decides
23
+ * takes when its own event names none.
24
+ */
25
+ export function samApiDefaultAuthorizer(api, auth) {
26
+ const declared = auth["DefaultAuthorizer"];
27
+ if (declared === undefined) {
28
+ return undefined;
29
+ }
30
+ if (typeof declared !== "string") {
31
+ throw samAuthError(api, "Auth.DefaultAuthorizer", "it is not the name of one of the API's authorizers");
32
+ }
33
+ return declared;
34
+ }
@@ -0,0 +1,21 @@
1
+ import type { SimCfnTemplateValue } from "../../../template/value/sim-cfn-template-value.js";
2
+ import type { SamApiIdentityProperties } from "./sim-cfn-sam-identity-source.js";
3
+ /**
4
+ * What an authorizer reads off a request, and how long it may reuse the answer
5
+ * it gave for it.
6
+ */
7
+ export interface SamApiIdentity {
8
+ /** The request parts the authorizer is keyed on, in declaration order. */
9
+ readonly identitySource: readonly string[];
10
+ /** The `AuthorizerResultTtlInSeconds` the authorizer is created with. */
11
+ readonly reauthorizeEvery: SimCfnTemplateValue | undefined;
12
+ }
13
+ /**
14
+ * The `Identity` block of one authorizer, as the identity source and result
15
+ * TTL an authorizer Resource is created with.
16
+ *
17
+ * An authorizer stating no `Identity` reads nothing off the request by name,
18
+ * and the Resource it becomes is left to whatever the command requires of its
19
+ * type.
20
+ */
21
+ export declare function samApiIdentity(properties: SamApiIdentityProperties): SamApiIdentity;
@@ -0,0 +1,31 @@
1
+ import { isSamTemplateRecord } from "../../sim-cfn-sam-record.js";
2
+ import { samIdentityPropertyNames } from "./sim-cfn-sam-identity-prefixes.js";
3
+ import { samIdentityError, samIdentitySource, } from "./sim-cfn-sam-identity-source.js";
4
+ import { samUnsupportedIdentity } from "./sim-cfn-sam-unsupported-auth.js";
5
+ /**
6
+ * The `Identity` block of one authorizer, as the identity source and result
7
+ * TTL an authorizer Resource is created with.
8
+ *
9
+ * An authorizer stating no `Identity` reads nothing off the request by name,
10
+ * and the Resource it becomes is left to whatever the command requires of its
11
+ * type.
12
+ */
13
+ export function samApiIdentity(properties) {
14
+ const declared = properties.authorizer["Identity"];
15
+ if (declared === undefined) {
16
+ return { identitySource: [], reauthorizeEvery: undefined };
17
+ }
18
+ if (!isSamTemplateRecord(declared)) {
19
+ throw samIdentityError(properties, "Identity", "it is not a block");
20
+ }
21
+ for (const name of Object.keys(declared)) {
22
+ if (!samIdentityPropertyNames.has(name)) {
23
+ throw samIdentityError(properties, `Identity.${name}`, samUnsupportedIdentity.get(name) ??
24
+ "it is not an Identity property this expansion knows");
25
+ }
26
+ }
27
+ return {
28
+ identitySource: samIdentitySource(properties, declared),
29
+ reauthorizeEvery: declared["ReauthorizeEvery"],
30
+ };
31
+ }
@@ -0,0 +1,14 @@
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
+ * One authorizer of an `Auth` block, as the expansion of its kind is asked
5
+ * about it.
6
+ */
7
+ export interface SamAuthorizerDefinition {
8
+ /** The API the authorizer belongs to. */
9
+ readonly api: SamApiAuthApi;
10
+ /** The name the `Authorizers` map declared it under. */
11
+ readonly name: string;
12
+ /** What the template stated for it. */
13
+ readonly definition: SimCfnTemplateValueRecord;
14
+ }
@@ -0,0 +1,26 @@
1
+ import type { SimCfnTemplateValue, SimCfnTemplateValueRecord } from "../../../template/value/sim-cfn-template-value.js";
2
+ /**
3
+ * The `AuthorizerUri` an authorizer invokes a function through.
4
+ *
5
+ * API Gateway names the function through its own service path rather than by
6
+ * ARN, and this is the wrapped form both authorizer Resource types take. The
7
+ * function ARN goes in as the template wrote it, which is a `Fn::GetAtt` on a
8
+ * function of the same template more often than not.
9
+ */
10
+ export declare function samAuthorizerUri(functionArn: SimCfnTemplateValue): SimCfnTemplateValue;
11
+ interface SamAuthorizerPermissionProperties {
12
+ /** The function the authorizer runs, as the template names it. */
13
+ readonly functionArn: SimCfnTemplateValue;
14
+ /** The logical ID of the API whose authorizers the grant covers. */
15
+ readonly apiLogicalId: string;
16
+ }
17
+ /**
18
+ * The AWS::Lambda::Permission an API invokes its authorizer function under.
19
+ *
20
+ * Without it the authorizer answers nothing and every request the authorizer
21
+ * decides is refused. The source ARN wildcards the authorizers of the one API,
22
+ * because the authorizer's own id is only known once it is created, and a
23
+ * grant naming it would have to be deployed after the thing that needs it.
24
+ */
25
+ export declare function samAuthorizerPermissionResource(properties: SamAuthorizerPermissionProperties): SimCfnTemplateValueRecord;
26
+ export {};
@@ -0,0 +1,58 @@
1
+ /**
2
+ * The `AuthorizerUri` an authorizer invokes a function through.
3
+ *
4
+ * API Gateway names the function through its own service path rather than by
5
+ * ARN, and this is the wrapped form both authorizer Resource types take. The
6
+ * function ARN goes in as the template wrote it, which is a `Fn::GetAtt` on a
7
+ * function of the same template more often than not.
8
+ */
9
+ export function samAuthorizerUri(functionArn) {
10
+ return {
11
+ "Fn::Join": [
12
+ "",
13
+ [
14
+ "arn:",
15
+ { Ref: "AWS::Partition" },
16
+ ":apigateway:",
17
+ { Ref: "AWS::Region" },
18
+ ":lambda:path/2015-03-31/functions/",
19
+ functionArn,
20
+ "/invocations",
21
+ ],
22
+ ],
23
+ };
24
+ }
25
+ /**
26
+ * The AWS::Lambda::Permission an API invokes its authorizer function under.
27
+ *
28
+ * Without it the authorizer answers nothing and every request the authorizer
29
+ * decides is refused. The source ARN wildcards the authorizers of the one API,
30
+ * because the authorizer's own id is only known once it is created, and a
31
+ * grant naming it would have to be deployed after the thing that needs it.
32
+ */
33
+ export function samAuthorizerPermissionResource(properties) {
34
+ return {
35
+ Type: "AWS::Lambda::Permission",
36
+ Properties: {
37
+ Action: "lambda:InvokeFunction",
38
+ FunctionName: properties.functionArn,
39
+ Principal: "apigateway.amazonaws.com",
40
+ SourceArn: {
41
+ "Fn::Join": [
42
+ "",
43
+ [
44
+ "arn:",
45
+ { Ref: "AWS::Partition" },
46
+ ":execute-api:",
47
+ { Ref: "AWS::Region" },
48
+ ":",
49
+ { Ref: "AWS::AccountId" },
50
+ ":",
51
+ { Ref: properties.apiLogicalId },
52
+ "/authorizers/*",
53
+ ],
54
+ ],
55
+ },
56
+ },
57
+ };
58
+ }
@@ -0,0 +1,18 @@
1
+ import type { SimCfnTemplateValueRecord } from "../../../template/value/sim-cfn-template-value.js";
2
+ import type { SamFunctionEvent } from "../../function/event/sim-cfn-sam-declared-event.js";
3
+ /**
4
+ * How the method or route one event expands into is authorized.
5
+ *
6
+ * The event names one of the API's authorizers, or takes the API's
7
+ * `DefaultAuthorizer` when it names none. `Authorizer: NONE` opens a method the
8
+ * default would otherwise have closed, which is the only way SAM has of
9
+ * leaving one path of a protected API open.
10
+ *
11
+ * An event naming an authorizer the API does not declare is refused. The
12
+ * alternative is a method deployed open under a name that reads as closed.
13
+ *
14
+ * The API is named by logical ID, and an event naming its API with an
15
+ * intrinsic this cannot read names no `Auth` block either. Its method carries
16
+ * whatever the event states for itself, which is nothing more often than not.
17
+ */
18
+ export declare function samEventAuthorization(event: SamFunctionEvent, apiLogicalId: string | undefined): SimCfnTemplateValueRecord;
@@ -0,0 +1,89 @@
1
+ import { samFunctionType } from "../../function/sim-cfn-sam-function-type.js";
2
+ import { samPropertyError } from "../../sim-cfn-sam-error.js";
3
+ import { isSamTemplateRecord } from "../../sim-cfn-sam-record.js";
4
+ import { samNoAuthorizerName } from "./sim-cfn-sam-api-auth.types.js";
5
+ import { samUnsupportedEventAuth } from "./sim-cfn-sam-unsupported-auth.js";
6
+ /**
7
+ * The `Auth` properties an event may state. Everything else SAM has there is
8
+ * refused by name.
9
+ */
10
+ const supportedProperties = new Set(["Authorizer", "AuthorizationScopes"]);
11
+ /**
12
+ * How the method or route one event expands into is authorized.
13
+ *
14
+ * The event names one of the API's authorizers, or takes the API's
15
+ * `DefaultAuthorizer` when it names none. `Authorizer: NONE` opens a method the
16
+ * default would otherwise have closed, which is the only way SAM has of
17
+ * leaving one path of a protected API open.
18
+ *
19
+ * An event naming an authorizer the API does not declare is refused. The
20
+ * alternative is a method deployed open under a name that reads as closed.
21
+ *
22
+ * The API is named by logical ID, and an event naming its API with an
23
+ * intrinsic this cannot read names no `Auth` block either. Its method carries
24
+ * whatever the event states for itself, which is nothing more often than not.
25
+ */
26
+ export function samEventAuthorization(event, apiLogicalId) {
27
+ const apiAuth = apiLogicalId === undefined ? undefined : event.apiAuth.get(apiLogicalId);
28
+ const auth = eventAuthBlock(event);
29
+ const name = auth["Authorizer"] ?? apiAuth?.defaultAuthorizer;
30
+ if (name === undefined || name === samNoAuthorizerName) {
31
+ return { AuthorizationType: "NONE" };
32
+ }
33
+ const authorizer = namedAuthorizer(event, apiAuth, name);
34
+ const scopes = auth["AuthorizationScopes"] ?? authorizer.authorizationScopes;
35
+ return {
36
+ AuthorizationType: authorizer.authorizationType,
37
+ ...(authorizer.logicalId !== undefined && {
38
+ AuthorizerId: { Ref: authorizer.logicalId },
39
+ }),
40
+ ...(scopes !== undefined && { AuthorizationScopes: scopes }),
41
+ };
42
+ }
43
+ /**
44
+ * The `Auth` block the event declares, refusing every property this expansion
45
+ * cannot model.
46
+ */
47
+ function eventAuthBlock(event) {
48
+ const declared = event.properties["Auth"];
49
+ if (declared === undefined) {
50
+ return {};
51
+ }
52
+ if (!isSamTemplateRecord(declared)) {
53
+ throw eventAuthError(event, "Auth", "it is not a block of settings");
54
+ }
55
+ for (const name of Object.keys(declared)) {
56
+ if (!supportedProperties.has(name)) {
57
+ throw eventAuthError(event, `Auth.${name}`, samUnsupportedEventAuth.get(name) ??
58
+ "it is not an event Auth property this expansion knows");
59
+ }
60
+ }
61
+ return declared;
62
+ }
63
+ /**
64
+ * The authorizer the event named, refusing a name the API has no authorizer
65
+ * for.
66
+ */
67
+ function namedAuthorizer(event, apiAuth, name) {
68
+ if (typeof name !== "string") {
69
+ throw eventAuthError(event, "Auth.Authorizer", "it is not the name of one of the API's authorizers");
70
+ }
71
+ if (apiAuth === undefined) {
72
+ throw eventAuthError(event, "Auth.Authorizer", `${name} names an authorizer of an API whose Auth block is out of ` +
73
+ "reach. An event reaches one by naming a SAM API of this template, " +
74
+ "as the logical ID or as a `Ref` to it");
75
+ }
76
+ const authorizer = apiAuth.authorizers.get(name);
77
+ if (authorizer === undefined) {
78
+ throw eventAuthError(event, "Auth.Authorizer", `${name} is not an authorizer the API's Auth block declares`);
79
+ }
80
+ return authorizer;
81
+ }
82
+ function eventAuthError(event, property, reason) {
83
+ return samPropertyError({
84
+ resourceType: samFunctionType,
85
+ logicalId: event.functionLogicalId,
86
+ property: `Events.${event.eventName}.${property}`,
87
+ reason,
88
+ });
89
+ }
@@ -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::HttpApi, as the authorizer Resources it
5
+ * declares and the default every route takes.
6
+ *
7
+ * SAM writes these into the OpenAPI document it generates. They are written as
8
+ * `AWS::ApiGatewayV2::Authorizer` Resources here, the way the routes beside
9
+ * them are written as Resources.
10
+ *
11
+ * `AWS_IAM` is an authorizer of an HTTP API only once `EnableIamAuthorizer`
12
+ * asks for it, which is the rule real SAM applies. A REST API has it either
13
+ * way.
14
+ */
15
+ export declare function samHttpApiAuth(logicalId: string, apiProperties: SimCfnTemplateValueRecord): SamApiAuth;
@@ -0,0 +1,65 @@
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 { samHttpJwtAuthorizer } from "./sim-cfn-sam-http-jwt-authorizer.js";
5
+ import { samHttpLambdaAuthorizer } from "./sim-cfn-sam-http-lambda-authorizer.js";
6
+ /**
7
+ * The SAM Resource type an HTTP API `Auth` block is declared on.
8
+ */
9
+ const resourceType = "AWS::Serverless::HttpApi";
10
+ /**
11
+ * The `Auth` properties this expansion reads on an HTTP API. Everything else
12
+ * SAM has there is refused by name.
13
+ */
14
+ const supportedProperties = new Set([
15
+ "Authorizers",
16
+ "DefaultAuthorizer",
17
+ "EnableIamAuthorizer",
18
+ ]);
19
+ /**
20
+ * The `Auth` of one AWS::Serverless::HttpApi, as the authorizer Resources it
21
+ * declares and the default every route takes.
22
+ *
23
+ * SAM writes these into the OpenAPI document it generates. They are written as
24
+ * `AWS::ApiGatewayV2::Authorizer` Resources here, the way the routes beside
25
+ * them are written as Resources.
26
+ *
27
+ * `AWS_IAM` is an authorizer of an HTTP API only once `EnableIamAuthorizer`
28
+ * asks for it, which is the rule real SAM applies. A REST API has it either
29
+ * way.
30
+ */
31
+ export function samHttpApiAuth(logicalId, apiProperties) {
32
+ const api = { resourceType, logicalId };
33
+ const auth = samApiAuthBlock(api, apiProperties, supportedProperties);
34
+ const iam = auth["EnableIamAuthorizer"] === true
35
+ ? [[samIamAuthorizerName, samIamAuthorizer()]]
36
+ : [];
37
+ return {
38
+ api,
39
+ authorizers: new Map([
40
+ ...iam,
41
+ ...samApiAuthorizerDefinitions(api, auth).map(([name, definition]) => [name, httpAuthorizer({ api, name, definition })]),
42
+ ]),
43
+ defaultAuthorizer: samApiDefaultAuthorizer(api, auth),
44
+ };
45
+ }
46
+ /**
47
+ * One authorizer of an HTTP API, as the Resource it becomes and what a route
48
+ * naming it carries.
49
+ *
50
+ * An authorizer naming a `JwtConfiguration` verifies tokens itself, and one
51
+ * naming a `FunctionArn` asks a function of the template. An authorizer naming
52
+ * neither is refused rather than deployed as something it did not ask to be.
53
+ */
54
+ function httpAuthorizer(authorizer) {
55
+ const jwtConfiguration = authorizer.definition["JwtConfiguration"];
56
+ if (jwtConfiguration !== undefined) {
57
+ return samHttpJwtAuthorizer(authorizer, jwtConfiguration);
58
+ }
59
+ const functionArn = authorizer.definition["FunctionArn"];
60
+ if (functionArn !== undefined) {
61
+ return samHttpLambdaAuthorizer(authorizer, functionArn);
62
+ }
63
+ throw samAuthError(authorizer.api, `Auth.Authorizers.${authorizer.name}`, "it names neither a JwtConfiguration nor a FunctionArn, so there is no " +
64
+ "telling what would decide a request");
65
+ }
@@ -0,0 +1,13 @@
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
+ * An HTTP API JWT authorizer, which verifies the token a request carries
6
+ * against the issuer it names.
7
+ *
8
+ * SAM writes the issuer and audience the way the OpenAPI document does, in
9
+ * lower case, where the Resource takes them capitalised. Both spellings are
10
+ * read, since a template written against the CloudFormation shape is the one
11
+ * more likely to be pasted in from elsewhere.
12
+ */
13
+ export declare function samHttpJwtAuthorizer(authorizer: SamAuthorizerDefinition, jwtConfiguration: SimCfnTemplateValue): SamApiAuthorizer;
@@ -0,0 +1,60 @@
1
+ import { isSamTemplateRecord } from "../../sim-cfn-sam-record.js";
2
+ import { samAuthError, samAuthorizerLogicalId, } from "./sim-cfn-sam-api-auth.js";
3
+ /**
4
+ * An HTTP API JWT authorizer, which verifies the token a request carries
5
+ * against the issuer it names.
6
+ *
7
+ * SAM writes the issuer and audience the way the OpenAPI document does, in
8
+ * lower case, where the Resource takes them capitalised. Both spellings are
9
+ * read, since a template written against the CloudFormation shape is the one
10
+ * more likely to be pasted in from elsewhere.
11
+ */
12
+ export function samHttpJwtAuthorizer(authorizer, jwtConfiguration) {
13
+ const { api, name, definition } = authorizer;
14
+ if (!isSamTemplateRecord(jwtConfiguration)) {
15
+ throw samAuthError(api, `Auth.Authorizers.${name}.JwtConfiguration`, "it is not a block naming an issuer and an audience");
16
+ }
17
+ const logicalId = samAuthorizerLogicalId(api, name);
18
+ return {
19
+ authorizationType: "JWT",
20
+ logicalId,
21
+ authorizationScopes: definition["AuthorizationScopes"],
22
+ resources: {
23
+ [logicalId]: {
24
+ Type: "AWS::ApiGatewayV2::Authorizer",
25
+ Properties: {
26
+ ApiId: { Ref: api.logicalId },
27
+ Name: name,
28
+ AuthorizerType: "JWT",
29
+ IdentitySource: identitySource(definition),
30
+ JwtConfiguration: jwtProperties(jwtConfiguration),
31
+ },
32
+ },
33
+ },
34
+ };
35
+ }
36
+ /**
37
+ * The issuer and audience the authorizer Resource is created with.
38
+ *
39
+ * A key naming nothing is left out rather than written as nothing, so what the
40
+ * Resource is refused for is the key the template left out.
41
+ */
42
+ function jwtProperties(jwtConfiguration) {
43
+ const issuer = jwtConfiguration["Issuer"] ?? jwtConfiguration["issuer"];
44
+ const audience = jwtConfiguration["Audience"] ?? jwtConfiguration["audience"];
45
+ return {
46
+ ...(issuer !== undefined && { Issuer: issuer }),
47
+ ...(audience !== undefined && { Audience: audience }),
48
+ };
49
+ }
50
+ /**
51
+ * Where the authorizer reads the token from, which an HTTP API states as a
52
+ * list even where SAM states one string.
53
+ */
54
+ function identitySource(definition) {
55
+ const declared = definition["IdentitySource"];
56
+ if (declared === undefined) {
57
+ return ["$request.header.Authorization"];
58
+ }
59
+ return Array.isArray(declared) ? declared : [declared];
60
+ }
@@ -0,0 +1,13 @@
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
+ * An HTTP API Lambda authorizer, which asks a function of the template what to
6
+ * do with the request.
7
+ *
8
+ * `AuthorizerPayloadFormatVersion` is required by SAM and goes on as it came,
9
+ * so a version the simulation does not run is refused by CreateAuthorizer
10
+ * naming it rather than here. An authorizer stating none gets `2.0`, the
11
+ * format the rest of this expansion integrates a function under.
12
+ */
13
+ export declare function samHttpLambdaAuthorizer(authorizer: SamAuthorizerDefinition, functionArn: SimCfnTemplateValue): SamApiAuthorizer;
@@ -0,0 +1,50 @@
1
+ import { 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 { samHttpIdentityPrefixes } from "./sim-cfn-sam-identity-prefixes.js";
5
+ /**
6
+ * An HTTP API Lambda authorizer, which asks a function of the template what to
7
+ * do with the request.
8
+ *
9
+ * `AuthorizerPayloadFormatVersion` is required by SAM and goes on as it came,
10
+ * so a version the simulation does not run is refused by CreateAuthorizer
11
+ * naming it rather than here. An authorizer stating none gets `2.0`, the
12
+ * format the rest of this expansion integrates a function under.
13
+ */
14
+ export function samHttpLambdaAuthorizer(authorizer, functionArn) {
15
+ const { api, name, definition } = authorizer;
16
+ const identity = samApiIdentity({
17
+ api,
18
+ authorizerName: name,
19
+ authorizer: definition,
20
+ prefixes: samHttpIdentityPrefixes,
21
+ });
22
+ const logicalId = samAuthorizerLogicalId(api, name);
23
+ const simpleResponses = definition["EnableSimpleResponses"];
24
+ return {
25
+ authorizationType: "CUSTOM",
26
+ logicalId,
27
+ authorizationScopes: undefined,
28
+ resources: {
29
+ [logicalId]: {
30
+ Type: "AWS::ApiGatewayV2::Authorizer",
31
+ Properties: {
32
+ ApiId: { Ref: api.logicalId },
33
+ Name: name,
34
+ AuthorizerType: "REQUEST",
35
+ AuthorizerUri: samAuthorizerUri(functionArn),
36
+ IdentitySource: [...identity.identitySource],
37
+ AuthorizerPayloadFormatVersion: definition["AuthorizerPayloadFormatVersion"] ?? "2.0",
38
+ ...(simpleResponses !== undefined && {
39
+ EnableSimpleResponses: simpleResponses,
40
+ }),
41
+ ...samAuthorizerResultTtl(identity.reauthorizeEvery),
42
+ },
43
+ },
44
+ [`${logicalId}Permission`]: samAuthorizerPermissionResource({
45
+ functionArn,
46
+ apiLogicalId: api.logicalId,
47
+ }),
48
+ },
49
+ };
50
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * How a REST API names the parts of a request an authorizer reads.
3
+ */
4
+ export declare const samRestIdentityPrefixes: ReadonlyMap<string, string>;
5
+ /**
6
+ * How an HTTP API names the same parts.
7
+ */
8
+ export declare const samHttpIdentityPrefixes: ReadonlyMap<string, string>;
9
+ /**
10
+ * The `Identity` properties this expansion reads. `Header` is the singular a
11
+ * Cognito or `TOKEN` authorizer states, and reads as a `Headers` of one.
12
+ */
13
+ export declare const samIdentityPropertyNames: Set<string>;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * How a REST API names the parts of a request an authorizer reads.
3
+ */
4
+ export const samRestIdentityPrefixes = new Map([
5
+ ["Headers", "method.request.header."],
6
+ ["QueryStrings", "method.request.querystring."],
7
+ ["StageVariables", "stageVariables."],
8
+ ["Context", "context."],
9
+ ]);
10
+ /**
11
+ * How an HTTP API names the same parts.
12
+ */
13
+ export const samHttpIdentityPrefixes = new Map([
14
+ ["Headers", "$request.header."],
15
+ ["QueryStrings", "$request.querystring."],
16
+ ["StageVariables", "$stageVariables."],
17
+ ["Context", "$context."],
18
+ ]);
19
+ /**
20
+ * The `Identity` properties this expansion reads. `Header` is the singular a
21
+ * Cognito or `TOKEN` authorizer states, and reads as a `Headers` of one.
22
+ */
23
+ export const samIdentityPropertyNames = new Set([
24
+ "Header",
25
+ "Headers",
26
+ "QueryStrings",
27
+ "StageVariables",
28
+ "Context",
29
+ "ReauthorizeEvery",
30
+ ]);