// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import { APIResource } from '../../core/resource'; import { APIPromise } from '../../core/api-promise'; import { RequestOptions } from '../../internal/request-options'; import { path } from '../../internal/utils/path'; export class BaseAvailableAlerts extends APIResource { static override readonly _key: readonly ['alerting', 'availableAlerts'] = Object.freeze([ 'alerting', 'availableAlerts', ] as const); /** * Gets a list of all alert types for which an account is eligible. * * @example * ```ts * const availableAlerts = * await client.alerting.availableAlerts.list({ * account_id: '023e105f4ecef8ad9ca31a8372d0c353', * }); * ``` */ list(params: AvailableAlertListParams, options?: RequestOptions): APIPromise { const { account_id } = params; return ( this._client.get(path`/accounts/${account_id}/alerting/v3/available_alerts`, options) as APIPromise<{ result: AvailableAlertListResponse; }> )._thenUnwrap((obj) => obj.result); } } export class AvailableAlerts extends BaseAvailableAlerts {} export type AvailableAlertListResponse = { [key: string]: Array }; export namespace AvailableAlertListResponse { export interface Item { /** * Describes the alert type. */ description?: string; /** * Alert type name. */ display_name?: string; /** * Format of additional configuration options (filters) for the alert type. Data * type of filters during policy creation: Array of strings. */ filter_options?: Array; /** * Use this value when creating and updating a notification policy. */ type?: string; } } export interface AvailableAlertListParams { /** * The account id */ account_id: string; } export declare namespace AvailableAlerts { export { type AvailableAlertListResponse as AvailableAlertListResponse, type AvailableAlertListParams as AvailableAlertListParams, }; }