Evo Voice

<back to all web services

NotUsedRequest

The following routes are available for this service:
All Verbs/not-used
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*
import com.google.gson.annotations.*
import com.google.gson.reflect.*


open class NotUsedRequest
{
    open var pushNotification:PushNotification? = null
    open var notifications:ArrayList<NotificationInfo>? = null
    open var nodeParameter:NodeParameter? = null
}

open class PushNotification
{
    @SerializedName("type") open var Type:PushNotificationTypes? = null
    open var channel:FlowChannels? = null
    open var endpointId:String? = null
    open var endpointUserName:String? = null
    open var sessionId:String? = null
    open var sender:String? = null
    open var title:String? = null
    open var body:String? = null
    open var badge:Int? = null
    open var attachmentUri:String? = null
    open var attachmentContentType:String? = null
    open var agentState:AgentStates? = null
    open var agentStateReason:AgentStateReasons? = null
}

enum class PushNotificationTypes
{
    SessionDisconnected,
    SessionInvite,
    ChatMessage,
    SessionInactivated,
    AgentStateChanged,
    SessionHeld,
    SessionAnswered,
    ActiveSessionsChanged,
    Ping,
    SessionScreenChanged,
    Toast,
    SessionInfoChanged,
    MessageReceived,
    SessionHolding,
}

enum class FlowChannels
{
    Voice,
    Chat,
    Fax,
}

enum class AgentStates
{
    Unknown,
    Ready,
    NotReady,
    LoggedOut,
    WrapUp,
    Outgoing,
    Other,
}

enum class AgentStateReasons
{
    Unknown,
    SetByUser,
    MissedCall,
    SetBySystem,
}

open class NotificationInfo : EntityInfo()
{
    /**
    * The account ID this endpoint is associated with
    */
    @ApiMember(Description="The account ID this endpoint is associated with")
    open var accountId:String? = null

    /**
    * The name of the account this endpoint is associated with
    */
    @ApiMember(Description="The name of the account this endpoint is associated with")
    open var accountName:String? = null

    /**
    * The ID of the customer this endpoint is associated with
    */
    @ApiMember(Description="The ID of the customer this endpoint is associated with")
    open var customerId:String? = null

    /**
    * The name of the customer this endpoint is associated with
    */
    @ApiMember(Description="The name of the customer this endpoint is associated with")
    open var customerName:String? = null

    /**
    * The breadcrumb to the customer for this endpoint
    */
    @ApiMember(Description="The breadcrumb to the customer for this endpoint")
    open var customerBreadcrumb:ArrayList<CustomerBreadcrumb>? = null

    /**
    * The type of notification
    */
    @ApiMember(Description="The type of notification")
    @SerializedName("type") open var Type:NotificationTypes? = null

    /**
    * The subject of the notification
    */
    @ApiMember(Description="The subject of the notification")
    open var subject:String? = null

    /**
    * The body of the notification
    */
    @ApiMember(Description="The body of the notification")
    open var body:String? = null

    /**
    * The recipients of this notification
    */
    @ApiMember(Description="The recipients of this notification")
    open var recipients:ArrayList<NotificationRecipientInfo>? = null

    /**
    * The list of attachments
    */
    @ApiMember(Description="The list of attachments")
    open var attachments:ArrayList<FileInfo>? = null

    /**
    * The original from for the session
    */
    @ApiMember(Description="The original from for the session")
    open var from:String? = null

    /**
    * The original To for the session
    */
    @ApiMember(Description="The original To for the session")
    open var to:String? = null

    /**
    * Was there an error?
    */
    @ApiMember(Description="Was there an error?")
    open var error:Boolean? = null

    /**
    * The error message
    */
    @ApiMember(Description="The error message")
    open var errorMessage:String? = null
}

open class EntityInfo
{
    /**
    * The ID of the object
    */
    @ApiMember(Description="The ID of the object")
    open var id:String? = null

    /**
    * The date the object was created
    */
    @ApiMember(Description="The date the object was created")
    open var dateCreated:String? = null

    /**
    * The date the object was last modified
    */
    @ApiMember(Description="The date the object was last modified")
    open var dateLastModified:String? = null

    /**
    * The user that created this object
    */
    @ApiMember(Description="The user that created this object")
    open var createdBy:String? = null

    /**
    * The user that last modified this object
    */
    @ApiMember(Description="The user that last modified this object")
    open var lastModifiedBy:String? = null
}

open class CustomerBreadcrumb
{
    open var id:String? = null
    open var name:String? = null
}

enum class NotificationTypes
{
    Email,
    Sms,
    Push,
    IncomingCall,
    OutgoingCall,
}

open class NotificationRecipientInfo
{
    /**
    * The address of the recipient
    */
    @ApiMember(Description="The address of the recipient")
    open var address:String? = null

    /**
    * Extra info about the recipient e.g. CC, BCC
    */
    @ApiMember(Description="Extra info about the recipient e.g. CC, BCC")
    open var extra:String? = null

    /**
    * The name of the recipient
    */
    @ApiMember(Description="The name of the recipient")
    open var name:String? = null
}

open class FileInfo : EntityInfo()
{
    /**
    * The type of file this is
    */
    @ApiMember(Description="The type of file this is")
    @SerializedName("type") open var Type:FileTypes? = null

