import java.math.*;
import java.util.*;
import java.io.InputStream;
import net.servicestack.client.*;
import com.google.gson.annotations.*;
import com.google.gson.reflect.*;
public class dtos
{
@DataContract
public static class GetAnalyticsReports implements IGet
{
@DataMember(Order=1)
public Date month = null;
@DataMember(Order=2)
public String filter = null;
@DataMember(Order=3)
public String value = null;
@DataMember(Order=4)
public Boolean force = null;
public Date getMonth() { return month; }
public GetAnalyticsReports setMonth(Date value) { this.month = value; return this; }
public String getFilter() { return filter; }
public GetAnalyticsReports setFilter(String value) { this.filter = value; return this; }
public String getValue() { return value; }
public GetAnalyticsReports setValue(String value) { this.value = value; return this; }
public Boolean isForce() { return force; }
public GetAnalyticsReports setForce(Boolean value) { this.force = value; return this; }
}
@DataContract
public static class GetAnalyticsReportsResponse
{
@DataMember(Order=1)
public AnalyticsReports result = null;
@DataMember(Order=2)
public ResponseStatus responseStatus = null;
public AnalyticsReports getResult() { return result; }
public GetAnalyticsReportsResponse setResult(AnalyticsReports value) { this.result = value; return this; }
public ResponseStatus getResponseStatus() { return responseStatus; }
public GetAnalyticsReportsResponse setResponseStatus(ResponseStatus value) { this.responseStatus = value; return this; }
}
@DataContract
public static class AnalyticsReports
{
@DataMember(Order=1)
public Long id = null;
@DataMember(Order=2)
public Date created = null;
@DataMember(Order=3)
public BigDecimal version = null;
@DataMember(Order=4)
public HashMap<String,RequestSummary> apis = null;
@DataMember(Order=5)
public HashMap<String,RequestSummary> users = null;
@DataMember(Order=6)
public HashMap<String,RequestSummary> tags = null;
@DataMember(Order=7)
public HashMap<String,RequestSummary> status = null;
@DataMember(Order=8)
public HashMap<String,RequestSummary> days = null;
@DataMember(Order=9)
public HashMap<String,RequestSummary> apiKeys = null;
@DataMember(Order=10)
public HashMap<String,RequestSummary> ips = null;
@DataMember(Order=11)
public HashMap<String,RequestSummary> browsers = null;
@DataMember(Order=12)
public HashMap<String,RequestSummary> devices = null;
@DataMember(Order=13)
public HashMap<String,RequestSummary> bots = null;
@DataMember(Order=14)
public HashMap<String,Long> durations = null;
public Long getId() { return id; }
public AnalyticsReports setId(Long value) { this.id = value; return this; }
public Date getCreated() { return created; }
public AnalyticsReports setCreated(Date value) { this.created = value; return this; }
public BigDecimal getVersion() { return version; }
public AnalyticsReports setVersion(BigDecimal value) { this.version = value; return this; }
public HashMap<String,RequestSummary> getApis() { return apis; }
public AnalyticsReports setApis(HashMap<String,RequestSummary> value) { this.apis = value; return this; }
public HashMap<String,RequestSummary> getUsers() { return users; }
public AnalyticsReports setUsers(HashMap<String,RequestSummary> value) { this.users = value; return this; }
public HashMap<String,RequestSummary> getTags() { return tags; }
public AnalyticsReports setTags(HashMap<String,RequestSummary> value) { this.tags = value; return this; }
public HashMap<String,RequestSummary> getStatus() { return status; }
public AnalyticsReports setStatus(HashMap<String,RequestSummary> value) { this.status = value; return this; }
public HashMap<String,RequestSummary> getDays() { return days; }
public AnalyticsReports setDays(HashMap<String,RequestSummary> value) { this.days = value; return this; }
public HashMap<String,RequestSummary> getApiKeys() { return apiKeys; }
public AnalyticsReports setApiKeys(HashMap<String,RequestSummary> value) { this.apiKeys = value; return this; }
public HashMap<String,RequestSummary> getIps() { return ips; }
public AnalyticsReports setIps(HashMap<String,RequestSummary> value) { this.ips = value; return this; }
public HashMap<String,RequestSummary> getBrowsers() { return browsers; }
public AnalyticsReports setBrowsers(HashMap<String,RequestSummary> value) { this.browsers = value; return this; }
public HashMap<String,RequestSummary> getDevices() { return devices; }
public AnalyticsReports setDevices(HashMap<String,RequestSummary> value) { this.devices = value; return this; }
public HashMap<String,RequestSummary> getBots() { return bots; }
public AnalyticsReports setBots(HashMap<String,RequestSummary> value) { this.bots = value; return this; }
public HashMap<String,Long> getDurations() { return durations; }
public AnalyticsReports setDurations(HashMap<String,Long> value) { this.durations = value; return this; }
}
@DataContract
public static class RequestSummary
{
@DataMember(Order=1)
public String name = null;
@DataMember(Order=2)
public Long totalRequests = null;
@DataMember(Order=3)
public Long totalRequestLength = null;
@DataMember(Order=4)
public Long minRequestLength = null;
@DataMember(Order=5)
public Long maxRequestLength = null;
@DataMember(Order=6)
public Double totalDuration = null;
@DataMember(Order=7)
public Double minDuration = null;
@DataMember(Order=8)
public Double maxDuration = null;
@DataMember(Order=9)
public HashMap<Integer,Long> status = null;
@DataMember(Order=10)
public HashMap<String,Long> durations = null;
@DataMember(Order=11)
public HashMap<String,Long> apis = null;
@DataMember(Order=12)
public HashMap<String,Long> users = null;
@DataMember(Order=13)
public HashMap<String,Long> ips = null;
@DataMember(Order=14)
public HashMap<String,Long> apiKeys = null;
public String getName() { return name; }
public RequestSummary setName(String value) { this.name = value; return this; }
public Long getTotalRequests() { return totalRequests; }
public RequestSummary setTotalRequests(Long value) { this.totalRequests = value; return this; }
public Long getTotalRequestLength() { return totalRequestLength; }
public RequestSummary setTotalRequestLength(Long value) { this.totalRequestLength = value; return this; }
public Long getMinRequestLength() { return minRequestLength; }
public RequestSummary setMinRequestLength(Long value) { this.minRequestLength = value; return this; }
public Long getMaxRequestLength() { return maxRequestLength; }
public RequestSummary setMaxRequestLength(Long value) { this.maxRequestLength = value; return this; }
public Double getTotalDuration() { return totalDuration; }
public RequestSummary setTotalDuration(Double value) { this.totalDuration = value; return this; }
public Double getMinDuration() { return minDuration; }
public RequestSummary setMinDuration(Double value) { this.minDuration = value; return this; }
public Double getMaxDuration() { return maxDuration; }
public RequestSummary setMaxDuration(Double value) { this.maxDuration = value; return this; }
public HashMap<Integer,Long> getStatus() { return status; }
public RequestSummary setStatus(HashMap<Integer,Long> value) { this.status = value; return this; }
public HashMap<String,Long> getDurations() { return durations; }
public RequestSummary setDurations(HashMap<String,Long> value) { this.durations = value; return this; }
public HashMap<String,Long> getApis() { return apis; }
public RequestSummary setApis(HashMap<String,Long> value) { this.apis = value; return this; }
public HashMap<String,Long> getUsers() { return users; }
public RequestSummary setUsers(HashMap<String,Long> value) { this.users = value; return this; }
public HashMap<String,Long> getIps() { return ips; }
public RequestSummary setIps(HashMap<String,Long> value) { this.ips = value; return this; }
public HashMap<String,Long> getApiKeys() { return apiKeys; }
public RequestSummary setApiKeys(HashMap<String,Long> value) { this.apiKeys = value; return this; }
}
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /jsv/reply/GetAnalyticsReports HTTP/1.1
Host: test.servicestack.net
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
month: 0001-01-01,
filter: String,
value: String,
force: False
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
result:
{
id: 0,
created: 0001-01-01,
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
}
}
}