/* Options: Date: 2025-12-14 05:13:30 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bokamera.se //Package: //GlobalNamespace: dtos //AddPropertyAccessors: True //SettersReturnThis: True //AddServiceStackTypes: True //AddResponseStatus: False //AddDescriptionAsComments: True //AddImplicitVersion: IncludeTypes: CreateVossUsage.* //ExcludeTypes: //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,java.io.InputStream,net.servicestack.client.*,com.google.gson.annotations.*,com.google.gson.reflect.* */ 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 { @Route(Path="/voss/usage", Verbs="POST") @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) @ValidateRequest(Validator="IsAuthenticated") public static class CreateVossUsage implements IReturn { /** * 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; } private static Object responseType = CreateSubscriptionProductGroupResult.class; public Object getResponseType() { return responseType; } } @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 Products = new ArrayList(); @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 getProducts() { return Products; } public CreateSubscriptionProductGroupResult setProducts(ArrayList 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 CreditKindEnum { Normal, Internal; } public static enum ProductTypeEnum { Main, Addon, License, Usage; } public static enum SubscriptionBehaviourEnum { Prorate, Full, None; } @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="CustomerBalanceChangeDto") public static class CustomerBalanceChangeDto { @DataMember(Name="items", EmitDefaultValue=false) @SerializedName("items") public ArrayList Items = new ArrayList(); @DataMember(Name="totalAmount", EmitDefaultValue=false) @SerializedName("totalAmount") public Double TotalAmount = null; @DataMember(Name="totalDiscountAmount", EmitDefaultValue=false) @SerializedName("totalDiscountAmount") public Double TotalDiscountAmount = null; public ArrayList getItems() { return Items; } public CustomerBalanceChangeDto setItems(ArrayList 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; } } 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; } } @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 TypeEnum { AtSubscriptionBillingPeriodEnd, AtBindingPeriodEnd, Immediately; } public static enum SourceEnum { Direct, Plan, CustomerExpiration, Update, Unpaid; } @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; } } }