/* Options: Date: 2025-12-14 05:15:42 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bokamera.se //GlobalNamespace: //MakePartial: True //MakeVirtual: True //MakeInternal: False //MakeDataContractsExtensible: False //AddNullableAnnotations: False //AddReturnMarker: True //AddDescriptionAsComments: True //AddDataContractAttributes: False //AddIndexesToDataMembers: False //AddGeneratedCodeAttributes: False //AddResponseStatus: False //AddImplicitVersion: //InitializeCollections: False //ExportValueTypes: False IncludeTypes: CreateVossUsageTermination.* //ExcludeTypes: //AddNamespaces: //AddDefaultXmlNamespace: http://schemas.servicestack.net/types */ using System; using System.IO; using System.Collections; using System.Collections.Generic; using System.Runtime.Serialization; using ServiceStack; using ServiceStack.DataAnnotations; using System.Globalization; using ServiceStack.Data; using System.Net; using System.Net.Http.Headers; using BokaMera.VossIntegration.ApiTools.Enums; using BokaMera.VossIntegration.ApiTools.Model; using BokaMera.API.ServiceModel.Dtos; namespace BokaMera.API.ServiceModel.Dtos { [Route("/voss/usage/{Id}/termination", "POST")] [ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)] [ValidateRequest("IsAuthenticated")] public partial class CreateVossUsageTermination : IReturn { /// ///The company id /// [ApiMember(Description="The company id", IsRequired=true)] public virtual Guid CompanyId { get; set; } /// ///Usage Id /// [ApiMember(Description="Usage Id", IsRequired=true)] public virtual string Id { get; set; } public virtual List InvoiceLineTexts { get; set; } = []; public virtual string TerminationReasonComment { get; set; } public virtual Guid TerminationReasonId { get; set; } /// ///Credit behaviour: <br /> 1. Full - usage will be credited in full <br /> 2. None - no credit will be created /// [ApiMember(Description="Credit behaviour: <br /> 1. Full - usage will be credited in full <br /> 2. None - no credit will be created", IsRequired=true)] public virtual UsageBehaviourEnum Behaviour { get; set; } /// ///Credit kind: <br /> 1. Normal - default credit type <br /> 2. Internal - corresponding credit will be marked as internal in invoice file line /// [ApiMember(Description="Credit kind: <br /> 1. Normal - default credit type <br /> 2. Internal - corresponding credit will be marked as internal in invoice file line", IsRequired=true)] public virtual CreditKindEnum CreditKind { get; set; } } } namespace BokaMera.VossIntegration.ApiTools.Enums { public enum CreditKindEnum { Normal, Internal, } public enum ProductTypeEnum { Main, Addon, License, Usage, } public enum UsageBehaviourEnum { Full, None, } } namespace BokaMera.VossIntegration.ApiTools.Model { [DataContract(Name="CreateUsageTerminationResult")] public partial class CreateUsageTerminationResult { [DataMember(Name="scheduledDate", IsRequired=true)] public virtual DateTime ScheduledDate { get; set; } [DataMember(Name="reason")] public virtual SubscriptionItemTerminationReasonDto Reason { get; set; } [DataMember(Name="creditOptions", IsRequired=true)] public virtual UsageCreditOptionsDto CreditOptions { get; set; } [DataMember(Name="customerBalanceChange", IsRequired=true)] public virtual CustomerBalanceChangeDto CustomerBalanceChange { get; set; } } [DataContract(Name="CustomerBalanceChangeDto")] public partial class CustomerBalanceChangeDto { [DataMember(Name="items", EmitDefaultValue=false)] public virtual List Items { get; set; } = []; [DataMember(Name="totalAmount", EmitDefaultValue=false)] public virtual double TotalAmount { get; set; } [DataMember(Name="totalDiscountAmount", EmitDefaultValue=false)] public virtual double TotalDiscountAmount { get; set; } } [DataContract(Name="CustomerBalanceChangeItemDto")] public partial class CustomerBalanceChangeItemDto { [DataMember(Name="type", IsRequired=true)] public virtual ProductTypeEnum ProductType { get; set; } [DataMember(Name="id", IsRequired=true)] public virtual Guid Id { get; set; } [DataMember(Name="name", IsRequired=true)] public virtual string Name { get; set; } [DataMember(Name="productGroupId", IsRequired=true)] public virtual Guid ProductGroupId { get; set; } [DataMember(Name="productGroupName", IsRequired=true)] public virtual string ProductGroupName { get; set; } [DataMember(Name="quantity", IsRequired=true)] public virtual double Quantity { get; set; } [DataMember(Name="amount", IsRequired=true)] public virtual double Amount { get; set; } [DataMember(Name="discountAmount", IsRequired=true)] public virtual double DiscountAmount { get; set; } [DataMember(Name="totalAmount", EmitDefaultValue=false)] public virtual double TotalAmount { get; set; } [DataMember(Name="invoiceRecipientCustomerId", IsRequired=true)] public virtual Guid InvoiceRecipientCustomerId { get; set; } } [DataContract(Name="SubscriptionItemTerminationReasonDto")] public partial class SubscriptionItemTerminationReasonDto { [DataMember(Name="reasonId", IsRequired=true)] public virtual Guid ReasonId { get; set; } [DataMember(Name="reasonName", IsRequired=true)] public virtual string ReasonName { get; set; } [DataMember(Name="reasonExternalId")] public virtual string ReasonExternalId { get; set; } [DataMember(Name="subReasonId")] public virtual Guid? SubReasonId { get; set; } [DataMember(Name="subReasonName")] public virtual string SubReasonName { get; set; } [DataMember(Name="subReasonExternalId")] public virtual string SubReasonExternalId { get; set; } [DataMember(Name="comment", IsRequired=true)] public virtual string Comment { get; set; } } [DataContract(Name="UsageCreditOptionsDto")] public partial class UsageCreditOptionsDto { [DataMember(Name="behaviour", IsRequired=true)] public virtual UsageBehaviourEnum UsageBehaviour { get; set; } [DataMember(Name="creditKind", IsRequired=true)] public virtual CreditKindEnum CreditKind { get; set; } } }