GET | /integrations |
---|
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;
using Voice.Api.Accounts;
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; }
}
public partial class ListRequest<T>
: IGet
{
public ListRequest()
{
SpecificIds = new List<string>{};
}
///<summary>
///The page of data to retrieve
///</summary>
[ApiMember(Description="The page of data to retrieve")]
public virtual int Page { get; set; }
///<summary>
///If you want all objects to be returned. This should be used with care
///</summary>
[ApiMember(Description="If you want all objects to be returned. This should be used with care")]
public virtual bool All { get; set; }
///<summary>
///The number per page to retrieve
///</summary>
[ApiMember(Description="The number per page to retrieve")]
public virtual int CountPerPage { get; set; }
///<summary>
///Specific IDs
///</summary>
[ApiMember(Description="Specific IDs")]
public virtual List<string> SpecificIds { get; set; }
///<summary>
///Specify a sort field
///</summary>
[ApiMember(Description="Specify a sort field")]
public virtual string SortField { get; set; }
///<summary>
///Specify a sort order
///</summary>
[ApiMember(Description="Specify a sort order")]
public virtual SortOrders SortOrder { get; set; }
///<summary>
///Disables total / page counts - improves performance. Returns only data. If there is no more data, Items will be empty array
///</summary>
[ApiMember(Description="Disables total / page counts - improves performance. Returns only data. If there is no more data, Items will be empty array")]
public virtual bool SimplifiedPaging { get; set; }
}
public partial class ListResponse<AccountInfo>
{
public ListResponse()
{
Items = new List<AccountInfo>{};
}
///<summary>
///The items
///</summary>
[ApiMember(Description="The items")]
public virtual List<AccountInfo> Items { get; set; }
///<summary>
///The total number of items
///</summary>
[ApiMember(Description="The total number of items")]
public virtual int TotalCount { get; set; }
///<summary>
///The total number of pages
///</summary>
[ApiMember(Description="The total number of pages")]
public virtual int TotalPages { get; set; }
///<summary>
///Are there more pages of items? Used with simplified paging
///</summary>
[ApiMember(Description="Are there more pages of items? Used with simplified paging")]
public virtual bool HasMorePages { get; set; }
}
public enum SortOrders
{
Ascend,
Descend,
}
}
namespace Voice.Api.Accounts
{
public partial class AccountInfo
: EntityInfo
{
public AccountInfo()
{
AncestorIds = new List<string>{};
}
///<summary>
///The name of this account
///</summary>
[ApiMember(Description="The name of this account")]
public virtual string Name { get; set; }
///<summary>
///The ID of this account's parent
///</summary>
[ApiMember(Description="The ID of this account's parent")]
public virtual string ParentAccountId { get; set; }
///<summary>
///The twilio account SID
///</summary>
[ApiMember(Description="The twilio account SID")]
public virtual string TwilioAccountSid { get; set; }
///<summary>
///The ancestors of this account. Useful for breadcrumbs
///</summary>
[ApiMember(Description="The ancestors of this account. Useful for breadcrumbs")]
public virtual List<string> AncestorIds { get; set; }
///<summary>
///The max number of phone numbers this account can have
///</summary>
[ApiMember(Description="The max number of phone numbers this account can have")]
public virtual int MaxPhoneNumbers { get; set; }
///<summary>
///This account is BYOA
///</summary>
[ApiMember(Description="This account is BYOA")]
public virtual bool IsBYOA { get; set; }
///<summary>
///TrustHub Profile Sid
///</summary>
[ApiMember(Description="TrustHub Profile Sid")]
public virtual string TrustHubProfileSid { get; set; }
///<summary>
///The ID of the logo file
///</summary>
[ApiMember(Description="The ID of the logo file")]
public virtual string LogoId { get; set; }
///<summary>
///The URI of the logo file
///</summary>
[ApiMember(Description="The URI of the logo file")]
public virtual string LogoUri { get; set; }
///<summary>
///The billing settings for this account
///</summary>
[ApiMember(Description="The billing settings for this account")]
public virtual BillingSettings BillingSettings { get; set; }
}
public partial class BillingItem
{
public virtual double BaseCost { get; set; }
public virtual double RawUnitMultiplier { get; set; }
public virtual double UnitCost { get; set; }
public virtual int Allowance { get; set; }
}
public partial class BillingSettings
{
public virtual BillingItem Base { get; set; }
public virtual BillingItem LocalNumbers { get; set; }
public virtual BillingItem TollFreeNumbers { get; set; }
public virtual BillingItem InboundVoiceCalls { get; set; }
public virtual BillingItem OutboundVoiceCalls { get; set; }
public virtual BillingItem InboundFaxes { get; set; }
public virtual BillingItem OutboundFaxes { get; set; }
public virtual BillingItem InboundSmsMessages { get; set; }
public virtual BillingItem OutboundSmsMessages { 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
{
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,
}
///<summary>
///Retrieve integrations
///</summary>
[Api(Description="Retrieve integrations")]
public partial class ListIntegrations
: ListRequest<IntegrationInfo>
{
public ListIntegrations()
{
AccountIds = new List<string>{};
CustomerIds = new List<string>{};
}
///<summary>
///Filter by accounts
///</summary>
[ApiMember(Description="Filter by accounts")]
public virtual List<string> AccountIds { get; set; }
///<summary>
///Filter by name
///</summary>
[ApiMember(Description="Filter by name")]
public virtual string NameFilter { get; set; }
///<summary>
///The IDs of the parent customers you want to filter by
///</summary>
[ApiMember(Description="The IDs of the parent customers you want to filter by")]
public virtual List<string> CustomerIds { get; set; }
///<summary>
///If you want a shall customer integration filter (e.g. no deep children)
///</summary>
[ApiMember(Description="If you want a shall customer integration filter (e.g. no deep children)")]
public virtual bool ShallowParent { get; set; }
}
}
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.
GET /integrations HTTP/1.1 Host: evovoice.io Accept: text/jsv
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { items: [ { 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 } ], totalCount: 0, totalPages: 0, hasMorePages: False }