All Verbs | /not-used |
---|
import Foundation
import ServiceStack
public class NotUsedRequest : Codable
{
public var pushNotification:PushNotification
public var notifications:[NotificationInfo]
public var nodeParameter:NodeParameter
required public init(){}
}
public class PushNotification : Codable
{
public var type:PushNotificationTypes
public var channel:FlowChannels
public var endpointId:String
public var endpointUserName:String
public var sessionId:String
public var sender:String
public var title:String
public var body:String
public var badge:Int?
public var attachmentUri:String
public var attachmentContentType:String
public var agentState:AgentStates
public var agentStateReason:AgentStateReasons
required public init(){}
}
public enum PushNotificationTypes : String, Codable
{
case SessionDisconnected
case SessionInvite
case ChatMessage
case SessionInactivated
case AgentStateChanged
case SessionHeld
case SessionAnswered
case ActiveSessionsChanged
case Ping
case SessionScreenChanged
case Toast
case SessionInfoChanged
case MessageReceived
case SessionHolding
}
public enum FlowChannels : String, Codable
{
case Voice
case Chat
case Fax
}
public enum AgentStates : String, Codable
{
case Unknown
case Ready
case NotReady
case LoggedOut
case WrapUp
case Outgoing
case Other
}
public enum AgentStateReasons : String, Codable
{
case Unknown
case SetByUser
case MissedCall
case SetBySystem
}
public class NotificationInfo : EntityInfo
{
/**
* The account ID this endpoint is associated with
*/
// @ApiMember(Description="The account ID this endpoint is associated with")
public var accountId:String
/**
* The name of the account this endpoint is associated with
*/
// @ApiMember(Description="The name of the account this endpoint is associated with")
public var accountName:String
/**
* The ID of the customer this endpoint is associated with
*/
// @ApiMember(Description="The ID of the customer this endpoint is associated with")
public var customerId:String
/**
* The name of the customer this endpoint is associated with
*/
// @ApiMember(Description="The name of the customer this endpoint is associated with")
public var customerName:String
/**
* The breadcrumb to the customer for this endpoint
*/
// @ApiMember(Description="The breadcrumb to the customer for this endpoint")
public var customerBreadcrumb:[CustomerBreadcrumb]
/**
* The type of notification
*/
// @ApiMember(Description="The type of notification")
public var type:NotificationTypes
/**
* The subject of the notification
*/
// @ApiMember(Description="The subject of the notification")
public var subject:String
/**
* The body of the notification
*/
// @ApiMember(Description="The body of the notification")
public var body:String
/**
* The recipients of this notification
*/
// @ApiMember(Description="The recipients of this notification")
public var recipients:[NotificationRecipientInfo]
/**
* The list of attachments
*/
// @ApiMember(Description="The list of attachments")
public var attachments:[FileInfo]
/**
* The original from for the session
*/
// @ApiMember(Description="The original from for the session")
public var from:String
/**
* The original To for the session
*/
// @ApiMember(Description="The original To for the session")
public var to:String
/**
* Was there an error?
*/
// @ApiMember(Description="Was there an error?")
public var error:Bool
/**
* The error message
*/
// @ApiMember(Description="The error message")
public var errorMessage:String
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case accountId
case accountName
case customerId
case customerName
case customerBreadcrumb
case type
case subject
case body
case recipients
case attachments
case from
case to
case error
case errorMessage
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
accountId = try container.decodeIfPresent(String.self, forKey: .accountId)
accountName = try container.decodeIfPresent(String.self, forKey: .accountName)
customerId = try container.decodeIfPresent(String.self, forKey: .customerId)
customerName = try container.decodeIfPresent(String.self, forKey: .customerName)
customerBreadcrumb = try container.decodeIfPresent([CustomerBreadcrumb].self, forKey: .customerBreadcrumb) ?? []
type = try container.decodeIfPresent(NotificationTypes.self, forKey: .type)
subject = try container.decodeIfPresent(String.self, forKey: .subject)
body = try container.decodeIfPresent(String.self, forKey: .body)
recipients = try container.decodeIfPresent([NotificationRecipientInfo].self, forKey: .recipients) ?? []
attachments = try container.decodeIfPresent([FileInfo].self, forKey: .attachments) ?? []
from = try container.decodeIfPresent(String.self, forKey: .from)
to = try container.decodeIfPresent(String.self, forKey: .to)
error = try container.decodeIfPresent(Bool.self, forKey: .error)
errorMessage = try container.decodeIfPresent(String.self, forKey: .errorMessage)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if accountId != nil { try container.encode(accountId, forKey: .accountId) }
if accountName != nil { try container.encode(accountName, forKey: .accountName) }
if customerId != nil { try container.encode(customerId, forKey: .customerId) }
if customerName != nil { try container.encode(customerName, forKey: .customerName) }
if customerBreadcrumb != nil { try container.encode(customerBreadcrumb, forKey: .customerBreadcrumb) }
if type != nil { try container.encode(type, forKey: .type) }
if subject != nil { try container.encode(subject, forKey: .subject) }
if body != nil { try container.encode(body, forKey: .body) }
if recipients != nil { try container.encode(recipients, forKey: .recipients) }
if attachments != nil { try container.encode(attachments, forKey: .attachments) }
if from != nil { try container.encode(from, forKey: .from) }
if to != nil { try container.encode(to, forKey: .to) }
if error != nil { try container.encode(error, forKey: .error) }
if errorMessage != nil { try container.encode(errorMessage, forKey: .errorMessage) }
}
}
public class EntityInfo : Codable
{
/**
* The ID of the object
*/
// @ApiMember(Description="The ID of the object")
public var id:String
/**
* The date the object was created
*/
// @ApiMember(Description="The date the object was created")
public var dateCreated:String
/**
* The date the object was last modified
*/
// @ApiMember(Description="The date the object was last modified")
public var dateLastModified:String
/**
* The user that created this object
*/
// @ApiMember(Description="The user that created this object")
public var createdBy:String
/**
* The user that last modified this object
*/
// @ApiMember(Description="The user that last modified this object")
public var lastModifiedBy:String
required public init(){}
}
public class CustomerBreadcrumb : Codable
{
public var id:String
public var name:String
required public init(){}
}
public enum NotificationTypes : String, Codable
{
case Email
case Sms
case Push
case IncomingCall
case OutgoingCall
}
public class NotificationRecipientInfo : Codable
{
/**
* The address of the recipient
*/
// @ApiMember(Description="The address of the recipient")
public var address:String
/**
* Extra info about the recipient e.g. CC, BCC
*/
// @ApiMember(Description="Extra info about the recipient e.g. CC, BCC")
public var extra:String
/**
* The name of the recipient
*/
// @ApiMember(Description="The name of the recipient")
public var name:String
required public init(){}
}
public class FileInfo : EntityInfo
{
/**
* The type of file this is
*/
// @ApiMember(Description="The type of file this is")
public var type:FileTypes
/**
* The account ID this file is associated with
*/
// @ApiMember(Description="The account ID this file is associated with")
public var accountId:String
/**
* The name of the account this file is associated with
*/
// @ApiMember(Description="The name of the account this file is associated with")
public var accountName:String
/**
* The ID of the customer this file is associated with
*/
// @ApiMember(Description="The ID of the customer this file is associated with")
public var customerId:String
/**
* The name of the customer this file is associated with
*/
// @ApiMember(Description="The name of the customer this file is associated with")
public var customerName:String
/**
* The breadcrumb to the customer for this file
*/
// @ApiMember(Description="The breadcrumb to the customer for this file")
public var customerBreadcrumb:[CustomerBreadcrumb]
/**
* The ID of the user this file is assocaited with
*/
// @ApiMember(Description="The ID of the user this file is assocaited with")
public var userId:String
/**
* The name of the user this file is associated with
*/
// @ApiMember(Description="The name of the user this file is associated with")
public var userName:String
/**
* The original file name for the file
*/
// @ApiMember(Description="The original file name for the file")
public var fileName:String
/**
* The URI of the file
*/
// @ApiMember(Description="The URI of the file")
public var uri:String
/**
* The Content type of the file
*/
// @ApiMember(Description="The Content type of the file")
public var contentType:String
/**
* The size of the file
*/
// @ApiMember(Description="The size of the file")
public var contentLength:Int
/**
* The Twilio ID of the recording
*/
// @ApiMember(Description="The Twilio ID of the recording")
public var recordingSid:String
/**
* The duration of the recording in seconds
*/
// @ApiMember(Description="The duration of the recording in seconds")
public var recordingDuration:Int
/**
* Who is the recording from?
*/
// @ApiMember(Description="Who is the recording from?")
public var recordingFrom:String
/**
* Transcription (if available)
*/
// @ApiMember(Description="Transcription (if available)")
public var transcription:String
/**
* From Address (e.g. caller ID) for incoming calls
*/
// @ApiMember(Description="From Address (e.g. caller ID) for incoming calls")
public var fromAddress:String
/**
* To Address (e.g. dialed number) for outgoing calls
*/
// @ApiMember(Description="To Address (e.g. dialed number) for outgoing calls")
public var toAddress:String
/**
* The AI transcription for this call
*/
// @ApiMember(Description="The AI transcription for this call")
public var aiTranscription:String
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case type
case accountId
case accountName
case customerId
case customerName
case customerBreadcrumb
case userId
case userName
case fileName
case uri
case contentType
case contentLength
case recordingSid
case recordingDuration
case recordingFrom
case transcription
case fromAddress
case toAddress
case aiTranscription
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
type = try container.decodeIfPresent(FileTypes.self, forKey: .type)
accountId = try container.decodeIfPresent(String.self, forKey: .accountId)
accountName = try container.decodeIfPresent(String.self, forKey: .accountName)
customerId = try container.decodeIfPresent(String.self, forKey: .customerId)
customerName = try container.decodeIfPresent(String.self, forKey: .customerName)
customerBreadcrumb = try container.decodeIfPresent([CustomerBreadcrumb].self, forKey: .customerBreadcrumb) ?? []
userId = try container.decodeIfPresent(String.self, forKey: .userId)
userName = try container.decodeIfPresent(String.self, forKey: .userName)
fileName = try container.decodeIfPresent(String.self, forKey: .fileName)
uri = try container.decodeIfPresent(String.self, forKey: .uri)
contentType = try container.decodeIfPresent(String.self, forKey: .contentType)
contentLength = try container.decodeIfPresent(Int.self, forKey: .contentLength)
recordingSid = try container.decodeIfPresent(String.self, forKey: .recordingSid)
recordingDuration = try container.decodeIfPresent(Int.self, forKey: .recordingDuration)
recordingFrom = try container.decodeIfPresent(String.self, forKey: .recordingFrom)
transcription = try container.decodeIfPresent(String.self, forKey: .transcription)
fromAddress = try container.decodeIfPresent(String.self, forKey: .fromAddress)
toAddress = try container.decodeIfPresent(String.self, forKey: .toAddress)
aiTranscription = try container.decodeIfPresent(String.self, forKey: .aiTranscription)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if type != nil { try container.encode(type, forKey: .type) }
if accountId != nil { try container.encode(accountId, forKey: .accountId) }
if accountName != nil { try container.encode(accountName, forKey: .accountName) }
if customerId != nil { try container.encode(customerId, forKey: .customerId) }
if customerName != nil { try container.encode(customerName, forKey: .customerName) }
if customerBreadcrumb != nil { try container.encode(customerBreadcrumb, forKey: .customerBreadcrumb) }
if userId != nil { try container.encode(userId, forKey: .userId) }
if userName != nil { try container.encode(userName, forKey: .userName) }
if fileName != nil { try container.encode(fileName, forKey: .fileName) }
if uri != nil { try container.encode(uri, forKey: .uri) }
if contentType != nil { try container.encode(contentType, forKey: .contentType) }
if contentLength != nil { try container.encode(contentLength, forKey: .contentLength) }
if recordingSid != nil { try container.encode(recordingSid, forKey: .recordingSid) }
if recordingDuration != nil { try container.encode(recordingDuration, forKey: .recordingDuration) }
if recordingFrom != nil { try container.encode(recordingFrom, forKey: .recordingFrom) }
if transcription != nil { try container.encode(transcription, forKey: .transcription) }
if fromAddress != nil { try container.encode(fromAddress, forKey: .fromAddress) }
if toAddress != nil { try container.encode(toAddress, forKey: .toAddress) }
if aiTranscription != nil { try container.encode(aiTranscription, forKey: .aiTranscription) }
}
}
public enum FileTypes : String, Codable
{
case Upload
case VoiceMessage
case CallRecording
case Fax
case Attachment
case FaxOutgoing
}
public class NodeParameter : Codable
{
public var id:String
public var type:ValueTypes
public var source:ValueSources
public var isAsync:Bool
public var referenceId:String
public var value:Value
public var noEvalTemplate:Bool
public var listParameters:[NodeParameterMap]
public var structParameters:NodeParameterMap
public var isOutput:Bool
public var expression:String
public var listType:DataType
required public init(){}
}
public enum ValueTypes : String, Codable
{
case NotSpecified
case String
case Boolean
case Number
case List
case Struct
case Transition
case Custom
case Date
case AudioFile
case TimeZoneId
case PhoneNumber
case User
case Endpoint
case Time
case File
case FaxNumber
case EmailAccount
case Customer
case Flow
case Team
case FlowReference
case Integration
case Assistant
}
public enum ValueSources : String, Codable
{
case Value
case Flow
case System
case Customer
case Session
case Endpoint
case Expression
case User
}
public class Value : Codable
{
public var boolValue:Bool?
public var stringValue:String
public var numberValue:Double?
public var listValue:[Struct]
public var structValue:Struct
required public init(){}
}
public class Struct : List<String:Value>
{
required public init(){ super.init() }
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
}
}
public class NodeParameterMap : List<String:NodeParameter>
{
required public init(){ super.init() }
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
}
}
public class DataType : Codable
{
public var typeName:String
public var fields:[DataField]
required public init(){}
}
public class DataField : Codable
{
public var id:String
public var name:String
public var type:ValueTypes
public var uiHint:UIHints
public var uiTab:String
public var isAsync:Bool
public var disableBinding:Bool
public var structType:DataType
public var listType:DataType
public var Description:String
public var possibleValues:[String]
public var isOutput:Bool
public var customFieldValuesUrl:String
public var defaultValue:Value
public var transitionNameFormat:String
public var uniqueness:DataFieldUniqueness
public var voiceOnly:Bool
public var conditionalVisibilityField:String
public var conditionalVisibilityValue:String
public var noEvalTemplate:Bool
public var userMode:UserDataFieldModes
public var anyValueType:Bool
required public init(){}
}
public enum UIHints : String, Codable
{
case None
case LargeText
case InlineForm
case Password
case InlineStruct
}
public enum DataFieldUniqueness : String, Codable
{
case NotUnique
case Unique
case UniqueToCustomer
}
public enum UserDataFieldModes : String, Codable
{
case Hidden
case ReadOnly
case ReadWrite
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
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/csv
Content-Type: text/csv
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"}]}