/* Options: Date: 2025-12-14 02:06:06 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: GetVossProductGroups.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/voss/productGroups", "GET") // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) public class GetVossProductGroups : IReturn, Codable { public typealias Return = [ProductGroupResult] /** * The company id, if empty will use the company id for the user you are logged in with. */ // @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.") public var companyId:String? /** * Passed if we have multilpe packages */ // @ApiMember(Description="Passed if we have multilpe packages") public var packageId:String? required public init(){} } public enum ProductTypeEnum : String, Codable { case Main case Addon case License case Usage } public enum ProductGroupTypeEnum : String, Codable { case Optional case Included } public enum StatusEnum : String, Codable { case Active case Terminated } // @DataContract(Name="ProductGroupProductDto") public class ProductGroupProductDto : 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", IsRequired=true) public var articleNumber:String? 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(){} } public enum TypeEnum : String, Codable { case AtSubscriptionBillingPeriodEnd case AtBindingPeriodEnd case Immediately } // @DataContract(Name="ProductGroupResult") public class ProductGroupResult : Codable { // @DataMember(Name="productGroupType", IsRequired=true) public var productGroupType:ProductGroupTypeEnum? // @DataMember(Name="id", IsRequired=true) public var id:String? // @DataMember(Name="versionId", IsRequired=true) public var versionId:String? // @DataMember(Name="name", IsRequired=true) public var name:String? // @DataMember(Name="externalId") public var externalId:String? // @DataMember(Name="products", EmitDefaultValue=false) public var products:[ProductGroupProductDto] = [] // @DataMember(Name="tags", EmitDefaultValue=false) public var tags:[ProductGroupTagDto] = [] required public init(){} }