| GET | /voss/packages | get voss package |
|---|
import Foundation
import ServiceStack
// @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
public class GetVossPackage : Codable
{
/**
* 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 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="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(){}
}
public enum ProductGroupTypeEnum : String, Codable
{
case Optional
case Included
}
// @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
}
// @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 ProductTypeEnum : String, Codable
{
case Main
case Addon
case License
case Usage
}
public enum StatusEnum : String, Codable
{
case Active
case Terminated
}
// @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="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(){}
}
public enum PeriodEndActionEnum : String, Codable
{
case Renew
case Terminate
}
// @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(){}
}
public enum UnitEnum : String, Codable
{
case Day
case Month
case Year
}
// @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="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(){}
}
public enum PeriodAnchorEnum : String, Codable
{
case PeriodCreated
case PeriodStart
case PeriodEnd
}
// @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="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="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 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(){}
}
// @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="PackageScheduledChangeResultDto")
public class PackageScheduledChangeResultDto : Codable
{
// @DataMember(Name="status")
public var status:PackageStatusEnum?
// @DataMember(Name="name")
public var name:String
required public init(){}
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json
To embed the response in a jsonp callback, append ?callback=myCallback
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /voss/packages HTTP/1.1 Host: testapi.bokamera.se Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length
{"status":"Draft","sourceVersionId":"00000000-0000-0000-0000-000000000000","name":"String","externalId":"String","tiers":[{}],"plans":[{}],"chargePlans":[{}],"salesChannels":[{}],"targetGroups":[{}],"scheduledChanges":[{}]}