POST | /integrations |
---|
export class NodeParameterMap
{
[key:string] : NodeParameter;
public constructor(init?: Partial<NodeParameterMap>) { (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<EntityInfo>) { (Object as any).assign(this, init); }
}
export class CustomerBreadcrumb
{
public id?: string;
public name?: string;
public constructor(init?: Partial<CustomerBreadcrumb>) { (Object as any).assign(this, init); }
}
export enum IntegrationTypes
{
HostedSuite = 'HostedSuite',
OfficeRnd = 'OfficeRnd',
Zoho = 'Zoho',
}
export enum IntegrationStatuses
{
NotConfigured = 'NotConfigured',
Error = 'Error',
OK = 'OK',
}
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',
}
export enum UIHints
{
None = 'None',
LargeText = 'LargeText',
InlineForm = 'InlineForm',
Password = 'Password',
InlineStruct = 'InlineStruct',
}
export class Struct
{
public constructor(init?: Partial<Struct>) { (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<Value>) { (Object as any).assign(this, init); }
}
export enum DataFieldUniqueness
{
NotUnique = 'NotUnique',
Unique = 'Unique',
UniqueToCustomer = 'UniqueToCustomer',
}
export enum UserDataFieldModes
{
Hidden = 'Hidden',
ReadOnly = 'ReadOnly',
ReadWrite = 'ReadWrite',
}
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<DataField>) { (Object as any).assign(this, init); }
}
export class DataType
{
public typeName?: string;
public fields?: DataField[];
public constructor(init?: Partial<DataType>) { (Object as any).assign(this, init); }
}
export enum IntegrationFeatures
{
CrmSync = 'CrmSync',
OAuth2 = 'OAuth2',
}
export class IntegrationInfo extends EntityInfo
{
/**
* The ID of the account associated with this integration
*/
// @ApiMember(Description="The ID of the account associated with this integration")
public accountId?: string;
/**
* 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;
/**
* 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;
/**
* The date the integration was sync'd last
*/
// @ApiMember(Description="The date the integration was sync'd last")
public dateLastSync?: string;
/**
* The breadcrumb to the customer for this integration
*/
// @ApiMember(Description="The breadcrumb to the customer for this integration")
public customerBreadcrumb?: CustomerBreadcrumb[];
/**
* The name of the integration (e.g. HostedSuite Dallas)
*/
// @ApiMember(Description="The name of the integration (e.g. HostedSuite Dallas)")
public name?: string;
/**
* 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;
/**
* The type of integration
*/
// @ApiMember(Description="The type of integration")
public type?: IntegrationTypes;
/**
* The status of the integration
*/
// @ApiMember(Description="The status of the integration")
public status?: IntegrationStatuses;
/**
* The status of the integration
*/
// @ApiMember(Description="The status of the integration")
public statusMessage?: string;
/**
* The settings type for this integration
*/
// @ApiMember(Description="The settings type for this integration")
public settingsDataType?: DataType;
/**
* The settings for this integration
*/
// @ApiMember(Description="The settings for this integration")
public settings?: Struct;
/**
* The features supported by this integration
*/
// @ApiMember(Description="The features supported by this integration")
public features?: IntegrationFeatures[];
/**
* Is this integration authorized (OAuth)?
*/
// @ApiMember(Description="Is this integration authorized (OAuth)?")
public isAuthorized?: boolean;
public constructor(init?: Partial<IntegrationInfo>) { super(init); (Object as any).assign(this, init); }
}
/**
* Creates a new integration
*/
// @Api(Description="Creates a new integration")
export class NewIntegration implements IPost
{
/**
* The account ID to associate this integration with
*/
// @ApiMember(Description="The account ID to associate this integration with")
public accountId?: string;
/**
* The type of integration
*/
// @ApiMember(Description="The type of integration")
public type?: IntegrationTypes;
/**
* The name of the integration
*/
// @ApiMember(Description="The name of the integration")
public name?: string;
/**
* The parent customer for this integration
*/
// @ApiMember(Description="The parent customer for this integration")
public customerId?: string;
public constructor(init?: Partial<NewIntegration>) { (Object as any).assign(this, init); }
}
TypeScript NewIntegration DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /integrations HTTP/1.1
Host: evovoice.io
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
accountId: String,
type: HostedSuite,
name: String,
customerId: String
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { accountId: String, customerId: String, customerName: String, dateLastSync: String, customerBreadcrumb: [ { id: String, name: String } ], name: String, automaticallyCreateCustomers: False, type: HostedSuite, status: NotConfigured, statusMessage: String, settingsDataType: { typeName: String, fields: [ { id: String, name: String, type: NotSpecified, uiHint: None, uiTab: String, isAsync: False, disableBinding: False, structType: { typeName: String, fields: [ { id: String, name: String, type: NotSpecified, uiHint: None, uiTab: String, isAsync: False, disableBinding: False, structType: { typeName: String, fields: [ { id: String, name: String, type: NotSpecified, uiHint: None, uiTab: String, isAsync: False, disableBinding: False, description: String, possibleValues: [ String ], isOutput: False, customFieldValuesUrl: String, defaultValue: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } ], structValue: { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } } } ], structValue: { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } ], structValue: { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } } } }, transitionNameFormat: String, uniqueness: NotUnique, voiceOnly: False, conditionalVisibilityField: String, conditionalVisibilityValue: String, noEvalTemplate: False, userMode: Hidden, anyValueType: False } ] }, listType: { typeName: String, fields: [ { id: String, name: String, type: NotSpecified, uiHint: None, uiTab: String, isAsync: False, disableBinding: False, description: String, possibleValues: [ String ], isOutput: False, customFieldValuesUrl: String, defaultValue: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } ], structValue: { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } } } ], structValue: { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } ], structValue: { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } } } }, transitionNameFormat: String, uniqueness: NotUnique, voiceOnly: False, conditionalVisibilityField: String, conditionalVisibilityValue: String, noEvalTemplate: False, userMode: Hidden, anyValueType: False } ] }, description: String, possibleValues: [ String ], isOutput: False, customFieldValuesUrl: String, defaultValue: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } ], structValue: { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } } } ], structValue: { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } ], structValue: { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } } } }, transitionNameFormat: String, uniqueness: NotUnique, voiceOnly: False, conditionalVisibilityField: String, conditionalVisibilityValue: String, noEvalTemplate: False, userMode: Hidden, anyValueType: False } ] }, listType: { typeName: String, fields: [ { id: String, name: String, type: NotSpecified, uiHint: None, uiTab: String, isAsync: False, disableBinding: False, structType: { typeName: String, fields: [ { id: String, name: String, type: NotSpecified, uiHint: None, uiTab: String, isAsync: False, disableBinding: False, description: String, possibleValues: [ String ], isOutput: False, customFieldValuesUrl: String, defaultValue: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } ], structValue: { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } } } ], structValue: { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } ], structValue: { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } } } }, transitionNameFormat: String, uniqueness: NotUnique, voiceOnly: False, conditionalVisibilityField: String, conditionalVisibilityValue: String, noEvalTemplate: False, userMode: Hidden, anyValueType: False } ] }, listType: { typeName: String, fields: [ { id: String, name: String, type: NotSpecified, uiHint: None, uiTab: String, isAsync: False, disableBinding: False, description: String, possibleValues: [ String ], isOutput: False, customFieldValuesUrl: String, defaultValue: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } ], structValue: { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } } } ], structValue: { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } ], structValue: { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } } } }, transitionNameFormat: String, uniqueness: NotUnique, voiceOnly: False, conditionalVisibilityField: String, conditionalVisibilityValue: String, noEvalTemplate: False, userMode: Hidden, anyValueType: False } ] }, description: String, possibleValues: [ String ], isOutput: False, customFieldValuesUrl: String, defaultValue: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } ], structValue: { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } } } ], structValue: { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } ], structValue: { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } } } }, transitionNameFormat: String, uniqueness: NotUnique, voiceOnly: False, conditionalVisibilityField: String, conditionalVisibilityValue: String, noEvalTemplate: False, userMode: Hidden, anyValueType: False } ] }, description: String, possibleValues: [ String ], isOutput: False, customFieldValuesUrl: String, defaultValue: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } ], structValue: { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } } } ], structValue: { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } ], structValue: { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { } ], structValue: {} } } } } }, transitionNameFormat: String, uniqueness: NotUnique, voiceOnly: False, conditionalVisibilityField: String, conditionalVisibilityValue: String, noEvalTemplate: False, userMode: Hidden, anyValueType: False } ] }, settings: { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ null ] } } ], structValue: { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ null ] } } } } ], structValue: { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ null ] } } ], structValue: { String: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ null ] } } } } } }, features: [ CrmSync ], isAuthorized: False, id: String, dateCreated: String, dateLastModified: String, createdBy: String, lastModifiedBy: String }