stripe
Version:
Stripe API wrapper
194 lines (193 loc) • 6.3 kB
TypeScript
import { StripeResource } from '../../StripeResource.js';
import { Meter } from './Meters.js';
import { Customer } from './../Customers.js';
import { PaginationParams } from '../../shared.js';
import { RequestOptions, ApiListPromise, Response } from '../../lib.js';
export declare class AlertResource extends StripeResource {
/**
* Lists billing active and inactive alerts
*/
list(params?: Billing.AlertListParams, options?: RequestOptions): ApiListPromise<Alert>;
/**
* Creates a billing alert
*/
create(params: Billing.AlertCreateParams, options?: RequestOptions): Promise<Response<Alert>>;
/**
* Retrieves a billing alert given an ID
*/
retrieve(id: string, params?: Billing.AlertRetrieveParams, options?: RequestOptions): Promise<Response<Alert>>;
/**
* Reactivates this alert, allowing it to trigger again.
*/
activate(id: string, params?: Billing.AlertActivateParams, options?: RequestOptions): Promise<Response<Alert>>;
/**
* Archives this alert, removing it from the list view and APIs. This is non-reversible.
*/
archive(id: string, params?: Billing.AlertArchiveParams, options?: RequestOptions): Promise<Response<Alert>>;
/**
* Deactivates this alert, preventing it from triggering.
*/
deactivate(id: string, params?: Billing.AlertDeactivateParams, options?: RequestOptions): Promise<Response<Alert>>;
}
export interface Alert {
/**
* Unique identifier for the object.
*/
id: string;
/**
* String representing the object's type. Objects of the same type share the same value.
*/
object: 'billing.alert';
/**
* Defines the type of the alert.
*/
alert_type: 'usage_threshold';
/**
* If the object exists in live mode, the value is `true`. If the object exists in test mode, the value is `false`.
*/
livemode: boolean;
/**
* Status of the alert. This can be active, inactive or archived.
*/
status: Billing.Alert.Status | null;
/**
* Title of the alert.
*/
title: string;
/**
* Encapsulates configuration of the alert to monitor usage on a specific [Billing Meter](https://docs.stripe.com/api/billing/meter).
*/
usage_threshold: Billing.Alert.UsageThreshold | null;
}
export declare namespace Billing {
namespace Alert {
type Status = 'active' | 'archived' | 'inactive';
interface UsageThreshold {
/**
* The filters allow limiting the scope of this usage alert. You can only specify up to one filter at this time.
*/
filters: Array<UsageThreshold.Filter> | null;
/**
* The value at which this alert will trigger.
*/
gte: number;
/**
* The [Billing Meter](https://docs.stripe.com/api/billing/meter) ID whose usage is monitored.
*/
meter: string | Meter;
/**
* Defines how the alert will behave.
*/
recurrence: 'one_time';
}
namespace UsageThreshold {
interface Filter {
/**
* Limit the scope of the alert to this customer ID
*/
customer: string | Customer | null;
type: 'customer';
}
}
}
}
export declare namespace Billing {
interface AlertCreateParams {
/**
* The type of alert to create.
*/
alert_type: 'usage_threshold';
/**
* The title of the alert.
*/
title: string;
/**
* Specifies which fields in the response should be expanded.
*/
expand?: Array<string>;
/**
* The configuration of the usage threshold.
*/
usage_threshold?: AlertCreateParams.UsageThreshold;
}
namespace AlertCreateParams {
interface UsageThreshold {
/**
* The filters allows limiting the scope of this usage alert. You can only specify up to one filter at this time.
*/
filters?: Array<UsageThreshold.Filter>;
/**
* Defines the threshold value that triggers the alert.
*/
gte: number;
/**
* The [Billing Meter](https://docs.stripe.com/api/billing/meter) ID whose usage is monitored.
*/
meter: string;
/**
* Defines how the alert will behave.
*/
recurrence: 'one_time';
}
namespace UsageThreshold {
interface Filter {
/**
* Limit the scope to this usage alert only to this customer.
*/
customer?: string;
/**
* What type of filter is being applied to this usage alert.
*/
type: 'customer';
}
}
}
}
export declare namespace Billing {
interface AlertRetrieveParams {
/**
* Specifies which fields in the response should be expanded.
*/
expand?: Array<string>;
}
}
export declare namespace Billing {
interface AlertListParams extends PaginationParams {
/**
* Filter results to only include this type of alert.
*/
alert_type?: 'usage_threshold';
/**
* Specifies which fields in the response should be expanded.
*/
expand?: Array<string>;
/**
* Filter results to only include alerts with the given meter.
*/
meter?: string;
}
}
export declare namespace Billing {
interface AlertActivateParams {
/**
* Specifies which fields in the response should be expanded.
*/
expand?: Array<string>;
}
}
export declare namespace Billing {
interface AlertArchiveParams {
/**
* Specifies which fields in the response should be expanded.
*/
expand?: Array<string>;
}
}
export declare namespace Billing {
interface AlertDeactivateParams {
/**
* Specifies which fields in the response should be expanded.
*/
expand?: Array<string>;
}
}