/* Options: Date: 2025-05-04 23:43:37 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: ListIntegrations.* //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 Struct extends Map implements IConvertible { Struct(); Struct.fromJson(Map json) : super.fromJson(json); fromMap(Map json) { super.fromMap(json); return this; } Map toJson() => super.toJson(); getTypeName() => "Struct"; TypeContext? context = _ctx; } class Value implements IConvertible { bool? boolValue; String? stringValue; double? numberValue; List? listValue; Struct? structValue; Value({this.boolValue,this.stringValue,this.numberValue,this.listValue,this.structValue}); Value.fromJson(Map json) { fromMap(json); } fromMap(Map json) { boolValue = json['boolValue']; stringValue = json['stringValue']; numberValue = JsonConverters.toDouble(json['numberValue']); listValue = JsonConverters.fromJson(json['listValue'],'List',context!); structValue = JsonConverters.fromJson(json['structValue'],'Struct',context!); return this; } Map toJson() => { 'boolValue': boolValue, 'stringValue': stringValue, 'numberValue': numberValue, 'listValue': JsonConverters.toJson(listValue,'List',context!), 'structValue': JsonConverters.toJson(structValue,'Struct',context!) }; getTypeName() => "Value"; TypeContext? context = _ctx; } enum UserDataFieldModes { Hidden, ReadOnly, ReadWrite, } enum 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 IntegrationTypes { HostedSuite, OfficeRnd, Zoho, } 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 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<$T>"; 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 IntegrationStatuses { NotConfigured, Error, OK, } enum UIHints { None, LargeText, InlineForm, Password, InlineStruct, } class DataType implements IConvertible { String? typeName; List? fields; DataType({this.typeName,this.fields}); DataType.fromJson(Map json) { fromMap(json); } fromMap(Map json) { typeName = json['typeName']; fields = JsonConverters.fromJson(json['fields'],'List',context!); return this; } Map toJson() => { 'typeName': typeName, 'fields': JsonConverters.toJson(fields,'List',context!) }; getTypeName() => "DataType"; TypeContext? context = _ctx; } enum DataFieldUniqueness { NotUnique, Unique, UniqueToCustomer, } class DataField implements IConvertible { String? id; String? name; ValueTypes? type; UIHints? uiHint; String? uiTab; bool? isAsync; bool? disableBinding; DataType? structType; DataType? listType; String? description; List? possibleValues; bool? isOutput; String? customFieldValuesUrl; Value? defaultValue; String? transitionNameFormat; DataFieldUniqueness? uniqueness; bool? voiceOnly; String? conditionalVisibilityField; String? conditionalVisibilityValue; bool? noEvalTemplate; UserDataFieldModes? userMode; bool? anyValueType; DataField({this.id,this.name,this.type,this.uiHint,this.uiTab,this.isAsync,this.disableBinding,this.structType,this.listType,this.description,this.possibleValues,this.isOutput,this.customFieldValuesUrl,this.defaultValue,this.transitionNameFormat,this.uniqueness,this.voiceOnly,this.conditionalVisibilityField,this.conditionalVisibilityValue,this.noEvalTemplate,this.userMode,this.anyValueType}); DataField.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; name = json['name']; type = JsonConverters.fromJson(json['type'],'ValueTypes',context!); uiHint = JsonConverters.fromJson(json['uiHint'],'UIHints',context!); uiTab = json['uiTab']; isAsync = json['isAsync']; disableBinding = json['disableBinding']; structType = JsonConverters.fromJson(json['structType'],'DataType',context!); listType = JsonConverters.fromJson(json['listType'],'DataType',context!); description = json['description']; possibleValues = JsonConverters.fromJson(json['possibleValues'],'List',context!); isOutput = json['isOutput']; customFieldValuesUrl = json['customFieldValuesUrl']; defaultValue = JsonConverters.fromJson(json['defaultValue'],'Value',context!); transitionNameFormat = json['transitionNameFormat']; uniqueness = JsonConverters.fromJson(json['uniqueness'],'DataFieldUniqueness',context!); voiceOnly = json['voiceOnly']; conditionalVisibilityField = json['conditionalVisibilityField']; conditionalVisibilityValue = json['conditionalVisibilityValue']; noEvalTemplate = json['noEvalTemplate']; userMode = JsonConverters.fromJson(json['userMode'],'UserDataFieldModes',context!); anyValueType = json['anyValueType']; return this; } Map toJson() => { 'id': id, 'name': name, 'type': JsonConverters.toJson(type,'ValueTypes',context!), 'uiHint': JsonConverters.toJson(uiHint,'UIHints',context!), 'uiTab': uiTab, 'isAsync': isAsync, 'disableBinding': disableBinding, 'structType': JsonConverters.toJson(structType,'DataType',context!), 'listType': JsonConverters.toJson(listType,'DataType',context!), 'description': description, 'possibleValues': JsonConverters.toJson(possibleValues,'List',context!), 'isOutput': isOutput, 'customFieldValuesUrl': customFieldValuesUrl, 'defaultValue': JsonConverters.toJson(defaultValue,'Value',context!), 'transitionNameFormat': transitionNameFormat, 'uniqueness': JsonConverters.toJson(uniqueness,'DataFieldUniqueness',context!), 'voiceOnly': voiceOnly, 'conditionalVisibilityField': conditionalVisibilityField, 'conditionalVisibilityValue': conditionalVisibilityValue, 'noEvalTemplate': noEvalTemplate, 'userMode': JsonConverters.toJson(userMode,'UserDataFieldModes',context!), 'anyValueType': anyValueType }; getTypeName() => "DataField"; TypeContext? context = _ctx; } enum IntegrationFeatures { CrmSync, OAuth2, } class IntegrationInfo extends EntityInfo implements IConvertible { /** * The ID of the account associated with this integration */ // @ApiMember(Description="The ID of the account associated with this integration") String? accountId; /** * The ID of the customer this integration is associated with */ // @ApiMember(Description="The ID of the customer this integration is associated with") String? customerId; /** * The name of the customer this integration is associated with */ // @ApiMember(Description="The name of the customer this integration is associated with") String? customerName; /** * The date the integration was sync'd last */ // @ApiMember(Description="The date the integration was sync'd last") String? dateLastSync; /** * The breadcrumb to the customer for this integration */ // @ApiMember(Description="The breadcrumb to the customer for this integration") List? customerBreadcrumb; /** * The name of the integration (e.g. HostedSuite Dallas) */ // @ApiMember(Description="The name of the integration (e.g. HostedSuite Dallas)") String? name; /** * Automatically create new customers / users when sync'ing with CRM? */ // @ApiMember(Description="Automatically create new customers / users when sync'ing with CRM?") bool? automaticallyCreateCustomers; /** * The type of integration */ // @ApiMember(Description="The type of integration") IntegrationTypes? type; /** * The status of the integration */ // @ApiMember(Description="The status of the integration") IntegrationStatuses? status; /** * The status of the integration */ // @ApiMember(Description="The status of the integration") String? statusMessage; /** * The settings type for this integration */ // @ApiMember(Description="The settings type for this integration") DataType? settingsDataType; /** * The settings for this integration */ // @ApiMember(Description="The settings for this integration") Struct? settings; /** * The features supported by this integration */ // @ApiMember(Description="The features supported by this integration") List? features; /** * Is this integration authorized (OAuth)? */ // @ApiMember(Description="Is this integration authorized (OAuth)?") bool? isAuthorized; IntegrationInfo({this.accountId,this.customerId,this.customerName,this.dateLastSync,this.customerBreadcrumb,this.name,this.automaticallyCreateCustomers,this.type,this.status,this.statusMessage,this.settingsDataType,this.settings,this.features,this.isAuthorized}); IntegrationInfo.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); accountId = json['accountId']; customerId = json['customerId']; customerName = json['customerName']; dateLastSync = json['dateLastSync']; customerBreadcrumb = JsonConverters.fromJson(json['customerBreadcrumb'],'List',context!); name = json['name']; automaticallyCreateCustomers = json['automaticallyCreateCustomers']; type = JsonConverters.fromJson(json['type'],'IntegrationTypes',context!); status = JsonConverters.fromJson(json['status'],'IntegrationStatuses',context!); statusMessage = json['statusMessage']; settingsDataType = JsonConverters.fromJson(json['settingsDataType'],'DataType',context!); settings = JsonConverters.fromJson(json['settings'],'Struct',context!); features = JsonConverters.fromJson(json['features'],'List',context!); isAuthorized = json['isAuthorized']; return this; } Map toJson() => super.toJson()..addAll({ 'accountId': accountId, 'customerId': customerId, 'customerName': customerName, 'dateLastSync': dateLastSync, 'customerBreadcrumb': JsonConverters.toJson(customerBreadcrumb,'List',context!), 'name': name, 'automaticallyCreateCustomers': automaticallyCreateCustomers, 'type': JsonConverters.toJson(type,'IntegrationTypes',context!), 'status': JsonConverters.toJson(status,'IntegrationStatuses',context!), 'statusMessage': statusMessage, 'settingsDataType': JsonConverters.toJson(settingsDataType,'DataType',context!), 'settings': JsonConverters.toJson(settings,'Struct',context!), 'features': JsonConverters.toJson(features,'List',context!), 'isAuthorized': isAuthorized }); getTypeName() => "IntegrationInfo"; TypeContext? context = _ctx; } /** * Retrieve integrations */ // @Route("/integrations", "GET") // @Api(Description="Retrieve integrations") class ListIntegrations extends ListRequest implements IReturn>, IConvertible, IGet { /** * Filter by accounts */ // @ApiMember(Description="Filter by accounts") List? accountIds; /** * Filter by name */ // @ApiMember(Description="Filter by name") String? nameFilter; /** * The IDs of the parent customers you want to filter by */ // @ApiMember(Description="The IDs of the parent customers you want to filter by") List? customerIds; /** * If you want a shall customer integration filter (e.g. no deep children) */ // @ApiMember(Description="If you want a shall customer integration filter (e.g. no deep children)") bool? shallowParent; ListIntegrations({this.accountIds,this.nameFilter,this.customerIds,this.shallowParent}); ListIntegrations.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); accountIds = JsonConverters.fromJson(json['accountIds'],'List',context!); nameFilter = json['nameFilter']; customerIds = JsonConverters.fromJson(json['customerIds'],'List',context!); shallowParent = json['shallowParent']; return this; } Map toJson() => super.toJson()..addAll({ 'accountIds': JsonConverters.toJson(accountIds,'List',context!), 'nameFilter': nameFilter, 'customerIds': JsonConverters.toJson(customerIds,'List',context!), 'shallowParent': shallowParent }); createResponse() => ListResponse(); getResponseTypeName() => "ListResponse"; getTypeName() => "ListIntegrations"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'team.evovoice.io', types: { 'SortOrders': TypeInfo(TypeOf.Enum, enumValues:SortOrders.values), 'ListRequest': TypeInfo(TypeOf.GenericDef,create:() => ListRequest()), 'Struct': TypeInfo(TypeOf.Class, create:() => Struct()), 'Value': TypeInfo(TypeOf.Class, create:() => Value()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'UserDataFieldModes': TypeInfo(TypeOf.Enum, enumValues:UserDataFieldModes.values), 'ValueTypes': TypeInfo(TypeOf.Enum, enumValues:ValueTypes.values), 'IntegrationTypes': TypeInfo(TypeOf.Enum, enumValues:IntegrationTypes.values), 'EntityInfo': TypeInfo(TypeOf.AbstractClass), 'ListResponse': TypeInfo(TypeOf.GenericDef,create:() => ListResponse()), 'CustomerBreadcrumb': TypeInfo(TypeOf.Class, create:() => CustomerBreadcrumb()), 'IntegrationStatuses': TypeInfo(TypeOf.Enum, enumValues:IntegrationStatuses.values), 'UIHints': TypeInfo(TypeOf.Enum, enumValues:UIHints.values), 'DataType': TypeInfo(TypeOf.Class, create:() => DataType()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'DataField': TypeInfo(TypeOf.Class, create:() => DataField()), 'DataFieldUniqueness': TypeInfo(TypeOf.Enum, enumValues:DataFieldUniqueness.values), 'IntegrationFeatures': TypeInfo(TypeOf.Enum, enumValues:IntegrationFeatures.values), 'IntegrationInfo': TypeInfo(TypeOf.Class, create:() => IntegrationInfo()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'ListResponse': TypeInfo(TypeOf.Class, create:() => ListResponse()), 'ListIntegrations': TypeInfo(TypeOf.Class, create:() => ListIntegrations()), });