/* Options: Date: 2024-11-13 06:33:01 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: PatchEndpoint.* //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 IPatch { } 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 enableAssistants: 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 enum ListUpdateModes { Replace = 'Replace', AddOrUpdate = 'AddOrUpdate', Remove = 'Remove', } 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 AssistantTunings { Accuracy = 'Accuracy', Speed = 'Speed', } export class AssistantWord { public word: string; public pronounced: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class AssistantLink { public url: string; public description: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum AssistantTransferTypes { Blind = 'Blind', Supervised = 'Supervised', MessagesOnly = 'MessagesOnly', } export class AssistantTakeMessageField { public name: string; public description: string; public required: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class AssistantContact { public name: string; public phoneNumber: string; public transferType: AssistantTransferTypes; public about: string; public emailAddress: string; public takeMessageFields: AssistantTakeMessageField[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class AssistantIntegration { public uri: string; public httpMethod: string; public authToken: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class AssistantSettings { public companyName: string; public greeting: string; public companyInformation: string; public customPrompt: string; public voice: string; public voiceStyle: string; public tuning: AssistantTunings; public words: AssistantWord[]; public links: AssistantLink[]; public contacts: AssistantContact[]; public integrations: AssistantIntegration[]; 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', Assistant = 'Assistant', } 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; /** * Configuration for the AI assistant */ // @ApiMember(Description="Configuration for the AI assistant") public assistantSettings: AssistantSettings; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } /** * Update the specified endpoint */ // @Route("/endpoints/{endpointId}", "PATCH") // @Api(Description="Update the specified endpoint") export class PatchEndpoint implements IReturn, IPatch { /** * The ID of the endpoint to update */ // @ApiMember(Description="The ID of the endpoint to update") public endpointId: string; /** * The ID of the customer to associate this endpoint with */ // @ApiMember(Description="The ID of the customer to associate this endpoint with") public customerId: string; /** * The third party reference ID for the endpoint */ // @ApiMember(Description="The third party reference ID for the endpoint") public referenceId: string; /** * The ID of the flow to use for voice sessions */ // @ApiMember(Description="The ID of the flow to use for voice sessions") public flowId: string; /** * Params to use for the voice flow */ // @ApiMember(Description="Params to use 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[]; /** * Is this a partial flow param update? */ // @ApiMember(Description="Is this a partial flow param update?") public isPartialFlowUpdate: boolean; /** * The list of tag IDs for this endpoint */ // @ApiMember(Description="The list of tag IDs for this endpoint") public tagIds: string[]; /** * Whether we look up caller ID or not */ // @ApiMember(Description="Whether we look up caller ID or not") public enableCallerIdLookup?: boolean; /** * Enroll this number in a 10DLC messaging campaign? */ // @ApiMember(Description="Enroll this number in a 10DLC messaging campaign?") public enrollIn10DlcService?: boolean; /** * Leave 10DLC campaign */ // @ApiMember(Description="Leave 10DLC campaign") public leave10DlcService?: boolean; /** * The caller ID Name (CNAM) for the phone number */ // @ApiMember(Description="The caller ID Name (CNAM) for the phone number") public callerIdName: string; /** * The new password for the app */ // @ApiMember(Description="The new password for the app") public userPassword: string; /** * Is this user SIP based or soft phone */ // @ApiMember(Description="Is this user SIP based or soft phone") public userMode?: UserModes; /** * The Twilio Region for the SIP endpoint */ // @ApiMember(Description="The Twilio Region for the SIP endpoint") public sipRegion?: TwilioSipRegions; /** * Data values for this endpoint */ // @ApiMember(Description="Data values for this endpoint") public data: Struct; /** * 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; /** * Disable SMS */ // @ApiMember(Description="Disable SMS") public disableSms?: boolean; /** * The address SID associated with the phone number */ // @ApiMember(Description="The address SID associated with the phone number") public addressSid: string; /** * Unlock the phone number (for use with BYOA phone numbers) */ // @ApiMember(Description="Unlock the phone number (for use with BYOA phone numbers)") public unlockPhoneNumber?: boolean; /** * The email address for this soft phone user. Will be used for login */ // @ApiMember(Description="The email address for this soft phone user. Will be used for login") public userEmailAddress: 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; /** * 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 customer fields */ // @ApiMember(Description="The type of visibility this user has to customer 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 visibility of this user/team in contact lists */ // @ApiMember(Description="The visibility of this user/team in contact lists") public contactListVisibility: CustomerVisibility; /** * The list of action URLs */ // @ApiMember(Description="The list of action URLs") public actionUrls: EndpointActionUrl[]; /** * The type of update to perform to action urls if specified */ // @ApiMember(Description="The type of update to perform to action urls if specified") public actionUrlsMode: ListUpdateModes; /** * The name of the endpoint */ // @ApiMember(Description="The name of the endpoint") public name: string; /** * Force update the Twilio URLs for this number */ // @ApiMember(Description="Force update the Twilio URLs for this number") public forceUpdateUrls: boolean; /** * The list of members in this team */ // @ApiMember(Description="The list of members in this team") public teamMemberIds: string[]; /** * The list of contacts personal to this user */ // @ApiMember(Description="The list of contacts personal to this user") public contacts: EndpointContact[]; /** * 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; /** * 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; /** * The settings for AI assistant */ // @ApiMember(Description="The settings for AI assistant") public assistantSettings: AssistantSettings; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'PatchEndpoint'; } public getMethod() { return 'PATCH'; } public createResponse() { return new EndpointInfo(); } }