// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import { APIResource } from '../../resource'; import * as Core from '../../core'; import { V4PagePaginationArray, type V4PagePaginationArrayParams } from '../../pagination'; export class Addresses extends APIResource { /** * Create a destination address to forward your emails to. Destination addresses * need to be verified before they can be used. */ create(params: AddressCreateParams, options?: Core.RequestOptions): Core.APIPromise
{ const { account_id, ...body } = params; return ( this._client.post(`/accounts/${account_id}/email/routing/addresses`, { body, ...options, }) as Core.APIPromise<{ result: Address }> )._thenUnwrap((obj) => obj.result); } /** * Lists existing destination addresses. */ list( params: AddressListParams, options?: Core.RequestOptions, ): Core.PagePromise { const { account_id, ...query } = params; return this._client.getAPIList( `/accounts/${account_id}/email/routing/addresses`, AddressesV4PagePaginationArray, { query, ...options }, ); } /** * Deletes a specific destination address. */ delete( destinationAddressIdentifier: string, params: AddressDeleteParams, options?: Core.RequestOptions, ): Core.APIPromise
{ const { account_id } = params; return ( this._client.delete( `/accounts/${account_id}/email/routing/addresses/${destinationAddressIdentifier}`, options, ) as Core.APIPromise<{ result: Address }> )._thenUnwrap((obj) => obj.result); } /** * Gets information for a specific destination email already created. */ get( destinationAddressIdentifier: string, params: AddressGetParams, options?: Core.RequestOptions, ): Core.APIPromise
{ const { account_id } = params; return ( this._client.get( `/accounts/${account_id}/email/routing/addresses/${destinationAddressIdentifier}`, options, ) as Core.APIPromise<{ result: Address }> )._thenUnwrap((obj) => obj.result); } } export class AddressesV4PagePaginationArray extends V4PagePaginationArray
{} export interface Address { /** * Destination address identifier. */ id?: string; /** * The date and time the destination address has been created. */ created?: string; /** * The contact email address of the user. */ email?: string; /** * The date and time the destination address was last modified. */ modified?: string; /** * @deprecated Destination address tag. (Deprecated, replaced by destination * address identifier) */ tag?: string; /** * The date and time the destination address has been verified. Null means not * verified yet. */ verified?: string; } export interface AddressCreateParams { /** * Path param: Identifier */ account_id: string; /** * Body param: The contact email address of the user. */ email: string; } export interface AddressListParams extends V4PagePaginationArrayParams { /** * Path param: Identifier */ account_id: string; /** * Query param: Sorts results in an ascending or descending order. */ direction?: 'asc' | 'desc'; /** * Query param: Filter by verified destination addresses. */ verified?: true | false; } export interface AddressDeleteParams { /** * Identifier */ account_id: string; } export interface AddressGetParams { /** * Identifier */ account_id: string; } Addresses.AddressesV4PagePaginationArray = AddressesV4PagePaginationArray; export declare namespace Addresses { export { type Address as Address, AddressesV4PagePaginationArray as AddressesV4PagePaginationArray, type AddressCreateParams as AddressCreateParams, type AddressListParams as AddressListParams, type AddressDeleteParams as AddressDeleteParams, type AddressGetParams as AddressGetParams, }; }