BokaMera.API.Host

<back to all web services

GetVossPackage

The following routes are available for this service:
GET/voss/packagesget voss package
Imports System
Imports System.IO
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports BokaMera.API.ServiceModel.Dtos
Imports BokaMera.VossIntegration.ApiTools.Model
Imports BokaMera.VossIntegration.ApiTools.Enums

Namespace Global

    Namespace BokaMera.API.ServiceModel.Dtos

        <ApiResponse(Description:="You were unauthorized to call this service", StatusCode:=401)>
        Public Partial Class 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.")>
            Public Overridable Property PackageId As Guid?
        End Class
    End Namespace

    Namespace BokaMera.VossIntegration.ApiTools.Enums

        Public Enum PackageStatusEnum
            Draft
            Staged
            Published
            Archived
            Discarded
        End Enum

        Public Enum ProductGroupTypeEnum
            [Optional]
            Included
        End Enum

        Public Enum ProductTypeEnum
            Main
            Addon
            License
            Usage
        End Enum
    End Namespace

    Namespace BokaMera.VossIntegration.ApiTools.Model

        <DataContract(Name:="BillingPeriodCycleDto")>
        Public Partial Class BillingPeriodCycleDto
            <DataMember(Name:="length", IsRequired:=true)>
            Public Overridable Property Length As TimeLengthDto

            <DataMember(Name:="invoiceDateOffset", IsRequired:=true)>
            Public Overridable Property InvoiceDateOffset As PeriodDateOffsetDto

            <DataMember(Name:="renewalDateOffset", IsRequired:=true)>
            Public Overridable Property RenewalDateOffset As PeriodDateOffsetDto
        End Class

        <DataContract(Name:="BindingPeriodCycleDto")>
        Public Partial Class BindingPeriodCycleDto
            <DataMember(Name:="periodEndAction", IsRequired:=true)>
            Public Overridable Property PeriodEndAction As PeriodEndActionEnum

            <DataMember(Name:="length", IsRequired:=true)>
            Public Overridable Property Length As TimeLengthDto

            Public Enum PeriodEndActionEnum
                Renew
                Terminate
            End Enum
        End Class

        <DataContract(Name:="PackageChargePlanDto")>
        Public Partial Class PackageChargePlanDto
            <DataMember(Name:="id", IsRequired:=true)>
            Public Overridable Property Id As Guid

            <DataMember(Name:="tierId", IsRequired:=true)>
            Public Overridable Property TierId As Guid

            <DataMember(Name:="planId", IsRequired:=true)>
            Public Overridable Property PlanId As Guid

            <DataMember(Name:="productGroupPricings", IsRequired:=true)>
            Public Overridable Property ProductGroupPricings As List(Of ProductGroupPricingDto) = New List(Of ProductGroupPricingDto)
        End Class

        <DataContract(Name:="PackagePlanDto")>
        Public Partial Class PackagePlanDto
            <DataMember(Name:="id", IsRequired:=true)>
            Public Overridable Property Id As Guid

            <DataMember(Name:="name", IsRequired:=true)>
            Public Overridable Property Name As String

            <DataMember(Name:="externalId")>
            Public Overridable Property ExternalId As String

            <DataMember(Name:="bindingPeriodCycle", IsRequired:=true)>
            Public Overridable Property BindingPeriodCycle As BindingPeriodCycleDto

            <DataMember(Name:="subscriptionBillingPeriodCycle", IsRequired:=true)>
            Public Overridable Property SubscriptionBillingPeriodCycle As BillingPeriodCycleDto

            <DataMember(Name:="usageBillingPeriodCycle", IsRequired:=true)>
            Public Overridable Property UsageBillingPeriodCycle As BillingPeriodCycleDto
        End Class

        <DataContract(Name:="PackageProductDto")>
        Public Partial Class PackageProductDto
            <DataMember(Name:="type", IsRequired:=true)>
            Public Overridable Property ProductType As ProductTypeEnum

            <DataMember(Name:="status", IsRequired:=true)>
            Public Overridable Property Status As StatusEnum

            <DataMember(Name:="id", IsRequired:=true)>
            Public Overridable Property Id As Guid

            <DataMember(Name:="name", IsRequired:=true)>
            Public Overridable Property Name As String

            <DataMember(Name:="externalId")>
            Public Overridable Property ExternalId As String

            <DataMember(Name:="articleNumber")>
            Public Overridable Property ArticleNumber As String

            Public Enum StatusEnum
                Active
                Terminated
            End Enum
        End Class

        <DataContract(Name:="PackageProductGroupDto")>
        Public Partial Class PackageProductGroupDto
            <DataMember(Name:="productGroupType", IsRequired:=true)>
            Public Overridable Property ProductGroupType As ProductGroupTypeEnum

            <DataMember(Name:="id", IsRequired:=true)>
            Public Overridable Property Id As Guid

            <DataMember(Name:="name", IsRequired:=true)>
            Public Overridable Property Name As String

            <DataMember(Name:="externalId")>
            Public Overridable Property ExternalId As String

            <DataMember(Name:="tags", EmitDefaultValue:=false)>
            Public Overridable Property Tags As List(Of ProductGroupTagDto) = New List(Of ProductGroupTagDto)

            <DataMember(Name:="products", EmitDefaultValue:=false)>
            Public Overridable Property Products As List(Of PackageProductDto) = New List(Of PackageProductDto)
        End Class

        <DataContract(Name:="PackageResult")>
        Public Partial Class PackageResult
            <DataMember(Name:="status", IsRequired:=true)>
            Public Overridable Property PackageStatus As PackageStatusEnum

            <DataMember(Name:="id", IsRequired:=true)>
            Public Overridable Property Id As Guid

            <DataMember(Name:="versionId", IsRequired:=true)>
            Public Overridable Property VersionId As Guid

            <DataMember(Name:="sourceVersionId")>
            Public Overridable Property SourceVersionId As Guid?

            <DataMember(Name:="name", IsRequired:=true)>
            Public Overridable Property Name As String

            <DataMember(Name:="externalId")>
            Public Overridable Property ExternalId As String

            <DataMember(Name:="tiers", IsRequired:=true)>
            Public Overridable Property Tiers As List(Of PackageTierDto) = New List(Of PackageTierDto)

            <DataMember(Name:="plans", IsRequired:=true)>
            Public Overridable Property Plans As List(Of PackagePlanDto) = New List(Of PackagePlanDto)

            <DataMember(Name:="chargePlans", IsRequired:=true)>
            Public Overridable Property ChargePlans As List(Of PackageChargePlanDto) = New List(Of PackageChargePlanDto)

            <DataMember(Name:="salesChannels", IsRequired:=true)>
            Public Overridable Property SalesChannels As List(Of PackageSalesChannelDto) = New List(Of PackageSalesChannelDto)

            <DataMember(Name:="targetGroups", IsRequired:=true)>
            Public Overridable Property TargetGroups As List(Of PackageTargetGroupDto) = New List(Of PackageTargetGroupDto)

            <DataMember(Name:="scheduledChanges", IsRequired:=true)>
            Public Overridable Property ScheduledChanges As List(Of PackageScheduledChangeResult) = New List(Of PackageScheduledChangeResult)
        End Class

        <DataContract(Name:="PackageSalesChannelDto")>
        Public Partial Class PackageSalesChannelDto
            <DataMember(Name:="id", IsRequired:=true)>
            Public Overridable Property Id As Guid

            <DataMember(Name:="name", IsRequired:=true)>
            Public Overridable Property Name As String

            <DataMember(Name:="description")>
            Public Overridable Property Description As String

            <DataMember(Name:="validFrom")>
            Public Overridable Property ValidFrom As Date?

            <DataMember(Name:="validTo")>
            Public Overridable Property ValidTo As Date?
        End Class

        <DataContract(Name:="PackageScheduledChangeResult")>
        Public Partial Class PackageScheduledChangeResult
            <DataMember(Name:="status", IsRequired:=true)>
            Public Overridable Property Status As StatusEnum

            <DataMember(Name:="id", IsRequired:=true)>
            Public Overridable Property Id As Guid

            <DataMember(Name:="versionId", IsRequired:=true)>
            Public Overridable Property VersionId As Guid

            <DataMember(Name:="package", EmitDefaultValue:=false)>
            Public Overridable Property Package As PackageScheduledChangeResultDto

            <DataMember(Name:="scheduledDate", IsRequired:=true)>
            Public Overridable Property ScheduledDate As Date

            Public Enum StatusEnum
                Active
                Terminated
            End Enum
        End Class

        <DataContract(Name:="PackageScheduledChangeResultDto")>
        Public Partial Class PackageScheduledChangeResultDto
            <DataMember(Name:="status")>
            Public Overridable Property Status As PackageStatusEnum?

            <DataMember(Name:="name")>
            Public Overridable Property Name As String
        End Class

        <DataContract(Name:="PackageTargetGroupDto")>
        Public Partial Class PackageTargetGroupDto
            <DataMember(Name:="id", IsRequired:=true)>
            Public Overridable Property Id As Guid

            <DataMember(Name:="name", IsRequired:=true)>
            Public Overridable Property Name As String

            <DataMember(Name:="isDefault")>
            Public Overridable Property IsDefault As Boolean

            <DataMember(Name:="externalId")>
            Public Overridable Property ExternalId As String
        End Class

        <DataContract(Name:="PackageTierDto")>
        Public Partial Class PackageTierDto
            <DataMember(Name:="id", IsRequired:=true)>
            Public Overridable Property Id As Guid

            <DataMember(Name:="name", IsRequired:=true)>
            Public Overridable Property Name As String

            <DataMember(Name:="externalId")>
            Public Overridable Property ExternalId As String

            <DataMember(Name:="productGroups", EmitDefaultValue:=false)>
            Public Overridable Property ProductGroups As List(Of PackageProductGroupDto) = New List(Of PackageProductGroupDto)
        End Class

        <DataContract(Name:="PeriodDateOffsetDto")>
        Public Partial Class PeriodDateOffsetDto
            <DataMember(Name:="periodAnchor", IsRequired:=true)>
            Public Overridable Property PeriodAnchor As PeriodAnchorEnum

            <DataMember(Name:="length", IsRequired:=true)>
            Public Overridable Property Length As TimeLengthDto

            <DataMember(Name:="valueAnchor")>
            Public Overridable Property ValueAnchor As Integer?

            Public Enum PeriodAnchorEnum
                PeriodCreated
                PeriodStart
                PeriodEnd
            End Enum
        End Class

        <DataContract(Name:="ProductGroupPricingDto")>
        Public Partial Class ProductGroupPricingDto
            <DataMember(Name:="productGroupId", IsRequired:=true)>
            Public Overridable Property ProductGroupId As Guid

            <DataMember(Name:="articleNumber", IsRequired:=true)>
            Public Overridable Property ArticleNumber As String

            <DataMember(Name:="price", EmitDefaultValue:=false)>
            Public Overridable Property Price As Double

            <DataMember(Name:="productPricings", EmitDefaultValue:=false)>
            Public Overridable Property ProductPricings As List(Of ProductPricingDto) = New List(Of ProductPricingDto)
        End Class

        <DataContract(Name:="ProductGroupTagDto")>
        Public Partial Class ProductGroupTagDto
            <DataMember(Name:="type", IsRequired:=true)>
            Public Overridable Property Type As TypeEnum

            <DataMember(Name:="tag", IsRequired:=true)>
            Public Overridable Property Tag As String

            Public Enum TypeEnum
                AtSubscriptionBillingPeriodEnd
                AtBindingPeriodEnd
            End Enum
        End Class

        <DataContract(Name:="ProductPricingDto")>
        Public Partial Class ProductPricingDto
            <DataMember(Name:="pricingScheme", IsRequired:=true)>
            Public Overridable Property PricingScheme As PricingSchemeEnum

            <DataMember(Name:="productId", IsRequired:=true)>
            Public Overridable Property ProductId As Guid

            <DataMember(Name:="includedQuantity")>
            Public Overridable Property IncludedQuantity As Integer?

            <DataMember(Name:="maxQuantity")>
            Public Overridable Property MaxQuantity As Integer?

            <DataMember(Name:="unitPrice")>
            Public Overridable Property UnitPrice As Double?

            <DataMember(Name:="tierPricing", EmitDefaultValue:=false)>
            Public Overridable Property TierPricing As List(Of ProductTierPricingDto) = New List(Of ProductTierPricingDto)

            <DataMember(Name:="articleNumber")>
            Public Overridable Property ArticleNumber As String

            Public Enum PricingSchemeEnum
                UnitPricing
                TierPricing
            End Enum
        End Class

        <DataContract(Name:="ProductTierPricingDto")>
        Public Partial Class ProductTierPricingDto
            <DataMember(Name:="index", EmitDefaultValue:=false)>
            Public Overridable Property Index As Integer

            <DataMember(Name:="unitPrice", EmitDefaultValue:=false)>
            Public Overridable Property UnitPrice As Double

            <DataMember(Name:="flatPrice", EmitDefaultValue:=false)>
            Public Overridable Property FlatPrice As Double

            <DataMember(Name:="repeatEvery")>
            Public Overridable Property RepeatEvery As Integer?

            <DataMember(Name:="upperLimit")>
            Public Overridable Property UpperLimit As Integer?
        End Class

        <DataContract(Name:="TimeLengthDto")>
        Public Partial Class TimeLengthDto
            <DataMember(Name:="unit", IsRequired:=true)>
            Public Overridable Property Unit As UnitEnum

            <DataMember(Name:="value", EmitDefaultValue:=false)>
            Public Overridable Property Value As Integer

            Public Enum UnitEnum
                Day
                Month
                Year
            End Enum
        End Class
    End Namespace
End Namespace

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