| POST,OPTIONS | /v1/dashboard/finance |
|---|
import java.math.*;
import java.util.*;
import java.io.InputStream;
import net.servicestack.client.*;
public class dtos
{
public static class FinanceRequest
{
public Date FromDate = null;
public Date ToDate = null;
public ArrayList<UUID> LocationIds = new ArrayList<UUID>();
public Date getFromDate() { return FromDate; }
public FinanceRequest setFromDate(Date value) { this.FromDate = value; return this; }
public Date getToDate() { return ToDate; }
public FinanceRequest setToDate(Date value) { this.ToDate = value; return this; }
public ArrayList<UUID> getLocationIds() { return LocationIds; }
public FinanceRequest setLocationIds(ArrayList<UUID> value) { this.LocationIds = value; return this; }
}
public static class FinanceResponse
{
public ResponseStatus ResponseStatus = null;
public ArrayList<DashboardStatTile> Stats = new ArrayList<DashboardStatTile>();
public ArrayList<DashboardSeries> Trend = new ArrayList<DashboardSeries>();
public DashboardSeries SourceMix = null;
public ArrayList<FinanceLocationRow> ByLocation = new ArrayList<FinanceLocationRow>();
public ArrayList<FinanceTopRow> TopServices = new ArrayList<FinanceTopRow>();
public ArrayList<FinanceTopRow> TopProducts = new ArrayList<FinanceTopRow>();
public FinanceSubscriptionInfo Subscriptions = null;
public ResponseStatus getResponseStatus() { return ResponseStatus; }
public FinanceResponse setResponseStatus(ResponseStatus value) { this.ResponseStatus = value; return this; }
public ArrayList<DashboardStatTile> getStats() { return Stats; }
public FinanceResponse setStats(ArrayList<DashboardStatTile> value) { this.Stats = value; return this; }
public ArrayList<DashboardSeries> getTrend() { return Trend; }
public FinanceResponse setTrend(ArrayList<DashboardSeries> value) { this.Trend = value; return this; }
public DashboardSeries getSourceMix() { return SourceMix; }
public FinanceResponse setSourceMix(DashboardSeries value) { this.SourceMix = value; return this; }
public ArrayList<FinanceLocationRow> getByLocation() { return ByLocation; }
public FinanceResponse setByLocation(ArrayList<FinanceLocationRow> value) { this.ByLocation = value; return this; }
public ArrayList<FinanceTopRow> getTopServices() { return TopServices; }
public FinanceResponse setTopServices(ArrayList<FinanceTopRow> value) { this.TopServices = value; return this; }
public ArrayList<FinanceTopRow> getTopProducts() { return TopProducts; }
public FinanceResponse setTopProducts(ArrayList<FinanceTopRow> value) { this.TopProducts = value; return this; }
public FinanceSubscriptionInfo getSubscriptions() { return Subscriptions; }
public FinanceResponse setSubscriptions(FinanceSubscriptionInfo value) { this.Subscriptions = value; return this; }
}
public static class DashboardStatTile
{
public String Key = null;
public String Label = null;
public Double Value = null;
public Double PreviousValue = null;
public String Unit = null;
public Double DeltaPct = null;
public String getKey() { return Key; }
public DashboardStatTile setKey(String value) { this.Key = value; return this; }
public String getLabel() { return Label; }
public DashboardStatTile setLabel(String value) { this.Label = value; return this; }
public Double getValue() { return Value; }
public DashboardStatTile setValue(Double value) { this.Value = value; return this; }
public Double getPreviousValue() { return PreviousValue; }
public DashboardStatTile setPreviousValue(Double value) { this.PreviousValue = value; return this; }
public String getUnit() { return Unit; }
public DashboardStatTile setUnit(String value) { this.Unit = value; return this; }
public Double getDeltaPct() { return DeltaPct; }
public DashboardStatTile setDeltaPct(Double value) { this.DeltaPct = value; return this; }
}
public static class DashboardSeries
{
public String Name = null;
public ArrayList<DashboardSeriesPoint> Points = new ArrayList<DashboardSeriesPoint>();
public String getName() { return Name; }
public DashboardSeries setName(String value) { this.Name = value; return this; }
public ArrayList<DashboardSeriesPoint> getPoints() { return Points; }
public DashboardSeries setPoints(ArrayList<DashboardSeriesPoint> value) { this.Points = value; return this; }
}
public static class DashboardSeriesPoint
{
public String Label = null;
public Double Value = null;
public String getLabel() { return Label; }
public DashboardSeriesPoint setLabel(String value) { this.Label = value; return this; }
public Double getValue() { return Value; }
public DashboardSeriesPoint setValue(Double value) { this.Value = value; return this; }
}
public static class FinanceLocationRow
{
public String LocationName = null;
public Double ServiceRev = null;
public Double ProductRev = null;
public Double SubscriptionRev = null;
public Double Total = null;
public String getLocationName() { return LocationName; }
public FinanceLocationRow setLocationName(String value) { this.LocationName = value; return this; }
public Double getServiceRev() { return ServiceRev; }
public FinanceLocationRow setServiceRev(Double value) { this.ServiceRev = value; return this; }
public Double getProductRev() { return ProductRev; }
public FinanceLocationRow setProductRev(Double value) { this.ProductRev = value; return this; }
public Double getSubscriptionRev() { return SubscriptionRev; }
public FinanceLocationRow setSubscriptionRev(Double value) { this.SubscriptionRev = value; return this; }
public Double getTotal() { return Total; }
public FinanceLocationRow setTotal(Double value) { this.Total = value; return this; }
}
public static class FinanceTopRow
{
public String Name = null;
public Double Revenue = null;
public String getName() { return Name; }
public FinanceTopRow setName(String value) { this.Name = value; return this; }
public Double getRevenue() { return Revenue; }
public FinanceTopRow setRevenue(Double value) { this.Revenue = value; return this; }
}
public static class FinanceSubscriptionInfo
{
public Double Mrr = null;
public Double Arr = null;
public Integer ActiveCount = null;
public Integer NewCount = null;
public Integer ChurnedCount = null;
public Double ChurnRatePct = null;
public Double getMrr() { return Mrr; }
public FinanceSubscriptionInfo setMrr(Double value) { this.Mrr = value; return this; }
public Double getArr() { return Arr; }
public FinanceSubscriptionInfo setArr(Double value) { this.Arr = value; return this; }
public Integer getActiveCount() { return ActiveCount; }
public FinanceSubscriptionInfo setActiveCount(Integer value) { this.ActiveCount = value; return this; }
public Integer getNewCount() { return NewCount; }
public FinanceSubscriptionInfo setNewCount(Integer value) { this.NewCount = value; return this; }
public Integer getChurnedCount() { return ChurnedCount; }
public FinanceSubscriptionInfo setChurnedCount(Integer value) { this.ChurnedCount = value; return this; }
public Double getChurnRatePct() { return ChurnRatePct; }
public FinanceSubscriptionInfo setChurnRatePct(Double value) { this.ChurnRatePct = 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 /v1/dashboard/finance HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
FromDate: 0001-01-01,
ToDate: 0001-01-01,
LocationIds:
[
00000000000000000000000000000000
]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
ResponseStatus:
{
ErrorCode: String,
Message: String,
StackTrace: String,
Errors:
[
{
ErrorCode: String,
FieldName: String,
Message: String,
Meta:
{
String: String
}
}
],
Meta:
{
String: String
}
},
Stats:
[
{
Key: String,
Label: String,
Value: 0,
PreviousValue: 0,
Unit: String
}
],
Trend:
[
{
Name: String,
Points:
[
{
Label: String,
Value: 0
}
]
}
],
SourceMix:
{
Name: String,
Points:
[
{
Label: String,
Value: 0
}
]
},
ByLocation:
[
{
LocationName: String,
ServiceRev: 0,
ProductRev: 0,
SubscriptionRev: 0,
Total: 0
}
],
TopServices:
[
{
Name: String,
Revenue: 0
}
],
TopProducts:
[
{
Name: String,
Revenue: 0
}
],
Subscriptions:
{
Mrr: 0,
Arr: 0,
ActiveCount: 0,
NewCount: 0,
ChurnedCount: 0,
ChurnRatePct: 0
}
}