| Requires any of the roles: | bookingsupplier-administrator-write, superadmin |
| POST | /voss/usage | Add product to company invoicing | Add new product to company invoicing. Sends that product to VOSS System. |
|---|
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
{
@ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
@ValidateRequest(Validator="IsAuthenticated")
public static class CreateVossUsage
{
/**
* The company id
*/
@ApiMember(Description="The company id", IsRequired=true)
public UUID CompanyId = null;
/**
* Article number. Can be fetched from products
*/
@ApiMember(Description="Article number. Can be fetched from products", IsRequired=true)
public String ArticleNumber = null;
/**
* Example: developer worked 6 hours
*/
@ApiMember(Description="Example: developer worked 6 hours", IsRequired=true)
public Integer Quantity = null;
public UUID getCompanyId() { return CompanyId; }
public CreateVossUsage setCompanyId(UUID value) { this.CompanyId = value; return this; }
public String getArticleNumber() { return ArticleNumber; }
public CreateVossUsage setArticleNumber(String value) { this.ArticleNumber = value; return this; }
public Integer getQuantity() { return Quantity; }
public CreateVossUsage setQuantity(Integer value) { this.Quantity = value; return this; }
}
@DataContract(Name="CreateSubscriptionProductGroupResult")
public static class CreateSubscriptionProductGroupResult
{
@DataMember(Name="productGroupType", IsRequired=true)
@SerializedName("productGroupType")
public ProductGroupTypeEnum ProductGroupType = null;
@DataMember(Name="status", IsRequired=true)
@SerializedName("status")
public StatusEnum Status = null;
@DataMember(Name="id", IsRequired=true)
@SerializedName("id")
public UUID Id = null;
@DataMember(Name="name", IsRequired=true)
@SerializedName("name")
public String Name = null;
@DataMember(Name="products", EmitDefaultValue=false)
@SerializedName("products")
public ArrayList<SubscriptionProductGroupProductResultDto> Products = new ArrayList<SubscriptionProductGroupProductResultDto>();
@DataMember(Name="termination")
@SerializedName("termination")
public SubscriptionItemTerminationDto Termination = null;
@DataMember(Name="created", IsRequired=true)
@SerializedName("created")
public Date Created = null;
@DataMember(Name="customerBalanceChange", IsRequired=true)
@SerializedName("customerBalanceChange")
public CustomerBalanceChangeDto CustomerBalanceChange = null;
public ProductGroupTypeEnum getProductGroupType() { return ProductGroupType; }
public CreateSubscriptionProductGroupResult setProductGroupType(ProductGroupTypeEnum value) { this.ProductGroupType = value; return this; }
public StatusEnum getStatus() { return Status; }
public CreateSubscriptionProductGroupResult setStatus(StatusEnum value) { this.Status = value; return this; }
public UUID getId() { return Id; }
public CreateSubscriptionProductGroupResult setId(UUID value) { this.Id = value; return this; }
public String getName() { return Name; }
public CreateSubscriptionProductGroupResult setName(String value) { this.Name = value; return this; }
public ArrayList<SubscriptionProductGroupProductResultDto> getProducts() { return Products; }
public CreateSubscriptionProductGroupResult setProducts(ArrayList<SubscriptionProductGroupProductResultDto> value) { this.Products = value; return this; }
public SubscriptionItemTerminationDto getTermination() { return Termination; }
public CreateSubscriptionProductGroupResult setTermination(SubscriptionItemTerminationDto value) { this.Termination = value; return this; }
public Date getCreated() { return Created; }
public CreateSubscriptionProductGroupResult setCreated(Date value) { this.Created = value; return this; }
public CustomerBalanceChangeDto getCustomerBalanceChange() { return CustomerBalanceChange; }
public CreateSubscriptionProductGroupResult setCustomerBalanceChange(CustomerBalanceChangeDto value) { this.CustomerBalanceChange = value; return this; }
}
public static enum ProductGroupTypeEnum
{
Optional,
Included;
}
public static enum StatusEnum
{
Active,
Terminated;
}
@DataContract(Name="SubscriptionProductGroupProductResultDto")
public static class SubscriptionProductGroupProductResultDto
{
@DataMember(Name="id", IsRequired=true)
@SerializedName("id")
public UUID Id = null;
@DataMember(Name="name", IsRequired=true)
@SerializedName("name")
public String Name = null;
@DataMember(Name="externalId")
@SerializedName("externalId")
public String ExternalId = null;
@DataMember(Name="articleNumber", IsRequired=true)
@SerializedName("articleNumber")
public String ArticleNumber = null;
public UUID getId() { return Id; }
public SubscriptionProductGroupProductResultDto setId(UUID value) { this.Id = value; return this; }
public String getName() { return Name; }
public SubscriptionProductGroupProductResultDto setName(String value) { this.Name = value; return this; }
public String getExternalId() { return ExternalId; }
public SubscriptionProductGroupProductResultDto setExternalId(String value) { this.ExternalId = value; return this; }
public String getArticleNumber() { return ArticleNumber; }
public SubscriptionProductGroupProductResultDto setArticleNumber(String value) { this.ArticleNumber = value; return this; }
}
@DataContract(Name="SubscriptionItemTerminationDto")
public static class SubscriptionItemTerminationDto
{
@DataMember(Name="type")
@SerializedName("type")
public TypeEnum Type = null;
@DataMember(Name="source", IsRequired=true)
@SerializedName("source")
public SourceEnum Source = null;
@DataMember(Name="scheduledDate", IsRequired=true)
@SerializedName("scheduledDate")
public Date ScheduledDate = null;
@DataMember(Name="reason")
@SerializedName("reason")
public SubscriptionItemTerminationReasonDto Reason = null;
@DataMember(Name="creditOptions", IsRequired=true)
@SerializedName("creditOptions")
public CreditOptionsDto CreditOptions = null;
public TypeEnum getType() { return Type; }
public SubscriptionItemTerminationDto setType(TypeEnum value) { this.Type = value; return this; }
public SourceEnum getSource() { return Source; }
public SubscriptionItemTerminationDto setSource(SourceEnum value) { this.Source = value; return this; }
public Date getScheduledDate() { return ScheduledDate; }
public SubscriptionItemTerminationDto setScheduledDate(Date value) { this.ScheduledDate = value; return this; }
public SubscriptionItemTerminationReasonDto getReason() { return Reason; }
public SubscriptionItemTerminationDto setReason(SubscriptionItemTerminationReasonDto value) { this.Reason = value; return this; }
public CreditOptionsDto getCreditOptions() { return CreditOptions; }
public SubscriptionItemTerminationDto setCreditOptions(CreditOptionsDto value) { this.CreditOptions = value; return this; }
}
public static enum TypeEnum
{
AtSubscriptionBillingPeriodEnd,
AtBindingPeriodEnd,
Immediately;
}
public static enum SourceEnum
{
Direct,
Plan,
CustomerExpiration,
Update,
Unpaid;
}
@DataContract(Name="SubscriptionItemTerminationReasonDto")
public static class SubscriptionItemTerminationReasonDto
{
@DataMember(Name="reasonId", IsRequired=true)
@SerializedName("reasonId")
public UUID ReasonId = null;
@DataMember(Name="reasonName", IsRequired=true)
@SerializedName("reasonName")
public String ReasonName = null;
@DataMember(Name="reasonExternalId")
@SerializedName("reasonExternalId")
public String ReasonExternalId = null;
@DataMember(Name="subReasonId")
@SerializedName("subReasonId")
public UUID SubReasonId = null;
@DataMember(Name="subReasonName")
@SerializedName("subReasonName")
public String SubReasonName = null;
@DataMember(Name="subReasonExternalId")
@SerializedName("subReasonExternalId")
public String SubReasonExternalId = null;
@DataMember(Name="comment", IsRequired=true)
@SerializedName("comment")
public String Comment = null;
public UUID getReasonId() { return ReasonId; }
public SubscriptionItemTerminationReasonDto setReasonId(UUID value) { this.ReasonId = value; return this; }
public String getReasonName() { return ReasonName; }
public SubscriptionItemTerminationReasonDto setReasonName(String value) { this.ReasonName = value; return this; }
public String getReasonExternalId() { return ReasonExternalId; }
public SubscriptionItemTerminationReasonDto setReasonExternalId(String value) { this.ReasonExternalId = value; return this; }
public UUID getSubReasonId() { return SubReasonId; }
public SubscriptionItemTerminationReasonDto setSubReasonId(UUID value) { this.SubReasonId = value; return this; }
public String getSubReasonName() { return SubReasonName; }
public SubscriptionItemTerminationReasonDto setSubReasonName(String value) { this.SubReasonName = value; return this; }
public String getSubReasonExternalId() { return SubReasonExternalId; }
public SubscriptionItemTerminationReasonDto setSubReasonExternalId(String value) { this.SubReasonExternalId = value; return this; }
public String getComment() { return Comment; }
public SubscriptionItemTerminationReasonDto setComment(String value) { this.Comment = value; return this; }
}
@DataContract(Name="CreditOptionsDto")
public static class CreditOptionsDto
{
@DataMember(Name="behaviour", IsRequired=true)
@SerializedName("behaviour")
public SubscriptionBehaviourEnum SubscriptionBehaviour = null;
@DataMember(Name="creditKind", IsRequired=true)
@SerializedName("creditKind")
public CreditKindEnum CreditKind = null;
@DataMember(Name="prorateTimeAnchor")
@SerializedName("prorateTimeAnchor")
public Date ProrateTimeAnchor = null;
public SubscriptionBehaviourEnum getSubscriptionBehaviour() { return SubscriptionBehaviour; }
public CreditOptionsDto setSubscriptionBehaviour(SubscriptionBehaviourEnum value) { this.SubscriptionBehaviour = value; return this; }
public CreditKindEnum getCreditKind() { return CreditKind; }
public CreditOptionsDto setCreditKind(CreditKindEnum value) { this.CreditKind = value; return this; }
public Date getProrateTimeAnchor() { return ProrateTimeAnchor; }
public CreditOptionsDto setProrateTimeAnchor(Date value) { this.ProrateTimeAnchor = value; return this; }
}
public static enum SubscriptionBehaviourEnum
{
Prorate,
Full,
None;
}
public static enum CreditKindEnum
{
Normal,
Internal;
}
@DataContract(Name="CustomerBalanceChangeDto")
public static class CustomerBalanceChangeDto
{
@DataMember(Name="items", EmitDefaultValue=false)
@SerializedName("items")
public ArrayList<CustomerBalanceChangeItemDto> Items = new ArrayList<CustomerBalanceChangeItemDto>();
@DataMember(Name="totalAmount", EmitDefaultValue=false)
@SerializedName("totalAmount")
public Double TotalAmount = null;
@DataMember(Name="totalDiscountAmount", EmitDefaultValue=false)
@SerializedName("totalDiscountAmount")
public Double TotalDiscountAmount = null;
public ArrayList<CustomerBalanceChangeItemDto> getItems() { return Items; }
public CustomerBalanceChangeDto setItems(ArrayList<CustomerBalanceChangeItemDto> value) { this.Items = value; return this; }
public Double getTotalAmount() { return TotalAmount; }
public CustomerBalanceChangeDto setTotalAmount(Double value) { this.TotalAmount = value; return this; }
public Double getTotalDiscountAmount() { return TotalDiscountAmount; }
public CustomerBalanceChangeDto setTotalDiscountAmount(Double value) { this.TotalDiscountAmount = value; return this; }
}
@DataContract(Name="CustomerBalanceChangeItemDto")
public static class CustomerBalanceChangeItemDto
{
@DataMember(Name="type", IsRequired=true)
@SerializedName("type")
public ProductTypeEnum ProductType = null;
@DataMember(Name="id", IsRequired=true)
@SerializedName("id")
public UUID Id = null;
@DataMember(Name="name", IsRequired=true)
@SerializedName("name")
public String Name = null;
@DataMember(Name="productGroupId", IsRequired=true)
@SerializedName("productGroupId")
public UUID ProductGroupId = null;
@DataMember(Name="productGroupName", IsRequired=true)
@SerializedName("productGroupName")
public String ProductGroupName = null;
@DataMember(Name="quantity", IsRequired=true)
@SerializedName("quantity")
public Double Quantity = null;
@DataMember(Name="amount", IsRequired=true)
@SerializedName("amount")
public Double Amount = null;
@DataMember(Name="discountAmount", IsRequired=true)
@SerializedName("discountAmount")
public Double DiscountAmount = null;
@DataMember(Name="totalAmount", EmitDefaultValue=false)
@SerializedName("totalAmount")
public Double TotalAmount = null;
@DataMember(Name="invoiceRecipientCustomerId", IsRequired=true)
@SerializedName("invoiceRecipientCustomerId")
public UUID InvoiceRecipientCustomerId = null;
public ProductTypeEnum getProductType() { return ProductType; }
public CustomerBalanceChangeItemDto setProductType(ProductTypeEnum value) { this.ProductType = value; return this; }
public UUID getId() { return Id; }
public CustomerBalanceChangeItemDto setId(UUID value) { this.Id = value; return this; }
public String getName() { return Name; }
public CustomerBalanceChangeItemDto setName(String value) { this.Name = value; return this; }
public UUID getProductGroupId() { return ProductGroupId; }
public CustomerBalanceChangeItemDto setProductGroupId(UUID value) { this.ProductGroupId = value; return this; }
public String getProductGroupName() { return ProductGroupName; }
public CustomerBalanceChangeItemDto setProductGroupName(String value) { this.ProductGroupName = value; return this; }
public Double getQuantity() { return Quantity; }
public CustomerBalanceChangeItemDto setQuantity(Double value) { this.Quantity = value; return this; }
public Double getAmount() { return Amount; }
public CustomerBalanceChangeItemDto setAmount(Double value) { this.Amount = value; return this; }
public Double getDiscountAmount() { return DiscountAmount; }
public CustomerBalanceChangeItemDto setDiscountAmount(Double value) { this.DiscountAmount = value; return this; }
public Double getTotalAmount() { return TotalAmount; }
public CustomerBalanceChangeItemDto setTotalAmount(Double value) { this.TotalAmount = value; return this; }
public UUID getInvoiceRecipientCustomerId() { return InvoiceRecipientCustomerId; }
public CustomerBalanceChangeItemDto setInvoiceRecipientCustomerId(UUID value) { this.InvoiceRecipientCustomerId = value; return this; }
}
public static enum ProductTypeEnum
{
Main,
Addon,
License,
Usage;
}
}
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.
POST /voss/usage HTTP/1.1
Host: api.bokamera.se
Accept: application/json
Content-Type: application/json
Content-Length: length
{"ArticleNumber":"String","Quantity":0}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length
{"productGroupType":"Optional","status":"Active","name":"String","products":[{}]}