    /**
    * The account ID this file is associated with
    */
    @ApiMember(Description="The account ID this file is associated with")
    open var accountId:String? = null

    /**
    * The name of the account this file is associated with
    */
    @ApiMember(Description="The name of the account this file is associated with")
    open var accountName:String? = null

    /**
    * The ID of the customer this file is associated with
    */
    @ApiMember(Description="The ID of the customer this file is associated with")
    open var customerId:String? = null

    /**
    * The name of the customer this file is associated with
    */
    @ApiMember(Description="The name of the customer this file is associated with")
    open var customerName:String? = null

    /**
    * The breadcrumb to the customer for this file
    */
    @ApiMember(Description="The breadcrumb to the customer for this file")
    open var customerBreadcrumb:ArrayList<CustomerBreadcrumb>? = null

    /**
    * The ID of the user this file is assocaited with
    */
    @ApiMember(Description="The ID of the user this file is assocaited with")
    open var userId:String? = null

    /**
    * The name of the user this file is associated with
    */
    @ApiMember(Description="The name of the user this file is associated with")
    open var userName:String? = null

    /**
    * The original file name for the file
    */
    @ApiMember(Description="The original file name for the file")
    open var fileName:String? = null

    /**
    * The URI of the file
    */
    @ApiMember(Description="The URI of the file")
    open var uri:String? = null

    /**
    * The Content type of the file
    */
    @ApiMember(Description="The Content type of the file")
    open var contentType:String? = null

    /**
    * The size of the file
    */
    @ApiMember(Description="The size of the file")
    open var contentLength:Long? = null

    /**
    * The Twilio ID of the recording
    */
    @ApiMember(Description="The Twilio ID of the recording")
    open var recordingSid:String? = null

    /**
    * The duration of the recording in seconds
    */
    @ApiMember(Description="The duration of the recording in seconds")
    open var recordingDuration:Int? = null

    /**
    * Who is the recording from?
    */
    @ApiMember(Description="Who is the recording from?")
    open var recordingFrom:String? = null

    /**
    * Transcription (if available)
    */
    @ApiMember(Description="Transcription (if available)")
    open var transcription:String? = null

    /**
    * From Address (e.g. caller ID) for incoming calls
    */
    @ApiMember(Description="From Address (e.g. caller ID) for incoming calls")
    open var fromAddress:String? = null

    /**
    * To Address (e.g. dialed number) for outgoing calls
    */
    @ApiMember(Description="To Address (e.g. dialed number) for outgoing calls")
    open var toAddress:String? = null

    /**
    * The AI transcription for this call
    */
    @ApiMember(Description="The AI transcription for this call")
    open var aiTranscription:String? = null
}

enum class FileTypes
{
    Upload,
    VoiceMessage,
    CallRecording,
    Fax,
    Attachment,
    FaxOutgoing,
}

open class NodeParameter
{
    open var id:String? = null
    @SerializedName("type") open var Type:ValueTypes? = null
    open var source:ValueSources? = null
    open var isAsync:Boolean? = null
    open var referenceId:String? = null
    open var value:Value? = null
    open var noEvalTemplate:Boolean? = null
    open var listParameters:ArrayList<NodeParameterMap>? = null
    open var structParameters:NodeParameterMap? = null
    open var isOutput:Boolean? = null
    open var expression:String? = null
    open var listType:DataType? = null
}

enum class 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,
}

enum class ValueSources
{
    Value,
    Flow,
    System,
    Customer,
    Session,
    Endpoint,
    Expression,
    User,
}

open class Value
{
    open var boolValue:Boolean? = null
    open var stringValue:String? = null
    open var numberValue:Double? = null
    open var listValue:ArrayList<Struct>? = null
    open var structValue:Struct? = null
}

open class Struct : HashMap<String,Value>()
{
}

open class NodeParameterMap : HashMap<String,NodeParameter>()
{
}

open class DataType
{
    open var typeName:String? = null
    open var fields:ArrayList<DataField>? = null
}

open class DataField
{
    open var id:String? = null
    open var name:String? = null
    @SerializedName("type") open var Type:ValueTypes? = null
    open var uiHint:UIHints? = null
    open var uiTab:String? = null
    open var isAsync:Boolean? = null
    open var disableBinding:Boolean? = null
    open var structType:DataType? = null
    open var listType:DataType? = null
    open var description:String? = null
    open var possibleValues:ArrayList<String>? = null
    open var isOutput:Boolean? = null
    open var customFieldValuesUrl:String? = null
    open var defaultValue:Value? = null
    open var transitionNameFormat:String? = null
    open var uniqueness:DataFieldUniqueness? = null
    open var voiceOnly:Boolean? = null
    open var conditionalVisibilityField:String? = null
    open var conditionalVisibilityValue:String? = null
    open var noEvalTemplate:Boolean? = null
    open var userMode:UserDataFieldModes? = null
    open var anyValueType:Boolean? = null
}

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

enum class DataFieldUniqueness
{
    NotUnique,
    Unique,
    UniqueToCustomer,
}

enum class UserDataFieldModes
{
    Hidden,
    ReadOnly,
    ReadWrite,
}

Kotlin NotUsedRequest DTOs

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

HTTP + OTHER

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/jsonl
Content-Type: text/jsonl
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"}]}