POST | /integrations |
---|
using System;
using System.IO;
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 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 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 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,
Assistant,
}
}
namespace Voice.Api.Integrations
{
public enum IntegrationFeatures
{
CrmSync,
OAuth2,
}
public partial class IntegrationInfo
: EntityInfo
{
///<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,
}
///<summary>
///Creates a new integration
///</summary>
[Api(Description="Creates a new integration")]
public partial class NewIntegration
: IPost
{
///<summary>
///The account ID to associate this integration with
///</summary>
[ApiMember(Description="The account ID to associate this integration with")]
public virtual string AccountId { get; set; }
///<summary>
///The type of integration
///</summary>
[ApiMember(Description="The type of integration")]
public virtual IntegrationTypes Type { get; set; }
///<summary>
///The name of the integration
///</summary>
[ApiMember(Description="The name of the integration")]
public virtual string Name { get; set; }
///<summary>
///The parent customer for this integration
///</summary>
[ApiMember(Description="The parent customer for this integration")]
public virtual string CustomerId { get; set; }
}
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /integrations HTTP/1.1
Host: team.evovoice.io
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<NewIntegration xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Voice.Api.Integrations">
<AccountId>String</AccountId>
<CustomerId>String</CustomerId>
<Name>String</Name>
<Type>HostedSuite</Type>
</NewIntegration>
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: length <IntegrationInfo xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Voice.Api.Integrations"> <CreatedBy xmlns="http://schemas.datacontract.org/2004/07/Voice.Api">String</CreatedBy> <DateCreated xmlns="http://schemas.datacontract.org/2004/07/Voice.Api">String</DateCreated> <DateLastModified xmlns="http://schemas.datacontract.org/2004/07/Voice.Api">String</DateLastModified> <Id xmlns="http://schemas.datacontract.org/2004/07/Voice.Api">String</Id> <LastModifiedBy xmlns="http://schemas.datacontract.org/2004/07/Voice.Api">String</LastModifiedBy> <AccountId>String</AccountId> <AutomaticallyCreateCustomers>false</AutomaticallyCreateCustomers> <CustomerBreadcrumb xmlns:d2p1="http://schemas.datacontract.org/2004/07/Voice.Api.Customers"> <d2p1:CustomerBreadcrumb> <d2p1:Id>String</d2p1:Id> <d2p1:Name>String</d2p1:Name> </d2p1:CustomerBreadcrumb> </CustomerBreadcrumb> <CustomerId>String</CustomerId> <CustomerName>String</CustomerName> <DateLastSync>String</DateLastSync> <Features> <IntegrationFeatures>CrmSync</IntegrationFeatures> </Features> <IsAuthorized>false</IsAuthorized> <Name>String</Name> <Settings xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" i:nil="true" /> <SettingsDataType xmlns:d2p1="http://schemas.datacontract.org/2004/07/Voice.Api.Flows.Data" i:nil="true" /> <Status>NotConfigured</Status> <StatusMessage>String</StatusMessage> <Type>HostedSuite</Type> </IntegrationInfo>