/* Options: Date: 2025-12-14 05:17:47 SwiftVersion: 6.0 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bokamera.se //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True //MakePropertiesOptional: True IncludeTypes: CreateVossUsageTermination.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/voss/usage/{Id}/termination", "POST") // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) // @ValidateRequest(Validator="IsAuthenticated") public class CreateVossUsageTermination : IReturn, Codable { public typealias Return = CreateUsageTerminationResult /** * The company id */ // @ApiMember(Description="The company id", IsRequired=true) public var companyId:String? /** * Usage Id */ // @ApiMember(Description="Usage Id", IsRequired=true) public var id:String? public var invoiceLineTexts:[String] = [] public var terminationReasonComment:String? public var terminationReasonId:String? /** * 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 var behaviour:UsageBehaviourEnum? /** * 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 var creditKind:CreditKindEnum? required public init(){} } // @DataContract(Name="CreateUsageTerminationResult") public class CreateUsageTerminationResult : Codable { // @DataMember(Name="scheduledDate", IsRequired=true) public var scheduledDate:Date? // @DataMember(Name="reason") public var reason:SubscriptionItemTerminationReasonDto? // @DataMember(Name="creditOptions", IsRequired=true) public var creditOptions:UsageCreditOptionsDto? // @DataMember(Name="customerBalanceChange", IsRequired=true) public var customerBalanceChange:CustomerBalanceChangeDto? required public init(){} } public enum UsageBehaviourEnum : String, Codable { case Full case None } public enum CreditKindEnum : String, Codable { case Normal case Internal } public enum ProductTypeEnum : String, Codable { case Main case Addon case License case Usage } // @DataContract(Name="SubscriptionItemTerminationReasonDto") public class SubscriptionItemTerminationReasonDto : Codable { // @DataMember(Name="reasonId", IsRequired=true) public var reasonId:String? // @DataMember(Name="reasonName", IsRequired=true) public var reasonName:String? // @DataMember(Name="reasonExternalId") public var reasonExternalId:String? // @DataMember(Name="subReasonId") public var subReasonId:String? // @DataMember(Name="subReasonName") public var subReasonName:String? // @DataMember(Name="subReasonExternalId") public var subReasonExternalId:String? // @DataMember(Name="comment", IsRequired=true) public var comment:String? required public init(){} } // @DataContract(Name="UsageCreditOptionsDto") public class UsageCreditOptionsDto : Codable { // @DataMember(Name="behaviour", IsRequired=true) public var behaviour:UsageBehaviourEnum? // @DataMember(Name="creditKind", IsRequired=true) public var creditKind:CreditKindEnum? required public init(){} } // @DataContract(Name="CustomerBalanceChangeDto") public class CustomerBalanceChangeDto : Codable { // @DataMember(Name="items", EmitDefaultValue=false) public var items:[CustomerBalanceChangeItemDto] = [] // @DataMember(Name="totalAmount", EmitDefaultValue=false) public var totalAmount:Double? // @DataMember(Name="totalDiscountAmount", EmitDefaultValue=false) public var totalDiscountAmount:Double? required public init(){} } // @DataContract(Name="CustomerBalanceChangeItemDto") public class CustomerBalanceChangeItemDto : Codable { // @DataMember(Name="type", IsRequired=true) public var type:ProductTypeEnum? // @DataMember(Name="id", IsRequired=true) public var id:String? // @DataMember(Name="name", IsRequired=true) public var name:String? // @DataMember(Name="productGroupId", IsRequired=true) public var productGroupId:String? // @DataMember(Name="productGroupName", IsRequired=true) public var productGroupName:String? // @DataMember(Name="quantity", IsRequired=true) public var quantity:Double? // @DataMember(Name="amount", IsRequired=true) public var amount:Double? // @DataMember(Name="discountAmount", IsRequired=true) public var discountAmount:Double? // @DataMember(Name="totalAmount", EmitDefaultValue=false) public var totalAmount:Double? // @DataMember(Name="invoiceRecipientCustomerId", IsRequired=true) public var invoiceRecipientCustomerId:String? required public init(){} }