/* Options: Date: 2026-09-24 02:31:46 SwiftVersion: 6.0 Version: 10.05 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://testapi.bokamera.se //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True //MakePropertiesOptional: True IncludeTypes: GetVossPackage.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/voss/packages", "GET") // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) public class GetVossPackage : IReturn, Codable { public typealias Return = PackageResult /** * The package id; if not passed the configured BokaMera package will be used. */ // @ApiMember(Description="The package id; if not passed the configured BokaMera package will be used.") public var packageId:String? required public init(){} } // @DataContract(Name="PackageResult") public class PackageResult : Codable { // @DataMember(Name="status", IsRequired=true) public var status:PackageStatusEnum? // @DataMember(Name="id", IsRequired=true) public var id:String? // @DataMember(Name="versionId", IsRequired=true) public var versionId:String? // @DataMember(Name="sourceVersionId") public var sourceVersionId:String? // @DataMember(Name="name", IsRequired=true) public var name:String? // @DataMember(Name="externalId") public var externalId:String? // @DataMember(Name="tiers", IsRequired=true) public var tiers:[PackageTierDto] = [] // @DataMember(Name="plans", IsRequired=true) public var plans:[PackagePlanDto] = [] // @DataMember(Name="chargePlans", IsRequired=true) public var chargePlans:[PackageChargePlanDto] = [] // @DataMember(Name="salesChannels", IsRequired=true) public var salesChannels:[PackageSalesChannelDto] = [] // @DataMember(Name="targetGroups", IsRequired=true) public var targetGroups:[PackageTargetGroupDto] = [] // @DataMember(Name="scheduledChanges", IsRequired=true) public var scheduledChanges:[PackageScheduledChangeResult] = [] required public init(){} } public enum ProductTypeEnum : String, Codable { case Main case Addon case License case Usage } public enum PeriodAnchorEnum : String, Codable { case LatestPeriod case CurrentPeriod } public enum TypeEnum : String, Codable { case AtSubscriptionBillingPeriodEnd case AtBindingPeriodEnd } public enum ProductGroupTypeEnum : String, Codable { case Optional case Included } public enum StatusEnum : String, Codable { case Active case Terminated } public enum PackageStatusEnum : String, Codable { case Draft case Staged case Published case Archived case Discarded } // @DataContract(Name="PackageTierDto") public class PackageTierDto : Codable { // @DataMember(Name="id", IsRequired=true) public var id:String? // @DataMember(Name="name", IsRequired=true) public var name:String? // @DataMember(Name="externalId") public var externalId:String? // @DataMember(Name="productGroups", EmitDefaultValue=false) public var productGroups:[PackageProductGroupDto] = [] required public init(){} } // @DataContract(Name="PackagePlanDto") public class PackagePlanDto : Codable { // @DataMember(Name="id", IsRequired=true) public var id:String? // @DataMember(Name="name", IsRequired=true) public var name:String? // @DataMember(Name="externalId") public var externalId:String? // @DataMember(Name="bindingPeriodCycle", IsRequired=true) public var bindingPeriodCycle:BindingPeriodCycleDto? // @DataMember(Name="subscriptionBillingPeriodCycle", IsRequired=true) public var subscriptionBillingPeriodCycle:BillingPeriodCycleDto? // @DataMember(Name="usageBillingPeriodCycle", IsRequired=true) public var usageBillingPeriodCycle:BillingPeriodCycleDto? required public init(){} } // @DataContract(Name="PackageChargePlanDto") public class PackageChargePlanDto : Codable { // @DataMember(Name="id", IsRequired=true) public var id:String? // @DataMember(Name="tierId", IsRequired=true) public var tierId:String? // @DataMember(Name="planId", IsRequired=true) public var planId:String? // @DataMember(Name="productGroupPricings", IsRequired=true) public var productGroupPricings:[ProductGroupPricingDto] = [] required public init(){} } // @DataContract(Name="PackageSalesChannelDto") public class PackageSalesChannelDto : Codable { // @DataMember(Name="id", IsRequired=true) public var id:String? // @DataMember(Name="name", IsRequired=true) public var name:String? // @DataMember(Name="description") public var description:String? // @DataMember(Name="validFrom") public var validFrom:Date? // @DataMember(Name="validTo") public var validTo:Date? required public init(){} } // @DataContract(Name="PackageTargetGroupDto") public class PackageTargetGroupDto : Codable { // @DataMember(Name="id", IsRequired=true) public var id:String? // @DataMember(Name="name", IsRequired=true) public var name:String? // @DataMember(Name="isDefault") public var isDefault:Bool? // @DataMember(Name="externalId") public var externalId:String? required public init(){} } // @DataContract(Name="PackageScheduledChangeResult") public class PackageScheduledChangeResult : Codable { // @DataMember(Name="status", IsRequired=true) public var status:StatusEnum? // @DataMember(Name="id", IsRequired=true) public var id:String? // @DataMember(Name="versionId", IsRequired=true) public var versionId:String? // @DataMember(Name="package", EmitDefaultValue=false) public var package:PackageScheduledChangeResultDto? // @DataMember(Name="scheduledDate", IsRequired=true) public var scheduledDate:Date? required public init(){} } // @DataContract(Name="ProductGroupTagDto") public class ProductGroupTagDto : Codable { // @DataMember(Name="type", IsRequired=true) public var type:TypeEnum? // @DataMember(Name="tag", IsRequired=true) public var tag:String? required public init(){} } // @DataContract(Name="TimeLengthDto") public class TimeLengthDto : Codable { // @DataMember(Name="unit", IsRequired=true) public var unit:UnitEnum? // @DataMember(Name="value", EmitDefaultValue=false) public var value:Int? required public init(){} } // @DataContract(Name="PackageProductGroupDto") public class PackageProductGroupDto : Codable { // @DataMember(Name="productGroupType", IsRequired=true) public var productGroupType:ProductGroupTypeEnum? // @DataMember(Name="id", IsRequired=true) public var id:String? // @DataMember(Name="name", IsRequired=true) public var name:String? // @DataMember(Name="externalId") public var externalId:String? // @DataMember(Name="tags", EmitDefaultValue=false) public var tags:[ProductGroupTagDto] = [] // @DataMember(Name="products", EmitDefaultValue=false) public var products:[PackageProductDto] = [] required public init(){} } // @DataContract(Name="BindingPeriodCycleDto") public class BindingPeriodCycleDto : Codable { // @DataMember(Name="periodEndAction", IsRequired=true) public var periodEndAction:PeriodEndActionEnum? // @DataMember(Name="length", IsRequired=true) public var length:TimeLengthDto? required public init(){} } // @DataContract(Name="BillingPeriodCycleDto") public class BillingPeriodCycleDto : Codable { // @DataMember(Name="length", IsRequired=true) public var length:TimeLengthDto? // @DataMember(Name="invoiceDateOffset", IsRequired=true) public var invoiceDateOffset:PeriodDateOffsetDto? // @DataMember(Name="renewalDateOffset", IsRequired=true) public var renewalDateOffset:PeriodDateOffsetDto? required public init(){} } // @DataContract(Name="ProductGroupPricingDto") public class ProductGroupPricingDto : Codable { // @DataMember(Name="productGroupId", IsRequired=true) public var productGroupId:String? // @DataMember(Name="articleNumber", IsRequired=true) public var articleNumber:String? // @DataMember(Name="price", EmitDefaultValue=false) public var price:Double? // @DataMember(Name="productPricings", EmitDefaultValue=false) public var productPricings:[ProductPricingDto] = [] required public init(){} } // @DataContract(Name="PackageScheduledChangeResultDto") public class PackageScheduledChangeResultDto : Codable { // @DataMember(Name="status") public var status:PackageStatusEnum? // @DataMember(Name="name") public var name:String? required public init(){} } public enum UnitEnum : String, Codable { case Day case Month case Year } // @DataContract(Name="PackageProductDto") public class PackageProductDto : Codable { // @DataMember(Name="type", IsRequired=true) public var type:ProductTypeEnum? // @DataMember(Name="status", IsRequired=true) public var status:StatusEnum? // @DataMember(Name="id", IsRequired=true) public var id:String? // @DataMember(Name="name", IsRequired=true) public var name:String? // @DataMember(Name="externalId") public var externalId:String? // @DataMember(Name="articleNumber") public var articleNumber:String? required public init(){} } public enum PeriodEndActionEnum : String, Codable { case Renew case Terminate } // @DataContract(Name="PeriodDateOffsetDto") public class PeriodDateOffsetDto : Codable { // @DataMember(Name="periodAnchor", IsRequired=true) public var periodAnchor:PeriodAnchorEnum? // @DataMember(Name="length", IsRequired=true) public var length:TimeLengthDto? // @DataMember(Name="valueAnchor") public var valueAnchor:Int? required public init(){} } // @DataContract(Name="ProductPricingDto") public class ProductPricingDto : Codable { // @DataMember(Name="pricingScheme", IsRequired=true) public var pricingScheme:PricingSchemeEnum? // @DataMember(Name="productId", IsRequired=true) public var productId:String? // @DataMember(Name="includedQuantity") public var includedQuantity:Int? // @DataMember(Name="maxQuantity") public var maxQuantity:Int? // @DataMember(Name="unitPrice") public var unitPrice:Double? // @DataMember(Name="tierPricing", EmitDefaultValue=false) public var tierPricing:[ProductTierPricingDto] = [] // @DataMember(Name="articleNumber") public var articleNumber:String? required public init(){} } public enum PeriodAnchorEnum : String, Codable { case PeriodCreated case PeriodStart case PeriodEnd } public enum PricingSchemeEnum : String, Codable { case UnitPricing case TierPricing } // @DataContract(Name="ProductTierPricingDto") public class ProductTierPricingDto : Codable { // @DataMember(Name="index", EmitDefaultValue=false) public var index:Int? // @DataMember(Name="unitPrice", EmitDefaultValue=false) public var unitPrice:Double? // @DataMember(Name="flatPrice", EmitDefaultValue=false) public var flatPrice:Double? // @DataMember(Name="repeatEvery") public var repeatEvery:Int? // @DataMember(Name="upperLimit") public var upperLimit:Int? required public init(){} }