@kensio/yulin 1.21.0 → 1.21.2

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 (529) hide show
  1. package/README.md +1 -0
  2. package/dist/sdk/router/resolve-sim-sdk-command-router.js +4 -0
  3. package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +3 -0
  4. package/dist/service/aws/factory/sim-aws-lambda-collaborators.d.ts +2 -0
  5. package/dist/service/aws/factory/sim-aws-lambda-collaborators.js +3 -0
  6. package/dist/service/aws/factory/sim-aws-logs-collaborators.d.ts +7 -0
  7. package/dist/service/aws/factory/sim-aws-logs-collaborators.js +10 -0
  8. package/dist/service/aws/factory/sim-aws-self-contained-service-builder.d.ts +3 -0
  9. package/dist/service/aws/factory/sim-aws-self-contained-service-builder.js +5 -0
  10. package/dist/service/aws/factory/sim-aws-service-factory.d.ts +3 -0
  11. package/dist/service/aws/factory/sim-aws-service-factory.js +4 -0
  12. package/dist/service/aws/sim-aws-account-region-scope.d.ts +3 -0
  13. package/dist/service/aws/sim-aws-account-region-scope.js +4 -0
  14. package/dist/service/aws/sim-aws-account.d.ts +3 -0
  15. package/dist/service/aws/sim-aws-account.js +4 -0
  16. package/dist/service/aws/sim-aws-region.d.ts +3 -0
  17. package/dist/service/aws/sim-aws-region.js +4 -0
  18. package/dist/service/aws/sim-aws-service-accessors.d.ts +3 -0
  19. package/dist/service/aws/sim-aws-service-accessors.js +4 -0
  20. package/dist/service/backup/cfn/sim-backup-cfn-plan-creator.d.ts +6 -0
  21. package/dist/service/backup/cfn/sim-backup-cfn-plan-creator.js +12 -0
  22. package/dist/service/backup/cfn/sim-backup-cfn-resource-deleter.d.ts +12 -0
  23. package/dist/service/backup/cfn/sim-backup-cfn-resource-deleter.js +31 -0
  24. package/dist/service/backup/cfn/sim-backup-cfn-resource-factory.d.ts +15 -0
  25. package/dist/service/backup/cfn/sim-backup-cfn-resource-factory.js +38 -0
  26. package/dist/service/backup/cfn/sim-backup-cfn-selection-creator.d.ts +6 -0
  27. package/dist/service/backup/cfn/sim-backup-cfn-selection-creator.js +17 -0
  28. package/dist/service/backup/cfn/sim-backup-cfn-vault-creator.d.ts +6 -0
  29. package/dist/service/backup/cfn/sim-backup-cfn-vault-creator.js +29 -0
  30. package/dist/service/backup/cfn/sim-cfn-backup-plan-properties.d.ts +11 -0
  31. package/dist/service/backup/cfn/sim-cfn-backup-plan-properties.js +37 -0
  32. package/dist/service/backup/cfn/sim-cfn-backup-properties.d.ts +12 -0
  33. package/dist/service/backup/cfn/sim-cfn-backup-properties.js +37 -0
  34. package/dist/service/backup/cfn/sim-cfn-backup-property-reader.d.ts +17 -0
  35. package/dist/service/backup/cfn/sim-cfn-backup-property-reader.js +62 -0
  36. package/dist/service/backup/cfn/sim-cfn-backup-resource-error.d.ts +7 -0
  37. package/dist/service/backup/cfn/sim-cfn-backup-resource-error.js +22 -0
  38. package/dist/service/backup/command/sim-backup-authorizer.d.ts +11 -0
  39. package/dist/service/backup/command/sim-backup-authorizer.js +24 -0
  40. package/dist/service/backup/command/sim-backup-command.types.d.ts +238 -0
  41. package/dist/service/backup/command/sim-backup-command.types.js +1 -0
  42. package/dist/service/backup/command/sim-backup-configuration-commands.d.ts +32 -0
  43. package/dist/service/backup/command/sim-backup-configuration-commands.js +138 -0
  44. package/dist/service/backup/command/sim-backup-job-commands.d.ts +23 -0
  45. package/dist/service/backup/command/sim-backup-job-commands.js +52 -0
  46. package/dist/service/backup/command/sim-backup-recovery-point-commands.d.ts +18 -0
  47. package/dist/service/backup/command/sim-backup-recovery-point-commands.js +38 -0
  48. package/dist/service/backup/command/sim-backup-request-options.d.ts +4 -0
  49. package/dist/service/backup/command/sim-backup-request-options.js +1 -0
  50. package/dist/service/backup/command/sim-backup-required-string.d.ts +2 -0
  51. package/dist/service/backup/command/sim-backup-required-string.js +8 -0
  52. package/dist/service/backup/error/sim-backup.error.d.ts +38 -0
  53. package/dist/service/backup/error/sim-backup.error.js +50 -0
  54. package/dist/service/backup/index.d.ts +9 -0
  55. package/dist/service/backup/index.js +7 -0
  56. package/dist/service/backup/job/sim-backup-job-input.d.ts +11 -0
  57. package/dist/service/backup/job/sim-backup-job-input.js +1 -0
  58. package/dist/service/backup/job/sim-backup-job-page.d.ts +22 -0
  59. package/dist/service/backup/job/sim-backup-job-page.js +54 -0
  60. package/dist/service/backup/job/sim-backup-job.d.ts +25 -0
  61. package/dist/service/backup/job/sim-backup-job.factory.d.ts +10 -0
  62. package/dist/service/backup/job/sim-backup-job.factory.js +24 -0
  63. package/dist/service/backup/job/sim-backup-job.js +54 -0
  64. package/dist/service/backup/job/sim-backup-jobs.d.ts +18 -0
  65. package/dist/service/backup/job/sim-backup-jobs.js +33 -0
  66. package/dist/service/backup/plan/sim-backup-plan-schedules.d.ts +21 -0
  67. package/dist/service/backup/plan/sim-backup-plan-schedules.js +66 -0
  68. package/dist/service/backup/plan/sim-backup-plan.d.ts +22 -0
  69. package/dist/service/backup/plan/sim-backup-plan.js +37 -0
  70. package/dist/service/backup/plan/sim-backup-rule.d.ts +9 -0
  71. package/dist/service/backup/plan/sim-backup-rule.js +71 -0
  72. package/dist/service/backup/recovery-point/sim-backup-recovery-point.d.ts +28 -0
  73. package/dist/service/backup/recovery-point/sim-backup-recovery-point.factory.d.ts +9 -0
  74. package/dist/service/backup/recovery-point/sim-backup-recovery-point.factory.js +23 -0
  75. package/dist/service/backup/recovery-point/sim-backup-recovery-point.js +62 -0
  76. package/dist/service/backup/sdk/sim-backup-sdk-command-router.d.ts +9 -0
  77. package/dist/service/backup/sdk/sim-backup-sdk-command-router.js +37 -0
  78. package/dist/service/backup/selection/sim-backup-selection.d.ts +22 -0
  79. package/dist/service/backup/selection/sim-backup-selection.js +43 -0
  80. package/dist/service/backup/sim-backup-arn.d.ts +7 -0
  81. package/dist/service/backup/sim-backup-arn.js +12 -0
  82. package/dist/service/backup/sim-backup-properties.d.ts +8 -0
  83. package/dist/service/backup/sim-backup-properties.js +1 -0
  84. package/dist/service/backup/sim-backup-resource-resolver.d.ts +24 -0
  85. package/dist/service/backup/sim-backup-resource-resolver.js +44 -0
  86. package/dist/service/backup/sim-backup-store.d.ts +29 -0
  87. package/dist/service/backup/sim-backup-store.js +80 -0
  88. package/dist/service/backup/sim-backup.d.ts +48 -0
  89. package/dist/service/backup/sim-backup.js +139 -0
  90. package/dist/service/backup/vault/sim-backup-vault-description.d.ts +12 -0
  91. package/dist/service/backup/vault/sim-backup-vault-description.js +15 -0
  92. package/dist/service/backup/vault/sim-backup-vault-lock-configuration.d.ts +5 -0
  93. package/dist/service/backup/vault/sim-backup-vault-lock-configuration.js +31 -0
  94. package/dist/service/backup/vault/sim-backup-vault-lock.d.ts +15 -0
  95. package/dist/service/backup/vault/sim-backup-vault-lock.js +23 -0
  96. package/dist/service/backup/vault/sim-backup-vault-recovery-points.d.ts +12 -0
  97. package/dist/service/backup/vault/sim-backup-vault-recovery-points.js +30 -0
  98. package/dist/service/backup/vault/sim-backup-vault-retention.d.ts +4 -0
  99. package/dist/service/backup/vault/sim-backup-vault-retention.js +20 -0
  100. package/dist/service/backup/vault/sim-backup-vault.d.ts +33 -0
  101. package/dist/service/backup/vault/sim-backup-vault.js +49 -0
  102. package/dist/service/cloudformation/resource/cfn/backup/sim-backup-cfn-value-adapter.d.ts +3 -0
  103. package/dist/service/cloudformation/resource/cfn/backup/sim-backup-cfn-value-adapter.js +66 -0
  104. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-cfn-value-adapter.js +6 -0
  105. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-metric-filter-cfn.d.ts +23 -0
  106. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-metric-filter-cfn.js +22 -0
  107. package/dist/service/cloudformation/resource/cfn/sim-cfn-service-value-adapters.js +2 -0
  108. package/dist/service/cloudformation/resource/ignore/sim-cfn-skipped-properties.d.ts +49 -0
  109. package/dist/service/cloudformation/resource/ignore/sim-cfn-skipped-properties.js +61 -0
  110. package/dist/service/cloudformation/resource/ignore/sim-cfn-skipped-property.type.d.ts +51 -0
  111. package/dist/service/cloudformation/resource/ignore/sim-cfn-skipped-property.type.js +1 -0
  112. package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-factories.js +4 -0
  113. package/dist/service/cloudwatch/index.d.ts +1 -0
  114. package/dist/service/cloudwatch/index.js +1 -0
  115. package/dist/service/cloudwatch/sim-cloudwatch-commands.d.ts +2 -0
  116. package/dist/service/cloudwatch/sim-cloudwatch-commands.js +6 -0
  117. package/dist/service/cloudwatch/sim-cloudwatch.d.ts +9 -0
  118. package/dist/service/cloudwatch/sim-cloudwatch.js +10 -0
  119. package/dist/service/cloudwatch/write/sim-cloudwatch-service-writer.d.ts +58 -0
  120. package/dist/service/cloudwatch/write/sim-cloudwatch-service-writer.js +53 -0
  121. package/dist/service/cognito/command/auth/sim-cognito-admin-respond-to-challenge.d.ts +3 -0
  122. package/dist/service/cognito/command/auth/sim-cognito-admin-respond-to-challenge.js +8 -2
  123. package/dist/service/cognito/command/auth/sim-cognito-auth-commands.d.ts +3 -0
  124. package/dist/service/cognito/command/auth/sim-cognito-auth-commands.js +4 -0
  125. package/dist/service/cognito/command/auth/sim-cognito-auth-flow-runner.d.ts +11 -1
  126. package/dist/service/cognito/command/auth/sim-cognito-auth-flow-runner.js +13 -1
  127. package/dist/service/cognito/command/auth/sim-cognito-auth-resolver.d.ts +3 -0
  128. package/dist/service/cognito/command/auth/sim-cognito-auth-resolver.js +16 -4
  129. package/dist/service/cognito/command/auth/sim-cognito-get-tokens-from-refresh-token.d.ts +7 -0
  130. package/dist/service/cognito/command/auth/sim-cognito-get-tokens-from-refresh-token.js +11 -1
  131. package/dist/service/cognito/command/auth/sim-cognito-respond-to-challenge.d.ts +3 -0
  132. package/dist/service/cognito/command/auth/sim-cognito-respond-to-challenge.js +8 -2
  133. package/dist/service/cognito/command/hosted/hosted-auth.command.d.ts +19 -0
  134. package/dist/service/cognito/command/hosted/sim-cognito-authorize-endpoint.d.ts +1 -1
  135. package/dist/service/cognito/command/hosted/sim-cognito-authorize-endpoint.js +3 -2
  136. package/dist/service/cognito/command/hosted/sim-cognito-hosted-commands.d.ts +8 -0
  137. package/dist/service/cognito/command/hosted/sim-cognito-hosted-commands.js +11 -3
  138. package/dist/service/cognito/command/hosted/sim-cognito-hosted-passkey-sign-in.d.ts +11 -1
  139. package/dist/service/cognito/command/hosted/sim-cognito-hosted-passkey-sign-in.js +13 -2
  140. package/dist/service/cognito/command/hosted/sim-cognito-hosted-password-sign-in.d.ts +11 -1
  141. package/dist/service/cognito/command/hosted/sim-cognito-hosted-password-sign-in.js +11 -1
  142. package/dist/service/cognito/command/hosted/sim-cognito-hosted-sign-in.d.ts +7 -1
  143. package/dist/service/cognito/command/hosted/sim-cognito-hosted-sign-in.js +18 -7
  144. package/dist/service/cognito/command/hosted/sim-cognito-hosted-signed-in.d.ts +20 -3
  145. package/dist/service/cognito/command/hosted/sim-cognito-hosted-signed-in.js +19 -3
  146. package/dist/service/cognito/command/hosted/sim-cognito-token-endpoint.d.ts +2 -0
  147. package/dist/service/cognito/command/hosted/sim-cognito-token-grants.d.ts +8 -0
  148. package/dist/service/cognito/command/hosted/sim-cognito-token-grants.js +13 -4
  149. package/dist/service/cognito/command/sim-cognito-commands.d.ts +5 -0
  150. package/dist/service/cognito/command/sim-cognito-commands.js +22 -2
  151. package/dist/service/cognito/command/user/sim-cognito-confirm-sign-up-commands.d.ts +74 -0
  152. package/dist/service/cognito/command/user/sim-cognito-confirm-sign-up-commands.js +110 -0
  153. package/dist/service/cognito/command/user/sim-cognito-sign-up-commands.d.ts +5 -49
  154. package/dist/service/cognito/command/user/sim-cognito-sign-up-commands.js +7 -87
  155. package/dist/service/cognito/command/user/sim-cognito-user-commands.d.ts +4 -0
  156. package/dist/service/cognito/command/user/sim-cognito-user-commands.js +38 -29
  157. package/dist/service/cognito/error/sim-cognito-managed-login.error.d.ts +23 -0
  158. package/dist/service/cognito/error/sim-cognito-managed-login.error.js +36 -0
  159. package/dist/service/cognito/error/sim-cognito-throttle.error.d.ts +13 -0
  160. package/dist/service/cognito/error/sim-cognito-throttle.error.js +15 -0
  161. package/dist/service/cognito/index.d.ts +2 -0
  162. package/dist/service/cognito/index.js +2 -0
  163. package/dist/service/cognito/metric/sim-cognito-counted-request.d.ts +50 -0
  164. package/dist/service/cognito/metric/sim-cognito-counted-request.js +51 -0
  165. package/dist/service/cognito/metric/sim-cognito-metrics.d.ts +22 -0
  166. package/dist/service/cognito/metric/sim-cognito-metrics.js +26 -0
  167. package/dist/service/cognito/metric/sim-cognito-pool-metrics.d.ts +40 -0
  168. package/dist/service/cognito/metric/sim-cognito-pool-metrics.js +51 -0
  169. package/dist/service/cognito/metric/sim-cognito-throttled-request.d.ts +11 -0
  170. package/dist/service/cognito/metric/sim-cognito-throttled-request.js +15 -0
  171. package/dist/service/cognito/serve/page/sim-cognito-managed-login.d.ts +1 -0
  172. package/dist/service/cognito/serve/page/sim-cognito-managed-login.js +6 -1
  173. package/dist/service/cognito/serve/page/sim-cognito-page-markup.d.ts +4 -1
  174. package/dist/service/cognito/serve/page/sim-cognito-page-markup.js +6 -2
  175. package/dist/service/cognito/serve/page/sim-cognito-provider-page.d.ts +35 -0
  176. package/dist/service/cognito/serve/page/sim-cognito-provider-page.js +50 -0
  177. package/dist/service/cognito/sim-cognito-identity-provider.d.ts +6 -0
  178. package/dist/service/cognito/sim-cognito-identity-provider.js +1 -0
  179. package/dist/service/cognito/sim-cognito-user-directory.js +3 -3
  180. package/dist/service/cognito/user-pool/auth/sim-cognito-authorization-code.d.ts +9 -0
  181. package/dist/service/cognito/user-pool/auth/sim-cognito-authorization-code.js +2 -0
  182. package/dist/service/cognito/user-pool/auth/sim-cognito-pool-auth.d.ts +8 -0
  183. package/dist/service/cognito/user-pool/auth/sim-cognito-pool-auth.js +8 -0
  184. package/dist/service/cognito/user-pool/auth/sim-cognito-request-throttle.d.ts +36 -0
  185. package/dist/service/cognito/user-pool/auth/sim-cognito-request-throttle.js +45 -0
  186. package/dist/service/cognito/user-pool/idp/sim-cognito-federated-sign-in.d.ts +42 -9
  187. package/dist/service/cognito/user-pool/idp/sim-cognito-federated-sign-in.js +56 -27
  188. package/dist/service/cognito/user-pool/idp/sim-cognito-federated-triggers.d.ts +52 -0
  189. package/dist/service/cognito/user-pool/idp/sim-cognito-federated-triggers.js +49 -0
  190. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.d.ts +48 -0
  191. package/dist/service/cognito/user-pool/idp/sim-cognito-presented-external-user.js +94 -0
  192. package/dist/service/cognito/user-pool/idp/sim-cognito-same-federated-identity.d.ts +13 -0
  193. package/dist/service/cognito/user-pool/idp/sim-cognito-same-federated-identity.js +19 -0
  194. package/dist/service/cognito/user-pool/idp/sim-cognito-user-pool-identity-provider.d.ts +7 -0
  195. package/dist/service/cognito/user-pool/idp/sim-cognito-user-pool-identity-provider.js +9 -0
  196. package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-name.d.ts +3 -2
  197. package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-name.js +3 -2
  198. package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-occasion.d.ts +18 -1
  199. package/dist/service/cognito/user-pool/trigger/sim-cognito-trigger-occasion.js +35 -18
  200. package/dist/service/lambda/command/create-function/create-function.handler.d.ts +3 -0
  201. package/dist/service/lambda/command/create-function/create-function.handler.js +4 -1
  202. package/dist/service/lambda/command/function/sim-lambda-function-commands.d.ts +2 -0
  203. package/dist/service/lambda/event-source/poll/kinesis/sim-lambda-kinesis-stream-delivery.js +7 -11
  204. package/dist/service/lambda/event-source/poll/sim-lambda-dynamodb-stream-delivery.js +7 -8
  205. package/dist/service/lambda/event-source/poll/sim-lambda-stream-iterator-age.d.ts +11 -0
  206. package/dist/service/lambda/event-source/poll/sim-lambda-stream-iterator-age.js +31 -0
  207. package/dist/service/lambda/event-source/poll/sim-lambda-stream-sequence-numbers.d.ts +10 -0
  208. package/dist/service/lambda/event-source/poll/sim-lambda-stream-sequence-numbers.js +12 -0
  209. package/dist/service/lambda/function/sim-lambda-function.d.ts +3 -0
  210. package/dist/service/lambda/function/sim-lambda-function.js +6 -2
  211. package/dist/service/lambda/function/sim-lambda-function.type.d.ts +7 -0
  212. package/dist/service/lambda/metric/sim-lambda-function-metrics.d.ts +47 -0
  213. package/dist/service/lambda/metric/sim-lambda-function-metrics.js +83 -0
  214. package/dist/service/lambda/metric/sim-lambda-iterator-age.d.ts +29 -0
  215. package/dist/service/lambda/metric/sim-lambda-iterator-age.js +41 -0
  216. package/dist/service/lambda/metric/sim-lambda-metrics.d.ts +12 -0
  217. package/dist/service/lambda/metric/sim-lambda-metrics.js +13 -0
  218. package/dist/service/lambda/sim-lambda-commands.d.ts +2 -0
  219. package/dist/service/lambda/sim-lambda-commands.js +2 -1
  220. package/dist/service/logs/cfn/metric/sim-cfn-metric-dimension-values.d.ts +9 -0
  221. package/dist/service/logs/cfn/metric/sim-cfn-metric-dimension-values.js +25 -0
  222. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-creator.d.ts +30 -0
  223. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-creator.js +52 -0
  224. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-properties.d.ts +40 -0
  225. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-properties.js +66 -0
  226. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-property-rules.d.ts +19 -0
  227. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-property-rules.js +40 -0
  228. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-unsimulated-properties.d.ts +5 -0
  229. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-unsimulated-properties.js +23 -0
  230. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-value.d.ts +25 -0
  231. package/dist/service/logs/cfn/metric/sim-cfn-metric-filter-value.js +58 -0
  232. package/dist/service/logs/cfn/metric/sim-cfn-metric-transformation-values.d.ts +6 -0
  233. package/dist/service/logs/cfn/metric/sim-cfn-metric-transformation-values.js +19 -0
  234. package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.d.ts +2 -0
  235. package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.js +4 -0
  236. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.d.ts +5 -3
  237. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.js +12 -3
  238. package/dist/service/logs/command/event/sim-logs-put-log-events.d.ts +3 -0
  239. package/dist/service/logs/command/event/sim-logs-put-log-events.js +3 -0
  240. package/dist/service/logs/command/group/sim-logs-log-group-commands.js +3 -3
  241. package/dist/service/logs/command/metric/metric-filter.command.d.ts +79 -0
  242. package/dist/service/logs/command/metric/metric-filter.command.js +1 -0
  243. package/dist/service/logs/command/metric/sim-logs-metric-filter-commands.d.ts +48 -0
  244. package/dist/service/logs/command/metric/sim-logs-metric-filter-commands.js +95 -0
  245. package/dist/service/logs/command/metric/sim-logs-metric-filter-input.d.ts +11 -0
  246. package/dist/service/logs/command/metric/sim-logs-metric-filter-input.js +79 -0
  247. package/dist/service/logs/command/sim-logs-command.types.d.ts +1 -0
  248. package/dist/service/logs/group/sim-logs-log-group.d.ts +6 -0
  249. package/dist/service/logs/group/sim-logs-log-group.js +6 -0
  250. package/dist/service/logs/index.d.ts +6 -0
  251. package/dist/service/logs/index.js +4 -0
  252. package/dist/service/logs/metric/cloudwatch/sim-aws-logs-metric-filter-metrics.d.ts +40 -0
  253. package/dist/service/logs/metric/cloudwatch/sim-aws-logs-metric-filter-metrics.js +78 -0
  254. package/dist/service/logs/metric/emf/sim-logs-embedded-metric-datapoints.d.ts +25 -0
  255. package/dist/service/logs/metric/emf/sim-logs-embedded-metric-datapoints.js +81 -0
  256. package/dist/service/logs/metric/emf/sim-logs-embedded-metric-document.d.ts +57 -0
  257. package/dist/service/logs/metric/emf/sim-logs-embedded-metric-document.js +85 -0
  258. package/dist/service/logs/metric/emf/sim-logs-embedded-metric-json.d.ts +24 -0
  259. package/dist/service/logs/metric/emf/sim-logs-embedded-metric-json.js +41 -0
  260. package/dist/service/logs/metric/emf/sim-logs-embedded-metric-values.d.ts +20 -0
  261. package/dist/service/logs/metric/emf/sim-logs-embedded-metric-values.js +39 -0
  262. package/dist/service/logs/metric/sim-logs-metric-datapoint.d.ts +25 -0
  263. package/dist/service/logs/metric/sim-logs-metric-datapoint.js +1 -0
  264. package/dist/service/logs/metric/sim-logs-metric-fan-out.d.ts +62 -0
  265. package/dist/service/logs/metric/sim-logs-metric-fan-out.js +116 -0
  266. package/dist/service/logs/metric/sim-logs-metric-filter-selection.d.ts +17 -0
  267. package/dist/service/logs/metric/sim-logs-metric-filter-selection.js +17 -0
  268. package/dist/service/logs/metric/sim-logs-metric-filter-store.d.ts +35 -0
  269. package/dist/service/logs/metric/sim-logs-metric-filter-store.js +47 -0
  270. package/dist/service/logs/metric/sim-logs-metric-filter.d.ts +49 -0
  271. package/dist/service/logs/metric/sim-logs-metric-filter.js +95 -0
  272. package/dist/service/logs/metric/sim-logs-metric-publication-failure.d.ts +31 -0
  273. package/dist/service/logs/metric/sim-logs-metric-publication-failure.js +12 -0
  274. package/dist/service/logs/metric/sim-logs-metric-publications.d.ts +11 -0
  275. package/dist/service/logs/metric/sim-logs-metric-publications.js +1 -0
  276. package/dist/service/logs/metric/sim-logs-metric-transformation.d.ts +45 -0
  277. package/dist/service/logs/metric/sim-logs-metric-transformation.js +127 -0
  278. package/dist/service/logs/sdk/sim-logs-sdk-command-router.js +12 -0
  279. package/dist/service/logs/sim-logs-commands.d.ts +12 -0
  280. package/dist/service/logs/sim-logs-commands.js +17 -0
  281. package/dist/service/logs/sim-logs-metric-operations.d.ts +31 -0
  282. package/dist/service/logs/sim-logs-metric-operations.js +37 -0
  283. package/dist/service/logs/sim-logs.d.ts +4 -3
  284. package/dist/service/logs/sim-logs.js +4 -3
  285. package/dist/service/logs/write/sim-logs-service-writer.d.ts +3 -0
  286. package/dist/service/logs/write/sim-logs-service-writer.js +5 -1
  287. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.d.ts +32 -0
  288. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.js +31 -1
  289. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.d.ts +13 -2
  290. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.js +18 -1
  291. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.d.ts +17 -1
  292. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.js +27 -3
  293. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.d.ts +45 -0
  294. package/dist/service/s3/bucket/lifecycle/sim-s3-noncurrent-sweep.js +90 -0
  295. package/dist/service/s3/bucket/lock/sim-s3-bucket-object-lock.d.ts +42 -0
  296. package/dist/service/s3/bucket/lock/sim-s3-bucket-object-lock.js +59 -0
  297. package/dist/service/s3/bucket/lock/sim-s3-default-retention.d.ts +8 -0
  298. package/dist/service/s3/bucket/lock/sim-s3-default-retention.js +15 -0
  299. package/dist/service/s3/bucket/lock/sim-s3-object-lock-configuration.d.ts +49 -0
  300. package/dist/service/s3/bucket/lock/sim-s3-object-lock-configuration.js +102 -0
  301. package/dist/service/s3/bucket/lock/sim-s3-object-lock-output.d.ts +14 -0
  302. package/dist/service/s3/bucket/lock/sim-s3-object-lock-output.js +1 -0
  303. package/dist/service/s3/bucket/lock/sim-s3-object-lock.d.ts +62 -0
  304. package/dist/service/s3/bucket/lock/sim-s3-object-lock.js +100 -0
  305. package/dist/service/s3/bucket/lock/sim-s3-object-retention.d.ts +55 -0
  306. package/dist/service/s3/bucket/lock/sim-s3-object-retention.js +82 -0
  307. package/dist/service/s3/bucket/notification/sim-s3-notification-event.d.ts +1 -1
  308. package/dist/service/s3/bucket/notification/sim-s3-notification-event.js +9 -1
  309. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-events.d.ts +1 -1
  310. package/dist/service/s3/bucket/notification/sim-s3-unsimulated-notification-events.js +1 -2
  311. package/dist/service/s3/bucket/sim-s3-bucket-objects.d.ts +114 -0
  312. package/dist/service/s3/bucket/sim-s3-bucket-objects.js +148 -0
  313. package/dist/service/s3/bucket/sim-s3-bucket.d.ts +30 -29
  314. package/dist/service/s3/bucket/sim-s3-bucket.js +42 -45
  315. package/dist/service/s3/bucket/sim-s3-object-deletion.d.ts +30 -0
  316. package/dist/service/s3/bucket/sim-s3-object-deletion.js +29 -0
  317. package/dist/service/s3/bucket/versioning/sim-s3-bucket-versioning.d.ts +61 -0
  318. package/dist/service/s3/bucket/versioning/sim-s3-bucket-versioning.js +65 -0
  319. package/dist/service/s3/bucket/versioning/sim-s3-bucket-versions.d.ts +97 -0
  320. package/dist/service/s3/bucket/versioning/sim-s3-bucket-versions.js +176 -0
  321. package/dist/service/s3/bucket/versioning/sim-s3-compare-keys.d.ts +10 -0
  322. package/dist/service/s3/bucket/versioning/sim-s3-compare-keys.js +16 -0
  323. package/dist/service/s3/bucket/versioning/sim-s3-object-version.d.ts +85 -0
  324. package/dist/service/s3/bucket/versioning/sim-s3-object-version.js +101 -0
  325. package/dist/service/s3/bucket/versioning/sim-s3-object-versions.d.ts +52 -0
  326. package/dist/service/s3/bucket/versioning/sim-s3-object-versions.js +91 -0
  327. package/dist/service/s3/bucket/versioning/sim-s3-version-page.d.ts +32 -0
  328. package/dist/service/s3/bucket/versioning/sim-s3-version-page.js +45 -0
  329. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.d.ts +0 -5
  330. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.js +3 -14
  331. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.d.ts +18 -1
  332. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.js +34 -1
  333. package/dist/service/s3/cfn/bucket/lock/sim-cfn-s3-bucket-object-lock-configuration.d.ts +37 -0
  334. package/dist/service/s3/cfn/bucket/lock/sim-cfn-s3-bucket-object-lock-configuration.js +78 -0
  335. package/dist/service/s3/cfn/bucket/replication/sim-cfn-s3-bucket-replication-rules.d.ts +20 -0
  336. package/dist/service/s3/cfn/bucket/replication/sim-cfn-s3-bucket-replication-rules.js +107 -0
  337. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.d.ts +14 -7
  338. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js +29 -37
  339. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.d.ts +62 -0
  340. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-declared-configurations.js +89 -0
  341. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.d.ts +9 -5
  342. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.js +16 -16
  343. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-rules.d.ts +9 -5
  344. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-rules.js +17 -6
  345. package/dist/service/s3/cfn/bucket/versioning/sim-cfn-s3-bucket-versioning-configuration.d.ts +19 -0
  346. package/dist/service/s3/cfn/bucket/versioning/sim-cfn-s3-bucket-versioning-configuration.js +28 -0
  347. package/dist/service/s3/command/authorize/sim-s3-authorize-action.d.ts +24 -0
  348. package/dist/service/s3/command/authorize/sim-s3-authorize-action.js +30 -0
  349. package/dist/service/s3/command/complete-multipart-upload/complete-multipart-upload.command.d.ts +2 -0
  350. package/dist/service/s3/command/complete-multipart-upload/complete-multipart-upload.handler.js +3 -1
  351. package/dist/service/s3/command/copy-object/copy-object.command.d.ts +3 -1
  352. package/dist/service/s3/command/copy-object/copy-object.handler.js +3 -1
  353. package/dist/service/s3/command/delete-object/delete-object-version-removal.d.ts +50 -0
  354. package/dist/service/s3/command/delete-object/delete-object-version-removal.js +52 -0
  355. package/dist/service/s3/command/delete-object/delete-object.command.d.ts +19 -2
  356. package/dist/service/s3/command/delete-object/delete-object.handler.d.ts +7 -1
  357. package/dist/service/s3/command/delete-object/delete-object.handler.js +28 -16
  358. package/dist/service/s3/command/delete-object/sim-s3-notify-deleted.d.ts +24 -0
  359. package/dist/service/s3/command/delete-object/sim-s3-notify-deleted.js +32 -0
  360. package/dist/service/s3/command/delete-objects/delete-object-attempt.d.ts +6 -2
  361. package/dist/service/s3/command/delete-objects/delete-object-attempt.js +6 -2
  362. package/dist/service/s3/command/delete-objects/delete-objects-key-removal.js +10 -9
  363. package/dist/service/s3/command/delete-objects/delete-objects-outcome.js +9 -1
  364. package/dist/service/s3/command/delete-objects/delete-objects.command.d.ts +6 -0
  365. package/dist/service/s3/command/get-bucket-versioning/get-bucket-versioning.command.d.ts +23 -0
  366. package/dist/service/s3/command/get-bucket-versioning/get-bucket-versioning.command.js +1 -0
  367. package/dist/service/s3/command/get-bucket-versioning/get-bucket-versioning.handler.d.ts +31 -0
  368. package/dist/service/s3/command/get-bucket-versioning/get-bucket-versioning.handler.js +40 -0
  369. package/dist/service/s3/command/get-object/get-object-loader.d.ts +3 -2
  370. package/dist/service/s3/command/get-object/get-object-loader.js +9 -4
  371. package/dist/service/s3/command/get-object/get-object.command.d.ts +9 -1
  372. package/dist/service/s3/command/get-object/get-object.handler.js +1 -1
  373. package/dist/service/s3/command/get-object-lock-configuration/get-object-lock-configuration.command.d.ts +25 -0
  374. package/dist/service/s3/command/get-object-lock-configuration/get-object-lock-configuration.command.js +1 -0
  375. package/dist/service/s3/command/get-object-lock-configuration/get-object-lock-configuration.handler.d.ts +31 -0
  376. package/dist/service/s3/command/get-object-lock-configuration/get-object-lock-configuration.handler.js +41 -0
  377. package/dist/service/s3/command/head-object/head-object-loader.d.ts +1 -1
  378. package/dist/service/s3/command/head-object/head-object-loader.js +7 -3
  379. package/dist/service/s3/command/head-object/head-object.command.d.ts +9 -1
  380. package/dist/service/s3/command/head-object/head-object.handler.js +1 -1
  381. package/dist/service/s3/command/list-object-versions/list-object-versions-listing.d.ts +31 -0
  382. package/dist/service/s3/command/list-object-versions/list-object-versions-listing.js +55 -0
  383. package/dist/service/s3/command/list-object-versions/list-object-versions-summaries.d.ts +17 -0
  384. package/dist/service/s3/command/list-object-versions/list-object-versions-summaries.js +34 -0
  385. package/dist/service/s3/command/list-object-versions/list-object-versions.command.d.ts +59 -0
  386. package/dist/service/s3/command/list-object-versions/list-object-versions.command.js +1 -0
  387. package/dist/service/s3/command/list-object-versions/list-object-versions.handler.d.ts +34 -0
  388. package/dist/service/s3/command/list-object-versions/list-object-versions.handler.js +62 -0
  389. package/dist/service/s3/command/object/sim-s3-read-object-version.d.ts +34 -0
  390. package/dist/service/s3/command/object/sim-s3-read-object-version.js +52 -0
  391. package/dist/service/s3/command/object-lock/sim-s3-locked-version.d.ts +11 -0
  392. package/dist/service/s3/command/object-lock/sim-s3-locked-version.js +27 -0
  393. package/dist/service/s3/command/object-lock/sim-s3-object-lock-authorizer.d.ts +42 -0
  394. package/dist/service/s3/command/object-lock/sim-s3-object-lock-authorizer.js +66 -0
  395. package/dist/service/s3/command/object-lock/sim-s3-object-lock-commands.d.ts +30 -0
  396. package/dist/service/s3/command/object-lock/sim-s3-object-lock-commands.js +41 -0
  397. package/dist/service/s3/command/put-bucket-versioning/put-bucket-versioning.command.d.ts +21 -0
  398. package/dist/service/s3/command/put-bucket-versioning/put-bucket-versioning.command.js +1 -0
  399. package/dist/service/s3/command/put-bucket-versioning/put-bucket-versioning.handler.d.ts +31 -0
  400. package/dist/service/s3/command/put-bucket-versioning/put-bucket-versioning.handler.js +44 -0
  401. package/dist/service/s3/command/put-object/put-object.command.d.ts +3 -0
  402. package/dist/service/s3/command/put-object/put-object.handler.js +10 -10
  403. package/dist/service/s3/command/put-object-legal-hold/put-object-legal-hold.command.d.ts +24 -0
  404. package/dist/service/s3/command/put-object-legal-hold/put-object-legal-hold.command.js +1 -0
  405. package/dist/service/s3/command/put-object-legal-hold/put-object-legal-hold.handler.d.ts +32 -0
  406. package/dist/service/s3/command/put-object-legal-hold/put-object-legal-hold.handler.js +41 -0
  407. package/dist/service/s3/command/put-object-lock-configuration/put-object-lock-configuration.command.d.ts +21 -0
  408. package/dist/service/s3/command/put-object-lock-configuration/put-object-lock-configuration.command.js +1 -0
  409. package/dist/service/s3/command/put-object-lock-configuration/put-object-lock-configuration.handler.d.ts +32 -0
  410. package/dist/service/s3/command/put-object-lock-configuration/put-object-lock-configuration.handler.js +47 -0
  411. package/dist/service/s3/command/put-object-retention/put-object-retention.command.d.ts +29 -0
  412. package/dist/service/s3/command/put-object-retention/put-object-retention.command.js +1 -0
  413. package/dist/service/s3/command/put-object-retention/put-object-retention.handler.d.ts +31 -0
  414. package/dist/service/s3/command/put-object-retention/put-object-retention.handler.js +42 -0
  415. package/dist/service/s3/command/sim-s3-command.types.d.ts +7 -0
  416. package/dist/service/s3/command/versioning/sim-s3-versioning-authorizer.d.ts +35 -0
  417. package/dist/service/s3/command/versioning/sim-s3-versioning-authorizer.js +57 -0
  418. package/dist/service/s3/command/versioning/sim-s3-versioning-commands.d.ts +26 -0
  419. package/dist/service/s3/command/versioning/sim-s3-versioning-commands.js +34 -0
  420. package/dist/service/s3/command/versioning/sim-s3-versioning-configuration-validation.d.ts +13 -0
  421. package/dist/service/s3/command/versioning/sim-s3-versioning-configuration-validation.js +28 -0
  422. package/dist/service/s3/error/sim-s3-object-lock.error.d.ts +22 -0
  423. package/dist/service/s3/error/sim-s3-object-lock.error.js +26 -0
  424. package/dist/service/s3/error/sim-s3.error.d.ts +22 -0
  425. package/dist/service/s3/error/sim-s3.error.js +26 -0
  426. package/dist/service/s3/notification/event/sim-s3-event-records.js +3 -0
  427. package/dist/service/s3/notification/event/sim-s3-event.type.d.ts +5 -3
  428. package/dist/service/s3/notification/event/sim-s3-object-event-builder.d.ts +15 -0
  429. package/dist/service/s3/notification/event/sim-s3-object-event-builder.js +4 -1
  430. package/dist/service/s3/notification/event/sim-s3-object-event.d.ts +6 -0
  431. package/dist/service/s3/notification/event/sim-s3-object-event.js +2 -0
  432. package/dist/service/s3/notification/sim-s3-object-notifier.d.ts +1 -1
  433. package/dist/service/s3/notification/sim-s3-object-notifier.js +2 -2
  434. package/dist/service/s3/sdk/sim-s3-sdk-bucket-routes.d.ts +10 -0
  435. package/dist/service/s3/sdk/sim-s3-sdk-bucket-routes.js +84 -0
  436. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +6 -132
  437. package/dist/service/s3/sdk/sim-s3-sdk-object-lock-routes.d.ts +10 -0
  438. package/dist/service/s3/sdk/sim-s3-sdk-object-lock-routes.js +28 -0
  439. package/dist/service/s3/sdk/sim-s3-sdk-object-routes.d.ts +7 -0
  440. package/dist/service/s3/sdk/sim-s3-sdk-object-routes.js +80 -0
  441. package/dist/service/s3/sim-s3-commands.d.ts +4 -0
  442. package/dist/service/s3/sim-s3-commands.js +6 -0
  443. package/dist/service/s3/sim-s3-operations.d.ts +5 -5
  444. package/dist/service/s3/sim-s3-operations.js +5 -6
  445. package/dist/service/s3/sim-s3-version-operations.d.ts +32 -0
  446. package/dist/service/s3/sim-s3-version-operations.js +45 -0
  447. package/dist/service/scheduler/command/schedule/schedule.command.d.ts +9 -2
  448. package/dist/service/scheduler/command/schedule/sim-scheduler-described-schedule.js +2 -0
  449. package/dist/service/scheduler/command/schedule/sim-scheduler-unsimulated-target.js +0 -6
  450. package/dist/service/scheduler/command/sim-scheduler-command.types.d.ts +1 -1
  451. package/dist/service/scheduler/command/sim-scheduler-commands.js +1 -0
  452. package/dist/service/scheduler/delivery/sim-aws-scheduler-dead-letters.d.ts +17 -0
  453. package/dist/service/scheduler/delivery/sim-aws-scheduler-dead-letters.js +29 -0
  454. package/dist/service/scheduler/delivery/sim-aws-scheduler-delivery-targets.d.ts +6 -1
  455. package/dist/service/scheduler/delivery/sim-aws-scheduler-delivery-targets.js +9 -0
  456. package/dist/service/scheduler/delivery/sim-scheduler-dead-letter-queue.d.ts +18 -0
  457. package/dist/service/scheduler/delivery/sim-scheduler-dead-letter-queue.js +62 -0
  458. package/dist/service/scheduler/delivery/sim-scheduler-delivery-attempt.d.ts +29 -0
  459. package/dist/service/scheduler/delivery/sim-scheduler-delivery-attempt.js +81 -0
  460. package/dist/service/scheduler/delivery/sim-scheduler-delivery-function.js +9 -5
  461. package/dist/service/scheduler/delivery/sim-scheduler-delivery.d.ts +11 -0
  462. package/dist/service/scheduler/delivery/sim-scheduler-no-delivery-targets.d.ts +5 -1
  463. package/dist/service/scheduler/delivery/sim-scheduler-no-delivery-targets.js +8 -0
  464. package/dist/service/scheduler/delivery/sim-scheduler-target-delivery.d.ts +4 -1
  465. package/dist/service/scheduler/delivery/sim-scheduler-target-delivery.js +20 -15
  466. package/dist/service/scheduler/index.d.ts +1 -1
  467. package/dist/service/scheduler/target/sim-scheduler-dead-letter-config.d.ts +15 -0
  468. package/dist/service/scheduler/target/sim-scheduler-dead-letter-config.js +24 -0
  469. package/dist/service/scheduler/target/sim-scheduler-retry-policy.d.ts +20 -0
  470. package/dist/service/scheduler/target/sim-scheduler-retry-policy.js +37 -0
  471. package/dist/service/scheduler/target/sim-scheduler-target.d.ts +6 -0
  472. package/dist/service/scheduler/target/sim-scheduler-target.js +12 -0
  473. package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-commands.js +13 -5
  474. package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-options.d.ts +1 -1
  475. package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-options.js +9 -9
  476. package/dist/service/ses/command/send/send.command.d.ts +10 -1
  477. package/dist/service/ses/command/send/sim-ses-read-content.d.ts +2 -1
  478. package/dist/service/ses/command/send/sim-ses-send-email.js +1 -0
  479. package/dist/service/ses/command/send/sim-ses-service-send.js +1 -0
  480. package/dist/service/ses/command/send/sim-ses-simple-content.js +26 -5
  481. package/dist/service/ses/command/send/sim-ses-template-send.js +1 -0
  482. package/dist/service/ses/command/suppression/suppression.command.d.ts +3 -2
  483. package/dist/service/ses/configuration-set/sim-ses-configuration-set.d.ts +9 -10
  484. package/dist/service/ses/configuration-set/sim-ses-configuration-set.js +7 -8
  485. package/dist/service/ses/email/sim-ses-sent-email-store.d.ts +8 -0
  486. package/dist/service/ses/email/sim-ses-sent-email-store.js +17 -0
  487. package/dist/service/ses/email/sim-ses-sent-email.d.ts +18 -0
  488. package/dist/service/ses/email/sim-ses-sent-email.js +3 -0
  489. package/dist/service/ses/error/sim-ses.error.d.ts +10 -0
  490. package/dist/service/ses/error/sim-ses.error.js +10 -0
  491. package/dist/service/ses/feedback/sim-ses-feedback-recorder.d.ts +34 -0
  492. package/dist/service/ses/feedback/sim-ses-feedback-recorder.js +55 -0
  493. package/dist/service/ses/index.d.ts +3 -2
  494. package/dist/service/ses/index.js +2 -1
  495. package/dist/service/ses/sim-ses-commands.d.ts +2 -0
  496. package/dist/service/ses/sim-ses-commands.js +9 -0
  497. package/dist/service/ses/sim-ses-configuration-sets.d.ts +4 -4
  498. package/dist/service/ses/sim-ses-configuration-sets.js +4 -4
  499. package/dist/service/ses/sim-ses-suppression.d.ts +3 -2
  500. package/dist/service/ses/sim-ses-suppression.js +3 -2
  501. package/dist/service/ses/sim-ses-v2.d.ts +13 -0
  502. package/dist/service/ses/sim-ses-v2.js +13 -0
  503. package/dist/service/ses/suppression/sim-ses-suppressed-destination.d.ts +3 -4
  504. package/dist/service/ses/suppression/sim-ses-suppressed-destination.js +3 -4
  505. package/dist/service/ses/suppression/sim-ses-suppression-list.d.ts +4 -4
  506. package/dist/service/ses/suppression/sim-ses-suppression-list.js +4 -4
  507. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-encryption-rules.d.ts +15 -0
  508. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-encryption-rules.js +33 -0
  509. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-properties.d.ts +16 -0
  510. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-properties.js +33 -1
  511. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-names.d.ts +12 -6
  512. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-names.js +18 -13
  513. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-rules.d.ts +1 -0
  514. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-rules.js +9 -1
  515. package/dist/terraform/map/sim-tf-map-sqs-redrive.d.ts +4 -3
  516. package/dist/terraform/map/sim-tf-map-sqs-redrive.js +4 -3
  517. package/docs/README.md +1 -0
  518. package/docs/services/backup/README.md +553 -0
  519. package/docs/services/cloudformation/README.md +16 -6
  520. package/docs/services/cloudwatch/README.md +159 -3
  521. package/docs/services/cognito/README.md +370 -7
  522. package/docs/services/lambda/README.md +28 -0
  523. package/docs/services/logs/README.md +284 -3
  524. package/docs/services/s3/README.md +463 -20
  525. package/docs/services/scheduler/README.md +48 -9
  526. package/docs/services/ses/README.md +164 -41
  527. package/docs/services/sqs/README.md +47 -10
  528. package/llms.txt +1 -0
  529. package/package.json +7 -2
