@kensio/yulin 1.21.3 → 1.21.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (650) hide show
  1. package/dist/service/athena/engine/sim-athena-column-types.d.ts +2 -0
  2. package/dist/service/athena/engine/sim-athena-column-types.js +4 -0
  3. package/dist/service/athena/engine/sim-athena-delimited-format.d.ts +7 -0
  4. package/dist/service/athena/engine/sim-athena-delimited-format.js +51 -0
  5. package/dist/service/athena/engine/sim-athena-engine-result.js +5 -0
  6. package/dist/service/athena/engine/sim-athena-engine-run.d.ts +22 -2
  7. package/dist/service/athena/engine/sim-athena-engine-run.js +21 -31
  8. package/dist/service/athena/engine/sim-athena-loaded-tables.d.ts +10 -0
  9. package/dist/service/athena/engine/sim-athena-loaded-tables.js +35 -0
  10. package/dist/service/athena/engine/sim-athena-parquet-module.d.ts +25 -0
  11. package/dist/service/athena/engine/sim-athena-parquet-module.js +39 -0
  12. package/dist/service/athena/engine/sim-athena-parquet-records.d.ts +13 -0
  13. package/dist/service/athena/engine/sim-athena-parquet-records.js +57 -0
  14. package/dist/service/athena/engine/sim-athena-query-engine.d.ts +23 -5
  15. package/dist/service/athena/engine/sim-athena-query-engine.js +31 -10
  16. package/dist/service/athena/engine/sim-athena-record-reader.d.ts +12 -6
  17. package/dist/service/athena/engine/sim-athena-record-reader.js +28 -53
  18. package/dist/service/athena/engine/sim-athena-sql-translation.d.ts +15 -9
  19. package/dist/service/athena/engine/sim-athena-sql-translation.js +25 -13
  20. package/dist/service/athena/engine/sim-athena-sqlite-values.d.ts +5 -0
  21. package/dist/service/athena/engine/sim-athena-sqlite-values.js +24 -1
  22. package/dist/service/athena/engine/sim-athena-table-objects.d.ts +7 -2
  23. package/dist/service/athena/engine/sim-athena-table-objects.js +8 -4
  24. package/dist/service/athena/engine/sim-athena-table-rows.js +4 -3
  25. package/dist/service/athena/engine/sim-athena-turn-down.d.ts +26 -0
  26. package/dist/service/athena/engine/sim-athena-turn-down.js +43 -0
  27. package/dist/service/athena/execution/sim-athena-query-completion.d.ts +3 -1
  28. package/dist/service/athena/execution/sim-athena-query-completion.js +7 -1
  29. package/dist/service/athena/index.d.ts +1 -1
  30. package/dist/service/athena/index.js +1 -1
  31. package/dist/service/athena/result/sim-athena-query-answer.d.ts +12 -0
  32. package/dist/service/athena/result/sim-athena-query-answer.js +26 -4
  33. package/dist/service/athena/sim-athena-answered-query.fixture.d.ts +2 -0
  34. package/dist/service/athena/sim-athena-answered-query.fixture.js +1 -0
  35. package/dist/service/athena/sim-athena-engine.fixture.d.ts +20 -0
  36. package/dist/service/athena/sim-athena-engine.fixture.js +34 -0
  37. package/dist/service/cloudformation/authorize/sim-cloudformation-authorization.d.ts +23 -0
  38. package/dist/service/cloudformation/authorize/sim-cloudformation-authorization.js +37 -0
  39. package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.d.ts +18 -13
  40. package/dist/service/cloudformation/cdk/assets/sim-cdk-assets-publisher.js +16 -24
  41. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.d.ts +2 -0
  42. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-copier.js +1 -0
  43. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.d.ts +7 -0
  44. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-file.js +13 -1
  45. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.d.ts +6 -0
  46. package/dist/service/cloudformation/cdk/s3/bucket-deployment/copy/sim-cdk-bucket-deploy-pruner.js +7 -1
  47. package/dist/service/cloudformation/cdk/s3/bucket-deployment/notify/sim-cdk-bucket-deploy-notifier.d.ts +50 -0
  48. package/dist/service/cloudformation/cdk/s3/bucket-deployment/notify/sim-cdk-bucket-deploy-notifier.js +71 -0
  49. package/dist/service/cloudformation/cdk/s3/bucket-deployment/sim-cdk-bucket-deployment.js +6 -1
  50. package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.d.ts +5 -0
  51. package/dist/service/cloudformation/cdk/s3/bucket-deployment/source/sim-cdk-bucket-deploy-source.js +7 -0
  52. package/dist/service/cloudformation/cdk/sim-cdk-cloud-assembly.factory.d.ts +12 -0
  53. package/dist/service/cloudformation/cdk/sim-cdk-cloud-assembly.factory.js +16 -7
  54. package/dist/service/cloudformation/changeset/sim-cfn-change-set-arn.d.ts +9 -0
  55. package/dist/service/cloudformation/changeset/sim-cfn-change-set-arn.js +12 -0
  56. package/dist/service/cloudformation/changeset/sim-cfn-change-set-changes.d.ts +42 -0
  57. package/dist/service/cloudformation/changeset/sim-cfn-change-set-changes.js +69 -0
  58. package/dist/service/cloudformation/changeset/sim-cfn-change-set-commands.d.ts +62 -0
  59. package/dist/service/cloudformation/changeset/sim-cfn-change-set-commands.js +89 -0
  60. package/dist/service/cloudformation/changeset/sim-cfn-change-set-execution.d.ts +31 -0
  61. package/dist/service/cloudformation/changeset/sim-cfn-change-set-execution.js +59 -0
  62. package/dist/service/cloudformation/changeset/sim-cfn-change-set-failure.d.ts +21 -0
  63. package/dist/service/cloudformation/changeset/sim-cfn-change-set-failure.js +19 -0
  64. package/dist/service/cloudformation/changeset/sim-cfn-change-set-input.d.ts +17 -0
  65. package/dist/service/cloudformation/changeset/sim-cfn-change-set-input.js +18 -0
  66. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack-id.d.ts +18 -0
  67. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack-id.js +13 -0
  68. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack.d.ts +45 -0
  69. package/dist/service/cloudformation/changeset/sim-cfn-change-set-stack.js +52 -0
  70. package/dist/service/cloudformation/changeset/sim-cfn-change-set-type.d.ts +12 -0
  71. package/dist/service/cloudformation/changeset/sim-cfn-change-set-type.js +21 -0
  72. package/dist/service/cloudformation/changeset/sim-cfn-change-set.d.ts +54 -0
  73. package/dist/service/cloudformation/changeset/sim-cfn-change-set.js +49 -0
  74. package/dist/service/cloudformation/changeset/sim-cfn-change-set.type.d.ts +35 -0
  75. package/dist/service/cloudformation/changeset/sim-cfn-change-set.type.js +1 -0
  76. package/dist/service/cloudformation/changeset/sim-cfn-change-sets.d.ts +53 -0
  77. package/dist/service/cloudformation/changeset/sim-cfn-change-sets.js +83 -0
  78. package/dist/service/cloudformation/command/create-change-set/create-change-set.command.d.ts +32 -0
  79. package/dist/service/cloudformation/command/create-change-set/create-change-set.command.js +1 -0
  80. package/dist/service/cloudformation/command/create-change-set/create-change-set.handler.d.ts +38 -0
  81. package/dist/service/cloudformation/command/create-change-set/create-change-set.handler.js +80 -0
  82. package/dist/service/cloudformation/command/create-stack/create-stack.handler.d.ts +3 -0
  83. package/dist/service/cloudformation/command/create-stack/create-stack.handler.js +16 -13
  84. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.command.d.ts +22 -0
  85. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.command.js +1 -0
  86. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.handler.d.ts +27 -0
  87. package/dist/service/cloudformation/command/delete-change-set/delete-change-set.handler.js +35 -0
  88. package/dist/service/cloudformation/command/delete-stack/delete-stack.command.d.ts +6 -0
  89. package/dist/service/cloudformation/command/delete-stack/delete-stack.handler.d.ts +11 -0
  90. package/dist/service/cloudformation/command/delete-stack/delete-stack.handler.js +15 -1
  91. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.command.d.ts +48 -0
  92. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.command.js +1 -0
  93. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.handler.d.ts +23 -0
  94. package/dist/service/cloudformation/command/describe-change-set/describe-change-set.handler.js +52 -0
  95. package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.d.ts +3 -0
  96. package/dist/service/cloudformation/command/describe-stacks/describe-stacks.handler.js +8 -4
  97. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-described-stacks.d.ts +18 -6
  98. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-described-stacks.js +22 -7
  99. package/dist/service/cloudformation/command/describe-stacks/sim-cfn-stack-describer.js +1 -1
  100. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.command.d.ts +25 -0
  101. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.command.js +1 -0
  102. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.handler.d.ts +31 -0
  103. package/dist/service/cloudformation/command/execute-change-set/execute-change-set.handler.js +37 -0
  104. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.command.d.ts +36 -0
  105. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.command.js +1 -0
  106. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.handler.d.ts +26 -0
  107. package/dist/service/cloudformation/command/list-change-sets/list-change-sets.handler.js +39 -0
  108. package/dist/service/cloudformation/command/update-stack/update-stack-previous-values.d.ts +31 -0
  109. package/dist/service/cloudformation/command/update-stack/update-stack-previous-values.js +52 -0
  110. package/dist/service/cloudformation/command/update-stack/update-stack-template.d.ts +22 -0
  111. package/dist/service/cloudformation/command/update-stack/update-stack-template.js +34 -0
  112. package/dist/service/cloudformation/command/update-stack/update-stack.command.d.ts +17 -1
  113. package/dist/service/cloudformation/command/update-stack/update-stack.handler.d.ts +6 -0
  114. package/dist/service/cloudformation/command/update-stack/update-stack.handler.js +15 -16
  115. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js +2 -1
  116. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-options-deployed.d.ts +10 -0
  117. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-options-deployed.js +14 -0
  118. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.d.ts +11 -1
  119. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-plan.js +3 -2
  120. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts +5 -8
  121. package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.js +0 -14
  122. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts +9 -0
  123. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js +2 -0
  124. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.d.ts +10 -0
  125. package/dist/service/cloudformation/deploy/sim-cfn-template-file-loader.js +2 -1
  126. package/dist/service/cloudformation/deploy/sim-cfn-template-file-updater.js +1 -0
  127. package/dist/service/cloudformation/error/sim-cloudformation.error.d.ts +21 -0
  128. package/dist/service/cloudformation/error/sim-cloudformation.error.js +25 -0
  129. package/dist/service/cloudformation/parameters/pseudo/sim-cfn-pseudo-parameters.d.ts +7 -0
  130. package/dist/service/cloudformation/parameters/pseudo/sim-cfn-pseudo-parameters.js +3 -1
  131. package/dist/service/cloudformation/parameters/sim-cfn-parameters.d.ts +9 -0
  132. package/dist/service/cloudformation/parameters/sim-cfn-parameters.js +12 -0
  133. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-delete-operation.d.ts +4 -0
  134. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-delete-operation.js +10 -0
  135. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-retention.d.ts +44 -0
  136. package/dist/service/cloudformation/resource/delete/sim-cfn-resource-retention.js +33 -0
  137. package/dist/service/cloudformation/resource/sim-cfn-resource-record.d.ts +15 -0
  138. package/dist/service/cloudformation/resource/sim-cfn-resource-record.js +21 -1
  139. package/dist/service/cloudformation/resource/sim-cfn-resource.d.ts +9 -7
  140. package/dist/service/cloudformation/resource/sim-cfn-resource.js +11 -11
  141. package/dist/service/cloudformation/resource/sim-cfn-resource.type.d.ts +8 -0
  142. package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.d.ts +3 -3
  143. package/dist/service/cloudformation/resource/state/sim-cfn-resource-deletion-state.js +3 -3
  144. package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.d.ts +4 -0
  145. package/dist/service/cloudformation/resource/template/sim-cfn-resource-template-reader.js +9 -0
  146. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.d.ts +37 -0
  147. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.js +77 -0
  148. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.d.ts +51 -0
  149. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-auth.types.js +10 -0
  150. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.d.ts +11 -0
  151. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-authorizers.js +34 -0
  152. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.d.ts +21 -0
  153. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-api-identity.js +31 -0
  154. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.d.ts +14 -0
  155. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-definition.js +1 -0
  156. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.d.ts +26 -0
  157. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-authorizer-function.js +58 -0
  158. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.d.ts +18 -0
  159. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-event-authorization.js +89 -0
  160. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.d.ts +15 -0
  161. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-api-auth.js +65 -0
  162. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.d.ts +13 -0
  163. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-jwt-authorizer.js +60 -0
  164. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.d.ts +13 -0
  165. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-http-lambda-authorizer.js +50 -0
  166. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.d.ts +13 -0
  167. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-prefixes.js +30 -0
  168. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.d.ts +26 -0
  169. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-identity-source.js +44 -0
  170. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.d.ts +15 -0
  171. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-api-auth.js +59 -0
  172. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.d.ts +11 -0
  173. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-cognito-authorizer.js +43 -0
  174. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.d.ts +15 -0
  175. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-rest-lambda-authorizer.js +67 -0
  176. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.d.ts +26 -0
  177. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-template-api-auth.js +61 -0
  178. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.d.ts +18 -0
  179. package/dist/service/cloudformation/sam/api/auth/sim-cfn-sam-unsupported-auth.js +59 -0
  180. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api-template.factory.js +1 -1
  181. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.d.ts +4 -0
  182. package/dist/service/cloudformation/sam/api/sim-cfn-sam-http-api.js +12 -5
  183. package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api-template.factory.js +1 -1
  184. package/dist/service/cloudformation/sam/api/sim-cfn-sam-rest-api.js +7 -3
  185. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-api-event.js +7 -3
  186. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.d.ts +26 -0
  187. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-cognito-event.js +88 -0
  188. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.d.ts +12 -0
  189. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-declared-event.js +1 -0
  190. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-function-events.js +8 -5
  191. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-event.js +23 -1
  192. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.d.ts +9 -2
  193. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-http-api-route.js +5 -3
  194. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.d.ts +6 -1
  195. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-implicit-http-api.js +7 -1
  196. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.d.ts +19 -0
  197. package/dist/service/cloudformation/sam/function/event/sim-cfn-sam-triggered-user-pool.js +69 -0
  198. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.d.ts +5 -0
  199. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-template.factory.js +3 -1
  200. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.d.ts +8 -0
  201. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-type.js +8 -0
  202. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function-url.js +1 -4
  203. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.d.ts +6 -4
  204. package/dist/service/cloudformation/sam/function/sim-cfn-sam-function.js +2 -4
  205. package/dist/service/cloudformation/sam/sim-cfn-sam-error.d.ts +31 -0
  206. package/dist/service/cloudformation/sam/sim-cfn-sam-error.js +17 -0
  207. package/dist/service/cloudformation/sam/sim-cfn-sam-expansion.js +11 -6
  208. package/dist/service/cloudformation/sdk/sim-cloudformation-sdk-command-router.js +20 -0
  209. package/dist/service/cloudformation/serve/sim-cloudformation-api.d.ts +4 -3
  210. package/dist/service/cloudformation/serve/sim-cloudformation-api.js +6 -3
  211. package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.d.ts +10 -0
  212. package/dist/service/cloudformation/serve/sim-cloudformation-change-set-api.js +94 -0
  213. package/dist/service/cloudformation/sim-cloudformation.d.ts +31 -0
  214. package/dist/service/cloudformation/sim-cloudformation.js +56 -9
  215. package/dist/service/cloudformation/stack/resource-map/sim-cfn-stack-resource-map.js +1 -0
  216. package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.d.ts +20 -0
  217. package/dist/service/cloudformation/stack/sim-cfn-deleted-stacks.js +23 -0
  218. package/dist/service/cloudformation/stack/sim-cfn-deployed-stack.type.d.ts +6 -0
  219. package/dist/service/cloudformation/stack/sim-cfn-stack-deploy-context.d.ts +47 -0
  220. package/dist/service/cloudformation/stack/sim-cfn-stack-deploy-context.js +46 -0
  221. package/dist/service/cloudformation/stack/sim-cfn-stack-id.d.ts +30 -0
  222. package/dist/service/cloudformation/stack/sim-cfn-stack-id.js +24 -0
  223. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.d.ts +53 -20
  224. package/dist/service/cloudformation/stack/sim-cfn-stack-resource-operations.js +79 -32
  225. package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts +28 -16
  226. package/dist/service/cloudformation/stack/sim-cfn-stack.js +60 -32
  227. package/dist/service/cloudformation/stack/sim-cfn-stack.type.d.ts +21 -1
  228. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.d.ts +7 -1
  229. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-deletion-lifecycle.js +3 -1
  230. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.d.ts +3 -0
  231. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-batch-deleter.js +3 -0
  232. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.d.ts +3 -0
  233. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-resource-deleter.js +2 -1
  234. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.d.ts +18 -0
  235. package/dist/service/cloudformation/stack/teardown/sim-cfn-stack-retained-logical-ids.js +30 -0
  236. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.d.ts +9 -0
  237. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-guard.js +14 -0
  238. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.d.ts +25 -14
  239. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-lifecycle.js +41 -24
  240. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.d.ts +9 -0
  241. package/dist/service/cloudformation/stack/update/sim-cfn-stack-update-plan.js +14 -0
  242. package/dist/service/cloudformation/stack/update/sim-cfn-stack-updater.js +6 -1
  243. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.d.ts +12 -3
  244. package/dist/service/cloudformation/template/condition/sim-cfn-condition-expression.js +29 -3
  245. package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.d.ts +28 -0
  246. package/dist/service/cloudformation/template/condition/sim-cfn-output-conditions.js +39 -0
  247. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.d.ts +25 -1
  248. package/dist/service/cloudformation/template/node/fn/find-in-map/sim-cfn-fn-find-in-map.js +43 -11
  249. package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.d.ts +7 -0
  250. package/dist/service/cloudformation/template/parse/fn/find-in-map/sim-cfn-fn-find-in-map-parser.js +29 -3
  251. package/dist/service/cloudformation/template/sim-cfn-command-template.d.ts +40 -0
  252. package/dist/service/cloudformation/template/sim-cfn-command-template.js +45 -0
  253. package/dist/service/cloudformation/template/sim-cfn-template.d.ts +7 -0
  254. package/dist/service/cloudformation/template/sim-cfn-template.js +15 -1
  255. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.d.ts +2 -0
  256. package/dist/service/cloudfront/origin/custom/sim-cf-custom-origin-request.js +49 -0
  257. package/dist/service/cloudfront/origin/custom/sim-cloudfront-custom-origin.js +1 -0
  258. package/dist/service/cloudfront/origin/s3/sim-cf-s3-origin-responses.js +1 -0
  259. package/dist/service/cognito/serve/page/sim-cognito-provider-page.js +1 -1
  260. package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.d.ts +5 -0
  261. package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.js +17 -0
  262. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.d.ts +5 -5
  263. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.js +24 -8
  264. package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.d.ts +11 -8
  265. package/dist/service/dynamodb/command/query/sim-dynamodb-query-expressions.js +20 -8
  266. package/dist/service/dynamodb/command/query/sim-dynamodb-query.js +2 -0
  267. package/dist/service/dynamodb/command/query/sim-dynamodb-unsimulated-query-input.js +0 -1
  268. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.d.ts +14 -4
  269. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.js +16 -4
  270. package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.d.ts +17 -0
  271. package/dist/service/dynamodb/command/read/sim-dynamodb-table-read.fixture.js +39 -0
  272. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.d.ts +28 -0
  273. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-expressions.js +50 -0
  274. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan.js +12 -5
  275. package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.d.ts +3 -3
  276. package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.js +3 -4
  277. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.d.ts +5 -16
  278. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter-expression.js +4 -21
  279. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.d.ts +15 -0
  280. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection-expression.js +18 -1
  281. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.d.ts +13 -0
  282. package/dist/service/dynamodb/expression/projection/sim-dynamodb-projection.js +15 -0
  283. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-properties.js +2 -0
  284. package/dist/service/lambda/cfn/event-source-mapping/sim-cfn-lambda-event-source-mapping-property-rules.js +5 -3
  285. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.d.ts +21 -0
  286. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-cors.js +37 -0
  287. package/dist/service/lambda/cfn/url/sim-cfn-lambda-url-creator.js +6 -0
  288. package/dist/service/lambda/command/create-function/create-function.handler.d.ts +3 -0
  289. package/dist/service/lambda/command/create-function/create-function.handler.js +5 -1
  290. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.command.d.ts +2 -3
  291. package/dist/service/lambda/command/create-function-url-config/create-function-url-config.handler.js +1 -0
  292. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.d.ts +6 -0
  293. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-input.js +10 -0
  294. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping-refusals.js +2 -6
  295. package/dist/service/lambda/command/event-source-mapping/create-event-source-mapping.handler.js +1 -0
  296. package/dist/service/lambda/command/function/sim-lambda-function-commands.d.ts +2 -0
  297. package/dist/service/lambda/command/function-url/function-url-cors-constraints.d.ts +25 -0
  298. package/dist/service/lambda/command/function-url/function-url-cors-constraints.js +49 -0
  299. package/dist/service/lambda/command/function-url/function-url-cors-input.d.ts +25 -0
  300. package/dist/service/lambda/command/function-url/function-url-cors-input.js +57 -0
  301. package/dist/service/lambda/command/function-url/function-url-input.d.ts +7 -0
  302. package/dist/service/lambda/command/function-url/function-url-input.js +9 -0
  303. package/dist/service/lambda/command/invoke/async/sim-lambda-async-invocation.js +10 -13
  304. package/dist/service/lambda/command/invoke/async/sim-lambda-async-outcome.js +2 -0
  305. package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.d.ts +13 -0
  306. package/dist/service/lambda/command/invoke/async/sim-lambda-handler-attempt.js +12 -0
  307. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.command.d.ts +2 -0
  308. package/dist/service/lambda/command/update-function-url-config/update-function-url-config.handler.js +1 -0
  309. package/dist/service/lambda/destination/deliver/sim-lambda-destination-bus.js +1 -1
  310. package/dist/service/lambda/destination/deliver/sim-lambda-destination-function.js +8 -12
  311. package/dist/service/lambda/destination/deliver/sim-lambda-destination-queue.js +4 -3
  312. package/dist/service/lambda/destination/deliver/sim-lambda-destination-send.d.ts +2 -0
  313. package/dist/service/lambda/destination/deliver/sim-lambda-destination-topic.js +4 -3
  314. package/dist/service/lambda/destination/sim-aws-lambda-destinations.d.ts +4 -6
  315. package/dist/service/lambda/destination/sim-aws-lambda-destinations.js +6 -6
  316. package/dist/service/lambda/destination/sim-lambda-destination-targets.d.ts +3 -0
  317. package/dist/service/lambda/event-source/poll/kinesis/sim-lambda-kinesis-stream-delivery.js +4 -9
  318. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.js +4 -9
  319. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.d.ts +22 -3
  320. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-outcome.js +39 -9
  321. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.d.ts +7 -6
  322. package/dist/service/lambda/event-source/poll/sim-lambda-stream-batch-response.js +14 -12
  323. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.d.ts +9 -15
  324. package/dist/service/lambda/event-source/poll/sim-lambda-stream-checkpoint.js +9 -16
  325. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.d.ts +10 -6
  326. package/dist/service/lambda/event-source/poll/sim-lambda-stream-progress.js +22 -12
  327. package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.d.ts +23 -0
  328. package/dist/service/lambda/event-source/poll/sim-lambda-stream-record-times.js +18 -0
  329. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.d.ts +12 -13
  330. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry-backoff.js +24 -17
  331. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.d.ts +64 -0
  332. package/dist/service/lambda/event-source/poll/sim-lambda-stream-retry.js +86 -0
  333. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.d.ts +6 -0
  334. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-arn.js +8 -1
  335. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.d.ts +6 -0
  336. package/dist/service/lambda/event-source/queue/sim-lambda-sqs-event-source-rules.js +7 -0
  337. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.d.ts +11 -1
  338. package/dist/service/lambda/event-source/sim-lambda-event-source-mapping.js +13 -0
  339. package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.d.ts +39 -0
  340. package/dist/service/lambda/event-source/sim-lambda-event-source-retry-limits.js +46 -0
  341. package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.d.ts +56 -0
  342. package/dist/service/lambda/event-source/sim-lambda-stream-retry-limits.js +110 -0
  343. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.d.ts +5 -0
  344. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-arn.js +7 -1
  345. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.d.ts +6 -0
  346. package/dist/service/lambda/event-source/stream/kinesis/sim-lambda-kinesis-event-source-rules.js +6 -0
  347. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.d.ts +6 -1
  348. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-arn.js +8 -6
  349. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.d.ts +10 -8
  350. package/dist/service/lambda/event-source/stream/sim-lambda-dynamodb-stream-event-source-rules.js +18 -1
  351. package/dist/service/lambda/function/code/sim-lambda-executable-code.d.ts +8 -2
  352. package/dist/service/lambda/function/code/sim-lambda-executable-code.js +2 -1
  353. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.d.ts +2 -11
  354. package/dist/service/lambda/function/code/sim-lambda-vm-zip-code.js +13 -39
  355. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.d.ts +7 -0
  356. package/dist/service/lambda/function/code/vm/sim-lambda-vm-context.js +13 -7
  357. package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.d.ts +23 -0
  358. package/dist/service/lambda/function/code/vm/sim-lambda-vm-handler-lookup.js +42 -0
  359. package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.d.ts +12 -4
  360. package/dist/service/lambda/function/code/vm/sim-lambda-vm-output-stream.js +15 -5
  361. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.d.ts +7 -0
  362. package/dist/service/lambda/function/invoke/sim-lambda-host-scope.js +6 -2
  363. package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.d.ts +26 -0
  364. package/dist/service/lambda/function/invoke/sim-lambda-invocation-deadline.js +84 -0
  365. package/dist/service/lambda/function/invoke/sim-lambda-invocation.d.ts +44 -0
  366. package/dist/service/lambda/function/invoke/sim-lambda-invocation.js +44 -0
  367. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.d.ts +6 -0
  368. package/dist/service/lambda/function/invoke/sim-lambda-invoke-context-builder.js +1 -2
  369. package/dist/service/lambda/function/invoke/sim-lambda-process-output.d.ts +6 -1
  370. package/dist/service/lambda/function/invoke/sim-lambda-process-output.js +19 -6
  371. package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.d.ts +15 -0
  372. package/dist/service/lambda/function/invoke/sim-lambda-timed-out.error.js +18 -0
  373. package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.d.ts +12 -0
  374. package/dist/service/lambda/function/invoke/timer/sim-lambda-clear-timer.js +28 -0
  375. package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.d.ts +46 -0
  376. package/dist/service/lambda/function/invoke/timer/sim-lambda-clock-timer.js +104 -0
  377. package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.d.ts +24 -0
  378. package/dist/service/lambda/function/invoke/timer/sim-lambda-host-timers.js +27 -0
  379. package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.d.ts +43 -0
  380. package/dist/service/lambda/function/invoke/timer/sim-lambda-invocation-timers.js +112 -0
  381. package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.d.ts +57 -0
  382. package/dist/service/lambda/function/invoke/timer/sim-lambda-process-timers.js +79 -0
  383. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.d.ts +10 -0
  384. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-delay.js +15 -0
  385. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.d.ts +11 -0
  386. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-global.js +24 -0
  387. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.d.ts +50 -0
  388. package/dist/service/lambda/function/invoke/timer/sim-lambda-timer-handle.js +43 -0
  389. package/dist/service/lambda/function/logging/sim-lambda-function-logging.d.ts +17 -0
  390. package/dist/service/lambda/function/logging/sim-lambda-function-logging.js +12 -1
  391. package/dist/service/lambda/function/logging/sim-lambda-output.d.ts +56 -0
  392. package/dist/service/lambda/function/logging/sim-lambda-output.js +62 -0
  393. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.d.ts +8 -0
  394. package/dist/service/lambda/function/outbound/sim-lambda-aws-api-outbound.js +27 -1
  395. package/dist/service/lambda/function/sim-lambda-function.d.ts +1 -1
  396. package/dist/service/lambda/function/sim-lambda-function.js +11 -9
  397. package/dist/service/lambda/function/sim-lambda-function.type.d.ts +15 -0
  398. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.d.ts +16 -0
  399. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.d.ts +22 -0
  400. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.factory.js +17 -0
  401. package/dist/service/lambda/function/url/sim-lambda-function-url-cors.js +1 -0
  402. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.d.ts +2 -0
  403. package/dist/service/lambda/function/url/sim-lambda-function-url-factory.js +2 -1
  404. package/dist/service/lambda/function/url/sim-lambda-function-url-store.d.ts +2 -0
  405. package/dist/service/lambda/function/url/sim-lambda-function-url.d.ts +16 -0
  406. package/dist/service/lambda/function/url/sim-lambda-function-url.js +16 -1
  407. package/dist/service/lambda/index.d.ts +1 -0
  408. package/dist/service/lambda/index.js +1 -0
  409. package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.d.ts +50 -0
  410. package/dist/service/lambda/serve/response/sim-lambda-url-cors-headers.js +96 -0
  411. package/dist/service/lambda/serve/sim-lambda-controller.d.ts +14 -0
  412. package/dist/service/lambda/serve/sim-lambda-controller.js +27 -0
  413. package/dist/service/lambda/sim-lambda-commands.d.ts +10 -0
  414. package/dist/service/lambda/sim-lambda-commands.js +11 -0
  415. package/dist/service/lambda/sim-lambda.d.ts +12 -0
  416. package/dist/service/lambda/sim-lambda.js +13 -0
  417. package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.d.ts +67 -0
  418. package/dist/service/s3/bucket/encryption/sim-s3-bucket-encryption.js +69 -0
  419. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.d.ts +4 -31
  420. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.js +7 -6
  421. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.d.ts +5 -0
  422. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.js +8 -4
  423. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.d.ts +1 -14
  424. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.js +16 -8
  425. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.d.ts +41 -0
  426. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-subject.js +1 -0
  427. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.d.ts +14 -0
  428. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.js +32 -2
  429. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.d.ts +33 -0
  430. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition-instant.js +48 -0
  431. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.d.ts +16 -0
  432. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-transition.js +44 -0
  433. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.d.ts +8 -0
  434. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.js +27 -0
  435. package/dist/service/s3/bucket/notification/sim-s3-notification-event.d.ts +1 -1
  436. package/dist/service/s3/bucket/notification/sim-s3-notification-event.js +5 -0
  437. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-events.js +0 -3
  438. package/dist/service/s3/bucket/sim-s3-bucket-access.d.ts +3 -0
  439. package/dist/service/s3/bucket/sim-s3-bucket-access.js +6 -2
  440. package/dist/service/s3/bucket/sim-s3-bucket-configuration.d.ts +84 -0
  441. package/dist/service/s3/bucket/sim-s3-bucket-configuration.js +115 -0
  442. package/dist/service/s3/bucket/sim-s3-bucket-maker.d.ts +31 -0
  443. package/dist/service/s3/bucket/sim-s3-bucket-maker.js +41 -0
  444. package/dist/service/s3/bucket/sim-s3-bucket-objects.d.ts +10 -0
  445. package/dist/service/s3/bucket/sim-s3-bucket-objects.js +18 -0
  446. package/dist/service/s3/bucket/sim-s3-bucket-properties.d.ts +41 -0
  447. package/dist/service/s3/bucket/sim-s3-bucket-properties.js +1 -0
  448. package/dist/service/s3/bucket/sim-s3-bucket.d.ts +11 -83
  449. package/dist/service/s3/bucket/sim-s3-bucket.js +14 -83
  450. package/dist/service/s3/bucket/sim-s3-public-read.fixture.d.ts +6 -0
  451. package/dist/service/s3/bucket/sim-s3-public-read.fixture.js +20 -6
  452. package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.d.ts +58 -0
  453. package/dist/service/s3/bucket/tagging/sim-s3-taggable-object.js +73 -0
  454. package/dist/service/s3/bucket/versioning/sim-s3-object-version.d.ts +19 -1
  455. package/dist/service/s3/bucket/versioning/sim-s3-object-version.js +20 -0
  456. package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.d.ts +21 -0
  457. package/dist/service/s3/cfn/bucket/encryption/sim-cfn-s3-bucket-encryption.js +44 -0
  458. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.js +6 -0
  459. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.d.ts +5 -4
  460. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.js +12 -5
  461. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.d.ts +21 -0
  462. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-filter.js +30 -0
  463. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js +1 -0
  464. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.d.ts +14 -1
  465. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.js +41 -16
  466. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.d.ts +3 -5
  467. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.js +7 -10
  468. package/dist/service/s3/command/authorize/sim-s3-authorize-action.d.ts +6 -1
  469. package/dist/service/s3/command/authorize/sim-s3-authorize-action.js +5 -0
  470. package/dist/service/s3/command/copy-object/copy-object-builder.d.ts +10 -1
  471. package/dist/service/s3/command/copy-object/copy-object-builder.js +17 -1
  472. package/dist/service/s3/command/copy-object/copy-object.command.d.ts +11 -1
  473. package/dist/service/s3/command/copy-object/copy-object.handler.js +2 -1
  474. package/dist/service/s3/command/create-bucket/create-bucket.handler.d.ts +2 -2
  475. package/dist/service/s3/command/create-bucket/create-bucket.handler.js +4 -12
  476. package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.command.d.ts +5 -1
  477. package/dist/service/s3/command/create-multipart-upload/create-multipart-upload.handler.js +7 -0
  478. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.d.ts +19 -0
  479. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.command.js +1 -0
  480. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.d.ts +30 -0
  481. package/dist/service/s3/command/delete-bucket-encryption/delete-bucket-encryption.handler.js +38 -0
  482. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.d.ts +23 -0
  483. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.command.js +1 -0
  484. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.d.ts +22 -0
  485. package/dist/service/s3/command/delete-object-tagging/delete-object-tagging.handler.js +42 -0
  486. package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.d.ts +29 -0
  487. package/dist/service/s3/command/encryption/sim-s3-encryption-authorizer.js +49 -0
  488. package/dist/service/s3/command/encryption/sim-s3-encryption-commands.d.ts +22 -0
  489. package/dist/service/s3/command/encryption/sim-s3-encryption-commands.js +30 -0
  490. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.d.ts +24 -0
  491. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.command.js +1 -0
  492. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.d.ts +31 -0
  493. package/dist/service/s3/command/get-bucket-encryption/get-bucket-encryption.handler.js +39 -0
  494. package/dist/service/s3/command/get-object/get-object-authorizer.d.ts +11 -8
  495. package/dist/service/s3/command/get-object/get-object-authorizer.js +26 -34
  496. package/dist/service/s3/command/get-object/get-object-loader.d.ts +7 -3
  497. package/dist/service/s3/command/get-object/get-object-loader.js +9 -4
  498. package/dist/service/s3/command/get-object/get-object.command.d.ts +2 -1
  499. package/dist/service/s3/command/get-object/get-object.handler.d.ts +4 -0
  500. package/dist/service/s3/command/get-object/get-object.handler.js +13 -7
  501. package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.d.ts +29 -0
  502. package/dist/service/s3/command/get-object-tagging/get-object-tagging.command.js +1 -0
  503. package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.d.ts +21 -0
  504. package/dist/service/s3/command/get-object-tagging/get-object-tagging.handler.js +33 -0
  505. package/dist/service/s3/command/head-object/head-object-loader.js +2 -0
  506. package/dist/service/s3/command/head-object/head-object.command.d.ts +2 -1
  507. package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-rules-validation.js +18 -0
  508. package/dist/service/s3/command/list-multipart-uploads/list-multipart-uploads.handler.js +1 -2
  509. package/dist/service/s3/command/list-object-versions/list-object-versions-summaries.js +1 -2
  510. package/dist/service/s3/command/list-objects/list-objects-page-builder.d.ts +5 -0
  511. package/dist/service/s3/command/list-objects/list-objects-page-builder.js +11 -6
  512. package/dist/service/s3/command/list-objects/list-objects.command.d.ts +5 -1
  513. package/dist/service/s3/command/list-objects/list-objects.handler.js +5 -0
  514. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.d.ts +6 -0
  515. package/dist/service/s3/command/list-objects-v2/list-objects-v2-page-builder.js +11 -5
  516. package/dist/service/s3/command/list-objects-v2/list-objects-v2.command.d.ts +5 -1
  517. package/dist/service/s3/command/list-objects-v2/list-objects-v2.handler.js +5 -0
  518. package/dist/service/s3/command/list-parts/list-parts.handler.js +3 -3
  519. package/dist/service/s3/command/multipart/sim-s3-multipart-access.js +1 -1
  520. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.d.ts +21 -0
  521. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.command.js +1 -0
  522. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.d.ts +31 -0
  523. package/dist/service/s3/command/put-bucket-encryption/put-bucket-encryption.handler.js +41 -0
  524. package/dist/service/s3/command/put-object/put-object-builder.d.ts +5 -1
  525. package/dist/service/s3/command/put-object/put-object-builder.js +10 -1
  526. package/dist/service/s3/command/put-object/put-object.command.d.ts +5 -1
  527. package/dist/service/s3/command/put-object/put-object.handler.js +2 -1
  528. package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.d.ts +37 -0
  529. package/dist/service/s3/command/put-object-tagging/put-object-tagging.command.js +1 -0
  530. package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.d.ts +22 -0
  531. package/dist/service/s3/command/put-object-tagging/put-object-tagging.handler.js +46 -0
  532. package/dist/service/s3/command/sim-s3-command.types.d.ts +6 -0
  533. package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.d.ts +61 -0
  534. package/dist/service/s3/command/tagging/sim-s3-object-tagging-access.js +49 -0
  535. package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.d.ts +30 -0
  536. package/dist/service/s3/command/tagging/sim-s3-object-tagging-authorizer.js +27 -0
  537. package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.d.ts +26 -0
  538. package/dist/service/s3/command/tagging/sim-s3-object-tagging-commands.js +34 -0
  539. package/dist/service/s3/error/sim-s3-upload.error.d.ts +41 -0
  540. package/dist/service/s3/error/sim-s3-upload.error.js +47 -0
  541. package/dist/service/s3/error/sim-s3.error.d.ts +22 -34
  542. package/dist/service/s3/error/sim-s3.error.js +26 -40
  543. package/dist/service/s3/mount/sim-s3-mount.type.d.ts +10 -0
  544. package/dist/service/s3/notification/event/sim-s3-event-records.d.ts +3 -2
  545. package/dist/service/s3/notification/event/sim-s3-event-records.js +5 -3
  546. package/dist/service/s3/notification/event/sim-s3-object-event-builder.d.ts +33 -8
  547. package/dist/service/s3/notification/event/sim-s3-object-event-builder.js +23 -9
  548. package/dist/service/s3/notification/sim-s3-object-notifier.d.ts +5 -1
  549. package/dist/service/s3/notification/sim-s3-object-notifier.js +6 -0
  550. package/dist/service/s3/object/s3-key-encoding.d.ts +12 -0
  551. package/dist/service/s3/object/s3-key-encoding.js +14 -0
  552. package/dist/service/s3/object/s3-listing-encoding.d.ts +42 -0
  553. package/dist/service/s3/object/s3-listing-encoding.js +75 -0
  554. package/dist/service/s3/object/s3-object-response-headers.d.ts +40 -0
  555. package/dist/service/s3/object/s3-object-response-headers.js +49 -2
  556. package/dist/service/s3/object/s3-object-storage-report.d.ts +19 -0
  557. package/dist/service/s3/object/s3-object-storage-report.js +18 -0
  558. package/dist/service/s3/object/s3-object-summary.d.ts +2 -10
  559. package/dist/service/s3/object/s3-object-summary.js +1 -10
  560. package/dist/service/s3/object/s3-object-tags.d.ts +61 -0
  561. package/dist/service/s3/object/s3-object-tags.js +77 -0
  562. package/dist/service/s3/object/s3-object.d.ts +49 -0
  563. package/dist/service/s3/object/s3-object.js +52 -1
  564. package/dist/service/s3/object/s3-server-side-encryption.d.ts +30 -0
  565. package/dist/service/s3/object/s3-server-side-encryption.js +42 -0
  566. package/dist/service/s3/object/s3-storage-class.d.ts +45 -0
  567. package/dist/service/s3/object/s3-storage-class.js +67 -0
  568. package/dist/service/s3/object/s3-write-metadata.d.ts +17 -3
  569. package/dist/service/s3/object/s3-write-metadata.js +43 -0
  570. package/dist/service/s3/object/s3-write-storage.d.ts +27 -0
  571. package/dist/service/s3/object/s3-write-storage.js +21 -0
  572. package/dist/service/s3/object/s3-write-tagging.d.ts +24 -0
  573. package/dist/service/s3/object/s3-write-tagging.js +19 -0
  574. package/dist/service/s3/sdk/sim-s3-sdk-bucket-routes.js +12 -0
  575. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +2 -0
  576. package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.d.ts +9 -0
  577. package/dist/service/s3/sdk/sim-s3-sdk-object-tagging-routes.js +23 -0
  578. package/dist/service/s3/serve/api/sim-s3-api-bucket-routes.js +22 -0
  579. package/dist/service/s3/serve/api/sim-s3-api-configuration-output.d.ts +4 -0
  580. package/dist/service/s3/serve/api/sim-s3-api-configuration-output.js +10 -0
  581. package/dist/service/s3/serve/api/sim-s3-api-encryption-read.d.ts +7 -0
  582. package/dist/service/s3/serve/api/sim-s3-api-encryption-read.js +30 -0
  583. package/dist/service/s3/serve/api/sim-s3-api-head-output.d.ts +4 -2
  584. package/dist/service/s3/serve/api/sim-s3-api-head-output.js +8 -2
  585. package/dist/service/s3/serve/api/sim-s3-api-input.d.ts +0 -6
  586. package/dist/service/s3/serve/api/sim-s3-api-input.js +2 -13
  587. package/dist/service/s3/serve/api/sim-s3-api-listing.d.ts +5 -0
  588. package/dist/service/s3/serve/api/sim-s3-api-listing.js +5 -0
  589. package/dist/service/s3/serve/api/sim-s3-api-object-input.d.ts +16 -0
  590. package/dist/service/s3/serve/api/sim-s3-api-object-input.js +34 -7
  591. package/dist/service/s3/serve/api/sim-s3-api-object-output.d.ts +18 -1
  592. package/dist/service/s3/serve/api/sim-s3-api-object-output.js +21 -2
  593. package/dist/service/s3/serve/api/sim-s3-api-object-routes.js +22 -1
  594. package/dist/service/s3/serve/api/sim-s3-api-output.d.ts +5 -1
  595. package/dist/service/s3/serve/api/sim-s3-api-output.js +16 -5
  596. package/dist/service/s3/serve/api/sim-s3-api-request.d.ts +6 -5
  597. package/dist/service/s3/serve/api/sim-s3-api-request.js +55 -11
  598. package/dist/service/s3/serve/api/sim-s3-api-routes.js +2 -2
  599. package/dist/service/s3/serve/api/sim-s3-api-tagging-read.d.ts +9 -0
  600. package/dist/service/s3/serve/api/sim-s3-api-tagging-read.js +14 -0
  601. package/dist/service/s3/serve/api/sim-s3-api.d.ts +7 -1
  602. package/dist/service/s3/serve/api/sim-s3-api.js +7 -1
  603. package/dist/service/s3/serve/sim-s3-rest-controller.d.ts +1 -5
  604. package/dist/service/s3/serve/sim-s3-rest-controller.js +3 -17
  605. package/dist/service/s3/serve/sim-s3-rest-object-reader.d.ts +3 -0
  606. package/dist/service/s3/serve/sim-s3-rest-object-reader.js +8 -1
  607. package/dist/service/s3/serve/sim-s3-rest-upload.d.ts +20 -0
  608. package/dist/service/s3/serve/sim-s3-rest-upload.js +30 -0
  609. package/dist/service/s3/serve/website/sim-s3-website-object-loader.js +1 -0
  610. package/dist/service/s3/serve/website/sim-s3-website-object.d.ts +2 -0
  611. package/dist/service/s3/serve/website/sim-s3-website-object.js +3 -0
  612. package/dist/service/s3/sim-s3-commands.d.ts +10 -0
  613. package/dist/service/s3/sim-s3-commands.js +13 -0
  614. package/dist/service/s3/sim-s3-operations.d.ts +11 -4
  615. package/dist/service/s3/sim-s3-operations.js +17 -4
  616. package/dist/service/s3/sim-s3-tagging-operations.d.ts +21 -0
  617. package/dist/service/s3/sim-s3-tagging-operations.js +25 -0
  618. package/dist/service/s3/sim-s3.d.ts +28 -0
  619. package/dist/service/s3/sim-s3.js +38 -0
  620. package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.d.ts +34 -0
  621. package/dist/service/s3/storage/filesystem/s3-filesystem-deleting-storage.js +34 -0
  622. package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.d.ts +9 -0
  623. package/dist/service/s3/storage/filesystem/s3-filesystem-deletion.js +24 -0
  624. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.d.ts +5 -4
  625. package/dist/service/s3/storage/filesystem/s3-filesystem-storage.js +5 -3
  626. package/dist/service/s3/upload/sim-s3-completed-upload.js +5 -1
  627. package/dist/service/s3/upload/sim-s3-multipart-upload.d.ts +18 -0
  628. package/dist/service/s3/upload/sim-s3-multipart-upload.js +8 -0
  629. package/dist/service/s3/upload/sim-s3-multipart-uploads.d.ts +6 -0
  630. package/dist/service/s3/upload/sim-s3-multipart-uploads.js +5 -0
  631. package/dist/util/background/background-clock-waits.d.ts +52 -0
  632. package/dist/util/background/background-clock-waits.js +76 -0
  633. package/dist/util/background/background-jitter.js +1 -0
  634. package/dist/util/background/background-pending-tasks.d.ts +55 -0
  635. package/dist/util/background/background-pending-tasks.js +117 -0
  636. package/dist/util/background/background-settled-tasks.d.ts +4 -1
  637. package/dist/util/background/background-settled-tasks.js +4 -1
  638. package/dist/util/background/background.d.ts +43 -0
  639. package/dist/util/background/background.js +27 -19
  640. package/dist/util/background/non-deterministic-background.d.ts +12 -0
  641. package/dist/util/background/non-deterministic-background.js +24 -20
  642. package/dist/util/clock/sim-clock-control.js +23 -2
  643. package/docs/services/apigateway/README.md +3 -1
  644. package/docs/services/athena/README.md +126 -3
  645. package/docs/services/cloudformation/README.md +831 -67
  646. package/docs/services/cognito/README.md +5 -0
  647. package/docs/services/dynamodb/README.md +86 -11
  648. package/docs/services/lambda/README.md +603 -39
  649. package/docs/services/s3/README.md +688 -57
  650. package/package.json +8 -2
@@ -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
+ ]);
@@ -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;