/* Options: Date: 2025-05-04 23:36:21 Version: 8.71 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://team.evovoice.io //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: GetSession.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart,dart:typed_data */ import 'package:servicestack/servicestack.dart'; import 'dart:typed_data'; enum FlowChannels { Voice, Chat, Fax, } enum SessionDirections { Incoming, Outgoing, } enum SessionCallState { Disconnected, Ringing, Connected, Hold, Passive, } enum SessionHoldReasons { None, Transferring, } enum SessionQueueStates { None, Queued, Ringing, Connected, Hold, Disconnected, } abstract class EntityInfo { /** * The ID of the object */ // @ApiMember(Description="The ID of the object") String? id; /** * The date the object was created */ // @ApiMember(Description="The date the object was created") String? dateCreated; /** * The date the object was last modified */ // @ApiMember(Description="The date the object was last modified") String? dateLastModified; /** * The user that created this object */ // @ApiMember(Description="The user that created this object") String? createdBy; /** * The user that last modified this object */ // @ApiMember(Description="The user that last modified this object") String? lastModifiedBy; EntityInfo({this.id,this.dateCreated,this.dateLastModified,this.createdBy,this.lastModifiedBy}); EntityInfo.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; dateCreated = json['dateCreated']; dateLastModified = json['dateLastModified']; createdBy = json['createdBy']; lastModifiedBy = json['lastModifiedBy']; return this; } Map toJson() => { 'id': id, 'dateCreated': dateCreated, 'dateLastModified': dateLastModified, 'createdBy': createdBy, 'lastModifiedBy': lastModifiedBy }; getTypeName() => "EntityInfo"; TypeContext? context = _ctx; } class CustomerBreadcrumb implements IConvertible { String? id; String? name; CustomerBreadcrumb({this.id,this.name}); CustomerBreadcrumb.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; name = json['name']; return this; } Map toJson() => { 'id': id, 'name': name }; getTypeName() => "CustomerBreadcrumb"; TypeContext? context = _ctx; } enum SessionDialState { None, Active, } class SessionLogInfo implements IConvertible { String? date; String? message; SessionLogInfo({this.date,this.message}); SessionLogInfo.fromJson(Map json) { fromMap(json); } fromMap(Map json) { date = json['date']; message = json['message']; return this; } Map toJson() => { 'date': date, 'message': message }; getTypeName() => "SessionLogInfo"; TypeContext? context = _ctx; } enum SessionMemberCallState { None, Ringing, Connected, Hold, } enum SessionMemberRoles { None, Caller, Agent, Transfer, } class SessionMemberInfo implements IConvertible { String? identity; String? endpointId; String? displayName; bool? isOriginalMember; String? avatarUrl; Map? applicationData; SessionMemberCallState? callState; SessionMemberRoles? role; String? callSid; bool? muted; SessionMemberInfo({this.identity,this.endpointId,this.displayName,this.isOriginalMember,this.avatarUrl,this.applicationData,this.callState,this.role,this.callSid,this.muted}); SessionMemberInfo.fromJson(Map json) { fromMap(json); } fromMap(Map json) { identity = json['identity']; endpointId = json['endpointId']; displayName = json['displayName']; isOriginalMember = json['isOriginalMember']; avatarUrl = json['avatarUrl']; applicationData = JsonConverters.toStringMap(json['applicationData']); callState = JsonConverters.fromJson(json['callState'],'SessionMemberCallState',context!); role = JsonConverters.fromJson(json['role'],'SessionMemberRoles',context!); callSid = json['callSid']; muted = json['muted']; return this; } Map toJson() => { 'identity': identity, 'endpointId': endpointId, 'displayName': displayName, 'isOriginalMember': isOriginalMember, 'avatarUrl': avatarUrl, 'applicationData': applicationData, 'callState': JsonConverters.toJson(callState,'SessionMemberCallState',context!), 'role': JsonConverters.toJson(role,'SessionMemberRoles',context!), 'callSid': callSid, 'muted': muted }; getTypeName() => "SessionMemberInfo"; TypeContext? context = _ctx; } class SessionInfo extends EntityInfo implements IConvertible { /** * The state of the session */ // @ApiMember(Description="The state of the session") SessionDialState? dialState; /** * The call state of the session */ // @ApiMember(Description="The call state of the session") SessionCallState? callState; /** * The queue state of the session */ // @ApiMember(Description="The queue state of the session") SessionQueueStates? queueState; /** * The ID of the account associated with the flow */ // @ApiMember(Description="The ID of the account associated with the flow") String? accountId; /** * The name of the account associated with the session */ // @ApiMember(Description="The name of the account associated with the session") String? accountName; /** * The ID of the customer this session is associated with */ // @ApiMember(Description="The ID of the customer this session is associated with") String? customerId; /** * The customer breadcrumb this session is associated with */ // @ApiMember(Description="The customer breadcrumb this session is associated with") List? customerBreadcrumb; /** * The name of the customer this session is associated with */ // @ApiMember(Description="The name of the customer this session is associated with") String? customerName; /** * The ID of the endpoint associated with this session */ // @ApiMember(Description="The ID of the endpoint associated with this session") String? endpointId; /** * The name of the endpoint associated with this session */ // @ApiMember(Description="The name of the endpoint associated with this session") String? endpointName; /** * The date the call completed */ // @ApiMember(Description="The date the call completed") String? dateCompleted; /** * The destination of the session (e.g. what was entered into the Dial box) */ // @ApiMember(Description="The destination of the session (e.g. what was entered into the Dial box)") String? destination; /** * The to address if any */ // @ApiMember(Description="The to address if any") String? toAddress; /** * The from address if any */ // @ApiMember(Description="The from address if any") String? fromAddress; /** * The from name if any */ // @ApiMember(Description="The from name if any") String? fromName; /** * Answered by name (if any) */ // @ApiMember(Description="Answered by name (if any)") String? answeredByName; /** * The ID of the queue member assigned to this call */ // @ApiMember(Description="The ID of the queue member assigned to this call") String? queueMemberId; /** * The flow channel */ // @ApiMember(Description="The flow channel") FlowChannels? channel; /** * Has the session ended */ // @ApiMember(Description="Has the session ended") bool? ended; /** * The outcome of the call */ // @ApiMember(Description="The outcome of the call") String? outcome; /** * The twilio Call SID of this session */ // @ApiMember(Description="The twilio Call SID of this session") String? callSid; /** * Any console data for this session */ // @ApiMember(Description="Any console data for this session") String? consoleData; /** * The name of the hold queue for this call */ // @ApiMember(Description="The name of the hold queue for this call") String? holdQueueName; /** * The user ID who put this call on hold */ // @ApiMember(Description="The user ID who put this call on hold") String? heldByUserId; /** * The reason for the hold */ // @ApiMember(Description="The reason for the hold") SessionHoldReasons? holdReason; /** * The SID of the conference if in a conference call */ // @ApiMember(Description="The SID of the conference if in a conference call") String? conferenceSid; /** * The display name for this session */ // @ApiMember(Description="The display name for this session") String? displayName; /** * The log entries for this session */ // @ApiMember(Description="The log entries for this session") List? log; /** * The members of this session */ // @ApiMember(Description="The members of this session") List? members; /** * The callback number (typically used for SIP to User calls) */ // @ApiMember(Description="The callback number (typically used for SIP to User calls)") String? callbackNumber; /** * The ID of the endpoint that answered */ // @ApiMember(Description="The ID of the endpoint that answered") String? answeredById; /** * Is this session incoming or outgoing? */ // @ApiMember(Description="Is this session incoming or outgoing?") SessionDirections? direction; /** * The phone number that this session is coming from (used with SMS chats) */ // @ApiMember(Description="The phone number that this session is coming from (used with SMS chats)") String? fromPhoneNumber; /** * The Call SID of the most recently added conference participant */ // @ApiMember(Description="The Call SID of the most recently added conference participant") String? mostRecentParticipantCallSid; /** * Was this session missed? */ // @ApiMember(Description="Was this session missed?") bool? wasMissed; /** * The ring queue that the call is currently in */ // @ApiMember(Description="The ring queue that the call is currently in") String? ringQueueId; SessionInfo({this.dialState,this.callState,this.queueState,this.accountId,this.accountName,this.customerId,this.customerBreadcrumb,this.customerName,this.endpointId,this.endpointName,this.dateCompleted,this.destination,this.toAddress,this.fromAddress,this.fromName,this.answeredByName,this.queueMemberId,this.channel,this.ended,this.outcome,this.callSid,this.consoleData,this.holdQueueName,this.heldByUserId,this.holdReason,this.conferenceSid,this.displayName,this.log,this.members,this.callbackNumber,this.answeredById,this.direction,this.fromPhoneNumber,this.mostRecentParticipantCallSid,this.wasMissed,this.ringQueueId}); SessionInfo.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); dialState = JsonConverters.fromJson(json['dialState'],'SessionDialState',context!); callState = JsonConverters.fromJson(json['callState'],'SessionCallState',context!); queueState = JsonConverters.fromJson(json['queueState'],'SessionQueueStates',context!); accountId = json['accountId']; accountName = json['accountName']; customerId = json['customerId']; customerBreadcrumb = JsonConverters.fromJson(json['customerBreadcrumb'],'List',context!); customerName = json['customerName']; endpointId = json['endpointId']; endpointName = json['endpointName']; dateCompleted = json['dateCompleted']; destination = json['destination']; toAddress = json['toAddress']; fromAddress = json['fromAddress']; fromName = json['fromName']; answeredByName = json['answeredByName']; queueMemberId = json['queueMemberId']; channel = JsonConverters.fromJson(json['channel'],'FlowChannels',context!); ended = json['ended']; outcome = json['outcome']; callSid = json['callSid']; consoleData = json['consoleData']; holdQueueName = json['holdQueueName']; heldByUserId = json['heldByUserId']; holdReason = JsonConverters.fromJson(json['holdReason'],'SessionHoldReasons',context!); conferenceSid = json['conferenceSid']; displayName = json['displayName']; log = JsonConverters.fromJson(json['log'],'List',context!); members = JsonConverters.fromJson(json['members'],'List',context!); callbackNumber = json['callbackNumber']; answeredById = json['answeredById']; direction = JsonConverters.fromJson(json['direction'],'SessionDirections',context!); fromPhoneNumber = json['fromPhoneNumber']; mostRecentParticipantCallSid = json['mostRecentParticipantCallSid']; wasMissed = json['wasMissed']; ringQueueId = json['ringQueueId']; return this; } Map toJson() => super.toJson()..addAll({ 'dialState': JsonConverters.toJson(dialState,'SessionDialState',context!), 'callState': JsonConverters.toJson(callState,'SessionCallState',context!), 'queueState': JsonConverters.toJson(queueState,'SessionQueueStates',context!), 'accountId': accountId, 'accountName': accountName, 'customerId': customerId, 'customerBreadcrumb': JsonConverters.toJson(customerBreadcrumb,'List',context!), 'customerName': customerName, 'endpointId': endpointId, 'endpointName': endpointName, 'dateCompleted': dateCompleted, 'destination': destination, 'toAddress': toAddress, 'fromAddress': fromAddress, 'fromName': fromName, 'answeredByName': answeredByName, 'queueMemberId': queueMemberId, 'channel': JsonConverters.toJson(channel,'FlowChannels',context!), 'ended': ended, 'outcome': outcome, 'callSid': callSid, 'consoleData': consoleData, 'holdQueueName': holdQueueName, 'heldByUserId': heldByUserId, 'holdReason': JsonConverters.toJson(holdReason,'SessionHoldReasons',context!), 'conferenceSid': conferenceSid, 'displayName': displayName, 'log': JsonConverters.toJson(log,'List',context!), 'members': JsonConverters.toJson(members,'List',context!), 'callbackNumber': callbackNumber, 'answeredById': answeredById, 'direction': JsonConverters.toJson(direction,'SessionDirections',context!), 'fromPhoneNumber': fromPhoneNumber, 'mostRecentParticipantCallSid': mostRecentParticipantCallSid, 'wasMissed': wasMissed, 'ringQueueId': ringQueueId }); getTypeName() => "SessionInfo"; TypeContext? context = _ctx; } /** * Get the specified session */ // @Route("/sessions/{sessionId}", "GET") // @Api(Description="Get the specified session") class GetSession implements IReturn, IGet, IConvertible { /** * The ID of the session to retrieve */ // @ApiMember(Description="The ID of the session to retrieve") String? sessionId; GetSession({this.sessionId}); GetSession.fromJson(Map json) { fromMap(json); } fromMap(Map json) { sessionId = json['sessionId']; return this; } Map toJson() => { 'sessionId': sessionId }; createResponse() => SessionInfo(); getResponseTypeName() => "SessionInfo"; getTypeName() => "GetSession"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'team.evovoice.io', types: { 'FlowChannels': TypeInfo(TypeOf.Enum, enumValues:FlowChannels.values), 'SessionDirections': TypeInfo(TypeOf.Enum, enumValues:SessionDirections.values), 'SessionCallState': TypeInfo(TypeOf.Enum, enumValues:SessionCallState.values), 'SessionHoldReasons': TypeInfo(TypeOf.Enum, enumValues:SessionHoldReasons.values), 'SessionQueueStates': TypeInfo(TypeOf.Enum, enumValues:SessionQueueStates.values), 'EntityInfo': TypeInfo(TypeOf.AbstractClass), 'CustomerBreadcrumb': TypeInfo(TypeOf.Class, create:() => CustomerBreadcrumb()), 'SessionDialState': TypeInfo(TypeOf.Enum, enumValues:SessionDialState.values), 'SessionLogInfo': TypeInfo(TypeOf.Class, create:() => SessionLogInfo()), 'SessionMemberCallState': TypeInfo(TypeOf.Enum, enumValues:SessionMemberCallState.values), 'SessionMemberRoles': TypeInfo(TypeOf.Enum, enumValues:SessionMemberRoles.values), 'SessionMemberInfo': TypeInfo(TypeOf.Class, create:() => SessionMemberInfo()), 'SessionInfo': TypeInfo(TypeOf.Class, create:() => SessionInfo()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'GetSession': TypeInfo(TypeOf.Class, create:() => GetSession()), });