@@ -2,13 +2,17 @@
2
2
  * What one key of a DeleteObjects request came to.
3
3
  *
4
4
  * A batch deletion carries on past a key it could not remove, so the failure
5
- * travels with the key it belongs to rather than being raised.
5
+ * travels with the key it belongs to rather than being raised. So does the
6
+ * delete marker, which a versioned Bucket reports per key alongside the id it
7
+ * was written under.
6
8
  */
7
9
  export class DeleteObjectAttempt {
8
10
  key;
9
11
  error;
10
- constructor(key, error) {
12
+ deleteMarker;
13
+ constructor(key, error, deleteMarker) {
11
14
  this.key = key;
12
15
  this.error = error;
16
+ this.deleteMarker = deleteMarker;
13
17
  }
14
18
  }
@@ -1,5 +1,6 @@
1
1
  import { DeleteObjectAuthorizer } from "../delete-object/delete-object-authorizer.js";
2
2
  import { DeleteObjectAttempt } from "./delete-object-attempt.js";
3
+ import { simS3NotifyDeleted } from "../delete-object/sim-s3-notify-deleted.js";
3
4
  /**
4
5
  * Removes one key of a batch deletion.
5
6
  *
@@ -21,15 +22,15 @@ export class DeleteObjectsKeyRemoval {
21
22
  async remove(bucket, key, options) {
22
23
  try {
23
24
  const resolvedCaller = this.authorizer.authorize(bucket, key, options);
24
- const removed = await bucket.deleteObject(key);
25
- if (removed) {
26
- this.notifications.objectRemoved({
27
- bucket,
28
- key,
29
- caller: resolvedCaller,
30
- });
31
- }
32
- return new DeleteObjectAttempt(key);
25
+ const deletion = await bucket.deleteObject(key);
26
+ simS3NotifyDeleted({
27
+ notifications: this.notifications,
28
+ bucket,
29
+ key,
30
+ caller: resolvedCaller,
31
+ deletion,
32
+ });
33
+ return new DeleteObjectAttempt(key, undefined, deletion.deleteMarker);
33
34
  }
34
35
  catch (error) {
35
36
  return new DeleteObjectAttempt(key, error);
@@ -33,7 +33,15 @@ export class DeleteObjectsOutcome {
33
33
  */
34
34
  record(attempt) {
35
35
  if (attempt.error === undefined) {
36
- this.deleted.push({ Key: attempt.key });
36
+ this.deleted.push({
37
+ Key: attempt.key,
38
+ // Reported per key, as real S3 does, so a caller can tell which keys
39
+ // of the batch were hidden behind a marker rather than removed.
40
+ ...(attempt.deleteMarker !== undefined && {
41
+ DeleteMarker: true,
42
+ DeleteMarkerVersionId: attempt.deleteMarker.versionId,
43
+ }),
44
+ });
37
45
  return;
38
46
  }
39
47
  this.recordFailure(attempt.key, attempt.error);
@@ -38,9 +38,15 @@ export interface SimDeleteObjectsCommandOutput {
38
38
  }
39
39
  /**
40
40
  * One Object a DeleteObjects request removed.
41
+ *
42
+ * A versioned Bucket hides the Object behind a marker instead of removing it,
43
+ * and reports the marker it wrote under `DeleteMarker` and
44
+ * `DeleteMarkerVersionId`. A Bucket without versioning carries neither.
41
45
  */
42
46
  export interface SimS3DeletedObject {
43
47
  readonly Key: string;
48
+ readonly DeleteMarker?: boolean | undefined;
49
+ readonly DeleteMarkerVersionId?: string | undefined;
44
50
  }
45
51
  /**
46
52
  * One Object a DeleteObjects request could not remove.
@@ -0,0 +1,23 @@
1
+ import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
2
+ /**
3
+ * Minimal structural sim S3 GetBucketVersioning command.
4
+ */
5
+ export interface SimGetBucketVersioningCommand {
6
+ readonly input: SimGetBucketVersioningCommandInput;
7
+ }
8
+ /**
9
+ * Minimal structural sim S3 GetBucketVersioning input.
10
+ */
11
+ export interface SimGetBucketVersioningCommandInput {
12
+ readonly Bucket?: string | undefined;
13
+ }
14
+ /**
15
+ * Minimal structural sim S3 GetBucketVersioning output.
16
+ *
17
+ * A Bucket nobody has configured answers with neither field, which is how real
18
+ * S3 separates an unversioned Bucket from a suspended one.
19
+ */
20
+ export interface SimGetBucketVersioningCommandOutput {
21
+ readonly Status?: "Enabled" | "Suspended" | undefined;
22
+ readonly $metadata: SimResponseMetadata;
23
+ }
@@ -0,0 +1,31 @@
1
+ import type { CommandHandler } from "../../../../command/command-handler.js";
2
+ import { type BackgroundScheduler } from "../../../../util/background/background.js";
3
+ import { type SimIamInterServiceAuthZ } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
4
+ import type { SimS3Bucket, SimS3BucketName } from "../../bucket/sim-s3-bucket.js";
5
+ import type { SimS3RequestOptions } from "../sim-s3-request-options.js";
6
+ import type { SimGetBucketVersioningCommand, SimGetBucketVersioningCommandOutput } from "./get-bucket-versioning.command.js";
7
+ interface GetBucketVersioningHandlerProperties {
8
+ readonly buckets: Map<SimS3BucketName, SimS3Bucket>;
9
+ readonly iam?: SimIamInterServiceAuthZ;
10
+ readonly background?: BackgroundScheduler;
11
+ }
12
+ /**
13
+ * Simulated S3 GetBucketVersioningCommand handler.
14
+ *
15
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/GetBucketVersioningCommand/
16
+ */
17
+ export declare class GetBucketVersioningCommandHandler implements CommandHandler<SimGetBucketVersioningCommand, SimGetBucketVersioningCommandOutput> {
18
+ private readonly buckets;
19
+ private readonly authorizer;
20
+ private readonly background;
21
+ constructor(properties: GetBucketVersioningHandlerProperties);
22
+ /**
23
+ * Authorize and report how a Bucket is versioned.
24
+ *
25
+ * A Bucket nobody has configured answers with an empty response rather than
26
+ * an error, which is how real S3 reports one and what distinguishes it from
27
+ * a Bucket whose versioning was suspended.
28
+ */
29
+ handle(command: SimGetBucketVersioningCommand, options?: SimS3RequestOptions): Promise<SimGetBucketVersioningCommandOutput>;
30
+ }
31
+ export {};
@@ -0,0 +1,40 @@
1
+ import { BackgroundTasks, } from "../../../../util/background/background.js";
2
+ import { assertDefined } from "../../../../util/type-guard/defined.js";
3
+ import { SimIamAllowAllAuth, } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
4
+ import { requireSimS3Bucket } from "../require-sim-s3-bucket.js";
5
+ import { SimS3VersioningAuthorizer } from "../versioning/sim-s3-versioning-authorizer.js";
6
+ /**
7
+ * Simulated S3 GetBucketVersioningCommand handler.
8
+ *
9
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/GetBucketVersioningCommand/
10
+ */
11
+ export class GetBucketVersioningCommandHandler {
12
+ buckets;
13
+ authorizer;
14
+ background;
15
+ constructor(properties) {
16
+ const { buckets, iam = new SimIamAllowAllAuth(), background = new BackgroundTasks(), } = properties;
17
+ this.buckets = buckets;
18
+ this.authorizer = new SimS3VersioningAuthorizer({ iam });
19
+ this.background = background;
20
+ }
21
+ /**
22
+ * Authorize and report how a Bucket is versioned.
23
+ *
24
+ * A Bucket nobody has configured answers with an empty response rather than
25
+ * an error, which is how real S3 reports one and what distinguishes it from
26
+ * a Bucket whose versioning was suspended.
27
+ */
28
+ async handle(command, options) {
29
+ assertDefined(command.input.Bucket, "GetBucketVersioningCommand.input.Bucket");
30
+ const bucketName = command.input.Bucket;
31
+ const bucket = requireSimS3Bucket(this.buckets, bucketName);
32
+ await this.background.sequence();
33
+ this.authorizer.authorizeRead(bucket, options);
34
+ const status = bucket.getVersions().configuration.status;
35
+ return {
36
+ ...(status !== undefined && { Status: status }),
37
+ $metadata: {},
38
+ };
39
+ }
40
+ }
@@ -10,7 +10,8 @@ import type { SimGetObjectCommandOutput } from "./get-object.command.js";
10
10
  * This class owns both storage lookup and response conversion because the SDK
11
11
  * response is a representation of the stored Object:
12
12
  *
13
- * - a missing storage entry becomes the S3 NoSuchKey error;
13
+ * - a missing storage entry becomes the S3 NoSuchKey error, and a `VersionId`
14
+ * naming a version the Bucket never issued becomes NoSuchVersion;
14
15
  * - the stored Buffer, or the part of it the read asked for, becomes the
15
16
  * readable response body;
16
17
  * - what S3 was told about the Object becomes the response's own fields, and
@@ -25,5 +26,5 @@ export declare class GetObjectLoader {
25
26
  * Read an Object, or the range of it that was asked for, from the resolved
26
27
  * Bucket, and build its SDK command output.
27
28
  */
28
- load(bucket: SimS3Bucket, key: string, rangeHeader?: string): Promise<SimGetObjectCommandOutput>;
29
+ load(bucket: SimS3Bucket, key: string, rangeHeader?: string, versionId?: string): Promise<SimGetObjectCommandOutput>;
29
30
  }
@@ -2,6 +2,7 @@ import { Readable } from "node:stream";
2
2
  import { SimS3NoSuchKey } from "../../error/sim-s3.error.js";
3
3
  import { simS3QuotedETag } from "../../object/s3-object-etag.js";
4
4
  import { simS3ContentRange, simS3ReadObjectRange, } from "../../object/s3-object-range.js";
5
+ import { simS3ReadObjectVersion } from "../object/sim-s3-read-object-version.js";
5
6
  /**
6
7
  * Loads an authorized S3 Object and converts it to a GetObject response.
7
8
  *
@@ -12,7 +13,8 @@ import { simS3ContentRange, simS3ReadObjectRange, } from "../../object/s3-object
12
13
  * This class owns both storage lookup and response conversion because the SDK
13
14
  * response is a representation of the stored Object:
14
15
  *
15
- * - a missing storage entry becomes the S3 NoSuchKey error;
16
+ * - a missing storage entry becomes the S3 NoSuchKey error, and a `VersionId`
17
+ * naming a version the Bucket never issued becomes NoSuchVersion;
16
18
  * - the stored Buffer, or the part of it the read asked for, becomes the
17
19
  * readable response body;
18
20
  * - what S3 was told about the Object becomes the response's own fields, and
@@ -27,11 +29,12 @@ export class GetObjectLoader {
27
29
  * Read an Object, or the range of it that was asked for, from the resolved
28
30
  * Bucket, and build its SDK command output.
29
31
  */
30
- async load(bucket, key, rangeHeader) {
31
- const object = await bucket.getObject(key);
32
- if (object === undefined) {
32
+ async load(bucket, key, rangeHeader, versionId) {
33
+ const read = await simS3ReadObjectVersion(bucket, key, versionId);
34
+ if (read === undefined) {
33
35
  throw new SimS3NoSuchKey(`No S3 Object named ${key}`);
34
36
  }
37
+ const object = read.object;
35
38
  const size = object.body.length;
36
39
  const range = simS3ReadObjectRange(rangeHeader, size);
37
40
  const body = range === undefined
@@ -47,6 +50,8 @@ export class GetObjectLoader {
47
50
  ETag: simS3QuotedETag(object.etag),
48
51
  LastModified: object.lastModified,
49
52
  ContentLength: body.length,
53
+ ...(read.versionId !== undefined && { VersionId: read.versionId }),
54
+ ...read.lock?.reported,
50
55
  ...(range !== undefined && {
51
56
  ContentRange: simS3ContentRange(range, size),
52
57
  }),
@@ -1,5 +1,6 @@
1
1
  import type { Readable } from "node:stream";
2
2
  import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
3
+ import type { SimS3ObjectLockOutput } from "../../bucket/lock/sim-s3-object-lock-output.js";
3
4
  import type { SimS3SystemMetadataOutput } from "../../object/s3-system-metadata-read.js";
4
5
  /**
5
6
  * Minimal structural sim S3 GetObject command.
@@ -19,6 +20,11 @@ export interface SimGetObjectCommandInput {
19
20
  * Object.
20
21
  */
21
22
  readonly Range?: string | undefined;
23
+ /**
24
+ * The version to read. A request naming none reads the current version, and
25
+ * a Bucket keeping no versions answers the Object under the key.
26
+ */
27
+ readonly VersionId?: string | undefined;
22
28
  }
23
29
  /**
24
30
  * Minimal structural sim S3 GetObject output.
@@ -35,12 +41,14 @@ export interface SimGetObjectCommandInput {
35
41
  * when it was written. `Metadata` is what the caller attached to it, and holds
36
42
  * nothing else.
37
43
  */
38
- export interface SimGetObjectCommandOutput extends SimS3SystemMetadataOutput {
44
+ export interface SimGetObjectCommandOutput extends SimS3SystemMetadataOutput, SimS3ObjectLockOutput {
39
45
  readonly Body?: Readable;
40
46
  readonly Metadata?: Record<string, string>;
41
47
  readonly ETag?: string;
42
48
  readonly LastModified?: Date;
43
49
  readonly ContentLength?: number;
44
50
  readonly ContentRange?: string;
51
+ /** The version read, on a Bucket keeping versions. */
52
+ readonly VersionId?: string | undefined;
45
53
  readonly $metadata: SimResponseMetadata;
46
54
  }
@@ -45,6 +45,6 @@ export class GetObjectCommandHandler {
45
45
  // Complete request sequencing before authorization and storage access.
46
46
  await this.background.sequence();
47
47
  this.authorizer.authorize(bucket, command.input.Key, options);
48
- return await this.loader.load(bucket, command.input.Key, command.input.Range);
48
+ return await this.loader.load(bucket, command.input.Key, command.input.Range, command.input.VersionId);
49
49
  }
50
50
  }
@@ -0,0 +1,25 @@
1
+ import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
2
+ import type { SimS3ObjectLockConfigurationInput } from "../../bucket/lock/sim-s3-object-lock-configuration.js";
3
+ /**
4
+ * Minimal structural sim S3 GetObjectLockConfiguration command.
5
+ */
6
+ export interface SimGetObjectLockConfigurationCommand {
7
+ readonly input: SimGetObjectLockConfigurationCommandInput;
8
+ }
9
+ /**
10
+ * Minimal structural sim S3 GetObjectLockConfiguration input.
11
+ */
12
+ export interface SimGetObjectLockConfigurationCommandInput {
13
+ readonly Bucket?: string | undefined;
14
+ }
15
+ /**
16
+ * Minimal structural sim S3 GetObjectLockConfiguration output.
17
+ *
18
+ * A Bucket that has never had Object Lock answers with
19
+ * `ObjectLockConfigurationNotFoundError` rather than an empty configuration,
20
+ * so this always carries one.
21
+ */
22
+ export interface SimGetObjectLockConfigurationCommandOutput {
23
+ readonly ObjectLockConfiguration: SimS3ObjectLockConfigurationInput;
24
+ readonly $metadata: SimResponseMetadata;
25
+ }
@@ -0,0 +1,31 @@
1
+ import type { CommandHandler } from "../../../../command/command-handler.js";
2
+ import { type BackgroundScheduler } from "../../../../util/background/background.js";
3
+ import { type SimIamInterServiceAuthZ } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
4
+ import type { SimS3Bucket, SimS3BucketName } from "../../bucket/sim-s3-bucket.js";
5
+ import type { SimS3RequestOptions } from "../sim-s3-request-options.js";
6
+ import type { SimGetObjectLockConfigurationCommand, SimGetObjectLockConfigurationCommandOutput } from "./get-object-lock-configuration.command.js";
7
+ interface GetObjectLockConfigurationHandlerProperties {
8
+ readonly buckets: Map<SimS3BucketName, SimS3Bucket>;
9
+ readonly iam?: SimIamInterServiceAuthZ;
10
+ readonly background?: BackgroundScheduler;
11
+ }
12
+ /**
13
+ * Simulated S3 GetObjectLockConfigurationCommand handler.
14
+ *
15
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/GetObjectLockConfigurationCommand/
16
+ */
17
+ export declare class GetObjectLockConfigurationCommandHandler implements CommandHandler<SimGetObjectLockConfigurationCommand, SimGetObjectLockConfigurationCommandOutput> {
18
+ private readonly buckets;
19
+ private readonly authorizer;
20
+ private readonly background;
21
+ constructor(properties: GetObjectLockConfigurationHandlerProperties);
22
+ /**
23
+ * Report how a Bucket is locked.
24
+ *
25
+ * A Bucket that has never had Object Lock is answered with
26
+ * `ObjectLockConfigurationNotFoundError`, as real S3 answers one, rather
27
+ * than with a configuration saying it is off.
28
+ */
29
+ handle(command: SimGetObjectLockConfigurationCommand, options?: SimS3RequestOptions): Promise<SimGetObjectLockConfigurationCommandOutput>;
30
+ }
31
+ export {};
@@ -0,0 +1,41 @@
1
+ import { BackgroundTasks, } from "../../../../util/background/background.js";
2
+ import { assertDefined } from "../../../../util/type-guard/defined.js";
3
+ import { SimIamAllowAllAuth, } from "../../../iam/authorize/sim-iam-inter-service-auth-z.js";
4
+ import { SimS3ObjectLockConfigurationNotFound } from "../../error/sim-s3-object-lock.error.js";
5
+ import { SimS3ObjectLockAuthorizer } from "../object-lock/sim-s3-object-lock-authorizer.js";
6
+ import { requireSimS3Bucket } from "../require-sim-s3-bucket.js";
7
+ /**
8
+ * Simulated S3 GetObjectLockConfigurationCommand handler.
9
+ *
10
+ * https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/GetObjectLockConfigurationCommand/
11
+ */
12
+ export class GetObjectLockConfigurationCommandHandler {
13
+ buckets;
14
+ authorizer;
15
+ background;
16
+ constructor(properties) {
17
+ const { buckets, iam = new SimIamAllowAllAuth(), background = new BackgroundTasks(), } = properties;
18
+ this.buckets = buckets;
19
+ this.authorizer = new SimS3ObjectLockAuthorizer({ iam });
20
+ this.background = background;
21
+ }
22
+ /**
23
+ * Report how a Bucket is locked.
24
+ *
25
+ * A Bucket that has never had Object Lock is answered with
26
+ * `ObjectLockConfigurationNotFoundError`, as real S3 answers one, rather
27
+ * than with a configuration saying it is off.
28
+ */
29
+ async handle(command, options) {
30
+ const { Bucket } = command.input;
31
+ assertDefined(Bucket, "GetObjectLockConfigurationCommand.input.Bucket");
32
+ const bucket = requireSimS3Bucket(this.buckets, Bucket);
33
+ await this.background.sequence();
34
+ this.authorizer.authorizeReadConfiguration(bucket, options);
35
+ const configuration = bucket.getObjectLock().configuration;
36
+ if (configuration === undefined) {
37
+ throw new SimS3ObjectLockConfigurationNotFound(`S3 Bucket ${Bucket} does not have an Object Lock configuration`);
38
+ }
39
+ return { ObjectLockConfiguration: configuration.reported, $metadata: {} };
40
+ }
41
+ }
@@ -12,5 +12,5 @@ export declare class HeadObjectLoader {
12
12
  /**
13
13
  * Describe an Object in the resolved Bucket.
14
14
  */
15
- describe(bucket: SimS3Bucket, key: string): Promise<SimHeadObjectCommandOutput>;
15
+ describe(bucket: SimS3Bucket, key: string, versionId?: string): Promise<SimHeadObjectCommandOutput>;
16
16
  }
@@ -1,5 +1,6 @@
1
1
  import { SimS3NotFound } from "../../error/sim-s3.error.js";
2
2
  import { simS3QuotedETag } from "../../object/s3-object-etag.js";
3
+ import { simS3ReadObjectVersion } from "../object/sim-s3-read-object-version.js";
3
4
  /**
4
5
  * Describes an authorized S3 Object without reading it out.
5
6
  *
@@ -12,17 +13,20 @@ export class HeadObjectLoader {
12
13
  /**
13
14
  * Describe an Object in the resolved Bucket.
14
15
  */
15
- async describe(bucket, key) {
16
- const object = await bucket.getObject(key);
17
- if (object === undefined) {
16
+ async describe(bucket, key, versionId) {
17
+ const read = await simS3ReadObjectVersion(bucket, key, versionId);
18
+ if (read === undefined) {
18
19
  throw new SimS3NotFound(`No S3 Object named ${key}`);
19
20
  }
21
+ const object = read.object;
20
22
  return {
21
23
  ...object.metadata.system,
22
24
  ContentLength: object.body.length,
23
25
  Metadata: object.metadata.userDefined,
24
26
  ETag: simS3QuotedETag(object.etag),
25
27
  LastModified: object.lastModified,
28
+ ...(read.versionId !== undefined && { VersionId: read.versionId }),
29
+ ...read.lock?.reported,
26
30
  $metadata: {},
27
31
  };
28
32
  }
@@ -1,4 +1,5 @@
1
1
  import type { SimResponseMetadata } from "../../../aws/metadata/response-metadata.type.js";
2
+ import type { SimS3ObjectLockOutput } from "../../bucket/lock/sim-s3-object-lock-output.js";
2
3
  import type { SimS3SystemMetadataOutput } from "../../object/s3-system-metadata-read.js";
3
4
  /**
4
5
  * Minimal structural sim S3 HeadObject command.
@@ -12,6 +13,11 @@ export interface SimHeadObjectCommand {
12
13
  export interface SimHeadObjectCommandInput {
13
14
  readonly Bucket?: string | undefined;
14
15
  readonly Key?: string | undefined;
16
+ /**
17
+ * The version to read. A request naming none reads the current version, and
18
+ * a Bucket keeping no versions answers the Object under the key.
19
+ */
20
+ readonly VersionId?: string | undefined;
15
21
  }
16
22
  /**
17
23
  * Minimal structural sim S3 HeadObject output.
@@ -20,10 +26,12 @@ export interface SimHeadObjectCommandInput {
20
26
  * the Object itself, so this is a GetObject output without its body and with
21
27
  * the length that body would have had.
22
28
  */
23
- export interface SimHeadObjectCommandOutput extends SimS3SystemMetadataOutput {
29
+ export interface SimHeadObjectCommandOutput extends SimS3SystemMetadataOutput, SimS3ObjectLockOutput {
24
30
  readonly ContentLength?: number;
25
31
  readonly Metadata?: Record<string, string>;
26
32
  readonly ETag?: string;
27
33
  readonly LastModified?: Date;
34
+ /** The version described, on a Bucket keeping versions. */
35
+ readonly VersionId?: string | undefined;
28
36
  readonly $metadata: SimResponseMetadata;
29
37
  }
@@ -44,6 +44,6 @@ export class HeadObjectCommandHandler {
44
44
  // Authorization runs before the key is looked up, so a denied caller
45
45
  // cannot learn whether an Object exists.
46
46
  this.authorizer.authorize(bucket, command.input.Key, options);
47
- return await this.loader.describe(bucket, command.input.Key);
47
+ return await this.loader.describe(bucket, command.input.Key, command.input.VersionId);
48
48
  }
49
49
  }
@@ -0,0 +1,31 @@
1
+ import type { SimS3Bucket } from "../../bucket/sim-s3-bucket.js";
2
+ import { SimS3ObjectVersion } from "../../bucket/versioning/sim-s3-object-version.js";
3
+ import type { SimS3DeleteMarkerSummary, SimS3ObjectVersionSummary } from "./list-object-versions.command.js";
4
+ /**
5
+ * The versions a listing reports, and how it describes each of them.
6
+ *
7
+ * A Bucket that keeps no versions still answers this operation. Real S3 gives
8
+ * every Object in one the null version id and marks it latest, so the listing
9
+ * of an unversioned Bucket reads as a version history one entry deep rather
10
+ * than as an error or an empty response.
11
+ */
12
+ export declare class ListObjectVersionsListing {
13
+ private readonly bucket;
14
+ constructor(bucket: SimS3Bucket);
15
+ /**
16
+ * Every version under a prefix, in the order a listing reports them.
17
+ */
18
+ versions(prefix?: string): Promise<readonly SimS3ObjectVersion[]>;
19
+ /**
20
+ * Describe the Objects among a page of versions.
21
+ */
22
+ objectSummaries(page: readonly SimS3ObjectVersion[]): readonly SimS3ObjectVersionSummary[];
23
+ /**
24
+ * Describe the delete markers among a page of versions.
25
+ */
26
+ deleteMarkerSummaries(page: readonly SimS3ObjectVersion[]): readonly SimS3DeleteMarkerSummary[];
27
+ /**
28
+ * Whether a version is the one a read of its key answers with.
29
+ */
30
+ private isLatest;
31
+ }
@@ -0,0 +1,55 @@
1
+ import { compareSimS3Keys } from "../../bucket/versioning/sim-s3-compare-keys.js";
2
+ import { SimS3ObjectVersion } from "../../bucket/versioning/sim-s3-object-version.js";
3
+ import { simS3DeleteMarkerSummaries, simS3ObjectVersionSummaries, } from "./list-object-versions-summaries.js";
4
+ /**
5
+ * The versions a listing reports, and how it describes each of them.
6
+ *
7
+ * A Bucket that keeps no versions still answers this operation. Real S3 gives
8
+ * every Object in one the null version id and marks it latest, so the listing
9
+ * of an unversioned Bucket reads as a version history one entry deep rather
10
+ * than as an error or an empty response.
11
+ */
12
+ export class ListObjectVersionsListing {
13
+ bucket;
14
+ constructor(bucket) {
15
+ this.bucket = bucket;
16
+ }
17
+ /**
18
+ * Every version under a prefix, in the order a listing reports them.
19
+ */
20
+ async versions(prefix) {
21
+ // Read the Objects first either way. That is what applies the lifecycle
22
+ // rules, and on a versioned Bucket it writes the delete marker an expiry
23
+ // leaves behind. Reading the history without it would report a version the
24
+ // rules have already expired as the current one.
25
+ const objects = await this.bucket.listObjects(prefix);
26
+ if (this.bucket.getVersions().keepsVersions) {
27
+ return this.bucket.getVersions().list(prefix);
28
+ }
29
+ return objects
30
+ .toSorted((left, right) => compareSimS3Keys(left.key, right.key))
31
+ .map((object) => SimS3ObjectVersion.nullVersionOf(object));
32
+ }
33
+ /**
34
+ * Describe the Objects among a page of versions.
35
+ */
36
+ objectSummaries(page) {
37
+ return simS3ObjectVersionSummaries(page, (version) => this.isLatest(version));
38
+ }
39
+ /**
40
+ * Describe the delete markers among a page of versions.
41
+ */
42
+ deleteMarkerSummaries(page) {
43
+ return simS3DeleteMarkerSummaries(page, (version) => this.isLatest(version));
44
+ }
45
+ /**
46
+ * Whether a version is the one a read of its key answers with.
47
+ */
48
+ isLatest(version) {
49
+ const versions = this.bucket.getVersions();
50
+ if (!versions.keepsVersions) {
51
+ return true;
52
+ }
53
+ return versions.current(version.key)?.versionId === version.versionId;
54
+ }
55
+ }
@@ -0,0 +1,17 @@
1
+ import type { SimS3ObjectVersion } from "../../bucket/versioning/sim-s3-object-version.js";
2
+ import type { SimS3DeleteMarkerSummary, SimS3ObjectVersionSummary } from "./list-object-versions.command.js";
3
+ /**
4
+ * Whether a version is the one a read of its key answers with.
5
+ */
6
+ export type SimS3IsLatestVersion = (version: SimS3ObjectVersion) => boolean;
7
+ /**
8
+ * Describe the Objects among a page of versions.
9
+ */
10
+ export declare function simS3ObjectVersionSummaries(page: readonly SimS3ObjectVersion[], isLatest: SimS3IsLatestVersion): readonly SimS3ObjectVersionSummary[];
11
+ /**
12
+ * Describe the delete markers among a page of versions.
13
+ *
14
+ * A marker holds no bytes, so it carries neither a size nor an ETag, which is
15
+ * why real S3 sends the two kinds in separate lists.
16
+ */
17
+ export declare function simS3DeleteMarkerSummaries(page: readonly SimS3ObjectVersion[], isLatest: SimS3IsLatestVersion): readonly SimS3DeleteMarkerSummary[];
@@ -0,0 +1,34 @@
1
+ import { simS3QuotedETag } from "../../object/s3-object-etag.js";
2
+ import { simS3DefaultStorageClass } from "../../object/s3-object-summary.js";
3
+ /**
4
+ * Describe the Objects among a page of versions.
5
+ */
6
+ export function simS3ObjectVersionSummaries(page, isLatest) {
7
+ return page
8
+ .filter((version) => !version.isDeleteMarker)
9
+ .map((version) => ({
10
+ Key: version.key,
11
+ VersionId: version.versionId,
12
+ IsLatest: isLatest(version),
13
+ LastModified: version.lastModified,
14
+ ETag: simS3QuotedETag(version.object.etag),
15
+ Size: version.object.body.length,
16
+ StorageClass: simS3DefaultStorageClass,
17
+ }));
18
+ }
19
+ /**
20
+ * Describe the delete markers among a page of versions.
21
+ *
22
+ * A marker holds no bytes, so it carries neither a size nor an ETag, which is
23
+ * why real S3 sends the two kinds in separate lists.
24
+ */
25
+ export function simS3DeleteMarkerSummaries(page, isLatest) {
26
+ return page
27
+ .filter((version) => version.isDeleteMarker)
28
+ .map((version) => ({
29
+ Key: version.key,
30
+ VersionId: version.versionId,
31
+ IsLatest: isLatest(version),
32
+ LastModified: version.lastModified,
33
+ }));
34
+ }