| GET | /voss/packages | get 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
To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other
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: text/jsonl
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length
{"status":"Draft","sourceVersionId":"00000000-0000-0000-0000-000000000000","name":"String","externalId":"String","tiers":[{}],"plans":[{}],"chargePlans":[{}],"salesChannels":[{}],"targetGroups":[{}],"scheduledChanges":[{}]}