import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';
// @DataContract
class RequestSummary implements IConvertible
{
// @DataMember(Order=1)
String? Name;
// @DataMember(Order=2)
int? TotalRequests;
// @DataMember(Order=3)
int? TotalRequestLength;
// @DataMember(Order=4)
int? MinRequestLength;
// @DataMember(Order=5)
int? MaxRequestLength;
// @DataMember(Order=6)
double? TotalDuration;
// @DataMember(Order=7)
double? MinDuration;
// @DataMember(Order=8)
double? MaxDuration;
// @DataMember(Order=9)
Map<int,int?>? Status;
// @DataMember(Order=10)
Map<String,int?>? Durations;
// @DataMember(Order=11)
Map<String,int?>? Apis;
// @DataMember(Order=12)
Map<String,int?>? Users;
// @DataMember(Order=13)
Map<String,int?>? Ips;
// @DataMember(Order=14)
Map<String,int?>? ApiKeys;
RequestSummary({this.Name,this.TotalRequests,this.TotalRequestLength,this.MinRequestLength,this.MaxRequestLength,this.TotalDuration,this.MinDuration,this.MaxDuration,this.Status,this.Durations,this.Apis,this.Users,this.Ips,this.ApiKeys});
RequestSummary.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Name = json['Name'];
TotalRequests = json['TotalRequests'];
TotalRequestLength = json['TotalRequestLength'];
MinRequestLength = json['MinRequestLength'];
MaxRequestLength = json['MaxRequestLength'];
TotalDuration = JsonConverters.toDouble(json['TotalDuration']);
MinDuration = JsonConverters.toDouble(json['MinDuration']);
MaxDuration = JsonConverters.toDouble(json['MaxDuration']);
Status = JsonConverters.fromJson(json['Status'],'Map<int,int?>',context!);
Durations = JsonConverters.fromJson(json['Durations'],'Map<String,int?>',context!);
Apis = JsonConverters.fromJson(json['Apis'],'Map<String,int?>',context!);
Users = JsonConverters.fromJson(json['Users'],'Map<String,int?>',context!);
Ips = JsonConverters.fromJson(json['Ips'],'Map<String,int?>',context!);
ApiKeys = JsonConverters.fromJson(json['ApiKeys'],'Map<String,int?>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Name': Name,
'TotalRequests': TotalRequests,
'TotalRequestLength': TotalRequestLength,
'MinRequestLength': MinRequestLength,
'MaxRequestLength': MaxRequestLength,
'TotalDuration': TotalDuration,
'MinDuration': MinDuration,
'MaxDuration': MaxDuration,
'Status': JsonConverters.toJson(Status,'Map<int,int?>',context!),
'Durations': JsonConverters.toJson(Durations,'Map<String,int?>',context!),
'Apis': JsonConverters.toJson(Apis,'Map<String,int?>',context!),
'Users': JsonConverters.toJson(Users,'Map<String,int?>',context!),
'Ips': JsonConverters.toJson(Ips,'Map<String,int?>',context!),
'ApiKeys': JsonConverters.toJson(ApiKeys,'Map<String,int?>',context!)
};
getTypeName() => "RequestSummary";
TypeContext? context = _ctx;
}
// @DataContract
class AnalyticsReports implements IConvertible
{
// @DataMember(Order=1)
int? Id;
// @DataMember(Order=2)
DateTime? Created;
// @DataMember(Order=3)
double? Version;
// @DataMember(Order=4)
Map<String,RequestSummary?>? Apis;
// @DataMember(Order=5)
Map<String,RequestSummary?>? Users;
// @DataMember(Order=6)
Map<String,RequestSummary?>? Tags;
// @DataMember(Order=7)
Map<String,RequestSummary?>? Status;
// @DataMember(Order=8)
Map<String,RequestSummary?>? Days;
// @DataMember(Order=9)
Map<String,RequestSummary?>? ApiKeys;
// @DataMember(Order=10)
Map<String,RequestSummary?>? Ips;
// @DataMember(Order=11)
Map<String,RequestSummary?>? Browsers;
// @DataMember(Order=12)
Map<String,RequestSummary?>? Devices;
// @DataMember(Order=13)
Map<String,RequestSummary?>? Bots;
// @DataMember(Order=14)
Map<String,int?>? Durations;
AnalyticsReports({this.Id,this.Created,this.Version,this.Apis,this.Users,this.Tags,this.Status,this.Days,this.ApiKeys,this.Ips,this.Browsers,this.Devices,this.Bots,this.Durations});
AnalyticsReports.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Id = json['Id'];
Created = JsonConverters.fromJson(json['Created'],'DateTime',context!);
Version = JsonConverters.toDouble(json['Version']);
Apis = JsonConverters.fromJson(json['Apis'],'Map<String,RequestSummary?>',context!);
Users = JsonConverters.fromJson(json['Users'],'Map<String,RequestSummary?>',context!);
Tags = JsonConverters.fromJson(json['Tags'],'Map<String,RequestSummary?>',context!);
Status = JsonConverters.fromJson(json['Status'],'Map<String,RequestSummary?>',context!);
Days = JsonConverters.fromJson(json['Days'],'Map<String,RequestSummary?>',context!);
ApiKeys = JsonConverters.fromJson(json['ApiKeys'],'Map<String,RequestSummary?>',context!);
Ips = JsonConverters.fromJson(json['Ips'],'Map<String,RequestSummary?>',context!);
Browsers = JsonConverters.fromJson(json['Browsers'],'Map<String,RequestSummary?>',context!);
Devices = JsonConverters.fromJson(json['Devices'],'Map<String,RequestSummary?>',context!);
Bots = JsonConverters.fromJson(json['Bots'],'Map<String,RequestSummary?>',context!);
Durations = JsonConverters.fromJson(json['Durations'],'Map<String,int?>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Id': Id,
'Created': JsonConverters.toJson(Created,'DateTime',context!),
'Version': Version,
'Apis': JsonConverters.toJson(Apis,'Map<String,RequestSummary?>',context!),
'Users': JsonConverters.toJson(Users,'Map<String,RequestSummary?>',context!),
'Tags': JsonConverters.toJson(Tags,'Map<String,RequestSummary?>',context!),
'Status': JsonConverters.toJson(Status,'Map<String,RequestSummary?>',context!),
'Days': JsonConverters.toJson(Days,'Map<String,RequestSummary?>',context!),
'ApiKeys': JsonConverters.toJson(ApiKeys,'Map<String,RequestSummary?>',context!),
'Ips': JsonConverters.toJson(Ips,'Map<String,RequestSummary?>',context!),
'Browsers': JsonConverters.toJson(Browsers,'Map<String,RequestSummary?>',context!),
'Devices': JsonConverters.toJson(Devices,'Map<String,RequestSummary?>',context!),
'Bots': JsonConverters.toJson(Bots,'Map<String,RequestSummary?>',context!),
'Durations': JsonConverters.toJson(Durations,'Map<String,int?>',context!)
};
getTypeName() => "AnalyticsReports";
TypeContext? context = _ctx;
}
// @DataContract
class GetAnalyticsReportsResponse implements IConvertible
{
// @DataMember(Order=1)
AnalyticsReports? Result;
// @DataMember(Order=2)
ResponseStatus? ResponseStatus;
GetAnalyticsReportsResponse({this.Result,this.ResponseStatus});
GetAnalyticsReportsResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Result = JsonConverters.fromJson(json['Result'],'AnalyticsReports',context!);
ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Result': JsonConverters.toJson(Result,'AnalyticsReports',context!),
'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!)
};
getTypeName() => "GetAnalyticsReportsResponse";
TypeContext? context = _ctx;
}
// @DataContract
class GetAnalyticsReports implements IGet, IConvertible
{
// @DataMember(Order=1)
DateTime? Month;
// @DataMember(Order=2)
String? Filter;
// @DataMember(Order=3)
String? Value;
// @DataMember(Order=4)
bool? Force;
GetAnalyticsReports({this.Month,this.Filter,this.Value,this.Force});
GetAnalyticsReports.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Month = JsonConverters.fromJson(json['Month'],'DateTime',context!);
Filter = json['Filter'];
Value = json['Value'];
Force = json['Force'];
return this;
}
Map<String, dynamic> toJson() => {
'Month': JsonConverters.toJson(Month,'DateTime',context!),
'Filter': Filter,
'Value': Value,
'Force': Force
};
getTypeName() => "GetAnalyticsReports";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'test_do_services.klokgroep.nl', types: <String, TypeInfo> {
'RequestSummary': TypeInfo(TypeOf.Class, create:() => RequestSummary()),
'Map<int,int?>': TypeInfo(TypeOf.Class, create:() => Map<int,int?>()),
'Map<String,int?>': TypeInfo(TypeOf.Class, create:() => Map<String,int?>()),
'AnalyticsReports': TypeInfo(TypeOf.Class, create:() => AnalyticsReports()),
'Map<String,RequestSummary?>': TypeInfo(TypeOf.Class, create:() => Map<String,RequestSummary?>()),
'GetAnalyticsReportsResponse': TypeInfo(TypeOf.Class, create:() => GetAnalyticsReportsResponse()),
'GetAnalyticsReports': TypeInfo(TypeOf.Class, create:() => GetAnalyticsReports()),
});
To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /jsonl/reply/GetAnalyticsReports HTTP/1.1
Host: test-do-services.klokgroep.nl
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length
{"Month":"0001-01-01T00:00:00.0000000","Filter":"String","Value":"String","Force":false}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length
{"Result":{"Id":0,"Created":"0001-01-01T00:00:00.0000000","Version":0,"Apis":{"String":{"Name":"String","TotalRequests":0,"TotalRequestLength":0,"MinRequestLength":0,"MaxRequestLength":0,"TotalDuration":0,"MinDuration":0,"MaxDuration":0,"Status":{"0":0},"Durations":{"String":0},"Apis":{"String":0},"Users":{"String":0},"Ips":{"String":0},"ApiKeys":{"String":0}}},"Users":{"String":{"Name":"String","TotalRequests":0,"TotalRequestLength":0,"MinRequestLength":0,"MaxRequestLength":0,"TotalDuration":0,"MinDuration":0,"MaxDuration":0,"Status":{"0":0},"Durations":{"String":0},"Apis":{"String":0},"Users":{"String":0},"Ips":{"String":0},"ApiKeys":{"String":0}}},"Tags":{"String":{"Name":"String","TotalRequests":0,"TotalRequestLength":0,"MinRequestLength":0,"MaxRequestLength":0,"TotalDuration":0,"MinDuration":0,"MaxDuration":0,"Status":{"0":0},"Durations":{"String":0},"Apis":{"String":0},"Users":{"String":0},"Ips":{"String":0},"ApiKeys":{"String":0}}},"Status":{"String":{"Name":"String","TotalRequests":0,"TotalRequestLength":0,"MinRequestLength":0,"MaxRequestLength":0,"TotalDuration":0,"MinDuration":0,"MaxDuration":0,"Status":{"0":0},"Durations":{"String":0},"Apis":{"String":0},"Users":{"String":0},"Ips":{"String":0},"ApiKeys":{"String":0}}},"Days":{"String":{"Name":"String","TotalRequests":0,"TotalRequestLength":0,"MinRequestLength":0,"MaxRequestLength":0,"TotalDuration":0,"MinDuration":0,"MaxDuration":0,"Status":{"0":0},"Durations":{"String":0},"Apis":{"String":0},"Users":{"String":0},"Ips":{"String":0},"ApiKeys":{"String":0}}},"ApiKeys":{"String":{"Name":"String","TotalRequests":0,"TotalRequestLength":0,"MinRequestLength":0,"MaxRequestLength":0,"TotalDuration":0,"MinDuration":0,"MaxDuration":0,"Status":{"0":0},"Durations":{"String":0},"Apis":{"String":0},"Users":{"String":0},"Ips":{"String":0},"ApiKeys":{"String":0}}},"Ips":{"String":{"Name":"String","TotalRequests":0,"TotalRequestLength":0,"MinRequestLength":0,"MaxRequestLength":0,"TotalDuration":0,"MinDuration":0,"MaxDuration":0,"Status":{"0":0},"Durations":{"String":0},"Apis":{"String":0},"Users":{"String":0},"Ips":{"String":0},"ApiKeys":{"String":0}}},"Browsers":{"String":{"Name":"String","TotalRequests":0,"TotalRequestLength":0,"MinRequestLength":0,"MaxRequestLength":0,"TotalDuration":0,"MinDuration":0,"MaxDuration":0,"Status":{"0":0},"Durations":{"String":0},"Apis":{"String":0},"Users":{"String":0},"Ips":{"String":0},"ApiKeys":{"String":0}}},"Devices":{"String":{"Name":"String","TotalRequests":0,"TotalRequestLength":0,"MinRequestLength":0,"MaxRequestLength":0,"TotalDuration":0,"MinDuration":0,"MaxDuration":0,"Status":{"0":0},"Durations":{"String":0},"Apis":{"String":0},"Users":{"String":0},"Ips":{"String":0},"ApiKeys":{"String":0}}},"Bots":{"String":{"Name":"String","TotalRequests":0,"TotalRequestLength":0,"MinRequestLength":0,"MaxRequestLength":0,"TotalDuration":0,"MinDuration":0,"MaxDuration":0,"Status":{"0":0},"Durations":{"String":0},"Apis":{"String":0},"Users":{"String":0},"Ips":{"String":0},"ApiKeys":{"String":0}}},"Durations":{"String":0}},"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}