@kensio/yulin 1.21.0 → 1.21.1

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 (494) 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/sqs/cfn/queue/sim-cfn-sqs-queue-encryption-rules.d.ts +15 -0
  474. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-encryption-rules.js +33 -0
  475. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-properties.d.ts +16 -0
  476. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-properties.js +33 -1
  477. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-names.d.ts +12 -6
  478. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-names.js +18 -13
  479. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-rules.d.ts +1 -0
  480. package/dist/service/sqs/cfn/queue/sim-cfn-sqs-queue-property-rules.js +9 -1
  481. package/dist/terraform/map/sim-tf-map-sqs-redrive.d.ts +4 -3
  482. package/dist/terraform/map/sim-tf-map-sqs-redrive.js +4 -3
  483. package/docs/README.md +1 -0
  484. package/docs/services/backup/README.md +553 -0
  485. package/docs/services/cloudformation/README.md +16 -6
  486. package/docs/services/cloudwatch/README.md +159 -3
  487. package/docs/services/cognito/README.md +370 -7
  488. package/docs/services/lambda/README.md +28 -0
  489. package/docs/services/logs/README.md +284 -3
  490. package/docs/services/s3/README.md +463 -20
  491. package/docs/services/scheduler/README.md +48 -9
  492. package/docs/services/sqs/README.md +47 -10
  493. package/llms.txt +1 -0
  494. package/package.json +7 -2
