/* Options: Date: 2024-05-19 15:34:03 Version: 6.40 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://evovoice.io //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: BuyPhoneNumber.* //ExcludeTypes: //DefaultImports: */ export class NodeParameterMap { [key:string] : NodeParameter; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export interface IReturn { createResponse(): T; } export interface IPost { } export enum ActionUrlHttpMethods { GET = 'GET', POST = 'POST', } export class Struct { public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Value { public boolValue?: boolean; public stringValue: string; public numberValue?: number; public listValue: Struct[]; public structValue: Struct; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class AppSettings { public enablePhoneNumberManagement: boolean; public enableDeviceManagement: boolean; public enableDialer: boolean; public enableCallHistory: boolean; public showFileNameInMessageCenter: boolean; public chakraTheme: string; public customCss: string; public pageTitle: string; public stringMappings: string; public logoutUrl: string; public portMyNumberUrl: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum UserModes { SoftPhone = 'SoftPhone', Sip = 'Sip', Flow = 'Flow', DataOnly = 'DataOnly', ThirdParty = 'ThirdParty', } export enum EndpointFlowSchedules { Always = 'Always', Scheduled = 'Scheduled', Simple = 'Simple', } export class ScheduledFlow { public stateName: string; public flowId: string; public flowParams: Struct; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum TwilioSipRegions { NorthAmericaVirginia = 'NorthAmericaVirginia', NorthAmericaOregon = 'NorthAmericaOregon', EuropeIreland = 'EuropeIreland', EuropeFrankfurt = 'EuropeFrankfurt', AsiaPacificSingapore = 'AsiaPacificSingapore', AsiaPacificTokyo = 'AsiaPacificTokyo', AsiaPacificSydney = 'AsiaPacificSydney', SouthAmericaSanPaolo = 'SouthAmericaSanPaolo', } export enum UserManagerRoles { None = 'None', Manager = 'Manager', VoicemailAndCallHistory = 'VoicemailAndCallHistory', Custom = 'Custom', } export enum DashboardPermissions { ViewFiles = 'ViewFiles', ViewNotifications = 'ViewNotifications', ViewSessions = 'ViewSessions', ViewEndpoints = 'ViewEndpoints', ViewReports = 'ViewReports', ViewCustomers = 'ViewCustomers', ViewFlows = 'ViewFlows', } export enum UserDataFieldModes { Hidden = 'Hidden', ReadOnly = 'ReadOnly', ReadWrite = 'ReadWrite', } export enum CustomerVisibility { None = 'None', CurrentCustomer = 'CurrentCustomer', CurrentAndChildCustomers = 'CurrentAndChildCustomers', } export class EndpointActionUrl { public id: string; public url: string; public method: ActionUrlHttpMethods; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class EndpointContact { public id: string; public displayName: string; public address: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum ThirdPartyPhoneSystemTypes { Demo = 'Demo', Sip = 'Sip', } export enum TransportTypes { UDP = 'UDP', TLS = 'TLS', TCP = 'TCP', PERS = 'PERS', } export enum AudioCodecTypes { PCMU = 0, GSM = 3, PCMA = 8, G722 = 9, G729 = 18, ILBC = 97, AMR = 98, AMRWB = 99, SPEEX = 100, DTMF = 101, SPEEXWB = 102, ISACWB = 103, ISACSWB = 104, OPUS = 105, G7221 = 121, NONE = -1, } export enum DtmfMethods { RFC2833 = 'RFC2833', INFO = 'INFO', } export class ThirdPartySipAccountSettings { public number: string; public agent: string; public authName: string; public userName: string; public displayName: string; public password: string; public userDomain: string; public registrationExpires: number; public transportType: TransportTypes; public localIP: string; public localPort: number; public sipServer: string; public sipServerPort: number; public outboundServer: string; public outboundServerPort: number; public stunServer: string; public stunPort: number; public audioPlaybackDeviceName: string; public audioRecordingDeviceName: string; public audioCodecs: AudioCodecTypes[]; public dtmfMethod: DtmfMethods; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class ThirdPartySipSettings { public accounts: ThirdPartySipAccountSettings[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class ThirdPartyDemoSettings { public extension: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class ThirdPartyPhoneSystemSettings { public type: ThirdPartyPhoneSystemTypes; public sipSettings: ThirdPartySipSettings; public demoSettings: ThirdPartyDemoSettings; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum EndpointTypes { PhoneNumber = 'PhoneNumber', User = 'User', FaxNumber = 'FaxNumber', EmailAddress = 'EmailAddress', Unused_1 = 'Unused_1', Unused_2 = 'Unused_2', Unused_3 = 'Unused_3', Unused_4 = 'Unused_4', Unused_5 = 'Unused_5', Team = 'Team', } export enum AgentStates { Unknown = 'Unknown', Ready = 'Ready', NotReady = 'NotReady', LoggedOut = 'LoggedOut', WrapUp = 'WrapUp', Outgoing = 'Outgoing', Other = 'Other', } export enum TagColors { Magenta = 'Magenta', Red = 'Red', Volcano = 'Volcano', Orange = 'Orange', Gold = 'Gold', Lime = 'Lime', Green = 'Green', Cyan = 'Cyan', Blue = 'Blue', GeekBlue = 'GeekBlue', Purple = 'Purple', } export class Tag { public id: string; public name: string; public color: TagColors; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class EntityInfo { /** * The ID of the object */ // @ApiMember(Description="The ID of the object") public id: string; /** * The date the object was created */ // @ApiMember(Description="The date the object was created") public dateCreated: string; /** * The date the object was last modified */ // @ApiMember(Description="The date the object was last modified") public dateLastModified: string; /** * The user that created this object */ // @ApiMember(Description="The user that created this object") public createdBy: string; /** * The user that last modified this object */ // @ApiMember(Description="The user that last modified this object") public lastModifiedBy: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CustomerBreadcrumb { public id: string; public name: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum AgentStateReasons { Unknown = 'Unknown', SetByUser = 'SetByUser', MissedCall = 'MissedCall', SetBySystem = 'SetBySystem', } export class IntegrationData { public thirdPartyId: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Dictionary { [Key: string]: T; } export class EntityIntegrationData extends Dictionary { public constructor(init?: Partial) { super(); (Object as any).assign(this, init); } } export class Schedule { public timeZoneId: string; public inherit: boolean; public forceClosed: boolean; public rules: SchedulingRule[]; public defaultState: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class EndpointInfo extends EntityInfo { /** * The account ID this endpoint is associated with */ // @ApiMember(Description="The account ID this endpoint is associated with") public accountId: string; /** * The name of the account this endpoint is associated with */ // @ApiMember(Description="The name of the account this endpoint is associated with") public accountName: string; /** * The ID of the customer this endpoint is associated with */ // @ApiMember(Description="The ID of the customer this endpoint is associated with") public customerId: string; /** * The name of the customer this endpoint is associated with */ // @ApiMember(Description="The name of the customer this endpoint is associated with") public customerName: string; /** * The third party reference ID for the endpoint */ // @ApiMember(Description="The third party reference ID for the endpoint") public referenceId: string; /** * The breadcrumb to the customer for this endpoint */ // @ApiMember(Description="The breadcrumb to the customer for this endpoint") public customerBreadcrumb: CustomerBreadcrumb[]; /** * The display name of the endpoint */ // @ApiMember(Description="The display name of the endpoint") public displayName: string; /** * The type of endpoint */ // @ApiMember(Description="The type of endpoint") public type: EndpointTypes; /** * Extra info for this endpoint (typically to show in grid) */ // @ApiMember(Description="Extra info for this endpoint (typically to show in grid)") public extraInformation: string; /** * The ID of the flow to use for voice */ // @ApiMember(Description="The ID of the flow to use for voice") public flowId: string; /** * The name of the flow to use for voice */ // @ApiMember(Description="The name of the flow to use for voice") public flowName: string; /** * The params for the voice flow */ // @ApiMember(Description="The params for the voice flow") public flowParams: Struct; /** * Whether to use a single flow always or use scheduled flow system */ // @ApiMember(Description="Whether to use a single flow always or use scheduled flow system") public flowSchedule: EndpointFlowSchedules; /** * This endpoint's schedule */ // @ApiMember(Description="This endpoint's schedule") public schedule: Schedule; /** * The list of scheduled flows when using scheduling */ // @ApiMember(Description="The list of scheduled flows when using scheduling") public scheduledFlows: ScheduledFlow[]; /** * Disable SMS */ // @ApiMember(Description="Disable SMS") public disableSms: boolean; /** * Set this to true to prevent Evo Voice from overriding the 10DLC / SMS settings for this number */ // @ApiMember(Description="Set this to true to prevent Evo Voice from overriding the 10DLC / SMS settings for this number") public useExternal10DlcCampaign: boolean; /** * Is this a virtual phone number? */ // @ApiMember(Description="Is this a virtual phone number?") public isVirtualPhoneNumber: boolean; /** * Is caller ID verified for this virtual number? */ // @ApiMember(Description="Is caller ID verified for this virtual number?") public isCallerIdVerified: boolean; /** * The verification code for this number */ // @ApiMember(Description="The verification code for this number") public callerIdVerificationCode: string; /** * The phone number */ // @ApiMember(Description="The phone number") public phoneNumber: string; /** * The Sid of the phone number */ // @ApiMember(Description="The Sid of the phone number") public phoneNumberSid: string; /** * The caller ID Name (CNAM) for the phone number */ // @ApiMember(Description="The caller ID Name (CNAM) for the phone number") public callerIdName: string; /** * The address SID associated with the phone number */ // @ApiMember(Description="The address SID associated with the phone number") public addressSid: string; /** * Do not touch this phone number - for BYOA accounts */ // @ApiMember(Description="Do not touch this phone number - for BYOA accounts") public doNotTouchPhoneNumber: boolean; /** * Is this number enrolled in a 10DLC messaging service campaign */ // @ApiMember(Description="Is this number enrolled in a 10DLC messaging service campaign") public isEnrolledIn10DlcService: boolean; /** * Whether we look up caller ID or not */ // @ApiMember(Description="Whether we look up caller ID or not") public enableCallerIdLookup: boolean; /** * The email address of the user */ // @ApiMember(Description="The email address of the user") public userEmailAddress: string; /** * The Twilio Region for the SIP endpoint */ // @ApiMember(Description="The Twilio Region for the SIP endpoint") public sipRegion: TwilioSipRegions; /** * The Twilio Sid of the credentials for Sip */ // @ApiMember(Description="The Twilio Sid of the credentials for Sip") public sipCredentialSid: string; /** * The Twilio SIP user name */ // @ApiMember(Description="The Twilio SIP user name") public sipUserName: string; /** * The Twilio SIP password */ // @ApiMember(Description="The Twilio SIP password") public sipPassword: string; /** * The SIP domain */ // @ApiMember(Description="The SIP domain") public sipDomain: string; /** * Is emergency calling enabled on this number? */ // @ApiMember(Description="Is emergency calling enabled on this number?") public enableEmergencyCalling: boolean; /** * The SID of the emergency address for this number */ // @ApiMember(Description="The SID of the emergency address for this number") public emergencyAddressSid: string; /** * The ID of the phone number to use for emergency dialing */ // @ApiMember(Description="The ID of the phone number to use for emergency dialing") public emergencyPhoneNumberId: string; /** * The current agent state of this user endpoint */ // @ApiMember(Description="The current agent state of this user endpoint") public agentState: AgentStates; /** * The current agent state reason of this user endpoint */ // @ApiMember(Description="The current agent state reason of this user endpoint") public agentStateReason: AgentStateReasons; /** * The mode for this user */ // @ApiMember(Description="The mode for this user") public userMode: UserModes; /** * The ID of the file to use for voicemail greeting */ // @ApiMember(Description="The ID of the file to use for voicemail greeting") public voicemailGreetingId: string; /** * The endpoint's data */ // @ApiMember(Description="The endpoint's data") public data: Struct; /** * The email address for email endpoints */ // @ApiMember(Description="The email address for email endpoints") public emailAddress: string; /** * The first name of the user (for user endpoints) */ // @ApiMember(Description="The first name of the user (for user endpoints)") public userFirstName: string; /** * The last name of the user (for user endpoints) */ // @ApiMember(Description="The last name of the user (for user endpoints)") public userLastName: string; /** * The URL of an image for this user's avatar */ // @ApiMember(Description="The URL of an image for this user's avatar") public avatarUrl: string; /** * Does this user have manager role? */ // @ApiMember(Description="Does this user have manager role?") public managerRole: UserManagerRoles; /** * The list of dashboard permissions for when the manager role is custom */ // @ApiMember(Description="The list of dashboard permissions for when the manager role is custom") public dashboardPermissions: DashboardPermissions[]; /** * The type of visibility this user has to their own fields */ // @ApiMember(Description="The type of visibility this user has to their own fields") public myFieldPermissions: UserDataFieldModes; /** * The type of visibility this user has to customer fields */ // @ApiMember(Description="The type of visibility this user has to customer fields") public customerFieldPermissions: UserDataFieldModes; /** * The type of visibility this user has to other user fields */ // @ApiMember(Description="The type of visibility this user has to other user fields") public otherUserFieldPermissions: UserDataFieldModes; /** * The type of visibility this user has to other endpoint fields */ // @ApiMember(Description="The type of visibility this user has to other endpoint fields") public otherEndpointFieldPermissions: UserDataFieldModes; /** * The name of this endpoint (for bots etc.) */ // @ApiMember(Description="The name of this endpoint (for bots etc.)") public name: string; /** * The list of tags for this endpoint */ // @ApiMember(Description="The list of tags for this endpoint") public tags: Tag[]; /** * The list of action URLs */ // @ApiMember(Description="The list of action URLs") public actionUrls: EndpointActionUrl[]; /** * The list of members in this team */ // @ApiMember(Description="The list of members in this team") public teamMemberIds: string[]; /** * Visibility of this user/team in contact lists */ // @ApiMember(Description="Visibility of this user/team in contact lists") public contactListVisibility: CustomerVisibility; /** * The list of contacts personal to this user */ // @ApiMember(Description="The list of contacts personal to this user") public contacts: EndpointContact[]; /** * The documo ID for this number */ // @ApiMember(Description="The documo ID for this number") public documoId: string; /** * Integration data for this endpoint */ // @ApiMember(Description="Integration data for this endpoint") public integrationData: EntityIntegrationData; /** * Settings for third party phone system */ // @ApiMember(Description="Settings for third party phone system") public thirdPartyPhoneSystemSettings: ThirdPartyPhoneSystemSettings; /** * Should this user override the parent customer's app settings */ // @ApiMember(Description="Should this user override the parent customer's app settings") public overrideAppSettings: boolean; /** * App / Portal settings for this user */ // @ApiMember(Description="App / Portal settings for this user") public appSettings: AppSettings; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } /** * Buys the specified phone number */ // @Route("/endpoints/phone-numbers", "POST") // @Api(Description="Buys the specified phone number") export class BuyPhoneNumber implements IReturn, IPost { /** * The ID of the account to associate the number with */ // @ApiMember(Description="The ID of the account to associate the number with") public accountId: string; /** * The ID of the customer to associate this number with */ // @ApiMember(Description="The ID of the customer to associate this number with") public customerId: string; /** * The number to buy/create */ // @ApiMember(Description="The number to buy/create") public number: string; /** * Is this number virtual? If so we will not buy but just create an entry */ // @ApiMember(Description="Is this number virtual? If so we will not buy but just create an entry") public isVirtualPhoneNumber: boolean; /** * Is this a fax number? */ // @ApiMember(Description="Is this a fax number?") public isFaxNumber: boolean; /** * The address SID to associate with the phone number */ // @ApiMember(Description="The address SID to associate with the phone number") public addressSid: string; /** * The list of tags to associate with the new endpoint */ // @ApiMember(Description="The list of tags to associate with the new endpoint") public tagIds: string[]; /** * Data values for this endpoint */ // @ApiMember(Description="Data values for this endpoint") public data: Struct; /** * Specify the flow to use */ // @ApiMember(Description="Specify the flow to use") public flowId: string; /** * The flow params */ // @ApiMember(Description="The flow params") public flowParams: Struct; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'BuyPhoneNumber'; } public getMethod() { return 'POST'; } public createResponse() { return new EndpointInfo(); } }