Evo Voice

<back to all web services

GetIntegration

Get a specific integration

The following routes are available for this service:
GET/integrations/{integrationId}
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using Voice.Api.Integrations;
using Voice.Api;
using Voice.Api.Customers;
using Voice.Api.Flows.Data;
using Voice.Api.Endpoints;

namespace Voice.Api
{
    public partial class EntityInfo
    {
        ///<summary>
        ///The ID of the object
        ///</summary>
        [ApiMember(Description="The ID of the object")]
        public virtual string Id { get; set; }

        ///<summary>
        ///The date the object was created
        ///</summary>
        [ApiMember(Description="The date the object was created")]
        public virtual string DateCreated { get; set; }

        ///<summary>
        ///The date the object was last modified
        ///</summary>
        [ApiMember(Description="The date the object was last modified")]
        public virtual string DateLastModified { get; set; }

        ///<summary>
        ///The user that created this object
        ///</summary>
        [ApiMember(Description="The user that created this object")]
        public virtual string CreatedBy { get; set; }

        ///<summary>
        ///The user that last modified this object
        ///</summary>
        [ApiMember(Description="The user that last modified this object")]
        public virtual string LastModifiedBy { get; set; }
    }

}

namespace Voice.Api.Customers
{
    public partial class CustomerBreadcrumb
    {
        public virtual string Id { get; set; }
        public virtual string Name { get; set; }
    }

}

namespace Voice.Api.Endpoints
{
    public enum UserDataFieldModes
    {
        Hidden,
        ReadOnly,
        ReadWrite,
    }

}

namespace Voice.Api.Flows.Data
{
    public partial class DataField
    {
        public DataField()
        {
            PossibleValues = new List<string>{};
        }

        public virtual string Id { get; set; }
        public virtual string Name { get; set; }
        public virtual ValueTypes Type { get; set; }
        public virtual UIHints UIHint { get; set; }
        public virtual string UITab { get; set; }
        public virtual bool IsAsync { get; set; }
        public virtual bool DisableBinding { get; set; }
        public virtual DataType StructType { get; set; }
        public virtual DataType ListType { get; set; }
        public virtual string Description { get; set; }
        public virtual List<string> PossibleValues { get; set; }
        public virtual bool IsOutput { get; set; }
        public virtual string CustomFieldValuesUrl { get; set; }
        public virtual Value DefaultValue { get; set; }
        public virtual string TransitionNameFormat { get; set; }
        public virtual DataFieldUniqueness Uniqueness { get; set; }
        public virtual bool VoiceOnly { get; set; }
        public virtual string ConditionalVisibilityField { get; set; }
        public virtual string ConditionalVisibilityValue { get; set; }
        public virtual bool NoEvalTemplate { get; set; }
        public virtual UserDataFieldModes UserMode { get; set; }
        public virtual bool AnyValueType { get; set; }
    }

    public enum DataFieldUniqueness
    {
        NotUnique,
        Unique,
        UniqueToCustomer,
    }

    public partial class DataType
    {
        public DataType()
        {
            Fields = new List<DataField>{};
        }

        public virtual string TypeName { get; set; }
        public virtual List<DataField> Fields { get; set; }
    }

    public partial class Struct
        : Dictionary<string, Value>
    {
    }

    public enum UIHints
    {
        None,
        LargeText,
        InlineForm,
        Password,
        InlineStruct,
    }

    public partial class Value
    {
        public Value()
        {
            ListValue = new List<Struct>{};
        }

        public virtual bool? BoolValue { get; set; }
        public virtual string StringValue { get; set; }
        public virtual double? NumberValue { get; set; }
        public virtual List<Struct> ListValue { get; set; }
        public virtual Struct StructValue { get; set; }
    }

    public enum ValueTypes
    {
        NotSpecified,
        String,
        Boolean,
        Number,
        List,
        Struct,
        Transition,
        Custom,
        Date,
        AudioFile,
        TimeZoneId,
        PhoneNumber,
        User,
        Endpoint,
        Time,
        File,
        FaxNumber,
        EmailAccount,
        Customer,
        Flow,
        Team,
        FlowReference,
        Integration,
    }

}

