/* Options: Date: 2024-05-17 02:51:49 Version: 6.40 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://evovoice.io //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: ListSessions.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart,dart:typed_data */ import 'package:servicestack/servicestack.dart'; import 'dart:typed_data'; enum SortOrders { Ascend, Descend, } abstract class ListRequest implements IGet { /** * The page of data to retrieve */ // @ApiMember(Description="The page of data to retrieve") int? page; /** * If you want all objects to be returned. This should be used with care */ // @ApiMember(Description="If you want all objects to be returned. This should be used with care") bool? all; /** * The number per page to retrieve */ // @ApiMember(Description="The number per page to retrieve") int? countPerPage; /** * Specific IDs */ // @ApiMember(Description="Specific IDs") List? specificIds; /** * Specify a sort field */ // @ApiMember(Description="Specify a sort field") String? sortField; /** * Specify a sort order */ // @ApiMember(Description="Specify a sort order") SortOrders? sortOrder; /** * Disables total / page counts - improves performance. Returns only data. If there is no more data, Items will be empty array */ // @ApiMember(Description="Disables total / page counts - improves performance. Returns only data. If there is no more data, Items will be empty array") bool? simplifiedPaging; ListRequest({this.page,this.all,this.countPerPage,this.specificIds,this.sortField,this.sortOrder,this.simplifiedPaging}); ListRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { page = json['page']; all = json['all']; countPerPage = json['countPerPage']; specificIds = JsonConverters.fromJson(json['specificIds'],'List',context!); sortField = json['sortField']; sortOrder = JsonConverters.fromJson(json['sortOrder'],'SortOrders',context!); simplifiedPaging = json['simplifiedPaging']; return this; } Map toJson() => { 'page': page, 'all': all, 'countPerPage': countPerPage, 'specificIds': JsonConverters.toJson(specificIds,'List',context!), 'sortField': sortField, 'sortOrder': JsonConverters.toJson(sortOrder,'SortOrders',context!), 'simplifiedPaging': simplifiedPaging }; getTypeName() => "ListRequest<$T>"; TypeContext? context = _ctx; } class HostedSuiteCompletedFormField implements IConvertible { String? name; List? values; HostedSuiteCompletedFormField({this.name,this.values}); HostedSuiteCompletedFormField.fromJson(Map json) { fromMap(json); } fromMap(Map json) { name = json['name']; values = JsonConverters.fromJson(json['values'],'List',context!); return this; } Map toJson() => { 'name': name, 'values': JsonConverters.toJson(values,'List',context!) }; getTypeName() => "HostedSuiteCompletedFormField"; TypeContext? context = _ctx; } class HostedSuiteCompletedForm implements IConvertible { String? id; String? name; String? dateCreated; String? dateCompleted; String? formId; String? formName; String? clientId; String? clientName; String? contactId; String? contactName; List? contactsIds; List? contactsNames; String? emailSubject; String? callerNumber; List? fields; HostedSuiteCompletedForm({this.id,this.name,this.dateCreated,this.dateCompleted,this.formId,this.formName,this.clientId,this.clientName,this.contactId,this.contactName,this.contactsIds,this.contactsNames,this.emailSubject,this.callerNumber,this.fields}); HostedSuiteCompletedForm.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; name = json['name']; dateCreated = json['dateCreated']; dateCompleted = json['dateCompleted']; formId = json['formId']; formName = json['formName']; clientId = json['clientId']; clientName = json['clientName']; contactId = json['contactId']; contactName = json['contactName']; contactsIds = JsonConverters.fromJson(json['contactsIds'],'List',context!); contactsNames = JsonConverters.fromJson(json['contactsNames'],'List',context!); emailSubject = json['emailSubject']; callerNumber = json['callerNumber']; fields = JsonConverters.fromJson(json['fields'],'List',context!); return this; } Map toJson() => { 'id': id, 'name': name, 'dateCreated': dateCreated, 'dateCompleted': dateCompleted, 'formId': formId, 'formName': formName, 'clientId': clientId, 'clientName': clientName, 'contactId': contactId, 'contactName': contactName, 'contactsIds': JsonConverters.toJson(contactsIds,'List',context!), 'contactsNames': JsonConverters.toJson(contactsNames,'List',context!), 'emailSubject': emailSubject, 'callerNumber': callerNumber, 'fields': JsonConverters.toJson(fields,'List',context!) }; getTypeName() => "HostedSuiteCompletedForm"; TypeContext? context = _ctx; } 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; } class LogEntryInfo extends EntityInfo implements IConvertible { /** * The account ID this endpoint is associated with */ // @ApiMember(Description="The account ID this endpoint is associated with") String? accountId; /** * The name of the account this endpoint is associated with */ // @ApiMember(Description="The name of the account this endpoint is associated with") String? accountName; /** * The ID of the customer this endpoint is associated with */ // @ApiMember(Description="The ID of the customer this endpoint is associated with") String? customerId; /** * The name of the customer this endpoint is associated with */ // @ApiMember(Description="The name of the customer this endpoint is associated with") String? customerName; /** * The breadcrumb to the customer for this endpoint */ // @ApiMember(Description="The breadcrumb to the customer for this endpoint") List? customerBreadcrumb; String? userName; String? description; LogEntryInfo({this.accountId,this.accountName,this.customerId,this.customerName,this.customerBreadcrumb,this.userName,this.description}); LogEntryInfo.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); accountId = json['accountId']; accountName = json['accountName']; customerId = json['customerId']; customerName = json['customerName']; customerBreadcrumb = JsonConverters.fromJson(json['customerBreadcrumb'],'List',context!); userName = json['userName']; description = json['description']; return this; } Map toJson() => super.toJson()..addAll({ 'accountId': accountId, 'accountName': accountName, 'customerId': customerId, 'customerName': customerName, 'customerBreadcrumb': JsonConverters.toJson(customerBreadcrumb,'List',context!), 'userName': userName, 'description': description }); getTypeName() => "LogEntryInfo"; TypeContext? context = _ctx; } class AccountInfo extends EntityInfo implements IConvertible { /** * The name of this account */ // @ApiMember(Description="The name of this account") String? name; /** * The ID of this account's parent */ // @ApiMember(Description="The ID of this account's parent") String? parentAccountId; /** * The twilio account SID */ // @ApiMember(Description="The twilio account SID") String? twilioAccountSid; /** * The ancestors of this account. Useful for breadcrumbs */ // @ApiMember(Description="The ancestors of this account. Useful for breadcrumbs") List? ancestorIds; /** * The max number of phone numbers this account can have */ // @ApiMember(Description="The max number of phone numbers this account can have") int? maxPhoneNumbers; /** * This account is BYOA */ // @ApiMember(Description="This account is BYOA") bool? isBYOA; /** * TrustHub Profile Sid */ // @ApiMember(Description="TrustHub Profile Sid") String? trustHubProfileSid; /** * The ID of the logo file */ // @ApiMember(Description="The ID of the logo file") String? logoId; /** * The URI of the logo file */ // @ApiMember(Description="The URI of the logo file") String? logoUri; /** * The billing settings for this account */ // @ApiMember(Description="The billing settings for this account") BillingSettings? billingSettings; AccountInfo({this.name,this.parentAccountId,this.twilioAccountSid,this.ancestorIds,this.maxPhoneNumbers,this.isBYOA,this.trustHubProfileSid,this.logoId,this.logoUri,this.billingSettings}); AccountInfo.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); name = json['name']; parentAccountId = json['parentAccountId']; twilioAccountSid = json['twilioAccountSid']; ancestorIds = JsonConverters.fromJson(json['ancestorIds'],'List',context!); maxPhoneNumbers = json['maxPhoneNumbers']; isBYOA = json['isBYOA']; trustHubProfileSid = json['trustHubProfileSid']; logoId = json['logoId']; logoUri = json['logoUri']; billingSettings = JsonConverters.fromJson(json['billingSettings'],'BillingSettings',context!); return this; } Map toJson() => super.toJson()..addAll({ 'name': name, 'parentAccountId': parentAccountId, 'twilioAccountSid': twilioAccountSid, 'ancestorIds': JsonConverters.toJson(ancestorIds,'List',context!), 'maxPhoneNumbers': maxPhoneNumbers, 'isBYOA': isBYOA, 'trustHubProfileSid': trustHubProfileSid, 'logoId': logoId, 'logoUri': logoUri, 'billingSettings': JsonConverters.toJson(billingSettings,'BillingSettings',context!) }); getTypeName() => "AccountInfo"; 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; } class ListResponse implements IConvertible { /** * The items */ // @ApiMember(Description="The items") List? items; /** * The total number of items */ // @ApiMember(Description="The total number of items") int? totalCount; /** * The total number of pages */ // @ApiMember(Description="The total number of pages") int? totalPages; /** * Are there more pages of items? Used with simplified paging */ // @ApiMember(Description="Are there more pages of items? Used with simplified paging") bool? hasMorePages; ListResponse({this.items,this.totalCount,this.totalPages,this.hasMorePages}); ListResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { items = JsonConverters.fromJson(json['items'],'List<${runtimeGenericTypeDefs(this,[0]).join(",")}>',context!); totalCount = json['totalCount']; totalPages = json['totalPages']; hasMorePages = json['hasMorePages']; return this; } Map toJson() => { 'items': JsonConverters.toJson(items,'List',context!), 'totalCount': totalCount, 'totalPages': totalPages, 'hasMorePages': hasMorePages }; getTypeName() => "ListResponse<$SessionInfo>"; TypeContext? context = _ctx; } /** * Retrieve a list of sessions */ // @Route("/sessions", "GET") // @Api(Description="Retrieve a list of sessions") class ListSessions extends ListRequest implements IReturn>, IConvertible { /** * The account IDs for the sessions to retrieve */ // @ApiMember(Description="The account IDs for the sessions to retrieve") List? accountIds; /** * Whether to search live or archived sessions */ // @ApiMember(Description="Whether to search live or archived sessions") bool? searchArchive; /** * The start date to retrieve usage records for (YYYY-MM-DD) */ // @ApiMember(Description="The start date to retrieve usage records for (YYYY-MM-DD)") String? startDate; /** * The end date to retrieve usage records for (YYYY-MM-DD) */ // @ApiMember(Description="The end date to retrieve usage records for (YYYY-MM-DD)") String? endDate; /** * The IDs of the customers whose sessions you want to retrieve */ // @ApiMember(Description="The IDs of the customers whose sessions you want to retrieve") List? customerIds; /** * The IDs of the endpoints whose sessions you want to retrieve */ // @ApiMember(Description="The IDs of the endpoints whose sessions you want to retrieve") List? endpointIds; /** * Filter by the from (this is a contains search) */ // @ApiMember(Description="Filter by the from (this is a contains search)") String? from; /** * Filter by the to (this is a contains search) */ // @ApiMember(Description="Filter by the to (this is a contains search)") String? to; /** * Filter by text in the log */ // @ApiMember(Description="Filter by text in the log") String? log; /** * Filter by parent session ID */ // @ApiMember(Description="Filter by parent session ID") String? parentSessionId; ListSessions({this.accountIds,this.searchArchive,this.startDate,this.endDate,this.customerIds,this.endpointIds,this.from,this.to,this.log,this.parentSessionId}); ListSessions.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); accountIds = JsonConverters.fromJson(json['accountIds'],'List',context!); searchArchive = json['searchArchive']; startDate = json['startDate']; endDate = json['endDate']; customerIds = JsonConverters.fromJson(json['customerIds'],'List',context!); endpointIds = JsonConverters.fromJson(json['endpointIds'],'List',context!); from = json['from']; to = json['to']; log = json['log']; parentSessionId = json['parentSessionId']; return this; } Map toJson() => super.toJson()..addAll({ 'accountIds': JsonConverters.toJson(accountIds,'List',context!), 'searchArchive': searchArchive, 'startDate': startDate, 'endDate': endDate, 'customerIds': JsonConverters.toJson(customerIds,'List',context!), 'endpointIds': JsonConverters.toJson(endpointIds,'List',context!), 'from': from, 'to': to, 'log': log, 'parentSessionId': parentSessionId }); createResponse() => ListResponse(); getResponseTypeName() => "ListResponse"; getTypeName() => "ListSessions"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'evovoice.io', types: { 'SortOrders': TypeInfo(TypeOf.Enum, enumValues:SortOrders.values), 'ListRequest': TypeInfo(TypeOf.AbstractClass), 'HostedSuiteCompletedFormField': TypeInfo(TypeOf.Class, create:() => HostedSuiteCompletedFormField()), 'HostedSuiteCompletedForm': TypeInfo(TypeOf.Class, create:() => HostedSuiteCompletedForm()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'EntityInfo': TypeInfo(TypeOf.AbstractClass), 'CustomerBreadcrumb': TypeInfo(TypeOf.Class, create:() => CustomerBreadcrumb()), 'LogEntryInfo': TypeInfo(TypeOf.Class, create:() => LogEntryInfo()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'AccountInfo': TypeInfo(TypeOf.Class, create:() => AccountInfo()), 'BillingSettings': TypeInfo(TypeOf.Class, create:() => BillingSettings()), 'SessionInfo': TypeInfo(TypeOf.Class, create:() => SessionInfo()), 'SessionDialState': TypeInfo(TypeOf.Class, create:() => SessionDialState()), 'SessionCallState': TypeInfo(TypeOf.Class, create:() => SessionCallState()), 'SessionQueueStates': TypeInfo(TypeOf.Class, create:() => SessionQueueStates()), 'FlowChannels': TypeInfo(TypeOf.Class, create:() => FlowChannels()), 'SessionHoldReasons': TypeInfo(TypeOf.Class, create:() => SessionHoldReasons()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'SessionLogInfo': TypeInfo(TypeOf.Class, create:() => SessionLogInfo()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'SessionMemberInfo': TypeInfo(TypeOf.Class, create:() => SessionMemberInfo()), 'SessionDirections': TypeInfo(TypeOf.Class, create:() => SessionDirections()), 'ListResponse': TypeInfo(TypeOf.Class, create:() => ListResponse()), 'ListSessions': TypeInfo(TypeOf.Class, create:() => ListSessions()), });