POST | /integrations |
---|
import java.math.*;
import java.util.*;
import java.io.InputStream;
import net.servicestack.client.*;
public class dtos
{
/**
* Creates a new integration
*/
@Api(Description="Creates a new integration")
public static class NewIntegration implements IPost
{
/**
* The account ID to associate this integration with
*/
@ApiMember(Description="The account ID to associate this integration with")
public String accountId = null;
/**
* The type of integration
*/
@ApiMember(Description="The type of integration")
public IntegrationTypes type = null;
/**
* The name of the integration
*/
@ApiMember(Description="The name of the integration")
public String name = null;
/**
* The parent customer for this integration
*/
@ApiMember(Description="The parent customer for this integration")
public String customerId = null;
public String getAccountId() { return accountId; }
public NewIntegration setAccountId(String value) { this.accountId = value; return this; }
public IntegrationTypes getType() { return type; }
public NewIntegration setType(IntegrationTypes value) { this.type = value; return this; }
public String getName() { return name; }
public NewIntegration setName(String value) { this.name = value; return this; }
public String getCustomerId() { return customerId; }
public NewIntegration setCustomerId(String value) { this.customerId = value; return this; }
}
public static enum IntegrationTypes
{
HostedSuite,
OfficeRnd,
Zoho;
}
public static 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 String accountId = null;
/**
* The ID of the customer this integration is associated with
*/
@ApiMember(Description="The ID of the customer this integration is associated with")
public String customerId = null;
/**
* The name of the customer this integration is associated with
*/
@ApiMember(Description="The name of the customer this integration is associated with")
public String customerName = null;
/**
* The date the integration was sync'd last
*/
@ApiMember(Description="The date the integration was sync'd last")
public String dateLastSync = null;
/**
* The breadcrumb to the customer for this integration
*/
@ApiMember(Description="The breadcrumb to the customer for this integration")
public ArrayList<CustomerBreadcrumb> customerBreadcrumb = null;
/**
* The name of the integration (e.g. HostedSuite Dallas)
*/
@ApiMember(Description="The name of the integration (e.g. HostedSuite Dallas)")
public String name = null;
/**
* Automatically create new customers / users when sync'ing with CRM?
*/
@ApiMember(Description="Automatically create new customers / users when sync'ing with CRM?")
public Boolean automaticallyCreateCustomers = null;
/**
* The type of integration
*/
@ApiMember(Description="The type of integration")
public IntegrationTypes type = null;
/**
* The status of the integration
*/
@ApiMember(Description="The status of the integration")
public IntegrationStatuses status = null;
/**
* The status of the integration
*/
@ApiMember(Description="The status of the integration")
public String statusMessage = null;
/**
* The settings type for this integration
*/
@ApiMember(Description="The settings type for this integration")
public DataType settingsDataType = null;
/**
* The settings for this integration
*/
@ApiMember(Description="The settings for this integration")
public Struct settings = null;
/**
* The features supported by this integration
*/
@ApiMember(Description="The features supported by this integration")
public ArrayList<IntegrationFeatures> features = null;
/**
* Is this integration authorized (OAuth)?
*/
@ApiMember(Description="Is this integration authorized (OAuth)?")
public Boolean isAuthorized = null;
public String getAccountId() { return accountId; }
public IntegrationInfo setAccountId(String value) { this.accountId = value; return this; }
public String getCustomerId() { return customerId; }
public IntegrationInfo setCustomerId(String value) { this.customerId = value; return this; }
public String getCustomerName() { return customerName; }
public IntegrationInfo setCustomerName(String value) { this.customerName = value; return this; }
public String getDateLastSync() { return dateLastSync; }
public IntegrationInfo setDateLastSync(String value) { this.dateLastSync = value; return this; }
public ArrayList<CustomerBreadcrumb> getCustomerBreadcrumb() { return customerBreadcrumb; }
public IntegrationInfo setCustomerBreadcrumb(ArrayList<CustomerBreadcrumb> value) { this.customerBreadcrumb = value; return this; }
public String getName() { return name; }
public IntegrationInfo setName(String value) { this.name = value; return this; }
public Boolean isAutomaticallyCreateCustomers() { return automaticallyCreateCustomers; }
public IntegrationInfo setAutomaticallyCreateCustomers(Boolean value) { this.automaticallyCreateCustomers = value; return this; }
public IntegrationTypes getType() { return type; }
public IntegrationInfo setType(IntegrationTypes value) { this.type = value; return this; }
public IntegrationStatuses getStatus() { return status; }
public IntegrationInfo setStatus(IntegrationStatuses value) { this.status = value; return this; }
public String getStatusMessage() { return statusMessage; }
public IntegrationInfo setStatusMessage(String value) { this.statusMessage = value; return this; }
public DataType getSettingsDataType() { return settingsDataType; }
public IntegrationInfo setSettingsDataType(DataType value) { this.settingsDataType = value; return this; }
public Struct getSettings() { return settings; }
public IntegrationInfo setSettings(Struct value) { this.settings = value; return this; }
public ArrayList<IntegrationFeatures> getFeatures() { return features; }
public IntegrationInfo setFeatures(ArrayList<IntegrationFeatures> value) { this.features = value; return this; }
public Boolean getIsAuthorized() { return isAuthorized; }
public IntegrationInfo setIsAuthorized(Boolean value) { this.isAuthorized = value; return this; }
}
public static class EntityInfo
{
/**
* The ID of the object
*/
@ApiMember(Description="The ID of the object")
public String id = null;
/**
* The date the object was created
*/
@ApiMember(Description="The date the object was created")
public String dateCreated = null;
/**
* The date the object was last modified
*/
@ApiMember(Description="The date the object was last modified")
public String dateLastModified = null;
/**
* The user that created this object
*/
@ApiMember(Description="The user that created this object")
public String createdBy = null;
/**
* The user that last modified this object
*/
@ApiMember(Description="The user that last modified this object")
public String lastModifiedBy = null;
public String getId() { return id; }
public EntityInfo setId(String value) { this.id = value; return this; }
public String getDateCreated() { return dateCreated; }
public EntityInfo setDateCreated(String value) { this.dateCreated = value; return this; }
public String getDateLastModified() { return dateLastModified; }
public EntityInfo setDateLastModified(String value) { this.dateLastModified = value; return this; }
public String getCreatedBy() { return createdBy; }
public EntityInfo setCreatedBy(String value) { this.createdBy = value; return this; }
public String getLastModifiedBy() { return lastModifiedBy; }
public EntityInfo setLastModifiedBy(String value) { this.lastModifiedBy = value; return this; }
}
public static class CustomerBreadcrumb
{
public String id = null;
public String name = null;
public String getId() { return id; }
public CustomerBreadcrumb setId(String value) { this.id = value; return this; }
public String getName() { return name; }
public CustomerBreadcrumb setName(String value) { this.name = value; return this; }
}
public static enum IntegrationStatuses
{
NotConfigured,
Error,
Ok;
}
public static class DataType
{
public String typeName = null;
public ArrayList<DataField> fields = null;
public String getTypeName() { return typeName; }
public DataType setTypeName(String value) { this.typeName = value; return this; }
public ArrayList<DataField> getFields() { return fields; }
public DataType setFields(ArrayList<DataField> value) { this.fields = value; return this; }
}
public static class DataField
{
public String id = null;
public String name = null;
public ValueTypes type = null;
public UIHints uiHint = null;
public String uiTab = null;
public Boolean isAsync = null;
public Boolean disableBinding = null;
public DataType structType = null;
public DataType listType = null;
public String description = null;
public ArrayList<String> possibleValues = null;
public Boolean isOutput = null;
public String customFieldValuesUrl = null;
public Value defaultValue = null;
public String transitionNameFormat = null;
public DataFieldUniqueness uniqueness = null;
public Boolean voiceOnly = null;
public String conditionalVisibilityField = null;
public String conditionalVisibilityValue = null;
public Boolean noEvalTemplate = null;
public UserDataFieldModes userMode = null;
public Boolean anyValueType = null;
public String getId() { return id; }
public DataField setId(String value) { this.id = value; return this; }
public String getName() { return name; }
public DataField setName(String value) { this.name = value; return this; }
public ValueTypes getType() { return type; }
public DataField setType(ValueTypes value) { this.type = value; return this; }
public UIHints getUiHint() { return uiHint; }
public DataField setUiHint(UIHints value) { this.uiHint = value; return this; }
public String getUiTab() { return uiTab; }
public DataField setUiTab(String value) { this.uiTab = value; return this; }
public Boolean getIsAsync() { return isAsync; }
public DataField setIsAsync(Boolean value) { this.isAsync = value; return this; }
public Boolean isDisableBinding() { return disableBinding; }
public DataField setDisableBinding(Boolean value) { this.disableBinding = value; return this; }
public DataType getStructType() { return structType; }
public DataField setStructType(DataType value) { this.structType = value; return this; }
public DataType getListType() { return listType; }
public DataField setListType(DataType value) { this.listType = value; return this; }
public String getDescription() { return description; }
public DataField setDescription(String value) { this.description = value; return this; }
public ArrayList<String> getPossibleValues() { return possibleValues; }
public DataField setPossibleValues(ArrayList<String> value) { this.possibleValues = value; return this; }
public Boolean getIsOutput() { return isOutput; }
public DataField setIsOutput(Boolean value) { this.isOutput = value; return this; }
public String getCustomFieldValuesUrl() { return customFieldValuesUrl; }
public DataField setCustomFieldValuesUrl(String value) { this.customFieldValuesUrl = value; return this; }
public Value getDefaultValue() { return defaultValue; }
public DataField setDefaultValue(Value value) { this.defaultValue = value; return this; }
public String getTransitionNameFormat() { return transitionNameFormat; }
public DataField setTransitionNameFormat(String value) { this.transitionNameFormat = value; return this; }
public DataFieldUniqueness getUniqueness() { return uniqueness; }
public DataField setUniqueness(DataFieldUniqueness value) { this.uniqueness = value; return this; }
public Boolean isVoiceOnly() { return voiceOnly; }
public DataField setVoiceOnly(Boolean value) { this.voiceOnly = value; return this; }
public String getConditionalVisibilityField() { return conditionalVisibilityField; }
public DataField setConditionalVisibilityField(String value) { this.conditionalVisibilityField = value; return this; }
public String getConditionalVisibilityValue() { return conditionalVisibilityValue; }
public DataField setConditionalVisibilityValue(String value) { this.conditionalVisibilityValue = value; return this; }
public Boolean isNoEvalTemplate() { return noEvalTemplate; }
public DataField setNoEvalTemplate(Boolean value) { this.noEvalTemplate = value; return this; }
public UserDataFieldModes getUserMode() { return userMode; }
public DataField setUserMode(UserDataFieldModes value) { this.userMode = value; return this; }
public Boolean isAnyValueType() { return anyValueType; }
public DataField setAnyValueType(Boolean value) { this.anyValueType = value; return this; }
}
public static 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;
}
public static enum UIHints
{
None,
LargeText,
InlineForm,
Password,
InlineStruct;
}
public static class Value
{
public Boolean boolValue = null;
public String stringValue = null;
public Double numberValue = null;
public ArrayList<Struct> listValue = null;
public Struct structValue = null;
public Boolean isBoolValue() { return boolValue; }
public Value setBoolValue(Boolean value) { this.boolValue = value; return this; }
public String getStringValue() { return stringValue; }
public Value setStringValue(String value) { this.stringValue = value; return this; }
public Double getNumberValue() { return numberValue; }
public Value setNumberValue(Double value) { this.numberValue = value; return this; }
public ArrayList<Struct> getListValue() { return listValue; }
public Value setListValue(ArrayList<Struct> value) { this.listValue = value; return this; }
public Struct getStructValue() { return structValue; }
public Value setStructValue(Struct value) { this.structValue = value; return this; }
}
public static class Struct extends HashMap<String,Value>
{
}
public static enum DataFieldUniqueness
{
NotUnique,
Unique,
UniqueToCustomer;
}
public static enum UserDataFieldModes
{
Hidden,
ReadOnly,
ReadWrite;
}
public static enum IntegrationFeatures
{
CrmSync,
OAuth2;
}
}
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>