BokaMera.API.Host

<back to all web services

GetVossPackage

The following routes are available for this service:
GET/voss/packagesget voss package
namespace BokaMera.API.ServiceModel.Dtos

open System
open System.IO
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    type PackageStatusEnum =
        | Draft = 0
        | Staged = 1
        | Published = 2
        | Archived = 3
        | Discarded = 4

    type ProductGroupTypeEnum =
        | Optional = 0
        | Included = 1

    type TypeEnum =
        | AtSubscriptionBillingPeriodEnd = 0
        | AtBindingPeriodEnd = 1

    [<DataContract(Name="ProductGroupTagDto")>]
    [<AllowNullLiteral>]
    type ProductGroupTagDto() = 
        [<DataMember(Name="type", IsRequired=true)>]
        member val Type:TypeEnum = new TypeEnum() with get,set

        [<DataMember(Name="tag", IsRequired=true)>]
        member val Tag:String = null with get,set

    type ProductTypeEnum =
        | Main = 0
        | Addon = 1
        | License = 2
        | Usage = 3

    type StatusEnum =
        | Active = 0
        | Terminated = 1

    [<DataContract(Name="PackageProductDto")>]
    [<AllowNullLiteral>]
    type PackageProductDto() = 
        [<DataMember(Name="type", IsRequired=true)>]
        member val ProductType:ProductTypeEnum = new ProductTypeEnum() with get,set

        [<DataMember(Name="status", IsRequired=true)>]
        member val Status:StatusEnum = new StatusEnum() with get,set

        [<DataMember(Name="id", IsRequired=true)>]
        member val Id:Guid = new Guid() with get,set

        [<DataMember(Name="name", IsRequired=true)>]
        member val Name:String = null with get,set

        [<DataMember(Name="externalId")>]
        member val ExternalId:String = null with get,set

        [<DataMember(Name="articleNumber")>]
        member val ArticleNumber:String = null with get,set

    [<DataContract(Name="PackageProductGroupDto")>]
    [<AllowNullLiteral>]
    type PackageProductGroupDto() = 
        [<DataMember(Name="productGroupType", IsRequired=true)>]
        member val ProductGroupType:ProductGroupTypeEnum = new ProductGroupTypeEnum() with get,set

        [<DataMember(Name="id", IsRequired=true)>]
        member val Id:Guid = new Guid() with get,set

        [<DataMember(Name="name", IsRequired=true)>]
        member val Name:String = null with get,set

        [<DataMember(Name="externalId")>]
        member val ExternalId:String = null with get,set

        [<DataMember(Name="tags", EmitDefaultValue=false)>]
        member val Tags:ResizeArray<ProductGroupTagDto> = null with get,set

        [<DataMember(Name="products", EmitDefaultValue=false)>]
        member val Products:ResizeArray<PackageProductDto> = null with get,set

    [<DataContract(Name="PackageTierDto")>]
    [<AllowNullLiteral>]
    type PackageTierDto() = 
        [<DataMember(Name="id", IsRequired=true)>]
        member val Id:Guid = new Guid() with get,set

        [<DataMember(Name="name", IsRequired=true)>]
        member val Name:String = null with get,set

        [<DataMember(Name="externalId")>]
        member val ExternalId:String = null with get,set

        [<DataMember(Name="productGroups", EmitDefaultValue=false)>]
        member val ProductGroups:ResizeArray<PackageProductGroupDto> = null with get,set

    type PeriodEndActionEnum =
        | Renew = 0
        | Terminate = 1

    type UnitEnum =
        | Day = 0
        | Month = 1
        | Year = 2

    [<DataContract(Name="TimeLengthDto")>]
    [<AllowNullLiteral>]
    type TimeLengthDto() = 
        [<DataMember(Name="unit", IsRequired=true)>]
        member val Unit:UnitEnum = new UnitEnum() with get,set

        [<DataMember(Name="value", EmitDefaultValue=false)>]
        member val Value:Int32 = new Int32() with get,set

    [<DataContract(Name="BindingPeriodCycleDto")>]
    [<AllowNullLiteral>]
    type BindingPeriodCycleDto() = 
        [<DataMember(Name="periodEndAction", IsRequired=true)>]
        member val PeriodEndAction:PeriodEndActionEnum = new PeriodEndActionEnum() with get,set

        [<DataMember(Name="length", IsRequired=true)>]
        member val Length:TimeLengthDto = null with get,set

    type PeriodAnchorEnum =
        | PeriodCreated = 0
        | PeriodStart = 1
        | PeriodEnd = 2

    [<DataContract(Name="PeriodDateOffsetDto")>]
    [<AllowNullLiteral>]
    type PeriodDateOffsetDto() = 
        [<DataMember(Name="periodAnchor", IsRequired=true)>]
        member val PeriodAnchor:PeriodAnchorEnum = new PeriodAnchorEnum() with get,set

        [<DataMember(Name="length", IsRequired=true)>]
        member val Length:TimeLengthDto = null with get,set

        [<DataMember(Name="valueAnchor")>]
        member val ValueAnchor:Nullable<Int32> = new Nullable<Int32>() with get,set

    [<DataContract(Name="BillingPeriodCycleDto")>]
    [<AllowNullLiteral>]
    type BillingPeriodCycleDto() = 
        [<DataMember(Name="length", IsRequired=true)>]
        member val Length:TimeLengthDto = null with get,set

        [<DataMember(Name="invoiceDateOffset", IsRequired=true)>]
        member val InvoiceDateOffset:PeriodDateOffsetDto = null with get,set

        [<DataMember(Name="renewalDateOffset", IsRequired=true)>]
        member val RenewalDateOffset:PeriodDateOffsetDto = null with get,set

    [<DataContract(Name="PackagePlanDto")>]
    [<AllowNullLiteral>]
    type PackagePlanDto() = 
        [<DataMember(Name="id", IsRequired=true)>]
        member val Id:Guid = new Guid() with get,set

        [<DataMember(Name="name", IsRequired=true)>]
        member val Name:String = null with get,set

        [<DataMember(Name="externalId")>]
        member val ExternalId:String = null with get,set

        [<DataMember(Name="bindingPeriodCycle", IsRequired=true)>]
        member val BindingPeriodCycle:BindingPeriodCycleDto = null with get,set

        [<DataMember(Name="subscriptionBillingPeriodCycle", IsRequired=true)>]
        member val SubscriptionBillingPeriodCycle:BillingPeriodCycleDto = null with get,set

        [<DataMember(Name="usageBillingPeriodCycle", IsRequired=true)>]
        member val UsageBillingPeriodCycle:BillingPeriodCycleDto = null with get,set

    type PricingSchemeEnum =
        | UnitPricing = 0
        | TierPricing = 1

    [<DataContract(Name="ProductTierPricingDto")>]
    [<AllowNullLiteral>]
    type ProductTierPricingDto() = 
        [<DataMember(Name="index", EmitDefaultValue=false)>]
        member val Index:Int32 = new Int32() with get,set

        [<DataMember(Name="unitPrice", EmitDefaultValue=false)>]
        member val UnitPrice:Double = new Double() with get,set

        [<DataMember(Name="flatPrice", EmitDefaultValue=false)>]
        member val FlatPrice:Double = new Double() with get,set

        [<DataMember(Name="repeatEvery")>]
        member val RepeatEvery:Nullable<Int32> = new Nullable<Int32>() with get,set

        [<DataMember(Name="upperLimit")>]
        member val UpperLimit:Nullable<Int32> = new Nullable<Int32>() with get,set

    [<DataContract(Name="ProductPricingDto")>]
    [<AllowNullLiteral>]
    type ProductPricingDto() = 
        [<DataMember(Name="pricingScheme", IsRequired=true)>]
        member val PricingScheme:PricingSchemeEnum = new PricingSchemeEnum() with get,set

        [<DataMember(Name="productId", IsRequired=true)>]
        member val ProductId:Guid = new Guid() with get,set

        [<DataMember(Name="includedQuantity")>]
        member val IncludedQuantity:Nullable<Int32> = new Nullable<Int32>() with get,set

        [<DataMember(Name="maxQuantity")>]
        member val MaxQuantity:Nullable<Int32> = new Nullable<Int32>() with get,set

        [<DataMember(Name="unitPrice")>]
        member val UnitPrice:Nullable<Double> = new Nullable<Double>() with get,set

        [<DataMember(Name="tierPricing", EmitDefaultValue=false)>]
        member val TierPricing:ResizeArray<ProductTierPricingDto> = null with get,set

        [<DataMember(Name="articleNumber")>]
        member val ArticleNumber:String = null with get,set

    [<DataContract(Name="ProductGroupPricingDto")>]
    [<AllowNullLiteral>]
    type ProductGroupPricingDto() = 
        [<DataMember(Name="productGroupId", IsRequired=true)>]
        member val ProductGroupId:Guid = new Guid() with get,set

        [<DataMember(Name="articleNumber", IsRequired=true)>]
        member val ArticleNumber:String = null with get,set

        [<DataMember(Name="price", EmitDefaultValue=false)>]
        member val Price:Double = new Double() with get,set

        [<DataMember(Name="productPricings", EmitDefaultValue=false)>]
        member val ProductPricings:ResizeArray<ProductPricingDto> = null with get,set

    [<DataContract(Name="PackageChargePlanDto")>]
    [<AllowNullLiteral>]
    type PackageChargePlanDto() = 
        [<DataMember(Name="id", IsRequired=true)>]
        member val Id:Guid = new Guid() with get,set

        [<DataMember(Name="tierId", IsRequired=true)>]
        member val TierId:Guid = new Guid() with get,set

        [<DataMember(Name="planId", IsRequired=true)>]
        member val PlanId:Guid = new Guid() with get,set

        [<DataMember(Name="productGroupPricings", IsRequired=true)>]
        member val ProductGroupPricings:ResizeArray<ProductGroupPricingDto> = null with get,set

    [<DataContract(Name="PackageSalesChannelDto")>]
    [<AllowNullLiteral>]
    type PackageSalesChannelDto() = 
        [<DataMember(Name="id", IsRequired=true)>]
        member val Id:Guid = new Guid() with get,set

        [<DataMember(Name="name", IsRequired=true)>]
        member val Name:String = null with get,set

        [<DataMember(Name="description")>]
        member val Description:String = null with get,set

        [<DataMember(Name="validFrom")>]
        member val ValidFrom:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        [<DataMember(Name="validTo")>]
        member val ValidTo:Nullable<DateTime> = new Nullable<DateTime>() with get,set

    [<DataContract(Name="PackageTargetGroupDto")>]
    [<AllowNullLiteral>]
    type PackageTargetGroupDto() = 
        [<DataMember(Name="id", IsRequired=true)>]
        member val Id:Guid = new Guid() with get,set

        [<DataMember(Name="name", IsRequired=true)>]
        member val Name:String = null with get,set

        [<DataMember(Name="isDefault")>]
        member val IsDefault:Boolean = new Boolean() with get,set

        [<DataMember(Name="externalId")>]
        member val ExternalId:String = null with get,set

    [<DataContract(Name="PackageScheduledChangeResultDto")>]
    [<AllowNullLiteral>]
    type PackageScheduledChangeResultDto() = 
        [<DataMember(Name="status")>]
        member val Status:Nullable<PackageStatusEnum> = new Nullable<PackageStatusEnum>() with get,set

        [<DataMember(Name="name")>]
        member val Name:String = null with get,set

    [<DataContract(Name="PackageScheduledChangeResult")>]
    [<AllowNullLiteral>]
    type PackageScheduledChangeResult() = 
        [<DataMember(Name="status", IsRequired=true)>]
        member val Status:StatusEnum = new StatusEnum() with get,set

        [<DataMember(Name="id", IsRequired=true)>]
        member val Id:Guid = new Guid() with get,set

        [<DataMember(Name="versionId", IsRequired=true)>]
        member val VersionId:Guid = new Guid() with get,set

        [<DataMember(Name="package", EmitDefaultValue=false)>]
        member val Package:PackageScheduledChangeResultDto = null with get,set

        [<DataMember(Name="scheduledDate", IsRequired=true)>]
        member val ScheduledDate:DateTime = new DateTime() with get,set

    [<DataContract(Name="PackageResult")>]
    [<AllowNullLiteral>]
    type PackageResult() = 
        [<DataMember(Name="status", IsRequired=true)>]
        member val PackageStatus:PackageStatusEnum = new PackageStatusEnum() with get,set

        [<DataMember(Name="id", IsRequired=true)>]
        member val Id:Guid = new Guid() with get,set

        [<DataMember(Name="versionId", IsRequired=true)>]
        member val VersionId:Guid = new Guid() with get,set

        [<DataMember(Name="sourceVersionId")>]
        member val SourceVersionId:Nullable<Guid> = new Nullable<Guid>() with get,set

        [<DataMember(Name="name", IsRequired=true)>]
        member val Name:String = null with get,set

        [<DataMember(Name="externalId")>]
        member val ExternalId:String = null with get,set

        [<DataMember(Name="tiers", IsRequired=true)>]
        member val Tiers:ResizeArray<PackageTierDto> = null with get,set

        [<DataMember(Name="plans", IsRequired=true)>]
        member val Plans:ResizeArray<PackagePlanDto> = null with get,set

        [<DataMember(Name="chargePlans", IsRequired=true)>]
        member val ChargePlans:ResizeArray<PackageChargePlanDto> = null with get,set

        [<DataMember(Name="salesChannels", IsRequired=true)>]
        member val SalesChannels:ResizeArray<PackageSalesChannelDto> = null with get,set

        [<DataMember(Name="targetGroups", IsRequired=true)>]
        member val TargetGroups:ResizeArray<PackageTargetGroupDto> = null with get,set

        [<DataMember(Name="scheduledChanges", IsRequired=true)>]
        member val ScheduledChanges:ResizeArray<PackageScheduledChangeResult> = null with get,set

    [<ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)>]
    [<AllowNullLiteral>]
    type GetVossPackage() = 
        ///<summary>
        ///The package id; if not passed the configured BokaMera package will be used.
        ///</summary>
        [<ApiMember(Description="The package id; if not passed the configured BokaMera package will be used.")>]
        member val PackageId:Nullable<Guid> = new Nullable<Guid>() with get,set

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