Requires any of the roles: | SystemAdministrator, Manager, Customer |
GET | /reports/endpoints |
---|
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';
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<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
accountId = json['accountId'];
emailAddressToNotify = json['emailAddressToNotify'];
webhookUrl = json['webhookUrl'];
return this;
}
Map<String, dynamic> 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<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> 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<String, dynamic> 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;
}
enum EndpointTypes
{
PhoneNumber,
User,
FaxNumber,
EmailAddress,
Unused_1,
Unused_2,
Unused_3,
Unused_4,
Unused_5,
Team,
Assistant,
}
/**
* This report returns all of the endpoints broken down by type per tab
*/
// @Api(Description="This report returns all of the endpoints broken down by type per tab")
class EndpointsReport extends ReportRequest implements IConvertible
{
/**
* The types of endpoints to return
*/
// @ApiMember(Description="The types of endpoints to return")
List<EndpointTypes>? types;
/**
* Filter by specific customer
*/
// @ApiMember(Description="Filter by specific customer")
String? customerId;
EndpointsReport({this.types,this.customerId});
EndpointsReport.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
types = JsonConverters.fromJson(json['types'],'List<EndpointTypes>',context!);
customerId = json['customerId'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'types': JsonConverters.toJson(types,'List<EndpointTypes>',context!),
'customerId': customerId
});
getTypeName() => "EndpointsReport";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'team.evovoice.io', types: <String, TypeInfo> {
'ReportRequest': TypeInfo(TypeOf.AbstractClass),
'ReportStatuses': TypeInfo(TypeOf.Enum, enumValues:ReportStatuses.values),
'ReportInfo': TypeInfo(TypeOf.Class, create:() => ReportInfo()),
'EndpointTypes': TypeInfo(TypeOf.Enum, enumValues:EndpointTypes.values),
'EndpointsReport': TypeInfo(TypeOf.Class, create:() => EndpointsReport()),
'List<EndpointTypes>': TypeInfo(TypeOf.Class, create:() => <EndpointTypes>[]),
});
To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json
To embed the response in a jsonp callback, append ?callback=myCallback
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /reports/endpoints HTTP/1.1 Host: team.evovoice.io Accept: application/json
HTTP/1.1 200 OK Content-Type: application/json Content-Length: length {"id":"String","name":"String","status":"Queued","statusMessage":"String","dateCreated":"String","dateUpdated":"String","downloadLink":"String","jobId":"String","emailAddressToNotify":"String","server":"String"}