@metronome/sdk 0.3.0 → 2.0.0
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.
- package/CHANGELOG.md +113 -28
- package/README.md +123 -51
- package/api-promise.d.mts +2 -0
- package/api-promise.d.mts.map +1 -0
- package/api-promise.d.ts +2 -0
- package/api-promise.d.ts.map +1 -0
- package/api-promise.js +6 -0
- package/api-promise.js.map +1 -0
- package/api-promise.mjs +2 -0
- package/api-promise.mjs.map +1 -0
- package/bin/cli +46 -0
- package/bin/migration-config.json +6 -0
- package/client.d.mts +232 -0
- package/client.d.mts.map +1 -0
- package/client.d.ts +232 -0
- package/client.d.ts.map +1 -0
- package/client.js +464 -0
- package/client.js.map +1 -0
- package/client.mjs +460 -0
- package/client.mjs.map +1 -0
- package/core/api-promise.d.mts +46 -0
- package/core/api-promise.d.mts.map +1 -0
- package/core/api-promise.d.ts +46 -0
- package/core/api-promise.d.ts.map +1 -0
- package/core/api-promise.js +74 -0
- package/core/api-promise.js.map +1 -0
- package/core/api-promise.mjs +70 -0
- package/core/api-promise.mjs.map +1 -0
- package/core/error.d.mts +46 -0
- package/core/error.d.mts.map +1 -0
- package/core/error.d.ts +46 -0
- package/core/error.d.ts.map +1 -0
- package/core/error.js +113 -0
- package/core/error.js.map +1 -0
- package/core/error.mjs +97 -0
- package/core/error.mjs.map +1 -0
- package/core/pagination.d.mts +137 -0
- package/core/pagination.d.mts.map +1 -0
- package/core/pagination.d.ts +137 -0
- package/core/pagination.d.ts.map +1 -0
- package/core/pagination.js +158 -0
- package/core/pagination.js.map +1 -0
- package/core/pagination.mjs +150 -0
- package/core/pagination.mjs.map +1 -0
- package/core/resource.d.mts +6 -0
- package/core/resource.d.mts.map +1 -0
- package/core/resource.d.ts +6 -0
- package/core/resource.d.ts.map +1 -0
- package/core/resource.js +11 -0
- package/core/resource.js.map +1 -0
- package/core/resource.mjs +7 -0
- package/core/resource.mjs.map +1 -0
- package/core/uploads.d.mts +3 -0
- package/core/uploads.d.mts.map +1 -0
- package/core/uploads.d.ts +3 -0
- package/core/uploads.d.ts.map +1 -0
- package/core/uploads.js +6 -0
- package/core/uploads.js.map +1 -0
- package/core/uploads.mjs +2 -0
- package/core/uploads.mjs.map +1 -0
- package/error.d.mts +2 -0
- package/error.d.mts.map +1 -0
- package/error.d.ts +1 -46
- package/error.d.ts.map +1 -1
- package/error.js +3 -110
- package/error.js.map +1 -1
- package/error.mjs +1 -96
- package/error.mjs.map +1 -1
- package/index.d.mts +7 -144
- package/index.d.mts.map +1 -0
- package/index.d.ts +6 -143
- package/index.d.ts.map +1 -1
- package/index.js +14 -120
- package/index.js.map +1 -1
- package/index.mjs +6 -93
- package/index.mjs.map +1 -1
- package/internal/builtin-types.d.mts +73 -0
- package/internal/builtin-types.d.mts.map +1 -0
- package/internal/builtin-types.d.ts +73 -0
- package/internal/builtin-types.d.ts.map +1 -0
- package/internal/builtin-types.js +4 -0
- package/internal/builtin-types.js.map +1 -0
- package/internal/builtin-types.mjs +3 -0
- package/internal/builtin-types.mjs.map +1 -0
- package/internal/detect-platform.d.mts +15 -0
- package/internal/detect-platform.d.mts.map +1 -0
- package/internal/detect-platform.d.ts +15 -0
- package/internal/detect-platform.d.ts.map +1 -0
- package/internal/detect-platform.js +162 -0
- package/internal/detect-platform.js.map +1 -0
- package/internal/detect-platform.mjs +157 -0
- package/internal/detect-platform.mjs.map +1 -0
- package/internal/errors.d.mts +3 -0
- package/internal/errors.d.mts.map +1 -0
- package/internal/errors.d.ts +3 -0
- package/internal/errors.d.ts.map +1 -0
- package/internal/errors.js +41 -0
- package/internal/errors.js.map +1 -0
- package/internal/errors.mjs +36 -0
- package/internal/errors.mjs.map +1 -0
- package/internal/headers.d.mts +26 -0
- package/internal/headers.d.mts.map +1 -0
- package/internal/headers.d.ts +26 -0
- package/internal/headers.d.ts.map +1 -0
- package/internal/headers.js +120 -0
- package/internal/headers.js.map +1 -0
- package/internal/headers.mjs +112 -0
- package/internal/headers.mjs.map +1 -0
- package/internal/parse.d.mts +12 -0
- package/internal/parse.d.mts.map +1 -0
- package/internal/parse.d.ts +12 -0
- package/internal/parse.d.ts.map +1 -0
- package/internal/parse.js +35 -0
- package/internal/parse.js.map +1 -0
- package/internal/parse.mjs +32 -0
- package/internal/parse.mjs.map +1 -0
- package/internal/qs/formats.d.mts +7 -0
- package/internal/qs/formats.d.mts.map +1 -0
- package/internal/qs/formats.d.ts +1 -0
- package/internal/qs/formats.d.ts.map +1 -1
- package/internal/qs/formats.js +4 -2
- package/internal/qs/formats.js.map +1 -1
- package/internal/qs/formats.mjs +2 -1
- package/internal/qs/formats.mjs.map +1 -1
- package/internal/qs/index.d.mts +10 -0
- package/internal/qs/index.d.mts.map +1 -0
- package/internal/qs/index.d.ts.map +1 -1
- package/internal/qs/stringify.d.mts +3 -0
- package/internal/qs/stringify.d.mts.map +1 -0
- package/internal/qs/stringify.d.ts.map +1 -1
- package/internal/qs/stringify.js +16 -19
- package/internal/qs/stringify.js.map +1 -1
- package/internal/qs/stringify.mjs +17 -19
- package/internal/qs/stringify.mjs.map +1 -1
- package/internal/qs/types.d.mts +57 -0
- package/internal/qs/types.d.mts.map +1 -0
- package/internal/qs/utils.d.mts +15 -0
- package/internal/qs/utils.d.mts.map +1 -0
- package/internal/qs/utils.d.ts +1 -0
- package/internal/qs/utils.d.ts.map +1 -1
- package/internal/qs/utils.js +22 -21
- package/internal/qs/utils.js.map +1 -1
- package/internal/qs/utils.mjs +12 -12
- package/internal/qs/utils.mjs.map +1 -1
- package/internal/request-options.d.mts +75 -0
- package/internal/request-options.d.mts.map +1 -0
- package/internal/request-options.d.ts +75 -0
- package/internal/request-options.d.ts.map +1 -0
- package/internal/request-options.js +14 -0
- package/internal/request-options.js.map +1 -0
- package/internal/request-options.mjs +10 -0
- package/internal/request-options.mjs.map +1 -0
- package/internal/shim-types.d.mts +17 -0
- package/internal/shim-types.d.mts.map +1 -0
- package/internal/shim-types.d.ts +17 -0
- package/internal/shim-types.d.ts.map +1 -0
- package/internal/shim-types.js +4 -0
- package/internal/shim-types.js.map +1 -0
- package/internal/shim-types.mjs +3 -0
- package/internal/shim-types.mjs.map +1 -0
- package/internal/shims.d.mts +20 -0
- package/internal/shims.d.mts.map +1 -0
- package/internal/shims.d.ts +20 -0
- package/internal/shims.d.ts.map +1 -0
- package/internal/shims.js +92 -0
- package/internal/shims.js.map +1 -0
- package/internal/shims.mjs +85 -0
- package/internal/shims.mjs.map +1 -0
- package/internal/to-file.d.mts +45 -0
- package/internal/to-file.d.mts.map +1 -0
- package/internal/to-file.d.ts +45 -0
- package/internal/to-file.d.ts.map +1 -0
- package/internal/to-file.js +91 -0
- package/internal/to-file.js.map +1 -0
- package/internal/to-file.mjs +88 -0
- package/internal/to-file.mjs.map +1 -0
- package/internal/tslib.js +81 -0
- package/internal/tslib.mjs +17 -0
- package/internal/types.d.mts +69 -0
- package/internal/types.d.mts.map +1 -0
- package/internal/types.d.ts +69 -0
- package/internal/types.d.ts.map +1 -0
- package/internal/types.js +4 -0
- package/internal/types.js.map +1 -0
- package/internal/types.mjs +3 -0
- package/internal/types.mjs.map +1 -0
- package/internal/uploads.d.mts +42 -0
- package/internal/uploads.d.mts.map +1 -0
- package/internal/uploads.d.ts +42 -0
- package/internal/uploads.d.ts.map +1 -0
- package/internal/uploads.js +141 -0
- package/internal/uploads.js.map +1 -0
- package/internal/uploads.mjs +131 -0
- package/internal/uploads.mjs.map +1 -0
- package/internal/utils/base64.d.mts +3 -0
- package/internal/utils/base64.d.mts.map +1 -0
- package/internal/utils/base64.d.ts +3 -0
- package/internal/utils/base64.d.ts.map +1 -0
- package/internal/utils/base64.js +38 -0
- package/internal/utils/base64.js.map +1 -0
- package/internal/utils/base64.mjs +33 -0
- package/internal/utils/base64.mjs.map +1 -0
- package/internal/utils/bytes.d.mts +4 -0
- package/internal/utils/bytes.d.mts.map +1 -0
- package/internal/utils/bytes.d.ts +4 -0
- package/internal/utils/bytes.d.ts.map +1 -0
- package/internal/utils/bytes.js +31 -0
- package/internal/utils/bytes.js.map +1 -0
- package/internal/utils/bytes.mjs +26 -0
- package/internal/utils/bytes.mjs.map +1 -0
- package/internal/utils/env.d.mts +9 -0
- package/internal/utils/env.d.mts.map +1 -0
- package/internal/utils/env.d.ts +9 -0
- package/internal/utils/env.d.ts.map +1 -0
- package/internal/utils/env.js +22 -0
- package/internal/utils/env.js.map +1 -0
- package/internal/utils/env.mjs +18 -0
- package/internal/utils/env.mjs.map +1 -0
- package/internal/utils/log.d.mts +37 -0
- package/internal/utils/log.d.mts.map +1 -0
- package/internal/utils/log.d.ts +37 -0
- package/internal/utils/log.d.ts.map +1 -0
- package/internal/utils/log.js +85 -0
- package/internal/utils/log.js.map +1 -0
- package/internal/utils/log.mjs +79 -0
- package/internal/utils/log.mjs.map +1 -0
- package/internal/utils/path.d.mts +15 -0
- package/internal/utils/path.d.mts.map +1 -0
- package/internal/utils/path.d.ts +15 -0
- package/internal/utils/path.d.ts.map +1 -0
- package/internal/utils/path.js +79 -0
- package/internal/utils/path.js.map +1 -0
- package/internal/utils/path.mjs +74 -0
- package/internal/utils/path.mjs.map +1 -0
- package/internal/utils/sleep.d.mts +2 -0
- package/internal/utils/sleep.d.mts.map +1 -0
- package/internal/utils/sleep.d.ts +2 -0
- package/internal/utils/sleep.d.ts.map +1 -0
- package/internal/utils/sleep.js +7 -0
- package/internal/utils/sleep.js.map +1 -0
- package/internal/utils/sleep.mjs +3 -0
- package/internal/utils/sleep.mjs.map +1 -0
- package/internal/utils/uuid.d.mts +5 -0
- package/internal/utils/uuid.d.mts.map +1 -0
- package/internal/utils/uuid.d.ts +5 -0
- package/internal/utils/uuid.d.ts.map +1 -0
- package/internal/utils/uuid.js +19 -0
- package/internal/utils/uuid.js.map +1 -0
- package/internal/utils/uuid.mjs +15 -0
- package/internal/utils/uuid.mjs.map +1 -0
- package/internal/utils/values.d.mts +18 -0
- package/internal/utils/values.d.mts.map +1 -0
- package/internal/utils/values.d.ts +18 -0
- package/internal/utils/values.d.ts.map +1 -0
- package/internal/utils/values.js +112 -0
- package/internal/utils/values.js.map +1 -0
- package/internal/utils/values.mjs +94 -0
- package/internal/utils/values.mjs.map +1 -0
- package/internal/utils.d.mts +7 -0
- package/internal/utils.d.mts.map +1 -0
- package/internal/utils.d.ts +7 -0
- package/internal/utils.d.ts.map +1 -0
- package/internal/utils.js +11 -0
- package/internal/utils.js.map +1 -0
- package/internal/utils.mjs +8 -0
- package/internal/utils.mjs.map +1 -0
- package/package.json +113 -64
- package/pagination.d.mts +2 -0
- package/pagination.d.mts.map +1 -0
- package/pagination.d.ts +1 -36
- package/pagination.d.ts.map +1 -1
- package/pagination.js +3 -40
- package/pagination.js.map +1 -1
- package/pagination.mjs +1 -38
- package/pagination.mjs.map +1 -1
- package/resource.d.mts +2 -0
- package/resource.d.mts.map +1 -0
- package/resource.d.ts +1 -5
- package/resource.d.ts.map +1 -1
- package/resource.js +3 -8
- package/resource.js.map +1 -1
- package/resource.mjs +1 -6
- package/resource.mjs.map +1 -1
- package/resources/index.d.mts +5 -0
- package/resources/index.d.mts.map +1 -0
- package/resources/index.d.ts.map +1 -1
- package/resources/index.js +2 -15
- package/resources/index.js.map +1 -1
- package/resources/shared.d.mts +2363 -0
- package/resources/shared.d.mts.map +1 -0
- package/resources/shared.d.ts +1470 -465
- package/resources/shared.d.ts.map +1 -1
- package/resources/v1/alerts.d.mts +207 -0
- package/resources/v1/alerts.d.mts.map +1 -0
- package/resources/v1/alerts.d.ts +107 -32
- package/resources/v1/alerts.d.ts.map +1 -1
- package/resources/v1/alerts.js +74 -3
- package/resources/v1/alerts.js.map +1 -1
- package/resources/v1/alerts.mjs +74 -3
- package/resources/v1/alerts.mjs.map +1 -1
- package/resources/v1/audit-logs.d.mts +108 -0
- package/resources/v1/audit-logs.d.mts.map +1 -0
- package/resources/v1/audit-logs.d.ts +45 -12
- package/resources/v1/audit-logs.d.ts.map +1 -1
- package/resources/v1/audit-logs.js +53 -12
- package/resources/v1/audit-logs.js.map +1 -1
- package/resources/v1/audit-logs.mjs +52 -10
- package/resources/v1/audit-logs.mjs.map +1 -1
- package/resources/v1/billable-metrics.d.mts +293 -0
- package/resources/v1/billable-metrics.d.mts.map +1 -0
- package/resources/v1/billable-metrics.d.ts +70 -15
- package/resources/v1/billable-metrics.d.ts.map +1 -1
- package/resources/v1/billable-metrics.js +70 -16
- package/resources/v1/billable-metrics.js.map +1 -1
- package/resources/v1/billable-metrics.mjs +69 -14
- package/resources/v1/billable-metrics.mjs.map +1 -1
- package/resources/v1/contracts/contracts.d.mts +3006 -0
- package/resources/v1/contracts/contracts.d.mts.map +1 -0
- package/resources/v1/contracts/contracts.d.ts +428 -1299
- package/resources/v1/contracts/contracts.d.ts.map +1 -1
- package/resources/v1/contracts/contracts.js +269 -50
- package/resources/v1/contracts/contracts.js.map +1 -1
- package/resources/v1/contracts/contracts.mjs +267 -26
- package/resources/v1/contracts/contracts.mjs.map +1 -1
- package/resources/v1/contracts/index.d.mts +5 -0
- package/resources/v1/contracts/index.d.mts.map +1 -0
- package/resources/v1/contracts/index.d.ts +3 -3
- package/resources/v1/contracts/index.d.ts.map +1 -1
- package/resources/v1/contracts/index.js +1 -3
- package/resources/v1/contracts/index.js.map +1 -1
- package/resources/v1/contracts/index.mjs +2 -2
- package/resources/v1/contracts/index.mjs.map +1 -1
- package/resources/v1/contracts/named-schedules.d.mts +82 -0
- package/resources/v1/contracts/named-schedules.d.mts.map +1 -0
- package/resources/v1/contracts/named-schedules.d.ts +5 -4
- package/resources/v1/contracts/named-schedules.d.ts.map +1 -1
- package/resources/v1/contracts/named-schedules.js +3 -2
- package/resources/v1/contracts/named-schedules.js.map +1 -1
- package/resources/v1/contracts/named-schedules.mjs +3 -2
- package/resources/v1/contracts/named-schedules.mjs.map +1 -1
- package/resources/v1/contracts/products.d.mts +502 -0
- package/resources/v1/contracts/products.d.mts.map +1 -0
- package/resources/v1/contracts/products.d.ts +44 -17
- package/resources/v1/contracts/products.d.ts.map +1 -1
- package/resources/v1/contracts/products.js +41 -17
- package/resources/v1/contracts/products.js.map +1 -1
- package/resources/v1/contracts/products.mjs +40 -15
- package/resources/v1/contracts/products.mjs.map +1 -1
- package/resources/v1/contracts/rate-cards/index.d.mts +5 -0
- package/resources/v1/contracts/rate-cards/index.d.mts.map +1 -0
- package/resources/v1/contracts/rate-cards/index.d.ts +2 -2
- package/resources/v1/contracts/rate-cards/index.d.ts.map +1 -1
- package/resources/v1/contracts/rate-cards/index.js +1 -3
- package/resources/v1/contracts/rate-cards/index.js.map +1 -1
- package/resources/v1/contracts/rate-cards/index.mjs +2 -2
- package/resources/v1/contracts/rate-cards/index.mjs.map +1 -1
- package/resources/v1/contracts/rate-cards/named-schedules.d.mts +94 -0
- package/resources/v1/contracts/rate-cards/named-schedules.d.mts.map +1 -0
- package/resources/v1/contracts/rate-cards/named-schedules.d.ts +5 -4
- package/resources/v1/contracts/rate-cards/named-schedules.d.ts.map +1 -1
- package/resources/v1/contracts/rate-cards/named-schedules.js +3 -2
- package/resources/v1/contracts/rate-cards/named-schedules.js.map +1 -1
- package/resources/v1/contracts/rate-cards/named-schedules.mjs +3 -2
- package/resources/v1/contracts/rate-cards/named-schedules.mjs.map +1 -1
- package/resources/v1/contracts/rate-cards/product-orders.d.mts +85 -0
- package/resources/v1/contracts/rate-cards/product-orders.d.mts.map +1 -0
- package/resources/v1/contracts/rate-cards/product-orders.d.ts +12 -6
- package/resources/v1/contracts/rate-cards/product-orders.d.ts.map +1 -1
- package/resources/v1/contracts/rate-cards/product-orders.js +8 -3
- package/resources/v1/contracts/rate-cards/product-orders.js.map +1 -1
- package/resources/v1/contracts/rate-cards/product-orders.mjs +8 -3
- package/resources/v1/contracts/rate-cards/product-orders.mjs.map +1 -1
- package/resources/v1/contracts/rate-cards/rate-cards.d.mts +452 -0
- package/resources/v1/contracts/rate-cards/rate-cards.d.mts.map +1 -0
- package/resources/v1/contracts/rate-cards/rate-cards.d.ts +134 -41
- package/resources/v1/contracts/rate-cards/rate-cards.d.ts.map +1 -1
- package/resources/v1/contracts/rate-cards/rate-cards.js +127 -47
- package/resources/v1/contracts/rate-cards/rate-cards.js.map +1 -1
- package/resources/v1/contracts/rate-cards/rate-cards.mjs +123 -20
- package/resources/v1/contracts/rate-cards/rate-cards.mjs.map +1 -1
- package/resources/v1/contracts/rate-cards/rates.d.mts +382 -0
- package/resources/v1/contracts/rate-cards/rates.d.mts.map +1 -0
- package/resources/v1/contracts/rate-cards/rates.d.ts +25 -82
- package/resources/v1/contracts/rate-cards/rates.d.ts.map +1 -1
- package/resources/v1/contracts/rate-cards/rates.js +13 -9
- package/resources/v1/contracts/rate-cards/rates.js.map +1 -1
- package/resources/v1/contracts/rate-cards/rates.mjs +12 -7
- package/resources/v1/contracts/rate-cards/rates.mjs.map +1 -1
- package/resources/v1/contracts/rate-cards.d.mts +2 -0
- package/resources/v1/contracts/rate-cards.d.mts.map +1 -0
- package/resources/v1/contracts/rate-cards.d.ts.map +1 -1
- package/resources/v1/contracts/rate-cards.js +2 -15
- package/resources/v1/contracts/rate-cards.js.map +1 -1
- package/resources/v1/contracts.d.mts +2 -0
- package/resources/v1/contracts.d.mts.map +1 -0
- package/resources/v1/contracts.d.ts.map +1 -1
- package/resources/v1/contracts.js +2 -15
- package/resources/v1/contracts.js.map +1 -1
- package/resources/v1/credit-grants.d.mts +505 -0
- package/resources/v1/credit-grants.d.mts.map +1 -0
- package/resources/v1/credit-grants.d.ts +73 -74
- package/resources/v1/credit-grants.d.ts.map +1 -1
- package/resources/v1/credit-grants.js +52 -18
- package/resources/v1/credit-grants.js.map +1 -1
- package/resources/v1/credit-grants.mjs +51 -16
- package/resources/v1/credit-grants.mjs.map +1 -1
- package/resources/v1/custom-fields.d.mts +151 -0
- package/resources/v1/custom-fields.d.mts.map +1 -0
- package/resources/v1/custom-fields.d.ts +69 -38
- package/resources/v1/custom-fields.d.ts.map +1 -1
- package/resources/v1/custom-fields.js +66 -22
- package/resources/v1/custom-fields.js.map +1 -1
- package/resources/v1/custom-fields.mjs +66 -22
- package/resources/v1/custom-fields.mjs.map +1 -1
- package/resources/v1/customers/alerts.d.mts +309 -0
- package/resources/v1/customers/alerts.d.mts.map +1 -0
- package/resources/v1/customers/alerts.d.ts +176 -50
- package/resources/v1/customers/alerts.d.ts.map +1 -1
- package/resources/v1/customers/alerts.js +131 -10
- package/resources/v1/customers/alerts.js.map +1 -1
- package/resources/v1/customers/alerts.mjs +131 -10
- package/resources/v1/customers/alerts.mjs.map +1 -1
- package/resources/v1/customers/billing-config.d.mts +125 -0
- package/resources/v1/customers/billing-config.d.mts.map +1 -0
- package/resources/v1/customers/billing-config.d.ts +8 -7
- package/resources/v1/customers/billing-config.d.ts.map +1 -1
- package/resources/v1/customers/billing-config.js +8 -6
- package/resources/v1/customers/billing-config.js.map +1 -1
- package/resources/v1/customers/billing-config.mjs +8 -6
- package/resources/v1/customers/billing-config.mjs.map +1 -1
- package/resources/v1/customers/commits.d.mts +456 -0
- package/resources/v1/customers/commits.d.mts.map +1 -0
- package/resources/v1/customers/commits.d.ts +139 -47
- package/resources/v1/customers/commits.d.ts.map +1 -1
- package/resources/v1/customers/commits.js +131 -12
- package/resources/v1/customers/commits.js.map +1 -1
- package/resources/v1/customers/commits.mjs +131 -12
- package/resources/v1/customers/commits.mjs.map +1 -1
- package/resources/v1/customers/credits.d.mts +310 -0
- package/resources/v1/customers/credits.d.mts.map +1 -0
- package/resources/v1/customers/credits.d.ts +124 -46
- package/resources/v1/customers/credits.d.ts.map +1 -1
- package/resources/v1/customers/credits.js +116 -11
- package/resources/v1/customers/credits.js.map +1 -1
- package/resources/v1/customers/credits.mjs +116 -11
- package/resources/v1/customers/credits.mjs.map +1 -1
- package/resources/v1/customers/customers.d.mts +819 -0
- package/resources/v1/customers/customers.d.mts.map +1 -0
- package/resources/v1/customers/customers.d.ts +319 -55
- package/resources/v1/customers/customers.d.ts.map +1 -1
- package/resources/v1/customers/customers.js +220 -76
- package/resources/v1/customers/customers.js.map +1 -1
- package/resources/v1/customers/customers.mjs +213 -44
- package/resources/v1/customers/customers.mjs.map +1 -1
- package/resources/v1/customers/index.d.mts +9 -0
- package/resources/v1/customers/index.d.mts.map +1 -0
- package/resources/v1/customers/index.d.ts +6 -6
- package/resources/v1/customers/index.d.ts.map +1 -1
- package/resources/v1/customers/index.js +1 -8
- package/resources/v1/customers/index.js.map +1 -1
- package/resources/v1/customers/index.mjs +3 -3
- package/resources/v1/customers/index.mjs.map +1 -1
- package/resources/v1/customers/invoices.d.mts +825 -0
- package/resources/v1/customers/invoices.d.mts.map +1 -0
- package/resources/v1/customers/invoices.d.ts +309 -25
- package/resources/v1/customers/invoices.d.ts.map +1 -1
- package/resources/v1/customers/invoices.js +180 -22
- package/resources/v1/customers/invoices.js.map +1 -1
- package/resources/v1/customers/invoices.mjs +179 -19
- package/resources/v1/customers/invoices.mjs.map +1 -1
- package/resources/v1/customers/named-schedules.d.mts +82 -0
- package/resources/v1/customers/named-schedules.d.mts.map +1 -0
- package/resources/v1/customers/named-schedules.d.ts +5 -4
- package/resources/v1/customers/named-schedules.d.ts.map +1 -1
- package/resources/v1/customers/named-schedules.js +3 -2
- package/resources/v1/customers/named-schedules.js.map +1 -1
- package/resources/v1/customers/named-schedules.mjs +3 -2
- package/resources/v1/customers/named-schedules.mjs.map +1 -1
- package/resources/v1/customers/plans.d.mts +281 -0
- package/resources/v1/customers/plans.d.mts.map +1 -0
- package/resources/v1/customers/plans.d.ts +14 -12
- package/resources/v1/customers/plans.d.ts.map +1 -1
- package/resources/v1/customers/plans.js +8 -15
- package/resources/v1/customers/plans.js.map +1 -1
- package/resources/v1/customers/plans.mjs +7 -12
- package/resources/v1/customers/plans.mjs.map +1 -1
- package/resources/v1/customers.d.mts +2 -0
- package/resources/v1/customers.d.mts.map +1 -0
- package/resources/v1/customers.d.ts.map +1 -1
- package/resources/v1/customers.js +2 -15
- package/resources/v1/customers.js.map +1 -1
- package/resources/v1/dashboards.d.mts +133 -0
- package/resources/v1/dashboards.d.mts.map +1 -0
- package/resources/v1/dashboards.d.ts +33 -6
- package/resources/v1/dashboards.d.ts.map +1 -1
- package/resources/v1/dashboards.js +30 -4
- package/resources/v1/dashboards.js.map +1 -1
- package/resources/v1/dashboards.mjs +30 -4
- package/resources/v1/dashboards.mjs.map +1 -1
- package/resources/v1/index.d.mts +16 -0
- package/resources/v1/index.d.mts.map +1 -0
- package/resources/v1/index.d.ts +10 -9
- package/resources/v1/index.d.ts.map +1 -1
- package/resources/v1/index.js +3 -12
- package/resources/v1/index.js.map +1 -1
- package/resources/v1/index.mjs +8 -7
- package/resources/v1/index.mjs.map +1 -1
- package/resources/v1/invoices.d.mts +83 -0
- package/resources/v1/invoices.d.mts.map +1 -0
- package/resources/v1/invoices.d.ts +28 -6
- package/resources/v1/invoices.d.ts.map +1 -1
- package/resources/v1/invoices.js +24 -3
- package/resources/v1/invoices.js.map +1 -1
- package/resources/v1/invoices.mjs +24 -3
- package/resources/v1/invoices.mjs.map +1 -1
- package/resources/v1/payments.d.mts +116 -0
- package/resources/v1/payments.d.mts.map +1 -0
- package/resources/v1/payments.d.ts +116 -0
- package/resources/v1/payments.d.ts.map +1 -0
- package/resources/v1/payments.js +71 -0
- package/resources/v1/payments.js.map +1 -0
- package/resources/v1/payments.mjs +67 -0
- package/resources/v1/payments.mjs.map +1 -0
- package/resources/v1/plans.d.mts +240 -0
- package/resources/v1/plans.d.mts.map +1 -0
- package/resources/v1/plans.d.ts +24 -15
- package/resources/v1/plans.d.ts.map +1 -1
- package/resources/v1/plans.js +19 -26
- package/resources/v1/plans.js.map +1 -1
- package/resources/v1/plans.mjs +18 -22
- package/resources/v1/plans.mjs.map +1 -1
- package/resources/v1/pricing-units.d.mts +34 -0
- package/resources/v1/pricing-units.d.mts.map +1 -0
- package/resources/v1/pricing-units.d.ts +12 -9
- package/resources/v1/pricing-units.d.ts.map +1 -1
- package/resources/v1/pricing-units.js +20 -12
- package/resources/v1/pricing-units.js.map +1 -1
- package/resources/v1/pricing-units.mjs +19 -10
- package/resources/v1/pricing-units.mjs.map +1 -1
- package/resources/v1/services.d.mts +33 -0
- package/resources/v1/services.d.mts.map +1 -0
- package/resources/v1/services.d.ts +10 -7
- package/resources/v1/services.d.ts.map +1 -1
- package/resources/v1/services.js +7 -5
- package/resources/v1/services.js.map +1 -1
- package/resources/v1/services.mjs +7 -5
- package/resources/v1/services.mjs.map +1 -1
- package/resources/v1/usage.d.mts +490 -0
- package/resources/v1/usage.d.mts.map +1 -0
- package/resources/v1/usage.d.ts +223 -58
- package/resources/v1/usage.d.ts.map +1 -1
- package/resources/v1/usage.js +214 -26
- package/resources/v1/usage.js.map +1 -1
- package/resources/v1/usage.mjs +213 -24
- package/resources/v1/usage.mjs.map +1 -1
- package/resources/v1/v1.d.mts +62 -0
- package/resources/v1/v1.d.mts.map +1 -0
- package/resources/v1/v1.d.ts +19 -15
- package/resources/v1/v1.d.ts.map +1 -1
- package/resources/v1/v1.js +19 -48
- package/resources/v1/v1.js.map +1 -1
- package/resources/v1/v1.mjs +12 -19
- package/resources/v1/v1.mjs.map +1 -1
- package/resources/v1.d.mts +2 -0
- package/resources/v1.d.mts.map +1 -0
- package/resources/v1.d.ts.map +1 -1
- package/resources/v1.js +2 -15
- package/resources/v1.js.map +1 -1
- package/resources/v2/contracts.d.mts +2900 -0
- package/resources/v2/contracts.d.mts.map +1 -0
- package/resources/v2/contracts.d.ts +399 -3830
- package/resources/v2/contracts.d.ts.map +1 -1
- package/resources/v2/contracts.js +102 -12
- package/resources/v2/contracts.js.map +1 -1
- package/resources/v2/contracts.mjs +102 -12
- package/resources/v2/contracts.mjs.map +1 -1
- package/resources/v2/index.d.mts +3 -0
- package/resources/v2/index.d.mts.map +1 -0
- package/resources/v2/index.d.ts.map +1 -1
- package/resources/v2/v2.d.mts +10 -0
- package/resources/v2/v2.d.mts.map +1 -0
- package/resources/v2/v2.d.ts +1 -1
- package/resources/v2/v2.d.ts.map +1 -1
- package/resources/v2/v2.js +3 -25
- package/resources/v2/v2.js.map +1 -1
- package/resources/v2/v2.mjs +1 -1
- package/resources/v2.d.mts +2 -0
- package/resources/v2.d.mts.map +1 -0
- package/resources/v2.d.ts.map +1 -1
- package/resources/v2.js +2 -15
- package/resources/v2.js.map +1 -1
- package/resources/webhooks.d.mts +22 -0
- package/resources/webhooks.d.mts.map +1 -0
- package/resources/webhooks.d.ts +1 -1
- package/resources/webhooks.d.ts.map +1 -1
- package/resources/webhooks.js +3 -3
- package/resources/webhooks.js.map +1 -1
- package/resources/webhooks.mjs +1 -1
- package/resources/webhooks.mjs.map +1 -1
- package/resources.d.mts +2 -0
- package/resources.d.mts.map +1 -0
- package/resources.d.ts.map +1 -1
- package/resources.js +2 -15
- package/resources.js.map +1 -1
- package/src/api-promise.ts +2 -0
- package/src/client.ts +809 -0
- package/src/core/README.md +3 -0
- package/src/core/api-promise.ts +92 -0
- package/src/core/error.ts +130 -0
- package/src/core/pagination.ts +319 -0
- package/src/core/resource.ts +11 -0
- package/src/core/uploads.ts +2 -0
- package/src/error.ts +2 -130
- package/src/index.ts +6 -221
- package/src/internal/README.md +3 -0
- package/src/internal/builtin-types.ts +93 -0
- package/src/internal/detect-platform.ts +196 -0
- package/src/internal/errors.ts +33 -0
- package/src/internal/headers.ts +144 -0
- package/src/internal/parse.ts +50 -0
- package/src/internal/qs/formats.ts +3 -2
- package/src/internal/qs/index.ts +3 -3
- package/src/internal/qs/stringify.ts +18 -21
- package/src/internal/qs/utils.ts +16 -16
- package/src/internal/request-options.ts +91 -0
- package/src/internal/shim-types.ts +26 -0
- package/src/internal/shims.ts +107 -0
- package/src/internal/to-file.ts +154 -0
- package/src/internal/types.ts +95 -0
- package/src/internal/uploads.ts +187 -0
- package/src/internal/utils/base64.ts +40 -0
- package/src/internal/utils/bytes.ts +32 -0
- package/src/internal/utils/env.ts +18 -0
- package/src/internal/utils/log.ts +126 -0
- package/src/internal/utils/path.ts +88 -0
- package/src/internal/utils/sleep.ts +3 -0
- package/src/internal/utils/uuid.ts +17 -0
- package/src/internal/utils/values.ts +105 -0
- package/src/internal/utils.ts +8 -0
- package/src/pagination.ts +2 -82
- package/src/resource.ts +2 -11
- package/src/resources/index.ts +4 -4
- package/src/resources/shared.ts +1921 -506
- package/src/resources/v1/alerts.ts +108 -33
- package/src/resources/v1/audit-logs.ts +48 -26
- package/src/resources/v1/billable-metrics.ts +79 -34
- package/src/resources/v1/contracts/contracts.ts +490 -1632
- package/src/resources/v1/contracts/index.ts +7 -6
- package/src/resources/v1/contracts/named-schedules.ts +8 -6
- package/src/resources/v1/contracts/products.ts +50 -38
- package/src/resources/v1/contracts/rate-cards/index.ts +6 -6
- package/src/resources/v1/contracts/rate-cards/named-schedules.ts +8 -6
- package/src/resources/v1/contracts/rate-cards/product-orders.ts +13 -10
- package/src/resources/v1/contracts/rate-cards/rate-cards.ts +145 -72
- package/src/resources/v1/contracts/rate-cards/rates.ts +28 -98
- package/src/resources/v1/contracts/rate-cards.ts +1 -1
- package/src/resources/v1/contracts.ts +1 -1
- package/src/resources/v1/credit-grants.ts +100 -112
- package/src/resources/v1/custom-fields.ts +106 -74
- package/src/resources/v1/customers/alerts.ts +195 -55
- package/src/resources/v1/customers/billing-config.ts +27 -13
- package/src/resources/v1/customers/commits.ts +146 -54
- package/src/resources/v1/customers/credits.ts +131 -53
- package/src/resources/v1/customers/customers.ts +407 -115
- package/src/resources/v1/customers/index.ts +20 -18
- package/src/resources/v1/customers/invoices.ts +343 -42
- package/src/resources/v1/customers/named-schedules.ts +8 -6
- package/src/resources/v1/customers/plans.ts +24 -22
- package/src/resources/v1/customers.ts +1 -1
- package/src/resources/v1/dashboards.ts +34 -7
- package/src/resources/v1/index.ts +43 -25
- package/src/resources/v1/invoices.ts +28 -9
- package/src/resources/v1/payments.ts +170 -0
- package/src/resources/v1/plans.ts +42 -43
- package/src/resources/v1/pricing-units.ts +15 -23
- package/src/resources/v1/services.ts +10 -7
- package/src/resources/v1/usage.ts +247 -73
- package/src/resources/v1/v1.ts +78 -49
- package/src/resources/v1.ts +1 -1
- package/src/resources/v2/contracts.ts +469 -4930
- package/src/resources/v2/index.ts +2 -2
- package/src/resources/v2/v2.ts +3 -3
- package/src/resources/v2.ts +1 -1
- package/src/resources/webhooks.ts +2 -2
- package/src/resources.ts +1 -1
- package/src/tsconfig.json +2 -2
- package/src/uploads.ts +2 -255
- package/src/version.ts +1 -1
- package/uploads.d.mts +2 -0
- package/uploads.d.mts.map +1 -0
- package/uploads.d.ts +1 -74
- package/uploads.d.ts.map +1 -1
- package/uploads.js +3 -168
- package/uploads.js.map +1 -1
- package/uploads.mjs +1 -157
- package/uploads.mjs.map +1 -1
- package/version.d.mts +2 -0
- package/version.d.mts.map +1 -0
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
- package/_shims/MultipartBody.d.ts +0 -9
- package/_shims/MultipartBody.d.ts.map +0 -1
- package/_shims/MultipartBody.js +0 -16
- package/_shims/MultipartBody.js.map +0 -1
- package/_shims/MultipartBody.mjs +0 -12
- package/_shims/MultipartBody.mjs.map +0 -1
- package/_shims/README.md +0 -46
- package/_shims/auto/runtime-bun.d.ts +0 -5
- package/_shims/auto/runtime-bun.d.ts.map +0 -1
- package/_shims/auto/runtime-bun.js +0 -21
- package/_shims/auto/runtime-bun.js.map +0 -1
- package/_shims/auto/runtime-bun.mjs +0 -2
- package/_shims/auto/runtime-bun.mjs.map +0 -1
- package/_shims/auto/runtime-node.d.ts +0 -5
- package/_shims/auto/runtime-node.d.ts.map +0 -1
- package/_shims/auto/runtime-node.js +0 -21
- package/_shims/auto/runtime-node.js.map +0 -1
- package/_shims/auto/runtime-node.mjs +0 -2
- package/_shims/auto/runtime-node.mjs.map +0 -1
- package/_shims/auto/runtime.d.ts +0 -5
- package/_shims/auto/runtime.d.ts.map +0 -1
- package/_shims/auto/runtime.js +0 -21
- package/_shims/auto/runtime.js.map +0 -1
- package/_shims/auto/runtime.mjs +0 -2
- package/_shims/auto/runtime.mjs.map +0 -1
- package/_shims/auto/types-node.d.ts +0 -5
- package/_shims/auto/types-node.d.ts.map +0 -1
- package/_shims/auto/types-node.js +0 -21
- package/_shims/auto/types-node.js.map +0 -1
- package/_shims/auto/types-node.mjs +0 -2
- package/_shims/auto/types-node.mjs.map +0 -1
- package/_shims/auto/types.d.ts +0 -101
- package/_shims/auto/types.js +0 -3
- package/_shims/auto/types.mjs +0 -3
- package/_shims/bun-runtime.d.ts +0 -6
- package/_shims/bun-runtime.d.ts.map +0 -1
- package/_shims/bun-runtime.js +0 -14
- package/_shims/bun-runtime.js.map +0 -1
- package/_shims/bun-runtime.mjs +0 -10
- package/_shims/bun-runtime.mjs.map +0 -1
- package/_shims/index.d.ts +0 -83
- package/_shims/index.js +0 -17
- package/_shims/index.mjs +0 -11
- package/_shims/manual-types.d.ts +0 -12
- package/_shims/manual-types.js +0 -3
- package/_shims/manual-types.mjs +0 -3
- package/_shims/node-runtime.d.ts +0 -3
- package/_shims/node-runtime.d.ts.map +0 -1
- package/_shims/node-runtime.js +0 -89
- package/_shims/node-runtime.js.map +0 -1
- package/_shims/node-runtime.mjs +0 -56
- package/_shims/node-runtime.mjs.map +0 -1
- package/_shims/node-types.d.ts +0 -42
- package/_shims/node-types.js +0 -3
- package/_shims/node-types.mjs +0 -3
- package/_shims/registry.d.ts +0 -37
- package/_shims/registry.d.ts.map +0 -1
- package/_shims/registry.js +0 -41
- package/_shims/registry.js.map +0 -1
- package/_shims/registry.mjs +0 -37
- package/_shims/registry.mjs.map +0 -1
- package/_shims/web-runtime.d.ts +0 -5
- package/_shims/web-runtime.d.ts.map +0 -1
- package/_shims/web-runtime.js +0 -78
- package/_shims/web-runtime.js.map +0 -1
- package/_shims/web-runtime.mjs +0 -71
- package/_shims/web-runtime.mjs.map +0 -1
- package/_shims/web-types.d.ts +0 -83
- package/_shims/web-types.js +0 -3
- package/_shims/web-types.mjs +0 -3
- package/core.d.ts +0 -255
- package/core.d.ts.map +0 -1
- package/core.js +0 -924
- package/core.js.map +0 -1
- package/core.mjs +0 -892
- package/core.mjs.map +0 -1
- package/shims/node.d.ts +0 -30
- package/shims/node.d.ts.map +0 -1
- package/shims/node.js +0 -31
- package/shims/node.js.map +0 -1
- package/shims/node.mjs +0 -5
- package/shims/node.mjs.map +0 -1
- package/shims/web.d.ts +0 -26
- package/shims/web.d.ts.map +0 -1
- package/shims/web.js +0 -31
- package/shims/web.js.map +0 -1
- package/shims/web.mjs +0 -5
- package/shims/web.mjs.map +0 -1
- package/src/_shims/MultipartBody.ts +0 -9
- package/src/_shims/README.md +0 -46
- package/src/_shims/auto/runtime-bun.ts +0 -4
- package/src/_shims/auto/runtime-node.ts +0 -4
- package/src/_shims/auto/runtime.ts +0 -4
- package/src/_shims/auto/types-node.ts +0 -4
- package/src/_shims/auto/types.d.ts +0 -101
- package/src/_shims/auto/types.js +0 -3
- package/src/_shims/auto/types.mjs +0 -3
- package/src/_shims/bun-runtime.ts +0 -14
- package/src/_shims/index.d.ts +0 -83
- package/src/_shims/index.js +0 -17
- package/src/_shims/index.mjs +0 -11
- package/src/_shims/manual-types.d.ts +0 -12
- package/src/_shims/manual-types.js +0 -3
- package/src/_shims/manual-types.mjs +0 -3
- package/src/_shims/node-runtime.ts +0 -81
- package/src/_shims/node-types.d.ts +0 -42
- package/src/_shims/node-types.js +0 -3
- package/src/_shims/node-types.mjs +0 -3
- package/src/_shims/registry.ts +0 -67
- package/src/_shims/web-runtime.ts +0 -103
- package/src/_shims/web-types.d.ts +0 -83
- package/src/_shims/web-types.js +0 -3
- package/src/_shims/web-types.mjs +0 -3
- package/src/core.ts +0 -1236
- package/src/shims/node.ts +0 -50
- package/src/shims/web.ts +0 -50
package/resources/v1/usage.d.ts
CHANGED
|
@@ -1,46 +1,186 @@
|
|
|
1
|
-
import { APIResource } from "../../resource.js";
|
|
2
|
-
import * as Core from "../../core.js";
|
|
1
|
+
import { APIResource } from "../../core/resource.js";
|
|
3
2
|
import * as Shared from "../shared.js";
|
|
4
|
-
import {
|
|
3
|
+
import { APIPromise } from "../../core/api-promise.js";
|
|
4
|
+
import { CursorPage, type CursorPageParams, CursorPageWithoutLimit, type CursorPageWithoutLimitParams, PagePromise } from "../../core/pagination.js";
|
|
5
|
+
import { RequestOptions } from "../../internal/request-options.js";
|
|
5
6
|
export declare class Usage extends APIResource {
|
|
6
7
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
8
|
+
* Retrieve aggregated usage data across multiple customers and billable metrics in
|
|
9
|
+
* a single query. This batch endpoint enables you to fetch usage patterns at
|
|
10
|
+
* scale, broken down by time windows, making it ideal for building analytics
|
|
11
|
+
* dashboards, generating reports, and monitoring platform-wide usage trends.
|
|
12
|
+
*
|
|
13
|
+
* ### Use this endpoint to:
|
|
14
|
+
*
|
|
15
|
+
* - Generate platform-wide usage reports for internal teams
|
|
16
|
+
* - Monitor aggregate usage trends across your entire customer base
|
|
17
|
+
* - Create comparative usage analyses between customers or time periods
|
|
18
|
+
* - Support capacity planning with historical usage patterns
|
|
19
|
+
*
|
|
20
|
+
* ### Key response fields:
|
|
21
|
+
*
|
|
22
|
+
* An array of `UsageBatchAggregate` objects containing:
|
|
23
|
+
*
|
|
24
|
+
* - `customer_id`: The customer this usage belongs to
|
|
25
|
+
* - `billable_metric_id` and `billable_metric_name`: What was measured
|
|
26
|
+
* - `start_timestamp` and `end_timestamp`: Time window for this data point
|
|
27
|
+
* - `value`: Aggregated usage amount for the period
|
|
28
|
+
* - `groups` (optional): Usage broken down by group keys with values
|
|
29
|
+
* - `next_page`: Pagination cursor for large result sets
|
|
30
|
+
*
|
|
31
|
+
* ### Usage guidelines:
|
|
32
|
+
*
|
|
33
|
+
* - Time windows: Set `window_size` to `hour`, `day`, or `none` (entire period)
|
|
34
|
+
* - Required parameters: Must specify `starting_on`, `ending_before`, and
|
|
35
|
+
* `window_size`
|
|
36
|
+
* - Filtering options:
|
|
37
|
+
* - `customer_ids`: Limit to specific customers (omit for all customers)
|
|
38
|
+
* - `billable_metrics`: Limit to specific metrics (omit for all metrics)
|
|
39
|
+
* - Pagination: Use `next_page` cursor to retrieve large datasets
|
|
40
|
+
* - Null values: Group values may be null when no usage matches that group
|
|
9
41
|
*
|
|
10
42
|
* @example
|
|
11
43
|
* ```ts
|
|
12
|
-
*
|
|
44
|
+
* // Automatically fetches more pages as needed.
|
|
45
|
+
* for await (const usageListResponse of client.v1.usage.list({
|
|
13
46
|
* ending_before: '2021-01-03T00:00:00Z',
|
|
14
47
|
* starting_on: '2021-01-01T00:00:00Z',
|
|
15
48
|
* window_size: 'day',
|
|
16
|
-
* })
|
|
49
|
+
* })) {
|
|
50
|
+
* // ...
|
|
51
|
+
* }
|
|
17
52
|
* ```
|
|
18
53
|
*/
|
|
19
|
-
list(params: UsageListParams, options?:
|
|
54
|
+
list(params: UsageListParams, options?: RequestOptions): PagePromise<UsageListResponsesCursorPageWithoutLimit, UsageListResponse>;
|
|
20
55
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
56
|
+
* The ingest endpoint is the primary method for sending usage events to Metronome,
|
|
57
|
+
* serving as the foundation for all billing calculations in your usage-based
|
|
58
|
+
* pricing model. This high-throughput endpoint is designed for real-time streaming
|
|
59
|
+
* ingestion, supports backdating 34 days, and is built to handle mission-critical
|
|
60
|
+
* usage data with enterprise-grade reliability. Metronome supports 100,000 events
|
|
61
|
+
* per second without requiring pre-aggregation or rollups and can scale up from
|
|
62
|
+
* there. See the [Send usage events](/guides/events/send-usage-events) guide to
|
|
25
63
|
* learn more about usage events.
|
|
26
64
|
*
|
|
65
|
+
* ### Use this endpoint to:
|
|
66
|
+
*
|
|
67
|
+
* Create a customer usage pipeline into Metronome that drives billable metrics,
|
|
68
|
+
* credit drawdown, and invoicing. Track customer behavior, resource consumption,
|
|
69
|
+
* and feature usage
|
|
70
|
+
*
|
|
71
|
+
* ### What happens when you send events:
|
|
72
|
+
*
|
|
73
|
+
* - Events are validated and processed in real-time
|
|
74
|
+
* - Events are matched to customers using customer IDs or customer ingest aliases
|
|
75
|
+
* - Events are matched to billable metrics and are immediately available for usage
|
|
76
|
+
* and spend calculations
|
|
77
|
+
*
|
|
78
|
+
* ### Usage guidelines:
|
|
79
|
+
*
|
|
80
|
+
* - Historical events can be backdated up to 34 days and will immediately impact
|
|
81
|
+
* live customer spend
|
|
82
|
+
* - Duplicate events are automatically detected and ignored (34-day deduplication
|
|
83
|
+
* window)
|
|
84
|
+
*
|
|
85
|
+
* #### Event structure:
|
|
86
|
+
*
|
|
87
|
+
* Usage events are simple JSON objects designed for flexibility and ease of
|
|
88
|
+
* integration:
|
|
89
|
+
*
|
|
90
|
+
* ```json
|
|
91
|
+
* {
|
|
92
|
+
* "transaction_id": "2021-01-01T00:00:00Z_cluster42",
|
|
93
|
+
* "customer_id": "team@example.com",
|
|
94
|
+
* "event_type": "api_request",
|
|
95
|
+
* "timestamp": "2021-01-01T00:00:00Z",
|
|
96
|
+
* "properties": {
|
|
97
|
+
* "endpoint": "/v1/users",
|
|
98
|
+
* "method": "POST",
|
|
99
|
+
* "response_time_ms": 45,
|
|
100
|
+
* "region": "us-west-2"
|
|
101
|
+
* }
|
|
102
|
+
* }
|
|
103
|
+
* ```
|
|
104
|
+
*
|
|
105
|
+
* Learn more about
|
|
106
|
+
* [usage event structure definitions](/guides/events/design-usage-events).
|
|
107
|
+
*
|
|
108
|
+
* #### Transaction ID
|
|
109
|
+
*
|
|
110
|
+
* The transaction_id serves as your idempotency key, ensuring events are processed
|
|
111
|
+
* exactly once. Metronome maintains a 34-day deduplication window - significantly
|
|
112
|
+
* longer than typical 12-hour windows - enabling robust backfill scenarios without
|
|
113
|
+
* duplicate billing.
|
|
114
|
+
*
|
|
115
|
+
* - Best Practices:
|
|
116
|
+
* - Use UUIDs for one-time events: uuid4()
|
|
117
|
+
* - For heartbeat events, use deterministic IDs
|
|
118
|
+
* - Include enough context to avoid collisions across different event sources
|
|
119
|
+
*
|
|
120
|
+
* #### Customer ID
|
|
121
|
+
*
|
|
122
|
+
* Identifies which customer should be billed for this usage. Supports two
|
|
123
|
+
* identification methods:
|
|
124
|
+
*
|
|
125
|
+
* - Metronome Customer ID: The UUID returned when creating a customer
|
|
126
|
+
* - Ingest Alias: Your system's identifier (email, account number, etc.)
|
|
127
|
+
*
|
|
128
|
+
* Ingest aliases enable seamless integration without requiring ID mapping, and
|
|
129
|
+
* customers can have multiple aliases for flexibility.
|
|
130
|
+
*
|
|
131
|
+
* #### Event Type:
|
|
132
|
+
*
|
|
133
|
+
* Categorizes the event type for billable metric matching. Choose descriptive
|
|
134
|
+
* names that aligns with the product surface area.
|
|
135
|
+
*
|
|
136
|
+
* #### Properties:
|
|
137
|
+
*
|
|
138
|
+
* Flexible metadata also used to match billable metrics or to be used to serve as
|
|
139
|
+
* group keys to create multiple pricing dimensions or breakdown costs by novel
|
|
140
|
+
* properties for end customers or internal finance teams measuring underlying
|
|
141
|
+
* COGs.
|
|
142
|
+
*
|
|
27
143
|
* @example
|
|
28
144
|
* ```ts
|
|
29
|
-
* await client.v1.usage.ingest(
|
|
30
|
-
* {
|
|
31
|
-
* customer_id: 'team@example.com',
|
|
32
|
-
* event_type: 'heartbeat',
|
|
33
|
-
* timestamp: '2021-01-01T00:00:00Z',
|
|
34
|
-
* transaction_id: '2021-01-01T00:00:00Z_cluster42',
|
|
35
|
-
* },
|
|
36
|
-
* ]);
|
|
145
|
+
* await client.v1.usage.ingest();
|
|
37
146
|
* ```
|
|
38
147
|
*/
|
|
39
|
-
ingest(
|
|
40
|
-
ingest(options?: Core.RequestOptions): Core.APIPromise<void>;
|
|
148
|
+
ingest(params?: UsageIngestParams | null | undefined, options?: RequestOptions): APIPromise<void>;
|
|
41
149
|
/**
|
|
42
|
-
*
|
|
43
|
-
*
|
|
150
|
+
* Retrieve granular usage data for a specific customer and billable metric, with
|
|
151
|
+
* the ability to break down usage by custom grouping dimensions. This endpoint
|
|
152
|
+
* enables deep usage analytics by segmenting data across attributes like region,
|
|
153
|
+
* user, model type, or any custom dimension defined in your billable metrics.
|
|
154
|
+
*
|
|
155
|
+
* ### Use this endpoint to:
|
|
156
|
+
*
|
|
157
|
+
* - Analyze usage patterns broken down by specific attributes (region, user,
|
|
158
|
+
* department, etc.)
|
|
159
|
+
* - Build detailed usage dashboards with dimensional filtering
|
|
160
|
+
* - Identify high-usage segments for optimization opportunities
|
|
161
|
+
*
|
|
162
|
+
* ### Key response fields:
|
|
163
|
+
*
|
|
164
|
+
* An array of `PagedUsageAggregate` objects containing:
|
|
165
|
+
*
|
|
166
|
+
* - `starting_on` and `ending_before`: Time window boundaries
|
|
167
|
+
* - `group_key`: The dimension being grouped by (e.g., "region")
|
|
168
|
+
* - `group_value`: The specific value for this group (e.g., "US-East")
|
|
169
|
+
* - `value`: Aggregated usage for this group and time window
|
|
170
|
+
* - `next_page`: Pagination cursor for large datasets
|
|
171
|
+
*
|
|
172
|
+
* ### Usage guidelines:
|
|
173
|
+
*
|
|
174
|
+
* - Required parameters: Must specify `customer_id`, `billable_metric_id`, and
|
|
175
|
+
* `window_size`
|
|
176
|
+
* - Time windows: Set `window_size` to hour, day, or none for different
|
|
177
|
+
* granularities
|
|
178
|
+
* - Group filtering: Use `group_by` to specify:
|
|
179
|
+
* - key: The dimension to group by (must be set on the billable metric as a
|
|
180
|
+
* group key)
|
|
181
|
+
* - values: Optional array to filter to specific values only
|
|
182
|
+
* - Pagination: Use limit and `next_page` for large result sets
|
|
183
|
+
* - Null handling: `group_value` may be null for unmatched data
|
|
44
184
|
*
|
|
45
185
|
* @example
|
|
46
186
|
* ```ts
|
|
@@ -63,12 +203,42 @@ export declare class Usage extends APIResource {
|
|
|
63
203
|
* }
|
|
64
204
|
* ```
|
|
65
205
|
*/
|
|
66
|
-
listWithGroups(params: UsageListWithGroupsParams, options?:
|
|
206
|
+
listWithGroups(params: UsageListWithGroupsParams, options?: RequestOptions): PagePromise<UsageListWithGroupsResponsesCursorPage, UsageListWithGroupsResponse>;
|
|
67
207
|
/**
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
208
|
+
* This endpoint retrieves events by transaction ID for events that occurred within
|
|
209
|
+
* the last 34 days. It is specifically designed for sampling-based testing
|
|
210
|
+
* workflows to detect revenue leakage. The Event Search API provides a critical
|
|
211
|
+
* observability tool that validates the integrity of your usage pipeline by
|
|
212
|
+
* allowing you to sample raw events and verify their matching against active
|
|
213
|
+
* billable metrics.
|
|
214
|
+
*
|
|
215
|
+
* Why event observability matters for revenue leakage: Silent revenue loss occurs
|
|
216
|
+
* when events are dropped, delayed, or fail to match billable metrics due to:
|
|
217
|
+
*
|
|
218
|
+
* - Upstream system failures
|
|
219
|
+
* - Event format changes
|
|
220
|
+
* - Misconfigured billable metrics
|
|
221
|
+
*
|
|
222
|
+
* ### Use this endpoint to:
|
|
223
|
+
*
|
|
224
|
+
* - Sample raw events and validate they match the expected billable metrics
|
|
225
|
+
* - Build custom leakage detection alerts to prevent silent revenue loss
|
|
226
|
+
* - Verify event processing accuracy during system changes or metric updates
|
|
227
|
+
* - Debug event matching issues in real-time
|
|
228
|
+
*
|
|
229
|
+
* ### Key response fields:
|
|
230
|
+
*
|
|
231
|
+
* - Complete event details including transaction ID, customer ID, and properties
|
|
232
|
+
* - Matched Metronome customer (if any)
|
|
233
|
+
* - Matched billable metric information (if any)
|
|
234
|
+
* - Processing status and duplicate detection flags
|
|
235
|
+
*
|
|
236
|
+
* ### Usage guidelines:
|
|
237
|
+
*
|
|
238
|
+
* ⚠️ Important: This endpoint is heavily rate limited and designed for sampling
|
|
239
|
+
* workflows only. Do not use this endpoint to check every event in your system.
|
|
240
|
+
* Instead, implement a sampling strategy to randomly validate a subset of events
|
|
241
|
+
* for observability purposes.
|
|
72
242
|
*
|
|
73
243
|
* @example
|
|
74
244
|
* ```ts
|
|
@@ -77,30 +247,24 @@ export declare class Usage extends APIResource {
|
|
|
77
247
|
* });
|
|
78
248
|
* ```
|
|
79
249
|
*/
|
|
80
|
-
search(body: UsageSearchParams, options?:
|
|
81
|
-
}
|
|
82
|
-
export declare class UsageListWithGroupsResponsesCursorPage extends CursorPage<UsageListWithGroupsResponse> {
|
|
250
|
+
search(body: UsageSearchParams, options?: RequestOptions): APIPromise<UsageSearchResponse>;
|
|
83
251
|
}
|
|
252
|
+
export type UsageListResponsesCursorPageWithoutLimit = CursorPageWithoutLimit<UsageListResponse>;
|
|
253
|
+
export type UsageListWithGroupsResponsesCursorPage = CursorPage<UsageListWithGroupsResponse>;
|
|
84
254
|
export interface UsageListResponse {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
* matches for the group_by value.
|
|
99
|
-
*/
|
|
100
|
-
groups?: {
|
|
101
|
-
[key: string]: number | null;
|
|
102
|
-
};
|
|
103
|
-
}
|
|
255
|
+
billable_metric_id: string;
|
|
256
|
+
billable_metric_name: string;
|
|
257
|
+
customer_id: string;
|
|
258
|
+
end_timestamp: string;
|
|
259
|
+
start_timestamp: string;
|
|
260
|
+
value: number | null;
|
|
261
|
+
/**
|
|
262
|
+
* Values will be either a number or null. Null indicates that there were no
|
|
263
|
+
* matches for the group_by value.
|
|
264
|
+
*/
|
|
265
|
+
groups?: {
|
|
266
|
+
[key: string]: number | null;
|
|
267
|
+
};
|
|
104
268
|
}
|
|
105
269
|
export interface UsageListWithGroupsResponse {
|
|
106
270
|
ending_before: string;
|
|
@@ -158,6 +322,9 @@ export declare namespace UsageSearchResponse {
|
|
|
158
322
|
* provided, the billable metric is not archived.
|
|
159
323
|
*/
|
|
160
324
|
archived_at?: string;
|
|
325
|
+
/**
|
|
326
|
+
* Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
|
|
327
|
+
*/
|
|
161
328
|
custom_fields?: {
|
|
162
329
|
[key: string]: string;
|
|
163
330
|
};
|
|
@@ -200,7 +367,7 @@ export declare namespace UsageSearchResponse {
|
|
|
200
367
|
}
|
|
201
368
|
}
|
|
202
369
|
}
|
|
203
|
-
export interface UsageListParams {
|
|
370
|
+
export interface UsageListParams extends CursorPageWithoutLimitParams {
|
|
204
371
|
/**
|
|
205
372
|
* Body param:
|
|
206
373
|
*/
|
|
@@ -216,10 +383,6 @@ export interface UsageListParams {
|
|
|
216
383
|
* period.
|
|
217
384
|
*/
|
|
218
385
|
window_size: 'HOUR' | 'DAY' | 'NONE';
|
|
219
|
-
/**
|
|
220
|
-
* Query param: Cursor that indicates where the next page of results should start.
|
|
221
|
-
*/
|
|
222
|
-
next_page?: string;
|
|
223
386
|
/**
|
|
224
387
|
* Body param: A list of billable metrics to fetch usage for. If absent, all
|
|
225
388
|
* billable metrics will be returned.
|
|
@@ -250,7 +413,9 @@ export declare namespace UsageListParams {
|
|
|
250
413
|
}
|
|
251
414
|
}
|
|
252
415
|
}
|
|
253
|
-
export
|
|
416
|
+
export interface UsageIngestParams {
|
|
417
|
+
usage?: Array<UsageIngestParams.Usage>;
|
|
418
|
+
}
|
|
254
419
|
export declare namespace UsageIngestParams {
|
|
255
420
|
interface Usage {
|
|
256
421
|
customer_id: string;
|
|
@@ -320,6 +485,6 @@ export interface UsageSearchParams {
|
|
|
320
485
|
transactionIds: Array<string>;
|
|
321
486
|
}
|
|
322
487
|
export declare namespace Usage {
|
|
323
|
-
export { type UsageListResponse as UsageListResponse, type UsageListWithGroupsResponse as UsageListWithGroupsResponse, type UsageSearchResponse as UsageSearchResponse, UsageListWithGroupsResponsesCursorPage as UsageListWithGroupsResponsesCursorPage, type UsageListParams as UsageListParams, type UsageIngestParams as UsageIngestParams, type UsageListWithGroupsParams as UsageListWithGroupsParams, type UsageSearchParams as UsageSearchParams, };
|
|
488
|
+
export { type UsageListResponse as UsageListResponse, type UsageListWithGroupsResponse as UsageListWithGroupsResponse, type UsageSearchResponse as UsageSearchResponse, type UsageListResponsesCursorPageWithoutLimit as UsageListResponsesCursorPageWithoutLimit, type UsageListWithGroupsResponsesCursorPage as UsageListWithGroupsResponsesCursorPage, type UsageListParams as UsageListParams, type UsageIngestParams as UsageIngestParams, type UsageListWithGroupsParams as UsageListWithGroupsParams, type UsageSearchParams as UsageSearchParams, };
|
|
324
489
|
}
|
|
325
490
|
//# sourceMappingURL=usage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/resources/v1/usage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/resources/v1/usage.ts"],"names":[],"mappings":"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"}
|
package/resources/v1/usage.js
CHANGED
|
@@ -1,41 +1,203 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.
|
|
5
|
-
const resource_1 = require("../../resource.js");
|
|
6
|
-
const
|
|
7
|
-
const
|
|
4
|
+
exports.Usage = void 0;
|
|
5
|
+
const resource_1 = require("../../core/resource.js");
|
|
6
|
+
const pagination_1 = require("../../core/pagination.js");
|
|
7
|
+
const headers_1 = require("../../internal/headers.js");
|
|
8
8
|
class Usage extends resource_1.APIResource {
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
10
|
+
* Retrieve aggregated usage data across multiple customers and billable metrics in
|
|
11
|
+
* a single query. This batch endpoint enables you to fetch usage patterns at
|
|
12
|
+
* scale, broken down by time windows, making it ideal for building analytics
|
|
13
|
+
* dashboards, generating reports, and monitoring platform-wide usage trends.
|
|
14
|
+
*
|
|
15
|
+
* ### Use this endpoint to:
|
|
16
|
+
*
|
|
17
|
+
* - Generate platform-wide usage reports for internal teams
|
|
18
|
+
* - Monitor aggregate usage trends across your entire customer base
|
|
19
|
+
* - Create comparative usage analyses between customers or time periods
|
|
20
|
+
* - Support capacity planning with historical usage patterns
|
|
21
|
+
*
|
|
22
|
+
* ### Key response fields:
|
|
23
|
+
*
|
|
24
|
+
* An array of `UsageBatchAggregate` objects containing:
|
|
25
|
+
*
|
|
26
|
+
* - `customer_id`: The customer this usage belongs to
|
|
27
|
+
* - `billable_metric_id` and `billable_metric_name`: What was measured
|
|
28
|
+
* - `start_timestamp` and `end_timestamp`: Time window for this data point
|
|
29
|
+
* - `value`: Aggregated usage amount for the period
|
|
30
|
+
* - `groups` (optional): Usage broken down by group keys with values
|
|
31
|
+
* - `next_page`: Pagination cursor for large result sets
|
|
32
|
+
*
|
|
33
|
+
* ### Usage guidelines:
|
|
34
|
+
*
|
|
35
|
+
* - Time windows: Set `window_size` to `hour`, `day`, or `none` (entire period)
|
|
36
|
+
* - Required parameters: Must specify `starting_on`, `ending_before`, and
|
|
37
|
+
* `window_size`
|
|
38
|
+
* - Filtering options:
|
|
39
|
+
* - `customer_ids`: Limit to specific customers (omit for all customers)
|
|
40
|
+
* - `billable_metrics`: Limit to specific metrics (omit for all metrics)
|
|
41
|
+
* - Pagination: Use `next_page` cursor to retrieve large datasets
|
|
42
|
+
* - Null values: Group values may be null when no usage matches that group
|
|
12
43
|
*
|
|
13
44
|
* @example
|
|
14
45
|
* ```ts
|
|
15
|
-
*
|
|
46
|
+
* // Automatically fetches more pages as needed.
|
|
47
|
+
* for await (const usageListResponse of client.v1.usage.list({
|
|
16
48
|
* ending_before: '2021-01-03T00:00:00Z',
|
|
17
49
|
* starting_on: '2021-01-01T00:00:00Z',
|
|
18
50
|
* window_size: 'day',
|
|
19
|
-
* })
|
|
51
|
+
* })) {
|
|
52
|
+
* // ...
|
|
53
|
+
* }
|
|
20
54
|
* ```
|
|
21
55
|
*/
|
|
22
56
|
list(params, options) {
|
|
23
57
|
const { next_page, ...body } = params;
|
|
24
|
-
return this._client.
|
|
58
|
+
return this._client.getAPIList('/v1/usage', (pagination_1.CursorPageWithoutLimit), {
|
|
59
|
+
query: { next_page },
|
|
60
|
+
body,
|
|
61
|
+
method: 'post',
|
|
62
|
+
...options,
|
|
63
|
+
});
|
|
25
64
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
65
|
+
/**
|
|
66
|
+
* The ingest endpoint is the primary method for sending usage events to Metronome,
|
|
67
|
+
* serving as the foundation for all billing calculations in your usage-based
|
|
68
|
+
* pricing model. This high-throughput endpoint is designed for real-time streaming
|
|
69
|
+
* ingestion, supports backdating 34 days, and is built to handle mission-critical
|
|
70
|
+
* usage data with enterprise-grade reliability. Metronome supports 100,000 events
|
|
71
|
+
* per second without requiring pre-aggregation or rollups and can scale up from
|
|
72
|
+
* there. See the [Send usage events](/guides/events/send-usage-events) guide to
|
|
73
|
+
* learn more about usage events.
|
|
74
|
+
*
|
|
75
|
+
* ### Use this endpoint to:
|
|
76
|
+
*
|
|
77
|
+
* Create a customer usage pipeline into Metronome that drives billable metrics,
|
|
78
|
+
* credit drawdown, and invoicing. Track customer behavior, resource consumption,
|
|
79
|
+
* and feature usage
|
|
80
|
+
*
|
|
81
|
+
* ### What happens when you send events:
|
|
82
|
+
*
|
|
83
|
+
* - Events are validated and processed in real-time
|
|
84
|
+
* - Events are matched to customers using customer IDs or customer ingest aliases
|
|
85
|
+
* - Events are matched to billable metrics and are immediately available for usage
|
|
86
|
+
* and spend calculations
|
|
87
|
+
*
|
|
88
|
+
* ### Usage guidelines:
|
|
89
|
+
*
|
|
90
|
+
* - Historical events can be backdated up to 34 days and will immediately impact
|
|
91
|
+
* live customer spend
|
|
92
|
+
* - Duplicate events are automatically detected and ignored (34-day deduplication
|
|
93
|
+
* window)
|
|
94
|
+
*
|
|
95
|
+
* #### Event structure:
|
|
96
|
+
*
|
|
97
|
+
* Usage events are simple JSON objects designed for flexibility and ease of
|
|
98
|
+
* integration:
|
|
99
|
+
*
|
|
100
|
+
* ```json
|
|
101
|
+
* {
|
|
102
|
+
* "transaction_id": "2021-01-01T00:00:00Z_cluster42",
|
|
103
|
+
* "customer_id": "team@example.com",
|
|
104
|
+
* "event_type": "api_request",
|
|
105
|
+
* "timestamp": "2021-01-01T00:00:00Z",
|
|
106
|
+
* "properties": {
|
|
107
|
+
* "endpoint": "/v1/users",
|
|
108
|
+
* "method": "POST",
|
|
109
|
+
* "response_time_ms": 45,
|
|
110
|
+
* "region": "us-west-2"
|
|
111
|
+
* }
|
|
112
|
+
* }
|
|
113
|
+
* ```
|
|
114
|
+
*
|
|
115
|
+
* Learn more about
|
|
116
|
+
* [usage event structure definitions](/guides/events/design-usage-events).
|
|
117
|
+
*
|
|
118
|
+
* #### Transaction ID
|
|
119
|
+
*
|
|
120
|
+
* The transaction_id serves as your idempotency key, ensuring events are processed
|
|
121
|
+
* exactly once. Metronome maintains a 34-day deduplication window - significantly
|
|
122
|
+
* longer than typical 12-hour windows - enabling robust backfill scenarios without
|
|
123
|
+
* duplicate billing.
|
|
124
|
+
*
|
|
125
|
+
* - Best Practices:
|
|
126
|
+
* - Use UUIDs for one-time events: uuid4()
|
|
127
|
+
* - For heartbeat events, use deterministic IDs
|
|
128
|
+
* - Include enough context to avoid collisions across different event sources
|
|
129
|
+
*
|
|
130
|
+
* #### Customer ID
|
|
131
|
+
*
|
|
132
|
+
* Identifies which customer should be billed for this usage. Supports two
|
|
133
|
+
* identification methods:
|
|
134
|
+
*
|
|
135
|
+
* - Metronome Customer ID: The UUID returned when creating a customer
|
|
136
|
+
* - Ingest Alias: Your system's identifier (email, account number, etc.)
|
|
137
|
+
*
|
|
138
|
+
* Ingest aliases enable seamless integration without requiring ID mapping, and
|
|
139
|
+
* customers can have multiple aliases for flexibility.
|
|
140
|
+
*
|
|
141
|
+
* #### Event Type:
|
|
142
|
+
*
|
|
143
|
+
* Categorizes the event type for billable metric matching. Choose descriptive
|
|
144
|
+
* names that aligns with the product surface area.
|
|
145
|
+
*
|
|
146
|
+
* #### Properties:
|
|
147
|
+
*
|
|
148
|
+
* Flexible metadata also used to match billable metrics or to be used to serve as
|
|
149
|
+
* group keys to create multiple pricing dimensions or breakdown costs by novel
|
|
150
|
+
* properties for end customers or internal finance teams measuring underlying
|
|
151
|
+
* COGs.
|
|
152
|
+
*
|
|
153
|
+
* @example
|
|
154
|
+
* ```ts
|
|
155
|
+
* await client.v1.usage.ingest();
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
ingest(params = undefined, options) {
|
|
159
|
+
const { usage } = params ?? {};
|
|
30
160
|
return this._client.post('/v1/ingest', {
|
|
31
|
-
body,
|
|
161
|
+
body: usage,
|
|
32
162
|
...options,
|
|
33
|
-
headers: { Accept: '*/*',
|
|
163
|
+
headers: (0, headers_1.buildHeaders)([{ Accept: '*/*' }, options?.headers]),
|
|
34
164
|
});
|
|
35
165
|
}
|
|
36
166
|
/**
|
|
37
|
-
*
|
|
38
|
-
*
|
|
167
|
+
* Retrieve granular usage data for a specific customer and billable metric, with
|
|
168
|
+
* the ability to break down usage by custom grouping dimensions. This endpoint
|
|
169
|
+
* enables deep usage analytics by segmenting data across attributes like region,
|
|
170
|
+
* user, model type, or any custom dimension defined in your billable metrics.
|
|
171
|
+
*
|
|
172
|
+
* ### Use this endpoint to:
|
|
173
|
+
*
|
|
174
|
+
* - Analyze usage patterns broken down by specific attributes (region, user,
|
|
175
|
+
* department, etc.)
|
|
176
|
+
* - Build detailed usage dashboards with dimensional filtering
|
|
177
|
+
* - Identify high-usage segments for optimization opportunities
|
|
178
|
+
*
|
|
179
|
+
* ### Key response fields:
|
|
180
|
+
*
|
|
181
|
+
* An array of `PagedUsageAggregate` objects containing:
|
|
182
|
+
*
|
|
183
|
+
* - `starting_on` and `ending_before`: Time window boundaries
|
|
184
|
+
* - `group_key`: The dimension being grouped by (e.g., "region")
|
|
185
|
+
* - `group_value`: The specific value for this group (e.g., "US-East")
|
|
186
|
+
* - `value`: Aggregated usage for this group and time window
|
|
187
|
+
* - `next_page`: Pagination cursor for large datasets
|
|
188
|
+
*
|
|
189
|
+
* ### Usage guidelines:
|
|
190
|
+
*
|
|
191
|
+
* - Required parameters: Must specify `customer_id`, `billable_metric_id`, and
|
|
192
|
+
* `window_size`
|
|
193
|
+
* - Time windows: Set `window_size` to hour, day, or none for different
|
|
194
|
+
* granularities
|
|
195
|
+
* - Group filtering: Use `group_by` to specify:
|
|
196
|
+
* - key: The dimension to group by (must be set on the billable metric as a
|
|
197
|
+
* group key)
|
|
198
|
+
* - values: Optional array to filter to specific values only
|
|
199
|
+
* - Pagination: Use limit and `next_page` for large result sets
|
|
200
|
+
* - Null handling: `group_value` may be null for unmatched data
|
|
39
201
|
*
|
|
40
202
|
* @example
|
|
41
203
|
* ```ts
|
|
@@ -60,7 +222,7 @@ class Usage extends resource_1.APIResource {
|
|
|
60
222
|
*/
|
|
61
223
|
listWithGroups(params, options) {
|
|
62
224
|
const { limit, next_page, ...body } = params;
|
|
63
|
-
return this._client.getAPIList('/v1/usage/groups',
|
|
225
|
+
return this._client.getAPIList('/v1/usage/groups', (pagination_1.CursorPage), {
|
|
64
226
|
query: { limit, next_page },
|
|
65
227
|
body,
|
|
66
228
|
method: 'post',
|
|
@@ -68,10 +230,40 @@ class Usage extends resource_1.APIResource {
|
|
|
68
230
|
});
|
|
69
231
|
}
|
|
70
232
|
/**
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
233
|
+
* This endpoint retrieves events by transaction ID for events that occurred within
|
|
234
|
+
* the last 34 days. It is specifically designed for sampling-based testing
|
|
235
|
+
* workflows to detect revenue leakage. The Event Search API provides a critical
|
|
236
|
+
* observability tool that validates the integrity of your usage pipeline by
|
|
237
|
+
* allowing you to sample raw events and verify their matching against active
|
|
238
|
+
* billable metrics.
|
|
239
|
+
*
|
|
240
|
+
* Why event observability matters for revenue leakage: Silent revenue loss occurs
|
|
241
|
+
* when events are dropped, delayed, or fail to match billable metrics due to:
|
|
242
|
+
*
|
|
243
|
+
* - Upstream system failures
|
|
244
|
+
* - Event format changes
|
|
245
|
+
* - Misconfigured billable metrics
|
|
246
|
+
*
|
|
247
|
+
* ### Use this endpoint to:
|
|
248
|
+
*
|
|
249
|
+
* - Sample raw events and validate they match the expected billable metrics
|
|
250
|
+
* - Build custom leakage detection alerts to prevent silent revenue loss
|
|
251
|
+
* - Verify event processing accuracy during system changes or metric updates
|
|
252
|
+
* - Debug event matching issues in real-time
|
|
253
|
+
*
|
|
254
|
+
* ### Key response fields:
|
|
255
|
+
*
|
|
256
|
+
* - Complete event details including transaction ID, customer ID, and properties
|
|
257
|
+
* - Matched Metronome customer (if any)
|
|
258
|
+
* - Matched billable metric information (if any)
|
|
259
|
+
* - Processing status and duplicate detection flags
|
|
260
|
+
*
|
|
261
|
+
* ### Usage guidelines:
|
|
262
|
+
*
|
|
263
|
+
* ⚠️ Important: This endpoint is heavily rate limited and designed for sampling
|
|
264
|
+
* workflows only. Do not use this endpoint to check every event in your system.
|
|
265
|
+
* Instead, implement a sampling strategy to randomly validate a subset of events
|
|
266
|
+
* for observability purposes.
|
|
75
267
|
*
|
|
76
268
|
* @example
|
|
77
269
|
* ```ts
|
|
@@ -85,8 +277,4 @@ class Usage extends resource_1.APIResource {
|
|
|
85
277
|
}
|
|
86
278
|
}
|
|
87
279
|
exports.Usage = Usage;
|
|
88
|
-
class UsageListWithGroupsResponsesCursorPage extends pagination_1.CursorPage {
|
|
89
|
-
}
|
|
90
|
-
exports.UsageListWithGroupsResponsesCursorPage = UsageListWithGroupsResponsesCursorPage;
|
|
91
|
-
Usage.UsageListWithGroupsResponsesCursorPage = UsageListWithGroupsResponsesCursorPage;
|
|
92
280
|
//# sourceMappingURL=usage.js.map
|