BokaMera.API.Host

<back to all web services

GetVossPackage

The following routes are available for this service:
GET/voss/packagesget 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(){}
}


Swift GetVossPackage DTOs

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

HTTP + JSON

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":[{}]}