namespace Voice.Api.Integrations
{
    ///<summary>
    ///Get a specific integration
    ///</summary>
    [Api(Description="Get a specific integration")]
    public partial class GetIntegration
        : IGet
    {
        ///<summary>
        ///The ID of the integration you want to get
        ///</summary>
        [ApiMember(Description="The ID of the integration you want to get")]
        public virtual string IntegrationId { get; set; }
    }

    public enum IntegrationFeatures
    {
        CrmSync,
        OAuth2,
    }

    public partial class IntegrationInfo
        : EntityInfo
    {
        public IntegrationInfo()
        {
            CustomerBreadcrumb = new List<CustomerBreadcrumb>{};
            Features = new List<IntegrationFeatures>{};
        }

        ///<summary>
        ///The ID of the account associated with this integration
        ///</summary>
        [ApiMember(Description="The ID of the account associated with this integration")]
        public virtual string AccountId { get; set; }

        ///<summary>
        ///The ID of the customer this integration is associated with
        ///</summary>
        [ApiMember(Description="The ID of the customer this integration is associated with")]
        public virtual string CustomerId { get; set; }

        ///<summary>
        ///The name of the customer this integration is associated with
        ///</summary>
        [ApiMember(Description="The name of the customer this integration is associated with")]
        public virtual string CustomerName { get; set; }

        ///<summary>
        ///The date the integration was sync'd last
        ///</summary>
        [ApiMember(Description="The date the integration was sync'd last")]
        public virtual string DateLastSync { get; set; }

        ///<summary>
        ///The breadcrumb to the customer for this integration
        ///</summary>
        [ApiMember(Description="The breadcrumb to the customer for this integration")]
        public virtual List<CustomerBreadcrumb> CustomerBreadcrumb { get; set; }

        ///<summary>
        ///The name of the integration (e.g. HostedSuite Dallas)
        ///</summary>
        [ApiMember(Description="The name of the integration (e.g. HostedSuite Dallas)")]
        public virtual string Name { get; set; }

        ///<summary>
        ///Automatically create new customers / users when sync'ing with CRM?
        ///</summary>
        [ApiMember(Description="Automatically create new customers / users when sync'ing with CRM?")]
        public virtual bool AutomaticallyCreateCustomers { get; set; }

        ///<summary>
        ///The type of integration
        ///</summary>
        [ApiMember(Description="The type of integration")]
        public virtual IntegrationTypes Type { get; set; }

        ///<summary>
        ///The status of the integration
        ///</summary>
        [ApiMember(Description="The status of the integration")]
        public virtual IntegrationStatuses Status { get; set; }

        ///<summary>
        ///The status of the integration
        ///</summary>
        [ApiMember(Description="The status of the integration")]
        public virtual string StatusMessage { get; set; }

        ///<summary>
        ///The settings type for this integration
        ///</summary>
        [ApiMember(Description="The settings type for this integration")]
        public virtual DataType SettingsDataType { get; set; }

        ///<summary>
        ///The settings for this integration
        ///</summary>
        [ApiMember(Description="The settings for this integration")]
        public virtual Struct Settings { get; set; }

        ///<summary>
        ///The features supported by this integration
        ///</summary>
        [ApiMember(Description="The features supported by this integration")]
        public virtual List<IntegrationFeatures> Features { get; set; }

        ///<summary>
        ///Is this integration authorized (OAuth)?
        ///</summary>
        [ApiMember(Description="Is this integration authorized (OAuth)?")]
        public virtual bool IsAuthorized { get; set; }
    }

    public enum IntegrationStatuses
    {
        NotConfigured,
        Error,
        OK,
    }

    public enum IntegrationTypes
    {
        HostedSuite,
        OfficeRnd,
        Zoho,
    }

}

C# GetIntegration DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /integrations/{integrationId} HTTP/1.1 
Host: evovoice.io 
Accept: text/jsv
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
}