@@ -0,0 +1,85 @@
1
+ import { embeddedMetricList, embeddedMetricNumber, embeddedMetricRecord, embeddedMetricString, } from "./sim-logs-embedded-metric-json.js";
2
+ /**
3
+ * The property an Embedded Metric Format document carries its metadata under.
4
+ *
5
+ * A log event without it is an ordinary line, and the great majority of lines
6
+ * in a log group are. Looking for this before parsing anything is what keeps
7
+ * the check on the write path cheap.
8
+ */
9
+ export const embeddedMetricMetadataKey = "_aws";
10
+ /**
11
+ * Read a log event's message as an EMF document, or answer undefined.
12
+ *
13
+ * Anything that is not JSON, is not an object, or carries no usable `_aws`
14
+ * metadata is an ordinary log line. It is stored and left alone rather than
15
+ * refused, because a log group is full of lines that were never metrics.
16
+ */
17
+ export function simLogsEmbeddedMetricDocument(message) {
18
+ if (!message.includes(embeddedMetricMetadataKey)) {
19
+ return undefined;
20
+ }
21
+ const parsed = parseObject(message);
22
+ const metadata = embeddedMetricRecord(parsed?.get(embeddedMetricMetadataKey));
23
+ if (parsed === undefined || metadata === undefined) {
24
+ return undefined;
25
+ }
26
+ const directives = embeddedMetricList(metadata.get("CloudWatchMetrics"), directiveOf);
27
+ return directives.length === 0
28
+ ? undefined
29
+ : {
30
+ timestamp: embeddedMetricNumber(metadata.get("Timestamp")),
31
+ directives,
32
+ values: parsed,
33
+ };
34
+ }
35
+ function parseObject(message) {
36
+ try {
37
+ return embeddedMetricRecord(JSON.parse(message));
38
+ }
39
+ catch {
40
+ return undefined;
41
+ }
42
+ }
43
+ function directiveOf(value) {
44
+ const entry = embeddedMetricRecord(value);
45
+ const namespace = embeddedMetricString(entry?.get("Namespace"));
46
+ if (entry === undefined || namespace === undefined) {
47
+ return undefined;
48
+ }
49
+ const dimensions = entry.get("Dimensions");
50
+ if (dimensions !== undefined && !Array.isArray(dimensions)) {
51
+ return undefined;
52
+ }
53
+ return {
54
+ namespace,
55
+ declaresDimensions: Array.isArray(dimensions) && dimensions.length > 0,
56
+ dimensionSets: embeddedMetricList(dimensions, dimensionSetOf),
57
+ metrics: embeddedMetricList(entry.get("Metrics"), metricOf),
58
+ };
59
+ }
60
+ /**
61
+ * One dimension set, or undefined where it is not a list of names.
62
+ *
63
+ * A member that is not a string takes the whole set with it. Keeping the ones
64
+ * that were strings would publish under a narrower identity than the document
65
+ * asked for, which is the same trouble as dropping a single dimension.
66
+ */
67
+ function dimensionSetOf(value) {
68
+ if (!Array.isArray(value)) {
69
+ return undefined;
70
+ }
71
+ const names = value.map((name) => embeddedMetricString(name));
72
+ return names.every((name) => name !== undefined) ? names : undefined;
73
+ }
74
+ function metricOf(value) {
75
+ const entry = embeddedMetricRecord(value);
76
+ const name = embeddedMetricString(entry?.get("Name"));
77
+ if (entry === undefined || name === undefined) {
78
+ return undefined;
79
+ }
80
+ return {
81
+ name,
82
+ unit: embeddedMetricString(entry.get("Unit")),
83
+ storageResolution: embeddedMetricNumber(entry.get("StorageResolution")),
84
+ };
85
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * The JSON readers an Embedded Metric Format document is taken apart with.
3
+ *
4
+ * A document is written by whatever produced the log line, so nothing about
5
+ * its shape can be assumed. Each of these answers undefined for a value that
6
+ * is not what the format calls for, and the caller decides whether that makes
7
+ * the document unreadable or just that one metric unpublishable.
8
+ */
9
+ /**
10
+ * An object's own properties as a map, or undefined for anything else.
11
+ */
12
+ export declare function embeddedMetricRecord(value: unknown): Map<string, unknown> | undefined;
13
+ /**
14
+ * A string, or undefined for anything else.
15
+ */
16
+ export declare function embeddedMetricString(value: unknown): string | undefined;
17
+ /**
18
+ * A finite number, or undefined for anything else.
19
+ */
20
+ export declare function embeddedMetricNumber(value: unknown): number | undefined;
21
+ /**
22
+ * Read every entry of a list through a reader, dropping the unreadable ones.
23
+ */
24
+ export declare function embeddedMetricList<T>(value: unknown, read: (entry: unknown) => T | undefined): readonly T[];
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The JSON readers an Embedded Metric Format document is taken apart with.
3
+ *
4
+ * A document is written by whatever produced the log line, so nothing about
5
+ * its shape can be assumed. Each of these answers undefined for a value that
6
+ * is not what the format calls for, and the caller decides whether that makes
7
+ * the document unreadable or just that one metric unpublishable.
8
+ */
9
+ /**
10
+ * An object's own properties as a map, or undefined for anything else.
11
+ */
12
+ export function embeddedMetricRecord(value) {
13
+ return typeof value === "object" && value !== null && !Array.isArray(value)
14
+ ? new Map(Object.entries(value))
15
+ : undefined;
16
+ }
17
+ /**
18
+ * A string, or undefined for anything else.
19
+ */
20
+ export function embeddedMetricString(value) {
21
+ return typeof value === "string" ? value : undefined;
22
+ }
23
+ /**
24
+ * A finite number, or undefined for anything else.
25
+ */
26
+ export function embeddedMetricNumber(value) {
27
+ return typeof value === "number" && Number.isFinite(value)
28
+ ? value
29
+ : undefined;
30
+ }
31
+ /**
32
+ * Read every entry of a list through a reader, dropping the unreadable ones.
33
+ */
34
+ export function embeddedMetricList(value, read) {
35
+ if (!Array.isArray(value)) {
36
+ return [];
37
+ }
38
+ return value
39
+ .map((entry) => read(entry))
40
+ .filter((entry) => entry !== undefined);
41
+ }
@@ -0,0 +1,20 @@
1
+ import type { SimLogsMetricDimension } from "../sim-logs-metric-datapoint.js";
2
+ import type { SimLogsEmbeddedMetricDeclaration, SimLogsEmbeddedMetricDocument } from "./sim-logs-embedded-metric-document.js";
3
+ /**
4
+ * Why a metric an EMF document declared could not be published.
5
+ */
6
+ export type SimLogsEmbeddedMetricRefusal = string;
7
+ /**
8
+ * The values a metric declaration names, or the reason there are none.
9
+ *
10
+ * EMF carries a metric's value as a top-level property of the same document,
11
+ * either as one number or as a list of them.
12
+ */
13
+ export declare function embeddedMetricValues(document: SimLogsEmbeddedMetricDocument, metric: SimLogsEmbeddedMetricDeclaration): readonly number[] | SimLogsEmbeddedMetricRefusal;
14
+ /**
15
+ * One dimension set, or undefined where the document names a key it lacks.
16
+ *
17
+ * A dimension quietly dropped would put the datapoint under an identity no
18
+ * alarm is watching, so the whole set goes rather than part of it.
19
+ */
20
+ export declare function embeddedMetricDimensions(document: SimLogsEmbeddedMetricDocument, keys: readonly string[]): readonly SimLogsMetricDimension[] | undefined;
@@ -0,0 +1,39 @@
1
+ /**
2
+ * The resolution real CloudWatch reads as a high resolution metric.
3
+ */
4
+ const highStorageResolution = 1;
5
+ /**
6
+ * The values a metric declaration names, or the reason there are none.
7
+ *
8
+ * EMF carries a metric's value as a top-level property of the same document,
9
+ * either as one number or as a list of them.
10
+ */
11
+ export function embeddedMetricValues(document, metric) {
12
+ if (metric.storageResolution === highStorageResolution) {
13
+ return ("StorageResolution 1 asks for a high resolution metric, and every " +
14
+ "period in this simulated CloudWatch is a whole number of minutes.");
15
+ }
16
+ const raw = document.values.get(metric.name);
17
+ const values = (Array.isArray(raw) ? raw : [raw]).filter((value) => typeof value === "number" && Number.isFinite(value));
18
+ return values.length === 0
19
+ ? `The document declares ${metric.name} and carries no number under that ` +
20
+ `name, so there is no value to publish.`
21
+ : values;
22
+ }
23
+ /**
24
+ * One dimension set, or undefined where the document names a key it lacks.
25
+ *
26
+ * A dimension quietly dropped would put the datapoint under an identity no
27
+ * alarm is watching, so the whole set goes rather than part of it.
28
+ */
29
+ export function embeddedMetricDimensions(document, keys) {
30
+ const dimensions = [];
31
+ for (const name of keys) {
32
+ const value = document.values.get(name);
33
+ if (typeof value !== "string") {
34
+ return undefined;
35
+ }
36
+ dimensions.push({ name, value });
37
+ }
38
+ return dimensions;
39
+ }
@@ -0,0 +1,25 @@
1
+ /**
2
+ * One dimension on a metric a metric filter publishes.
3
+ */
4
+ export interface SimLogsMetricDimension {
5
+ readonly name: string;
6
+ readonly value: string;
7
+ }
8
+ /**
9
+ * One metric datapoint a metric filter's transformation produced from a log
10
+ * event.
11
+ *
12
+ * This is what simulated CloudWatch Logs hands to simulated CloudWatch. The
13
+ * timestamp is the instant CloudWatch Logs took the event, rather than the
14
+ * instant the datapoint reaches the metric store. Publication happens on the
15
+ * background scheduler, so a clock that moved in between would otherwise put
16
+ * the datapoint in a later period than the log line it counts.
17
+ */
18
+ export interface SimLogsMetricDatapoint {
19
+ readonly namespace: string;
20
+ readonly metricName: string;
21
+ readonly value: number;
22
+ readonly timestamp: number;
23
+ readonly unit: string | undefined;
24
+ readonly dimensions: readonly SimLogsMetricDimension[];
25
+ }
@@ -0,0 +1,62 @@
1
+ import type { BackgroundScheduler } from "../../../util/background/background.js";
2
+ import type { SimLogsStoredEvent } from "../event/sim-logs-event.js";
3
+ import type { SimLogsLogGroup } from "../group/sim-logs-log-group.js";
4
+ import { type SimLogsMetricPublicationFailure } from "./sim-logs-metric-publication-failure.js";
5
+ import type { SimLogsMetricPublications } from "./sim-logs-metric-publications.js";
6
+ interface SimLogsMetricFanOutProperties {
7
+ readonly publications: SimLogsMetricPublications | undefined;
8
+ readonly background: BackgroundScheduler;
9
+ }
10
+ /**
11
+ * Turns events written to a log group into metric datapoints.
12
+ *
13
+ * Two things ask for them. A metric filter on the group counts the events it
14
+ * matches, and an event that is itself an Embedded Metric Format document
15
+ * carries its own. Real CloudWatch reads both without being asked.
16
+ *
17
+ * Publication happens on the background scheduler, for the reason subscription
18
+ * delivery does. Real CloudWatch Logs answers `PutLogEvents` whether or not
19
+ * the metric took the datapoint, and a metric that cannot be written must not
20
+ * fail the write that produced it. `simAws.backgroundTasksComplete()` is what
21
+ * waits for it.
22
+ */
23
+ export declare class SimLogsMetricFanOut {
24
+ #private;
25
+ constructor(properties: SimLogsMetricFanOutProperties);
26
+ /**
27
+ * Every publication this scope could not make.
28
+ *
29
+ * A failed publication is invisible in an account, where it becomes a metric
30
+ * nobody is watching. Keeping it is what lets a test find out that the
31
+ * metrics it set up never wrote anything.
32
+ */
33
+ get failures(): readonly SimLogsMetricPublicationFailure[];
34
+ /**
35
+ * Check a metric filter could publish at all, before one is put.
36
+ *
37
+ * A simulated CloudWatch Logs built on its own has no CloudWatch to write
38
+ * into, and a filter that accepts its configuration and publishes nothing is
39
+ * the hardest kind of thing to find.
40
+ */
41
+ checkPublishable(): void;
42
+ /**
43
+ * Schedule the datapoints a batch of events produced.
44
+ *
45
+ * A whole batch goes to each metric filter at once, because a filter
46
+ * aggregates its default value over a period rather than over one event. An
47
+ * embedded document is read one event at a time, because each carries its
48
+ * own metrics and its own timestamp.
49
+ *
50
+ * A CloudWatch Logs with nowhere to publish reads nothing. It can hold no
51
+ * metric filter, and a Powertools log line written to one is an ordinary log
52
+ * line rather than a failure worth recording.
53
+ */
54
+ written(group: SimLogsLogGroup, events: readonly SimLogsStoredEvent[]): void;
55
+ /**
56
+ * Schedule the datapoints the events carried as EMF documents.
57
+ */
58
+ private writtenEmbedded;
59
+ private schedule;
60
+ private recordFailure;
61
+ }
62
+ export {};
@@ -0,0 +1,116 @@
1
+ import { SimLogsUnsupportedOperationException } from "../error/sim-logs.error.js";
2
+ import { simLogsEmbeddedMetricReading } from "./emf/sim-logs-embedded-metric-datapoints.js";
3
+ import { metricFilterSource, simLogsEmbeddedMetricSource, } from "./sim-logs-metric-publication-failure.js";
4
+ /**
5
+ * Turns events written to a log group into metric datapoints.
6
+ *
7
+ * Two things ask for them. A metric filter on the group counts the events it
8
+ * matches, and an event that is itself an Embedded Metric Format document
9
+ * carries its own. Real CloudWatch reads both without being asked.
10
+ *
11
+ * Publication happens on the background scheduler, for the reason subscription
12
+ * delivery does. Real CloudWatch Logs answers `PutLogEvents` whether or not
13
+ * the metric took the datapoint, and a metric that cannot be written must not
14
+ * fail the write that produced it. `simAws.backgroundTasksComplete()` is what
15
+ * waits for it.
16
+ */
17
+ export class SimLogsMetricFanOut {
18
+ #publications;
19
+ #background;
20
+ #failures = [];
21
+ constructor(properties) {
22
+ this.#publications = properties.publications;
23
+ this.#background = properties.background;
24
+ }
25
+ /**
26
+ * Every publication this scope could not make.
27
+ *
28
+ * A failed publication is invisible in an account, where it becomes a metric
29
+ * nobody is watching. Keeping it is what lets a test find out that the
30
+ * metrics it set up never wrote anything.
31
+ */
32
+ get failures() {
33
+ return this.#failures;
34
+ }
35
+ /**
36
+ * Check a metric filter could publish at all, before one is put.
37
+ *
38
+ * A simulated CloudWatch Logs built on its own has no CloudWatch to write
39
+ * into, and a filter that accepts its configuration and publishes nothing is
40
+ * the hardest kind of thing to find.
41
+ */
42
+ checkPublishable() {
43
+ if (this.#publications === undefined) {
44
+ throw new SimLogsUnsupportedOperationException("This simulated CloudWatch Logs has no simulated CloudWatch to " +
45
+ "publish a metric filter's datapoints into. Reach CloudWatch Logs " +
46
+ "through a SimAws Account Region scope for a metric filter to " +
47
+ "publish.");
48
+ }
49
+ }
50
+ /**
51
+ * Schedule the datapoints a batch of events produced.
52
+ *
53
+ * A whole batch goes to each metric filter at once, because a filter
54
+ * aggregates its default value over a period rather than over one event. An
55
+ * embedded document is read one event at a time, because each carries its
56
+ * own metrics and its own timestamp.
57
+ *
58
+ * A CloudWatch Logs with nowhere to publish reads nothing. It can hold no
59
+ * metric filter, and a Powertools log line written to one is an ordinary log
60
+ * line rather than a failure worth recording.
61
+ */
62
+ written(group, events) {
63
+ if (this.#publications === undefined) {
64
+ return;
65
+ }
66
+ for (const filter of group.metricFilters.all) {
67
+ const datapoints = filter.datapoints(events);
68
+ if (datapoints.length > 0) {
69
+ this.schedule(group.logGroupName, metricFilterSource(filter.filterName), datapoints);
70
+ }
71
+ }
72
+ this.writtenEmbedded(group.logGroupName, events);
73
+ }
74
+ /**
75
+ * Schedule the datapoints the events carried as EMF documents.
76
+ */
77
+ writtenEmbedded(logGroupName, events) {
78
+ const datapoints = [];
79
+ for (const event of events) {
80
+ const reading = simLogsEmbeddedMetricReading(event.message, event.ingestionTime);
81
+ datapoints.push(...reading.datapoints);
82
+ for (const skip of reading.skipped) {
83
+ this.#failures.push({
84
+ logGroupName,
85
+ source: simLogsEmbeddedMetricSource,
86
+ ...skip,
87
+ });
88
+ }
89
+ }
90
+ if (datapoints.length > 0) {
91
+ this.schedule(logGroupName, simLogsEmbeddedMetricSource, datapoints);
92
+ }
93
+ }
94
+ schedule(logGroupName, source, datapoints) {
95
+ this.#background.schedule(async () => {
96
+ try {
97
+ await this.#publications?.publish(datapoints);
98
+ }
99
+ catch (error) {
100
+ this.recordFailure(logGroupName, source, datapoints, error);
101
+ }
102
+ });
103
+ }
104
+ recordFailure(logGroupName, source, datapoints, error) {
105
+ const reason = error instanceof Error ? error.message : String(error);
106
+ for (const datapoint of datapoints) {
107
+ this.#failures.push({
108
+ logGroupName,
109
+ source,
110
+ metricNamespace: datapoint.namespace,
111
+ metricName: datapoint.metricName,
112
+ reason,
113
+ });
114
+ }
115
+ }
116
+ }
@@ -0,0 +1,17 @@
1
+ import type { SimLogsMetricFilter } from "./sim-logs-metric-filter.js";
2
+ /**
3
+ * What a DescribeMetricFilters request is selecting on, beyond the log group.
4
+ */
5
+ export interface SimLogsMetricFilterSelection {
6
+ readonly filterNamePrefix?: string | undefined;
7
+ readonly metricName?: string | undefined;
8
+ readonly metricNamespace?: string | undefined;
9
+ }
10
+ /**
11
+ * The filters a request selects, by name prefix and by the metric they write.
12
+ *
13
+ * Selecting on the metric is what makes a request naming no log group useful.
14
+ * It is how a caller finds every filter writing to a metric it has an alarm
15
+ * on, wherever in the account those filters were put.
16
+ */
17
+ export declare function simLogsSelectedMetricFilters(filters: readonly SimLogsMetricFilter[], selection: SimLogsMetricFilterSelection): readonly SimLogsMetricFilter[];
@@ -0,0 +1,17 @@
1
+ /**
2
+ * The filters a request selects, by name prefix and by the metric they write.
3
+ *
4
+ * Selecting on the metric is what makes a request naming no log group useful.
5
+ * It is how a caller finds every filter writing to a metric it has an alarm
6
+ * on, wherever in the account those filters were put.
7
+ */
8
+ export function simLogsSelectedMetricFilters(filters, selection) {
9
+ return filters.filter((filter) => filter.filterName.startsWith(selection.filterNamePrefix ?? "") &&
10
+ writesTheMetric(filter, selection));
11
+ }
12
+ function writesTheMetric(filter, selection) {
13
+ return filter.transformations.some((transformation) => (selection.metricNamespace === undefined ||
14
+ transformation.metricNamespace === selection.metricNamespace) &&
15
+ (selection.metricName === undefined ||
16
+ transformation.metricName === selection.metricName));
17
+ }
@@ -0,0 +1,35 @@
1
+ import type { SimLogsMetricFilter } from "./sim-logs-metric-filter.js";
2
+ /**
3
+ * The metric filters on one log group.
4
+ *
5
+ * They belong to the group the way its subscription filters and its streams
6
+ * do. A metric filter has no identity outside the group it watches, and
7
+ * deleting the group takes its filters with it.
8
+ */
9
+ export declare class SimLogsMetricFilterStore {
10
+ #private;
11
+ /**
12
+ * Every filter on this group, in the order they were put.
13
+ */
14
+ get all(): readonly SimLogsMetricFilter[];
15
+ /**
16
+ * How many filters this group has, which is what `DescribeLogGroups` reports
17
+ * as `metricFilterCount`.
18
+ */
19
+ get count(): number;
20
+ /**
21
+ * Find a filter on this group by name.
22
+ */
23
+ find(filterName: string): SimLogsMetricFilter | undefined;
24
+ /**
25
+ * Put a filter, replacing one of the same name.
26
+ *
27
+ * Putting a filter already there by name is an update rather than a second
28
+ * filter, which is what makes `PutMetricFilter` the way to change a pattern.
29
+ */
30
+ put(filter: SimLogsMetricFilter): void;
31
+ /**
32
+ * Remove a filter by name, refusing one that was never there.
33
+ */
34
+ delete(filterName: string): void;
35
+ }
@@ -0,0 +1,47 @@
1
+ import { SimLogsResourceNotFoundException } from "../error/sim-logs.error.js";
2
+ /**
3
+ * The metric filters on one log group.
4
+ *
5
+ * They belong to the group the way its subscription filters and its streams
6
+ * do. A metric filter has no identity outside the group it watches, and
7
+ * deleting the group takes its filters with it.
8
+ */
9
+ export class SimLogsMetricFilterStore {
10
+ #filters = new Map();
11
+ /**
12
+ * Every filter on this group, in the order they were put.
13
+ */
14
+ get all() {
15
+ return this.#filters.values().toArray();
16
+ }
17
+ /**
18
+ * How many filters this group has, which is what `DescribeLogGroups` reports
19
+ * as `metricFilterCount`.
20
+ */
21
+ get count() {
22
+ return this.#filters.size;
23
+ }
24
+ /**
25
+ * Find a filter on this group by name.
26
+ */
27
+ find(filterName) {
28
+ return this.#filters.get(filterName);
29
+ }
30
+ /**
31
+ * Put a filter, replacing one of the same name.
32
+ *
33
+ * Putting a filter already there by name is an update rather than a second
34
+ * filter, which is what makes `PutMetricFilter` the way to change a pattern.
35
+ */
36
+ put(filter) {
37
+ this.#filters.set(filter.filterName, filter);
38
+ }
39
+ /**
40
+ * Remove a filter by name, refusing one that was never there.
41
+ */
42
+ delete(filterName) {
43
+ if (!this.#filters.delete(filterName)) {
44
+ throw new SimLogsResourceNotFoundException("The specified metric filter does not exist.");
45
+ }
46
+ }
47
+ }
@@ -0,0 +1,49 @@
1
+ import type { SimLogsStoredEvent } from "../event/sim-logs-event.js";
2
+ import type { SimLogsMetricDatapoint } from "./sim-logs-metric-datapoint.js";
3
+ import type { SimLogsMetricTransformation } from "./sim-logs-metric-transformation.js";
4
+ interface SimLogsMetricFilterProperties {
5
+ readonly filterName: string;
6
+ readonly logGroupName: string;
7
+ readonly filterPattern: string | undefined;
8
+ readonly transformations: readonly SimLogsMetricTransformation[];
9
+ readonly creationTime: number;
10
+ }
11
+ /**
12
+ * One metric filter on a log group.
13
+ *
14
+ * The pattern is compiled once, when the filter is put, the way a subscription
15
+ * filter's is. A pattern this simulator cannot read is refused there rather
16
+ * than on the first event that happens to arrive.
17
+ */
18
+ export declare class SimLogsMetricFilter {
19
+ #private;
20
+ readonly filterName: string;
21
+ readonly logGroupName: string;
22
+ readonly filterPatternText: string;
23
+ readonly transformations: readonly SimLogsMetricTransformation[];
24
+ readonly creationTime: number;
25
+ constructor(properties: SimLogsMetricFilterProperties);
26
+ /**
27
+ * Whether this filter matches an event's message.
28
+ */
29
+ matches(message: string): boolean;
30
+ /**
31
+ * The datapoints a batch of log events publishes through this filter.
32
+ *
33
+ * A matching event publishes one datapoint per transformation, stamped with
34
+ * the instant CloudWatch Logs took it.
35
+ *
36
+ * A default value is published once for a period that took events and
37
+ * matched none of them, rather than once per event that missed. That is what
38
+ * real CloudWatch Logs reports: a minute with two records and one match
39
+ * counts one, and a minute with two records and no match reports the default
40
+ * once. Publishing per event would inflate `SampleCount` and change what an
41
+ * alarm over the metric decides.
42
+ */
43
+ datapoints(events: readonly SimLogsStoredEvent[]): readonly SimLogsMetricDatapoint[];
44
+ /**
45
+ * What one period of events publishes.
46
+ */
47
+ private periodDatapoints;
48
+ }
49
+ export {};