/* Options: Date: 2025-05-04 23:04:28 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: EndpointsReport.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart,dart:typed_data */ import 'package:servicestack/servicestack.dart'; import 'dart:typed_data'; enum EndpointTypes { PhoneNumber, User, FaxNumber, EmailAddress, Unused_1, Unused_2, Unused_3, Unused_4, Unused_5, Team, Assistant, } abstract class ReportRequest implements IPost { /** * The account ID this report should be run for */ // @ApiMember(Description="The account ID this report should be run for") String? accountId; /** * The email address to notify after the report is run */ // @ApiMember(Description="The email address to notify after the report is run") String? emailAddressToNotify; /** * The webhook to call after the report is complete with the data from the report */ // @ApiMember(Description="The webhook to call after the report is complete with the data from the report") String? webhookUrl; ReportRequest({this.accountId,this.emailAddressToNotify,this.webhookUrl}); ReportRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { accountId = json['accountId']; emailAddressToNotify = json['emailAddressToNotify']; webhookUrl = json['webhookUrl']; return this; } Map toJson() => { 'accountId': accountId, 'emailAddressToNotify': emailAddressToNotify, 'webhookUrl': webhookUrl }; getTypeName() => "ReportRequest"; TypeContext? context = _ctx; } enum ReportStatuses { Queued, Running, Completed, Error, } class ReportInfo implements IConvertible { String? id; String? name; ReportStatuses? status; String? statusMessage; String? dateCreated; String? dateUpdated; String? downloadLink; String? jobId; String? emailAddressToNotify; String? server; ReportInfo({this.id,this.name,this.status,this.statusMessage,this.dateCreated,this.dateUpdated,this.downloadLink,this.jobId,this.emailAddressToNotify,this.server}); ReportInfo.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; name = json['name']; status = JsonConverters.fromJson(json['status'],'ReportStatuses',context!); statusMessage = json['statusMessage']; dateCreated = json['dateCreated']; dateUpdated = json['dateUpdated']; downloadLink = json['downloadLink']; jobId = json['jobId']; emailAddressToNotify = json['emailAddressToNotify']; server = json['server']; return this; } Map toJson() => { 'id': id, 'name': name, 'status': JsonConverters.toJson(status,'ReportStatuses',context!), 'statusMessage': statusMessage, 'dateCreated': dateCreated, 'dateUpdated': dateUpdated, 'downloadLink': downloadLink, 'jobId': jobId, 'emailAddressToNotify': emailAddressToNotify, 'server': server }; getTypeName() => "ReportInfo"; TypeContext? context = _ctx; } /** * This report returns all of the endpoints broken down by type per tab */ // @Route("/reports/endpoints", "GET") // @Api(Description="This report returns all of the endpoints broken down by type per tab") class EndpointsReport extends ReportRequest implements IReturn, IConvertible, IPost { /** * The types of endpoints to return */ // @ApiMember(Description="The types of endpoints to return") List? types; /** * Filter by specific customer */ // @ApiMember(Description="Filter by specific customer") String? customerId; EndpointsReport({this.types,this.customerId}); EndpointsReport.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); types = JsonConverters.fromJson(json['types'],'List',context!); customerId = json['customerId']; return this; } Map toJson() => super.toJson()..addAll({ 'types': JsonConverters.toJson(types,'List',context!), 'customerId': customerId }); createResponse() => ReportInfo(); getResponseTypeName() => "ReportInfo"; getTypeName() => "EndpointsReport"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'team.evovoice.io', types: { 'EndpointTypes': TypeInfo(TypeOf.Enum, enumValues:EndpointTypes.values), 'ReportRequest': TypeInfo(TypeOf.AbstractClass), 'ReportStatuses': TypeInfo(TypeOf.Enum, enumValues:ReportStatuses.values), 'ReportInfo': TypeInfo(TypeOf.Class, create:() => ReportInfo()), 'EndpointsReport': TypeInfo(TypeOf.Class, create:() => EndpointsReport()), 'List': TypeInfo(TypeOf.Class, create:() => []), });