All Verbs | /not-used |
---|
namespace Voice.Api
open System
open System.IO
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations
type PushNotificationTypes =
| SessionDisconnected = 0
| SessionInvite = 1
| ChatMessage = 2
| SessionInactivated = 3
| AgentStateChanged = 4
| SessionHeld = 5
| SessionAnswered = 6
| ActiveSessionsChanged = 7
| Ping = 8
| SessionScreenChanged = 9
| Toast = 10
| SessionInfoChanged = 11
| MessageReceived = 12
| SessionHolding = 13
type FlowChannels =
| Voice = 0
| Chat = 1
| Fax = 2
type AgentStates =
| Unknown = 0
| Ready = 1
| NotReady = 2
| LoggedOut = 3
| WrapUp = 4
| Outgoing = 5
| Other = 6
type AgentStateReasons =
| Unknown = 0
| SetByUser = 1
| MissedCall = 2
| SetBySystem = 3
[<AllowNullLiteral>]
type PushNotification() =
member val Type:PushNotificationTypes = new PushNotificationTypes() with get,set
member val Channel:FlowChannels = new FlowChannels() with get,set
member val EndpointId:String = null with get,set
member val EndpointUserName:String = null with get,set
member val SessionId:String = null with get,set
member val Sender:String = null with get,set
member val Title:String = null with get,set
member val Body:String = null with get,set
member val Badge:Nullable<Int32> = new Nullable<Int32>() with get,set
member val AttachmentUri:String = null with get,set
member val AttachmentContentType:String = null with get,set
member val AgentState:AgentStates = new AgentStates() with get,set
member val AgentStateReason:AgentStateReasons = new AgentStateReasons() with get,set
[<AllowNullLiteral>]
type EntityInfo() =
///<summary>
///The ID of the object
///</summary>
[<ApiMember(Description="The ID of the object")>]
member val Id:String = null with get,set
///<summary>
///The date the object was created
///</summary>
[<ApiMember(Description="The date the object was created")>]
member val DateCreated:String = null with get,set
///<summary>
///The date the object was last modified
///</summary>
[<ApiMember(Description="The date the object was last modified")>]
member val DateLastModified:String = null with get,set
///<summary>
///The user that created this object
///</summary>
[<ApiMember(Description="The user that created this object")>]
member val CreatedBy:String = null with get,set
///<summary>
///The user that last modified this object
///</summary>
[<ApiMember(Description="The user that last modified this object")>]
member val LastModifiedBy:String = null with get,set
[<AllowNullLiteral>]
type CustomerBreadcrumb() =
member val Id:String = null with get,set
member val Name:String = null with get,set
type NotificationTypes =
| Email = 0
| Sms = 1
| Push = 2
| IncomingCall = 3
| OutgoingCall = 4
[<AllowNullLiteral>]
type NotificationRecipientInfo() =
///<summary>
///The address of the recipient
///</summary>
[<ApiMember(Description="The address of the recipient")>]
member val Address:String = null with get,set
///<summary>
///Extra info about the recipient e.g. CC, BCC
///</summary>
[<ApiMember(Description="Extra info about the recipient e.g. CC, BCC")>]
member val Extra:String = null with get,set
///<summary>
///The name of the recipient
///</summary>
[<ApiMember(Description="The name of the recipient")>]
member val Name:String = null with get,set
type FileTypes =
| Upload = 0
| VoiceMessage = 1
| CallRecording = 2
| Fax = 3
| Attachment = 4
| FaxOutgoing = 5
[<AllowNullLiteral>]
type FileInfo() =
inherit EntityInfo()
///<summary>
///The type of file this is
///</summary>
[<ApiMember(Description="The type of file this is")>]
member val Type:FileTypes = new FileTypes() with get,set
///<summary>
///The account ID this file is associated with
///</summary>
[<ApiMember(Description="The account ID this file is associated with")>]
member val AccountId:String = null with get,set
///<summary>
///The name of the account this file is associated with
///</summary>
[<ApiMember(Description="The name of the account this file is associated with")>]
member val AccountName:String = null with get,set
///<summary>
///The ID of the customer this file is associated with
///</summary>
[<ApiMember(Description="The ID of the customer this file is associated with")>]
member val CustomerId:String = null with get,set
///<summary>
///The name of the customer this file is associated with
///</summary>
[<ApiMember(Description="The name of the customer this file is associated with")>]
member val CustomerName:String = null with get,set
///<summary>
///The breadcrumb to the customer for this file
///</summary>
[<ApiMember(Description="The breadcrumb to the customer for this file")>]
member val CustomerBreadcrumb:ResizeArray<CustomerBreadcrumb> = null with get,set
///<summary>
///The ID of the user this file is assocaited with
///</summary>
[<ApiMember(Description="The ID of the user this file is assocaited with")>]
member val UserId:String = null with get,set
///<summary>
///The name of the user this file is associated with
///</summary>
[<ApiMember(Description="The name of the user this file is associated with")>]
member val UserName:String = null with get,set
///<summary>
///The original file name for the file
///</summary>
[<ApiMember(Description="The original file name for the file")>]
member val FileName:String = null with get,set
///<summary>
///The URI of the file
///</summary>
[<ApiMember(Description="The URI of the file")>]
member val Uri:String = null with get,set
///<summary>
///The Content type of the file
///</summary>
[<ApiMember(Description="The Content type of the file")>]
member val ContentType:String = null with get,set
///<summary>
///The size of the file
///</summary>
[<ApiMember(Description="The size of the file")>]
member val ContentLength:Int64 = new Int64() with get,set
///<summary>
///The Twilio ID of the recording
///</summary>
[<ApiMember(Description="The Twilio ID of the recording")>]
member val RecordingSid:String = null with get,set
///<summary>
///The duration of the recording in seconds
///</summary>
[<ApiMember(Description="The duration of the recording in seconds")>]
member val RecordingDuration:Int32 = new Int32() with get,set
///<summary>
///Who is the recording from?
///</summary>
[<ApiMember(Description="Who is the recording from?")>]
member val RecordingFrom:String = null with get,set
///<summary>
///Transcription (if available)
///</summary>
[<ApiMember(Description="Transcription (if available)")>]
member val Transcription:String = null with get,set
///<summary>
///From Address (e.g. caller ID) for incoming calls
///</summary>
[<ApiMember(Description="From Address (e.g. caller ID) for incoming calls")>]
member val FromAddress:String = null with get,set
///<summary>
///To Address (e.g. dialed number) for outgoing calls
///</summary>
[<ApiMember(Description="To Address (e.g. dialed number) for outgoing calls")>]
member val ToAddress:String = null with get,set
///<summary>
///The AI transcription for this call
///</summary>
[<ApiMember(Description="The AI transcription for this call")>]
member val AITranscription:String = null with get,set
[<AllowNullLiteral>]
type NotificationInfo() =
inherit EntityInfo()
///<summary>
///The account ID this endpoint is associated with
///</summary>
[<ApiMember(Description="The account ID this endpoint is associated with")>]
member val AccountId:String = null with get,set
///<summary>
///The name of the account this endpoint is associated with
///</summary>
[<ApiMember(Description="The name of the account this endpoint is associated with")>]
member val AccountName:String = null with get,set
///<summary>
///The ID of the customer this endpoint is associated with
///</summary>
[<ApiMember(Description="The ID of the customer this endpoint is associated with")>]
member val CustomerId:String = null with get,set
///<summary>
///The name of the customer this endpoint is associated with
///</summary>
[<ApiMember(Description="The name of the customer this endpoint is associated with")>]
member val CustomerName:String = null with get,set
///<summary>
///The breadcrumb to the customer for this endpoint
///</summary>
[<ApiMember(Description="The breadcrumb to the customer for this endpoint")>]
member val CustomerBreadcrumb:ResizeArray<CustomerBreadcrumb> = null with get,set
///<summary>
///The type of notification
///</summary>
[<ApiMember(Description="The type of notification")>]
member val Type:NotificationTypes = new NotificationTypes() with get,set
///<summary>
///The subject of the notification
///</summary>
[<ApiMember(Description="The subject of the notification")>]
member val Subject:String = null with get,set
///<summary>
///The body of the notification
///</summary>
[<ApiMember(Description="The body of the notification")>]
member val Body:String = null with get,set
///<summary>
///The recipients of this notification
///</summary>
[<ApiMember(Description="The recipients of this notification")>]
member val Recipients:ResizeArray<NotificationRecipientInfo> = null with get,set
///<summary>
///The list of attachments
///</summary>
[<ApiMember(Description="The list of attachments")>]
member val Attachments:ResizeArray<FileInfo> = null with get,set
///<summary>
///The original from for the session
///</summary>
[<ApiMember(Description="The original from for the session")>]
member val From:String = null with get,set
///<summary>
///The original To for the session
///</summary>
[<ApiMember(Description="The original To for the session")>]
member val To:String = null with get,set
///<summary>
///Was there an error?
///</summary>
[<ApiMember(Description="Was there an error?")>]
member val Error:Boolean = new Boolean() with get,set
///<summary>
///The error message
///</summary>
[<ApiMember(Description="The error message")>]
member val ErrorMessage:String = null with get,set
type ValueTypes =
| NotSpecified = 0
| String = 1
| Boolean = 2
| Number = 3
| List = 4
| Struct = 5
| Transition = 6
| Custom = 7
| Date = 8
| AudioFile = 9
| TimeZoneId = 10
| PhoneNumber = 11
| User = 12
| Endpoint = 13
| Time = 14
| File = 15
| FaxNumber = 16
| EmailAccount = 17
| Customer = 18
| Flow = 19
| Team = 20
| FlowReference = 21
| Integration = 22
| Assistant = 23
type ValueSources =
| Value = 0
| Flow = 1
| System = 2
| Customer = 3
| Session = 4
| Endpoint = 5
| Expression = 6
| User = 7
[<AllowNullLiteral>]
type Struct() =
inherit Dictionary<String, Value>()
[<AllowNullLiteral>]
type Value() =
member val BoolValue:Nullable<Boolean> = new Nullable<Boolean>() with get,set
member val StringValue:String = null with get,set
member val NumberValue:Nullable<Double> = new Nullable<Double>() with get,set
member val ListValue:ResizeArray<Struct> = null with get,set
member val StructValue:Struct = null with get,set
[<AllowNullLiteral>]
type NodeParameterMap() =
inherit Dictionary<String, NodeParameter>()
type UIHints =
| None = 0
| LargeText = 1
| InlineForm = 2
| Password = 3
| InlineStruct = 4
type DataFieldUniqueness =
| NotUnique = 0
| Unique = 1
| UniqueToCustomer = 2
type UserDataFieldModes =
| Hidden = 0
| ReadOnly = 1
| ReadWrite = 2
[<AllowNullLiteral>]
type DataField() =
member val Id:String = null with get,set
member val Name:String = null with get,set
member val Type:ValueTypes = new ValueTypes() with get,set
member val UIHint:UIHints = new UIHints() with get,set
member val UITab:String = null with get,set
member val IsAsync:Boolean = new Boolean() with get,set
member val DisableBinding:Boolean = new Boolean() with get,set
member val StructType:DataType = null with get,set
member val ListType:DataType = null with get,set
member val Description:String = null with get,set
member val PossibleValues:ResizeArray<String> = null with get,set
member val IsOutput:Boolean = new Boolean() with get,set
member val CustomFieldValuesUrl:String = null with get,set
member val DefaultValue:Value = null with get,set
member val TransitionNameFormat:String = null with get,set
member val Uniqueness:DataFieldUniqueness = new DataFieldUniqueness() with get,set
member val VoiceOnly:Boolean = new Boolean() with get,set
member val ConditionalVisibilityField:String = null with get,set
member val ConditionalVisibilityValue:String = null with get,set
member val NoEvalTemplate:Boolean = new Boolean() with get,set
member val UserMode:UserDataFieldModes = new UserDataFieldModes() with get,set
member val AnyValueType:Boolean = new Boolean() with get,set
[<AllowNullLiteral>]
type DataType() =
member val TypeName:String = null with get,set
member val Fields:ResizeArray<DataField> = null with get,set
[<AllowNullLiteral>]
type NodeParameter() =
member val Id:String = null with get,set
member val Type:ValueTypes = new ValueTypes() with get,set
member val Source:ValueSources = new ValueSources() with get,set
member val IsAsync:Boolean = new Boolean() with get,set
member val ReferenceId:String = null with get,set
member val Value:Value = null with get,set
member val NoEvalTemplate:Boolean = new Boolean() with get,set
member val ListParameters:ResizeArray<NodeParameterMap> = null with get,set
member val StructParameters:NodeParameterMap = null with get,set
member val IsOutput:Boolean = new Boolean() with get,set
member val Expression:String = null with get,set
member val ListType:DataType = null with get,set
[<AllowNullLiteral>]
type NotUsedRequest() =
member val PushNotification:PushNotification = null with get,set
member val Notifications:ResizeArray<NotificationInfo> = null with get,set
member val NodeParameter:NodeParameter = null with 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.
POST /not-used HTTP/1.1
Host: team.evovoice.io
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
pushNotification:
{
type: SessionDisconnected,
channel: Voice,
endpointId: String,
endpointUserName: String,
sessionId: String,
sender: String,
title: String,
body: String,
badge: 0,
attachmentUri: String,
attachmentContentType: String,
agentState: Unknown,
agentStateReason: Unknown
},
notifications:
[
{
accountId: String,
accountName: String,
customerId: String,
customerName: String,
customerBreadcrumb:
[
{
id: String,
name: String
}
],
type: Email,
subject: String,
body: String,
recipients:
[
{
address: String,
extra: String,
name: String
}
],
attachments:
[
{
type: Upload,
accountId: String,
accountName: String,
customerId: String,
customerName: String,
customerBreadcrumb:
[
{
id: String,
name: String
}
],
userId: String,
userName: String,
fileName: String,
uri: String,
contentType: String,
contentLength: 0,
recordingSid: String,
recordingDuration: 0,
recordingFrom: String,
transcription: String,
fromAddress: String,
toAddress: String,
aiTranscription: String,
id: String,
dateCreated: String,
dateLastModified: String,
createdBy: String,
lastModifiedBy: String
}
],
from: String,
to: String,
error: False,
errorMessage: String,
id: String,
dateCreated: String,
dateLastModified: String,
createdBy: String,
lastModifiedBy: String
}
]
}