///
import { inspect, InspectOptions } from "util";
import Page, { TwilioResponsePayload } from "../../../base/Page";
import Response from "../../../http/response";
import V2010 from "../V2010";
import { AddressListInstance } from "./account/address";
import { ApplicationListInstance } from "./account/application";
import { AuthorizedConnectAppListInstance } from "./account/authorizedConnectApp";
import { AvailablePhoneNumberCountryListInstance } from "./account/availablePhoneNumberCountry";
import { BalanceListInstance } from "./account/balance";
import { CallListInstance } from "./account/call";
import { ConferenceListInstance } from "./account/conference";
import { ConnectAppListInstance } from "./account/connectApp";
import { IncomingPhoneNumberListInstance } from "./account/incomingPhoneNumber";
import { KeyListInstance } from "./account/key";
import { MessageListInstance } from "./account/message";
import { NewKeyListInstance } from "./account/newKey";
import { NewSigningKeyListInstance } from "./account/newSigningKey";
import { NotificationListInstance } from "./account/notification";
import { OutgoingCallerIdListInstance } from "./account/outgoingCallerId";
import { QueueListInstance } from "./account/queue";
import { RecordingListInstance } from "./account/recording";
import { ShortCodeListInstance } from "./account/shortCode";
import { SigningKeyListInstance } from "./account/signingKey";
import { SipListInstance } from "./account/sip";
import { TokenListInstance } from "./account/token";
import { TranscriptionListInstance } from "./account/transcription";
import { UsageListInstance } from "./account/usage";
import { ValidationRequestListInstance } from "./account/validationRequest";
/**
* The status of this account. Usually `active`, but can be `suspended` or `closed`.
*/
export type AccountStatus = "active" | "suspended" | "closed";
/**
* The type of this account. Either `Trial` or `Full` if it\'s been upgraded
*/
export type AccountType = "Trial" | "Full";
/**
* Options to pass to update a AccountInstance
*/
export interface AccountContextUpdateOptions {
/** Update the human-readable description of this Account */
friendlyName?: string;
/** */
status?: AccountStatus;
}
/**
* Options to pass to create a AccountInstance
*/
export interface AccountListInstanceCreateOptions {
/** A human readable description of the account to create, defaults to `SubAccount Created at {YYYY-MM-DD HH:MM meridian}` */
friendlyName?: string;
}
/**
* Options to pass to each
*/
export interface AccountListInstanceEachOptions {
/** Only return the Account resources with friendly names that exactly match this name. */
friendlyName?: string;
/** Only return Account resources with the given status. Can be `closed`, `suspended` or `active`. */
status?: AccountStatus;
/** How many resources to return in each list page. The default is 50, and the maximum is 1000. */
pageSize?: number;
/** Function to process each record. If this and a positional callback are passed, this one will be used */
callback?: (item: AccountInstance, done: (err?: Error) => void) => void;
/** Function to be called upon completion of streaming */
done?: Function;
/** Upper limit for the number of records to return. each() guarantees never to return more than limit. Default is no limit */
limit?: number;
}
/**
* Options to pass to list
*/
export interface AccountListInstanceOptions {
/** Only return the Account resources with friendly names that exactly match this name. */
friendlyName?: string;
/** Only return Account resources with the given status. Can be `closed`, `suspended` or `active`. */
status?: AccountStatus;
/** How many resources to return in each list page. The default is 50, and the maximum is 1000. */
pageSize?: number;
/** Upper limit for the number of records to return. list() guarantees never to return more than limit. Default is no limit */
limit?: number;
}
/**
* Options to pass to page
*/
export interface AccountListInstancePageOptions {
/** Only return the Account resources with friendly names that exactly match this name. */
friendlyName?: string;
/** Only return Account resources with the given status. Can be `closed`, `suspended` or `active`. */
status?: AccountStatus;
/** How many resources to return in each list page. The default is 50, and the maximum is 1000. */
pageSize?: number;
/** Page Number, this value is simply for client state */
pageNumber?: number;
/** PageToken provided by the API */
pageToken?: string;
}
export interface AccountContext {
addresses: AddressListInstance;
applications: ApplicationListInstance;
authorizedConnectApps: AuthorizedConnectAppListInstance;
availablePhoneNumbers: AvailablePhoneNumberCountryListInstance;
balance: BalanceListInstance;
calls: CallListInstance;
conferences: ConferenceListInstance;
connectApps: ConnectAppListInstance;
incomingPhoneNumbers: IncomingPhoneNumberListInstance;
keys: KeyListInstance;
messages: MessageListInstance;
newKeys: NewKeyListInstance;
newSigningKeys: NewSigningKeyListInstance;
notifications: NotificationListInstance;
outgoingCallerIds: OutgoingCallerIdListInstance;
queues: QueueListInstance;
recordings: RecordingListInstance;
shortCodes: ShortCodeListInstance;
signingKeys: SigningKeyListInstance;
sip: SipListInstance;
tokens: TokenListInstance;
transcriptions: TranscriptionListInstance;
usage: UsageListInstance;
validationRequests: ValidationRequestListInstance;
/**
* Fetch a AccountInstance
*
* @param callback - Callback to handle processed record
*
* @returns Resolves to processed AccountInstance
*/
fetch(callback?: (error: Error | null, item?: AccountInstance) => any): Promise;
/**
* Update a AccountInstance
*
* @param callback - Callback to handle processed record
*
* @returns Resolves to processed AccountInstance
*/
update(callback?: (error: Error | null, item?: AccountInstance) => any): Promise;
/**
* Update a AccountInstance
*
* @param params - Parameter for request
* @param callback - Callback to handle processed record
*
* @returns Resolves to processed AccountInstance
*/
update(params: AccountContextUpdateOptions, callback?: (error: Error | null, item?: AccountInstance) => any): Promise;
/**
* Provide a user-friendly representation
*/
toJSON(): any;
[inspect.custom](_depth: any, options: InspectOptions): any;
}
export interface AccountContextSolution {
sid: string;
}
export declare class AccountContextImpl implements AccountContext {
protected _version: V2010;
protected _solution: AccountContextSolution;
protected _uri: string;
protected _addresses?: AddressListInstance;
protected _applications?: ApplicationListInstance;
protected _authorizedConnectApps?: AuthorizedConnectAppListInstance;
protected _availablePhoneNumbers?: AvailablePhoneNumberCountryListInstance;
protected _balance?: BalanceListInstance;
protected _calls?: CallListInstance;
protected _conferences?: ConferenceListInstance;
protected _connectApps?: ConnectAppListInstance;
protected _incomingPhoneNumbers?: IncomingPhoneNumberListInstance;
protected _keys?: KeyListInstance;
protected _messages?: MessageListInstance;
protected _newKeys?: NewKeyListInstance;
protected _newSigningKeys?: NewSigningKeyListInstance;
protected _notifications?: NotificationListInstance;
protected _outgoingCallerIds?: OutgoingCallerIdListInstance;
protected _queues?: QueueListInstance;
protected _recordings?: RecordingListInstance;
protected _shortCodes?: ShortCodeListInstance;
protected _signingKeys?: SigningKeyListInstance;
protected _sip?: SipListInstance;
protected _tokens?: TokenListInstance;
protected _transcriptions?: TranscriptionListInstance;
protected _usage?: UsageListInstance;
protected _validationRequests?: ValidationRequestListInstance;
constructor(_version: V2010, sid: string);
get addresses(): AddressListInstance;
get applications(): ApplicationListInstance;
get authorizedConnectApps(): AuthorizedConnectAppListInstance;
get availablePhoneNumbers(): AvailablePhoneNumberCountryListInstance;
get balance(): BalanceListInstance;
get calls(): CallListInstance;
get conferences(): ConferenceListInstance;
get connectApps(): ConnectAppListInstance;
get incomingPhoneNumbers(): IncomingPhoneNumberListInstance;
get keys(): KeyListInstance;
get messages(): MessageListInstance;
get newKeys(): NewKeyListInstance;
get newSigningKeys(): NewSigningKeyListInstance;
get notifications(): NotificationListInstance;
get outgoingCallerIds(): OutgoingCallerIdListInstance;
get queues(): QueueListInstance;
get recordings(): RecordingListInstance;
get shortCodes(): ShortCodeListInstance;
get signingKeys(): SigningKeyListInstance;
get sip(): SipListInstance;
get tokens(): TokenListInstance;
get transcriptions(): TranscriptionListInstance;
get usage(): UsageListInstance;
get validationRequests(): ValidationRequestListInstance;
fetch(callback?: (error: Error | null, item?: AccountInstance) => any): Promise;
update(params?: AccountContextUpdateOptions | ((error: Error | null, item?: AccountInstance) => any), callback?: (error: Error | null, item?: AccountInstance) => any): Promise;
/**
* Provide a user-friendly representation
*
* @returns Object
*/
toJSON(): AccountContextSolution;
[inspect.custom](_depth: any, options: InspectOptions): string;
}
interface AccountPayload extends TwilioResponsePayload {
accounts: AccountResource[];
}
interface AccountResource {
auth_token: string;
date_created: Date;
date_updated: Date;
friendly_name: string;
owner_account_sid: string;
sid: string;
status: AccountStatus;
subresource_uris: Record;
type: AccountType;
uri: string;
}
export declare class AccountInstance {
protected _version: V2010;
protected _solution: AccountContextSolution;
protected _context?: AccountContext;
constructor(_version: V2010, payload: AccountResource, sid?: string);
/**
* The authorization token for this account. This token should be kept a secret, so no sharing.
*/
authToken: string;
/**
* The date that this account was created, in GMT in RFC 2822 format
*/
dateCreated: Date;
/**
* The date that this account was last updated, in GMT in RFC 2822 format.
*/
dateUpdated: Date;
/**
* A human readable description of this account, up to 64 characters long. By default the FriendlyName is your email address.
*/
friendlyName: string;
/**
* The unique 34 character id that represents the parent of this account. The OwnerAccountSid of a parent account is it\'s own sid.
*/
ownerAccountSid: string;
/**
* A 34 character string that uniquely identifies this resource.
*/
sid: string;
status: AccountStatus;
/**
* A Map of various subresources available for the given Account Instance
*/
subresourceUris: Record;
type: AccountType;
/**
* The URI for this resource, relative to `https://api.twilio.com`
*/
uri: string;
private get _proxy();
/**
* Fetch a AccountInstance
*
* @param callback - Callback to handle processed record
*
* @returns Resolves to processed AccountInstance
*/
fetch(callback?: (error: Error | null, item?: AccountInstance) => any): Promise;
/**
* Update a AccountInstance
*
* @param callback - Callback to handle processed record
*
* @returns Resolves to processed AccountInstance
*/
update(callback?: (error: Error | null, item?: AccountInstance) => any): Promise;
/**
* Update a AccountInstance
*
* @param params - Parameter for request
* @param callback - Callback to handle processed record
*
* @returns Resolves to processed AccountInstance
*/
update(params: AccountContextUpdateOptions, callback?: (error: Error | null, item?: AccountInstance) => any): Promise;
/**
* Access the addresses.
*/
addresses(): AddressListInstance;
/**
* Access the applications.
*/
applications(): ApplicationListInstance;
/**
* Access the authorizedConnectApps.
*/
authorizedConnectApps(): AuthorizedConnectAppListInstance;
/**
* Access the availablePhoneNumbers.
*/
availablePhoneNumbers(): AvailablePhoneNumberCountryListInstance;
/**
* Access the balance.
*/
balance(): BalanceListInstance;
/**
* Access the calls.
*/
calls(): CallListInstance;
/**
* Access the conferences.
*/
conferences(): ConferenceListInstance;
/**
* Access the connectApps.
*/
connectApps(): ConnectAppListInstance;
/**
* Access the incomingPhoneNumbers.
*/
incomingPhoneNumbers(): IncomingPhoneNumberListInstance;
/**
* Access the keys.
*/
keys(): KeyListInstance;
/**
* Access the messages.
*/
messages(): MessageListInstance;
/**
* Access the newKeys.
*/
newKeys(): NewKeyListInstance;
/**
* Access the newSigningKeys.
*/
newSigningKeys(): NewSigningKeyListInstance;
/**
* Access the notifications.
*/
notifications(): NotificationListInstance;
/**
* Access the outgoingCallerIds.
*/
outgoingCallerIds(): OutgoingCallerIdListInstance;
/**
* Access the queues.
*/
queues(): QueueListInstance;
/**
* Access the recordings.
*/
recordings(): RecordingListInstance;
/**
* Access the shortCodes.
*/
shortCodes(): ShortCodeListInstance;
/**
* Access the signingKeys.
*/
signingKeys(): SigningKeyListInstance;
/**
* Access the sip.
*/
sip(): SipListInstance;
/**
* Access the tokens.
*/
tokens(): TokenListInstance;
/**
* Access the transcriptions.
*/
transcriptions(): TranscriptionListInstance;
/**
* Access the usage.
*/
usage(): UsageListInstance;
/**
* Access the validationRequests.
*/
validationRequests(): ValidationRequestListInstance;
/**
* Provide a user-friendly representation
*
* @returns Object
*/
toJSON(): {
authToken: string;
dateCreated: Date;
dateUpdated: Date;
friendlyName: string;
ownerAccountSid: string;
sid: string;
status: AccountStatus;
subresourceUris: Record;
type: AccountType;
uri: string;
};
[inspect.custom](_depth: any, options: InspectOptions): string;
}
export interface AccountSolution {
}
export interface AccountListInstance {
_version: V2010;
_solution: AccountSolution;
_uri: string;
(sid: string): AccountContext;
get(sid: string): AccountContext;
/**
* Create a AccountInstance
*
* @param callback - Callback to handle processed record
*
* @returns Resolves to processed AccountInstance
*/
create(callback?: (error: Error | null, item?: AccountInstance) => any): Promise;
/**
* Create a AccountInstance
*
* @param params - Parameter for request
* @param callback - Callback to handle processed record
*
* @returns Resolves to processed AccountInstance
*/
create(params: AccountListInstanceCreateOptions, callback?: (error: Error | null, item?: AccountInstance) => any): Promise;
/**
* Streams AccountInstance records from the API.
*
* This operation lazily loads records as efficiently as possible until the limit
* is reached.
*
* The results are passed into the callback function, so this operation is memory
* efficient.
*
* If a function is passed as the first argument, it will be used as the callback
* function.
*
* @param { AccountListInstanceEachOptions } [params] - Options for request
* @param { function } [callback] - Function to process each record
*/
each(callback?: (item: AccountInstance, done: (err?: Error) => void) => void): void;
each(params: AccountListInstanceEachOptions, callback?: (item: AccountInstance, done: (err?: Error) => void) => void): void;
/**
* Retrieve a single target page of AccountInstance records from the API.
*
* The request is executed immediately.
*
* @param { string } [targetUrl] - API-generated URL for the requested results page
* @param { function } [callback] - Callback to handle list of records
*/
getPage(targetUrl: string, callback?: (error: Error | null, items: AccountPage) => any): Promise;
/**
* Lists AccountInstance records from the API as a list.
*
* If a function is passed as the first argument, it will be used as the callback
* function.
*
* @param { AccountListInstanceOptions } [params] - Options for request
* @param { function } [callback] - Callback to handle list of records
*/
list(callback?: (error: Error | null, items: AccountInstance[]) => any): Promise;
list(params: AccountListInstanceOptions, callback?: (error: Error | null, items: AccountInstance[]) => any): Promise;
/**
* Retrieve a single page of AccountInstance records from the API.
*
* The request is executed immediately.
*
* If a function is passed as the first argument, it will be used as the callback
* function.
*
* @param { AccountListInstancePageOptions } [params] - Options for request
* @param { function } [callback] - Callback to handle list of records
*/
page(callback?: (error: Error | null, items: AccountPage) => any): Promise;
page(params: AccountListInstancePageOptions, callback?: (error: Error | null, items: AccountPage) => any): Promise;
/**
* Provide a user-friendly representation
*/
toJSON(): any;
[inspect.custom](_depth: any, options: InspectOptions): any;
}
export declare function AccountListInstance(version: V2010): AccountListInstance;
export declare class AccountPage extends Page {
/**
* Initialize the AccountPage
*
* @param version - Version of the resource
* @param response - Response from the API
* @param solution - Path solution
*/
constructor(version: V2010, response: Response, solution: AccountSolution);
/**
* Build an instance of AccountInstance
*
* @param payload - Payload response from the API
*/
getInstance(payload: AccountResource): AccountInstance;
[inspect.custom](depth: any, options: InspectOptions): string;
}
export {};