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
{
public static class ListLogEntries extends ListRequest<LogEntryInfo>
{
/**
* The IDs of the account whose log entries you want to retrieve
*/
@ApiMember(Description="The IDs of the account whose log entries you want to retrieve")
public ArrayList<String> accountIds = null;
/**
* The IDs of the customers whose log entries you want to retrieve
*/
@ApiMember(Description="The IDs of the customers whose log entries you want to retrieve")
public ArrayList<String> customerIds = null;
/**
* The start date to retrieve usage records for (YYYY-MM-DD)
*/
@ApiMember(Description="The start date to retrieve usage records for (YYYY-MM-DD)")
public String startDate = null;
/**
* The end date to retrieve logs for (YYYY-MM-DD)
*/
@ApiMember(Description="The end date to retrieve logs for (YYYY-MM-DD)")
public String endDate = null;
/**
* Search by description
*/
@ApiMember(Description="Search by description")
public String description = null;
public ArrayList<String> getAccountIds() { return accountIds; }
public ListLogEntries setAccountIds(ArrayList<String> value) { this.accountIds = value; return this; }
public ArrayList<String> getCustomerIds() { return customerIds; }
public ListLogEntries setCustomerIds(ArrayList<String> value) { this.customerIds = value; return this; }
public String getStartDate() { return startDate; }
public ListLogEntries setStartDate(String value) { this.startDate = value; return this; }
public String getEndDate() { return endDate; }
public ListLogEntries setEndDate(String value) { this.endDate = value; return this; }
public String getDescription() { return description; }
public ListLogEntries setDescription(String value) { this.description = value; return this; }
}
public static class ListRequest<T> implements IGet
{
/**
* The page of data to retrieve
*/
@ApiMember(Description="The page of data to retrieve")
public Integer page = null;
/**
* If you want all objects to be returned. This should be used with care
*/
@ApiMember(Description="If you want all objects to be returned. This should be used with care")
public Boolean all = null;
/**
* The number per page to retrieve
*/
@ApiMember(Description="The number per page to retrieve")
public Integer countPerPage = null;
/**
* Specific IDs
*/
@ApiMember(Description="Specific IDs")
public ArrayList<String> specificIds = null;
/**
* Specify a sort field
*/
@ApiMember(Description="Specify a sort field")
public String sortField = null;
/**
* Specify a sort order
*/
@ApiMember(Description="Specify a sort order")
public SortOrders sortOrder = null;
/**
* Disables total / page counts - improves performance. Returns only data. If there is no more data, Items will be empty array
*/
@ApiMember(Description="Disables total / page counts - improves performance. Returns only data. If there is no more data, Items will be empty array")
public Boolean simplifiedPaging = null;
public Integer getPage() { return page; }
public ListRequest<T> setPage(Integer value) { this.page = value; return this; }
public Boolean isAll() { return all; }
public ListRequest<T> setAll(Boolean value) { this.all = value; return this; }
public Integer getCountPerPage() { return countPerPage; }
public ListRequest<T> setCountPerPage(Integer value) { this.countPerPage = value; return this; }
public ArrayList<String> getSpecificIds() { return specificIds; }
public ListRequest<T> setSpecificIds(ArrayList<String> value) { this.specificIds = value; return this; }
public String getSortField() { return sortField; }
public ListRequest<T> setSortField(String value) { this.sortField = value; return this; }
public SortOrders getSortOrder() { return sortOrder; }
public ListRequest<T> setSortOrder(SortOrders value) { this.sortOrder = value; return this; }
public Boolean isSimplifiedPaging() { return simplifiedPaging; }
public ListRequest<T> setSimplifiedPaging(Boolean value) { this.simplifiedPaging = value; return this; }
}
public static enum SortOrders
{
Ascend,
Descend;
}
public static class LogEntryInfo extends EntityInfo
{
/**
* The account ID this endpoint is associated with
*/
@ApiMember(Description="The account ID this endpoint is associated with")
public String accountId = null;
/**
* The name of the account this endpoint is associated with
*/
@ApiMember(Description="The name of the account this endpoint is associated with")
public String accountName = null;
/**
* The ID of the customer this endpoint is associated with
*/
@ApiMember(Description="The ID of the customer this endpoint is associated with")
public String customerId = null;
/**
* The name of the customer this endpoint is associated with
*/
@ApiMember(Description="The name of the customer this endpoint is associated with")
public String customerName = null;
/**
* The breadcrumb to the customer for this endpoint
*/
@ApiMember(Description="The breadcrumb to the customer for this endpoint")
public ArrayList<CustomerBreadcrumb> customerBreadcrumb = null;
public String userName = null;
public String description = null;
public String getAccountId() { return accountId; }
public LogEntryInfo setAccountId(String value) { this.accountId = value; return this; }
public String getAccountName() { return accountName; }
public LogEntryInfo setAccountName(String value) { this.accountName = value; return this; }
public String getCustomerId() { return customerId; }
public LogEntryInfo setCustomerId(String value) { this.customerId = value; return this; }
public String getCustomerName() { return customerName; }
public LogEntryInfo setCustomerName(String value) { this.customerName = value; return this; }
public ArrayList<CustomerBreadcrumb> getCustomerBreadcrumb() { return customerBreadcrumb; }
public LogEntryInfo setCustomerBreadcrumb(ArrayList<CustomerBreadcrumb> value) { this.customerBreadcrumb = value; return this; }
public String getUserName() { return userName; }
public LogEntryInfo setUserName(String value) { this.userName = value; return this; }
public String getDescription() { return description; }
public LogEntryInfo setDescription(String value) { this.description = value; return this; }
}
public static class EntityInfo
{
/**
* The ID of the object
*/
@ApiMember(Description="The ID of the object")
public String id = null;
/**
* The date the object was created
*/
@ApiMember(Description="The date the object was created")
public String dateCreated = null;
/**
* The date the object was last modified
*/
@ApiMember(Description="The date the object was last modified")
public String dateLastModified = null;
/**
* The user that created this object
*/
@ApiMember(Description="The user that created this object")
public String createdBy = null;
/**
* The user that last modified this object
*/
@ApiMember(Description="The user that last modified this object")
public String lastModifiedBy = null;
public String getId() { return id; }
public EntityInfo setId(String value) { this.id = value; return this; }
public String getDateCreated() { return dateCreated; }
public EntityInfo setDateCreated(String value) { this.dateCreated = value; return this; }
public String getDateLastModified() { return dateLastModified; }
public EntityInfo setDateLastModified(String value) { this.dateLastModified = value; return this; }
public String getCreatedBy() { return createdBy; }
public EntityInfo setCreatedBy(String value) { this.createdBy = value; return this; }
public String getLastModifiedBy() { return lastModifiedBy; }
public EntityInfo setLastModifiedBy(String value) { this.lastModifiedBy = value; return this; }
}
public static class CustomerBreadcrumb
{
public String id = null;
public String name = null;
public String getId() { return id; }
public CustomerBreadcrumb setId(String value) { this.id = value; return this; }
public String getName() { return name; }
public CustomerBreadcrumb setName(String value) { this.name = value; return this; }
}
public static class ListResponse<T>
{
/**
* The items
*/
@ApiMember(Description="The items")
public ArrayList<AccountInfo> items = null;
/**
* The total number of items
*/
@ApiMember(Description="The total number of items")
public Integer totalCount = null;
/**
* The total number of pages
*/
@ApiMember(Description="The total number of pages")
public Integer totalPages = null;
/**
* Are there more pages of items? Used with simplified paging
*/
@ApiMember(Description="Are there more pages of items? Used with simplified paging")
public Boolean hasMorePages = null;
public ArrayList<AccountInfo> getItems() { return items; }
public ListResponse<T> setItems(ArrayList<AccountInfo> value) { this.items = value; return this; }
public Integer getTotalCount() { return totalCount; }
public ListResponse<T> setTotalCount(Integer value) { this.totalCount = value; return this; }
public Integer getTotalPages() { return totalPages; }
public ListResponse<T> setTotalPages(Integer value) { this.totalPages = value; return this; }
public Boolean isHasMorePages() { return hasMorePages; }
public ListResponse<T> setHasMorePages(Boolean value) { this.hasMorePages = value; return this; }
}
public static class AccountInfo extends EntityInfo
{
/**
* The name of this account
*/
@ApiMember(Description="The name of this account")
public String name = null;
/**
* The ID of this account's parent
*/
@ApiMember(Description="The ID of this account's parent")
public String parentAccountId = null;
/**
* The twilio account SID
*/
@ApiMember(Description="The twilio account SID")
public String twilioAccountSid = null;
/**
* The ancestors of this account. Useful for breadcrumbs
*/
@ApiMember(Description="The ancestors of this account. Useful for breadcrumbs")
public ArrayList<String> ancestorIds = null;
/**
* The max number of phone numbers this account can have
*/
@ApiMember(Description="The max number of phone numbers this account can have")
public Integer maxPhoneNumbers = null;
/**
* This account is BYOA
*/
@ApiMember(Description="This account is BYOA")
public Boolean isBYOA = null;
/**
* TrustHub Profile Sid
*/
@ApiMember(Description="TrustHub Profile Sid")
public String trustHubProfileSid = null;
/**
* The ID of the logo file
*/
@ApiMember(Description="The ID of the logo file")
public String logoId = null;
/**
* The URI of the logo file
*/
@ApiMember(Description="The URI of the logo file")
public String logoUri = null;
/**
* The billing settings for this account
*/
@ApiMember(Description="The billing settings for this account")
public BillingSettings billingSettings = null;
public String getName() { return name; }
public AccountInfo setName(String value) { this.name = value; return this; }
public String getParentAccountId() { return parentAccountId; }
public AccountInfo setParentAccountId(String value) { this.parentAccountId = value; return this; }
public String getTwilioAccountSid() { return twilioAccountSid; }
public AccountInfo setTwilioAccountSid(String value) { this.twilioAccountSid = value; return this; }
public ArrayList<String> getAncestorIds() { return ancestorIds; }
public AccountInfo setAncestorIds(ArrayList<String> value) { this.ancestorIds = value; return this; }
public Integer getMaxPhoneNumbers() { return maxPhoneNumbers; }
public AccountInfo setMaxPhoneNumbers(Integer value) { this.maxPhoneNumbers = value; return this; }
public Boolean getIsBYOA() { return isBYOA; }
public AccountInfo setIsBYOA(Boolean value) { this.isBYOA = value; return this; }
public String getTrustHubProfileSid() { return trustHubProfileSid; }
public AccountInfo setTrustHubProfileSid(String value) { this.trustHubProfileSid = value; return this; }
public String getLogoId() { return logoId; }
public AccountInfo setLogoId(String value) { this.logoId = value; return this; }
public String getLogoUri() { return logoUri; }
public AccountInfo setLogoUri(String value) { this.logoUri = value; return this; }
public BillingSettings getBillingSettings() { return billingSettings; }
public AccountInfo setBillingSettings(BillingSettings value) { this.billingSettings = value; return this; }
}
public static class BillingSettings
{
public BillingItem base = null;
public BillingItem localNumbers = null;
public BillingItem tollFreeNumbers = null;
public BillingItem inboundVoiceCalls = null;
public BillingItem outboundVoiceCalls = null;
public BillingItem inboundFaxes = null;
public BillingItem outboundFaxes = null;
public BillingItem inboundSmsMessages = null;
public BillingItem outboundSmsMessages = null;
public BillingItem aiInsights = null;
public BillingItem aiLiveMinutes = null;
public BillingItem getBase() { return base; }
public BillingSettings setBase(BillingItem value) { this.base = value; return this; }
public BillingItem getLocalNumbers() { return localNumbers; }
public BillingSettings setLocalNumbers(BillingItem value) { this.localNumbers = value; return this; }
public BillingItem getTollFreeNumbers() { return tollFreeNumbers; }
public BillingSettings setTollFreeNumbers(BillingItem value) { this.tollFreeNumbers = value; return this; }
public BillingItem getInboundVoiceCalls() { return inboundVoiceCalls; }
public BillingSettings setInboundVoiceCalls(BillingItem value) { this.inboundVoiceCalls = value; return this; }
public BillingItem getOutboundVoiceCalls() { return outboundVoiceCalls; }
public BillingSettings setOutboundVoiceCalls(BillingItem value) { this.outboundVoiceCalls = value; return this; }
public BillingItem getInboundFaxes() { return inboundFaxes; }
public BillingSettings setInboundFaxes(BillingItem value) { this.inboundFaxes = value; return this; }
public BillingItem getOutboundFaxes() { return outboundFaxes; }
public BillingSettings setOutboundFaxes(BillingItem value) { this.outboundFaxes = value; return this; }
public BillingItem getInboundSmsMessages() { return inboundSmsMessages; }
public BillingSettings setInboundSmsMessages(BillingItem value) { this.inboundSmsMessages = value; return this; }
public BillingItem getOutboundSmsMessages() { return outboundSmsMessages; }
public BillingSettings setOutboundSmsMessages(BillingItem value) { this.outboundSmsMessages = value; return this; }
public BillingItem getAiInsights() { return aiInsights; }
public BillingSettings setAiInsights(BillingItem value) { this.aiInsights = value; return this; }
public BillingItem getAiLiveMinutes() { return aiLiveMinutes; }
public BillingSettings setAiLiveMinutes(BillingItem value) { this.aiLiveMinutes = value; return this; }
}
public static class BillingItem
{
public Double baseCost = null;
public Double rawUnitMultiplier = null;
public Double unitCost = null;
public Integer allowance = null;
public Double getBaseCost() { return baseCost; }
public BillingItem setBaseCost(Double value) { this.baseCost = value; return this; }
public Double getRawUnitMultiplier() { return rawUnitMultiplier; }
public BillingItem setRawUnitMultiplier(Double value) { this.rawUnitMultiplier = value; return this; }
public Double getUnitCost() { return unitCost; }
public BillingItem setUnitCost(Double value) { this.unitCost = value; return this; }
public Integer getAllowance() { return allowance; }
public BillingItem setAllowance(Integer value) { this.allowance = 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/ListLogEntries HTTP/1.1
Host: team.evovoice.io
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
accountIds:
[
String
],
customerIds:
[
String
],
startDate: String,
endDate: String,
description: String,
page: 0,
all: False,
countPerPage: 0,
specificIds:
[
String
],
sortField: String,
sortOrder: Ascend,
simplifiedPaging: False
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { items: [ { accountId: String, accountName: String, customerId: String, customerName: String, customerBreadcrumb: [ { id: String, name: String } ], userName: String, description: String, id: String, dateCreated: String, dateLastModified: String, createdBy: String, lastModifiedBy: String } ], totalCount: 0, totalPages: 0, hasMorePages: False }