orb-billing
Version:
The official TypeScript library for the Orb API
104 lines • 4.15 kB
TypeScript
import { APIResource } from "../resource.js";
import * as Core from "../core.js";
import * as ItemsAPI from "./items.js";
import { Page, type PageParams } from "../pagination.js";
export declare class Metrics extends APIResource {
/**
* This endpoint is used to create a [metric](/core-concepts###metric) using a SQL
* string. See [SQL support](/extensibility/advanced-metrics#sql-support) for a
* description of constructing SQL queries with examples.
*/
create(body: MetricCreateParams, options?: Core.RequestOptions): Core.APIPromise<BillableMetric>;
/**
* This endpoint allows you to update the `metadata` property on a metric. If you
* pass `null` for the metadata value, it will clear any existing metadata for that
* invoice.
*/
update(metricId: string, body: MetricUpdateParams, options?: Core.RequestOptions): Core.APIPromise<BillableMetric>;
/**
* This endpoint is used to fetch [metric](/core-concepts##metric) details given a
* metric identifier. It returns information about the metrics including its name,
* description, and item.
*/
list(query?: MetricListParams, options?: Core.RequestOptions): Core.PagePromise<BillableMetricsPage, BillableMetric>;
list(options?: Core.RequestOptions): Core.PagePromise<BillableMetricsPage, BillableMetric>;
/**
* This endpoint is used to list [metrics](/core-concepts#metric). It returns
* information about the metrics including its name, description, and item.
*/
fetch(metricId: string, options?: Core.RequestOptions): Core.APIPromise<BillableMetric>;
}
export declare class BillableMetricsPage extends Page<BillableMetric> {
}
/**
* The Metric resource represents a calculation of a quantity based on events.
* Metrics are defined by the query that transforms raw usage events into
* meaningful values for your customers.
*/
export interface BillableMetric {
id: string;
description: string | null;
/**
* The Item resource represents a sellable product or good. Items are associated
* with all line items, billable metrics, and prices and are used for defining
* external sync behavior for invoices and tax calculation purposes.
*/
item: ItemsAPI.Item;
/**
* User specified key-value pairs for the resource. If not present, this defaults
* to an empty dictionary. Individual keys can be removed by setting the value to
* `null`, and the entire metadata mapping can be cleared by setting `metadata` to
* `null`.
*/
metadata: {
[key: string]: string;
};
name: string;
status: 'active' | 'draft' | 'archived';
}
export interface MetricCreateParams {
/**
* A description of the metric.
*/
description: string | null;
/**
* The id of the item
*/
item_id: string;
/**
* The name of the metric.
*/
name: string;
/**
* A sql string defining the metric.
*/
sql: string;
/**
* User-specified key/value pairs for the resource. Individual keys can be removed
* by setting the value to `null`, and the entire metadata mapping can be cleared
* by setting `metadata` to `null`.
*/
metadata?: {
[key: string]: string | null;
} | null;
}
export interface MetricUpdateParams {
/**
* User-specified key/value pairs for the resource. Individual keys can be removed
* by setting the value to `null`, and the entire metadata mapping can be cleared
* by setting `metadata` to `null`.
*/
metadata?: {
[key: string]: string | null;
} | null;
}
export interface MetricListParams extends PageParams {
'created_at[gt]'?: string | null;
'created_at[gte]'?: string | null;
'created_at[lt]'?: string | null;
'created_at[lte]'?: string | null;
}
export declare namespace Metrics {
export { type BillableMetric as BillableMetric, BillableMetricsPage as BillableMetricsPage, type MetricCreateParams as MetricCreateParams, type MetricUpdateParams as MetricUpdateParams, type MetricListParams as MetricListParams, };
}
//# sourceMappingURL=metrics.d.ts.map