/* Options: Date: 2025-05-04 20:13:43 Version: 8.71 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://team.evovoice.io //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: NewIntegration.* //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 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 enum UserDataFieldModes { Hidden = 'Hidden', ReadOnly = 'ReadOnly', ReadWrite = 'ReadWrite', } export enum ValueTypes { NotSpecified = 'NotSpecified', String = 'String', Boolean = 'Boolean', Number = 'Number', List = 'List', Struct = 'Struct', Transition = 'Transition', Custom = 'Custom', Date = 'Date', AudioFile = 'AudioFile', TimeZoneId = 'TimeZoneId', PhoneNumber = 'PhoneNumber', User = 'User', Endpoint = 'Endpoint', Time = 'Time', File = 'File', FaxNumber = 'FaxNumber', EmailAccount = 'EmailAccount', Customer = 'Customer', Flow = 'Flow', Team = 'Team', FlowReference = 'FlowReference', Integration = 'Integration', Assistant = 'Assistant', } export enum IntegrationTypes { HostedSuite = 'HostedSuite', OfficeRnd = 'OfficeRnd', Zoho = 'Zoho', } export class EntityInfo { /** @description The ID of the object */ // @ApiMember(Description="The ID of the object") public id: string; /** @description The date the object was created */ // @ApiMember(Description="The date the object was created") public dateCreated: string; /** @description The date the object was last modified */ // @ApiMember(Description="The date the object was last modified") public dateLastModified: string; /** @description The user that created this object */ // @ApiMember(Description="The user that created this object") public createdBy: string; /** @description 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 IntegrationStatuses { NotConfigured = 'NotConfigured', Error = 'Error', OK = 'OK', } export enum UIHints { None = 'None', LargeText = 'LargeText', InlineForm = 'InlineForm', Password = 'Password', InlineStruct = 'InlineStruct', } export class DataType { public typeName: string; public fields: DataField[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum DataFieldUniqueness { NotUnique = 'NotUnique', Unique = 'Unique', UniqueToCustomer = 'UniqueToCustomer', } export class DataField { public id: string; public name: string; public type: ValueTypes; public uiHint: UIHints; public uiTab: string; public isAsync: boolean; public disableBinding: boolean; public structType: DataType; public listType: DataType; public description: string; public possibleValues: string[]; public isOutput: boolean; public customFieldValuesUrl: string; public defaultValue: Value; public transitionNameFormat: string; public uniqueness: DataFieldUniqueness; public voiceOnly: boolean; public conditionalVisibilityField: string; public conditionalVisibilityValue: string; public noEvalTemplate: boolean; public userMode: UserDataFieldModes; public anyValueType: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum IntegrationFeatures { CrmSync = 'CrmSync', OAuth2 = 'OAuth2', } export class IntegrationInfo extends EntityInfo { /** @description The ID of the account associated with this integration */ // @ApiMember(Description="The ID of the account associated with this integration") public accountId: string; /** @description The ID of the customer this integration is associated with */ // @ApiMember(Description="The ID of the customer this integration is associated with") public customerId: string; /** @description The name of the customer this integration is associated with */ // @ApiMember(Description="The name of the customer this integration is associated with") public customerName: string; /** @description The date the integration was sync'd last */ // @ApiMember(Description="The date the integration was sync'd last") public dateLastSync: string; /** @description The breadcrumb to the customer for this integration */ // @ApiMember(Description="The breadcrumb to the customer for this integration") public customerBreadcrumb: CustomerBreadcrumb[]; /** @description The name of the integration (e.g. HostedSuite Dallas) */ // @ApiMember(Description="The name of the integration (e.g. HostedSuite Dallas)") public name: string; /** @description Automatically create new customers / users when sync'ing with CRM? */ // @ApiMember(Description="Automatically create new customers / users when sync'ing with CRM?") public automaticallyCreateCustomers: boolean; /** @description The type of integration */ // @ApiMember(Description="The type of integration") public type: IntegrationTypes; /** @description The status of the integration */ // @ApiMember(Description="The status of the integration") public status: IntegrationStatuses; /** @description The status of the integration */ // @ApiMember(Description="The status of the integration") public statusMessage: string; /** @description The settings type for this integration */ // @ApiMember(Description="The settings type for this integration") public settingsDataType: DataType; /** @description The settings for this integration */ // @ApiMember(Description="The settings for this integration") public settings: Struct; /** @description The features supported by this integration */ // @ApiMember(Description="The features supported by this integration") public features: IntegrationFeatures[]; /** @description Is this integration authorized (OAuth)? */ // @ApiMember(Description="Is this integration authorized (OAuth)?") public isAuthorized: boolean; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } /** @description Creates a new integration */ // @Route("/integrations", "POST") // @Api(Description="Creates a new integration") export class NewIntegration implements IReturn, IPost { /** @description The account ID to associate this integration with */ // @ApiMember(Description="The account ID to associate this integration with") public accountId: string; /** @description The type of integration */ // @ApiMember(Description="The type of integration") public type: IntegrationTypes; /** @description The name of the integration */ // @ApiMember(Description="The name of the integration") public name: string; /** @description The parent customer for this integration */ // @ApiMember(Description="The parent customer for this integration") public customerId: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'NewIntegration'; } public getMethod() { return 'POST'; } public createResponse() { return new IntegrationInfo(); } }