| GET | /voss/packages | get voss package |
|---|
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*
import com.google.gson.annotations.*
import com.google.gson.reflect.*
@ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
open class GetVossPackage
{
/**
* 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.")
open var PackageId:UUID? = null
}
@DataContract(Name="PackageResult")
open class PackageResult
{
@DataMember(Name="status", IsRequired=true)
@SerializedName("status")
open var PackageStatus:PackageStatusEnum? = null
@DataMember(Name="id", IsRequired=true)
@SerializedName("id")
open var Id:UUID? = null
@DataMember(Name="versionId", IsRequired=true)
@SerializedName("versionId")
open var VersionId:UUID? = null
@DataMember(Name="sourceVersionId")
@SerializedName("sourceVersionId")
open var SourceVersionId:UUID? = null
@DataMember(Name="name", IsRequired=true)
@SerializedName("name")
open var Name:String? = null
@DataMember(Name="externalId")
@SerializedName("externalId")
open var ExternalId:String? = null
@DataMember(Name="tiers", IsRequired=true)
@SerializedName("tiers")
open var Tiers:ArrayList<PackageTierDto> = ArrayList<PackageTierDto>()
@DataMember(Name="plans", IsRequired=true)
@SerializedName("plans")
open var Plans:ArrayList<PackagePlanDto> = ArrayList<PackagePlanDto>()
@DataMember(Name="chargePlans", IsRequired=true)
@SerializedName("chargePlans")
open var ChargePlans:ArrayList<PackageChargePlanDto> = ArrayList<PackageChargePlanDto>()
@DataMember(Name="salesChannels", IsRequired=true)
@SerializedName("salesChannels")
open var SalesChannels:ArrayList<PackageSalesChannelDto> = ArrayList<PackageSalesChannelDto>()
@DataMember(Name="targetGroups", IsRequired=true)
@SerializedName("targetGroups")
open var TargetGroups:ArrayList<PackageTargetGroupDto> = ArrayList<PackageTargetGroupDto>()
@DataMember(Name="scheduledChanges", IsRequired=true)
@SerializedName("scheduledChanges")
open var ScheduledChanges:ArrayList<PackageScheduledChangeResult> = ArrayList<PackageScheduledChangeResult>()
}
enum class PackageStatusEnum
{
Draft,
Staged,
Published,
Archived,
Discarded,
}
@DataContract(Name="PackageTierDto")
open class PackageTierDto
{
@DataMember(Name="id", IsRequired=true)
@SerializedName("id")
open var Id:UUID? = null
@DataMember(Name="name", IsRequired=true)
@SerializedName("name")
open var Name:String? = null
@DataMember(Name="externalId")
@SerializedName("externalId")
open var ExternalId:String? = null
@DataMember(Name="productGroups", EmitDefaultValue=false)
@SerializedName("productGroups")
open var ProductGroups:ArrayList<PackageProductGroupDto> = ArrayList<PackageProductGroupDto>()
}
@DataContract(Name="PackageProductGroupDto")
open class PackageProductGroupDto
{
@DataMember(Name="productGroupType", IsRequired=true)
@SerializedName("productGroupType")
open var ProductGroupType:ProductGroupTypeEnum? = null
@DataMember(Name="id", IsRequired=true)
@SerializedName("id")
open var Id:UUID? = null
@DataMember(Name="name", IsRequired=true)
@SerializedName("name")
open var Name:String? = null
@DataMember(Name="externalId")
@SerializedName("externalId")
open var ExternalId:String? = null
@DataMember(Name="tags", EmitDefaultValue=false)
@SerializedName("tags")
open var Tags:ArrayList<ProductGroupTagDto> = ArrayList<ProductGroupTagDto>()
@DataMember(Name="products", EmitDefaultValue=false)
@SerializedName("products")
open var Products:ArrayList<PackageProductDto> = ArrayList<PackageProductDto>()
}
enum class ProductGroupTypeEnum
{
Optional,
Included,
}
@DataContract(Name="ProductGroupTagDto")
open class ProductGroupTagDto
{
@DataMember(Name="type", IsRequired=true)
@SerializedName("type")
open var Type:TypeEnum? = null
@DataMember(Name="tag", IsRequired=true)
@SerializedName("tag")
open var Tag:String? = null
}
enum class TypeEnum
{
AtSubscriptionBillingPeriodEnd,
AtBindingPeriodEnd,
}
@DataContract(Name="PackageProductDto")
open class PackageProductDto
{
@DataMember(Name="type", IsRequired=true)
@SerializedName("type")
open var ProductType:ProductTypeEnum? = null
@DataMember(Name="status", IsRequired=true)
@SerializedName("status")
open var Status:StatusEnum? = null
@DataMember(Name="id", IsRequired=true)
@SerializedName("id")
open var Id:UUID? = null
@DataMember(Name="name", IsRequired=true)
@SerializedName("name")
open var Name:String? = null
@DataMember(Name="externalId")
@SerializedName("externalId")
open var ExternalId:String? = null
@DataMember(Name="articleNumber")
@SerializedName("articleNumber")
open var ArticleNumber:String? = null
}
enum class ProductTypeEnum
{
Main,
Addon,
License,
Usage,
}
enum class StatusEnum
{
Active,
Terminated,
}
@DataContract(Name="PackagePlanDto")
open class PackagePlanDto
{
@DataMember(Name="id", IsRequired=true)
@SerializedName("id")
open var Id:UUID? = null
@DataMember(Name="name", IsRequired=true)
@SerializedName("name")
open var Name:String? = null
@DataMember(Name="externalId")
@SerializedName("externalId")
open var ExternalId:String? = null
@DataMember(Name="bindingPeriodCycle", IsRequired=true)
@SerializedName("bindingPeriodCycle")
open var BindingPeriodCycle:BindingPeriodCycleDto? = null
@DataMember(Name="subscriptionBillingPeriodCycle", IsRequired=true)
@SerializedName("subscriptionBillingPeriodCycle")
open var SubscriptionBillingPeriodCycle:BillingPeriodCycleDto? = null
@DataMember(Name="usageBillingPeriodCycle", IsRequired=true)
@SerializedName("usageBillingPeriodCycle")
open var UsageBillingPeriodCycle:BillingPeriodCycleDto? = null
}
@DataContract(Name="BindingPeriodCycleDto")
open class BindingPeriodCycleDto
{
@DataMember(Name="periodEndAction", IsRequired=true)
@SerializedName("periodEndAction")
open var PeriodEndAction:PeriodEndActionEnum? = null
@DataMember(Name="length", IsRequired=true)
@SerializedName("length")
open var Length:TimeLengthDto? = null
}
enum class PeriodEndActionEnum
{
Renew,
Terminate,
}
@DataContract(Name="TimeLengthDto")
open class TimeLengthDto
{
@DataMember(Name="unit", IsRequired=true)
@SerializedName("unit")
open var Unit:UnitEnum? = null
@DataMember(Name="value", EmitDefaultValue=false)
@SerializedName("value")
open var Value:Int? = null
}
enum class UnitEnum
{
Day,
Month,
Year,
}
@DataContract(Name="BillingPeriodCycleDto")
open class BillingPeriodCycleDto
{
@DataMember(Name="length", IsRequired=true)
@SerializedName("length")
open var Length:TimeLengthDto? = null
@DataMember(Name="invoiceDateOffset", IsRequired=true)
@SerializedName("invoiceDateOffset")
open var InvoiceDateOffset:PeriodDateOffsetDto? = null
@DataMember(Name="renewalDateOffset", IsRequired=true)
@SerializedName("renewalDateOffset")
open var RenewalDateOffset:PeriodDateOffsetDto? = null
}
@DataContract(Name="PeriodDateOffsetDto")
open class PeriodDateOffsetDto
{
@DataMember(Name="periodAnchor", IsRequired=true)
@SerializedName("periodAnchor")
open var PeriodAnchor:PeriodAnchorEnum? = null
@DataMember(Name="length", IsRequired=true)
@SerializedName("length")
open var Length:TimeLengthDto? = null
@DataMember(Name="valueAnchor")
@SerializedName("valueAnchor")
open var ValueAnchor:Int? = null
}
enum class PeriodAnchorEnum
{
PeriodCreated,
PeriodStart,
PeriodEnd,
}
@DataContract(Name="PackageChargePlanDto")
open class PackageChargePlanDto
{
@DataMember(Name="id", IsRequired=true)
@SerializedName("id")
open var Id:UUID? = null
@DataMember(Name="tierId", IsRequired=true)
@SerializedName("tierId")
open var TierId:UUID? = null
@DataMember(Name="planId", IsRequired=true)
@SerializedName("planId")
open var PlanId:UUID? = null
@DataMember(Name="productGroupPricings", IsRequired=true)
@SerializedName("productGroupPricings")
open var ProductGroupPricings:ArrayList<ProductGroupPricingDto> = ArrayList<ProductGroupPricingDto>()
}
@DataContract(Name="ProductGroupPricingDto")
open class ProductGroupPricingDto
{
@DataMember(Name="productGroupId", IsRequired=true)
@SerializedName("productGroupId")
open var ProductGroupId:UUID? = null
@DataMember(Name="articleNumber", IsRequired=true)
@SerializedName("articleNumber")
open var ArticleNumber:String? = null
@DataMember(Name="price", EmitDefaultValue=false)
@SerializedName("price")
open var Price:Double? = null
@DataMember(Name="productPricings", EmitDefaultValue=false)
@SerializedName("productPricings")
open var ProductPricings:ArrayList<ProductPricingDto> = ArrayList<ProductPricingDto>()
}
@DataContract(Name="ProductPricingDto")
open class ProductPricingDto
{
@DataMember(Name="pricingScheme", IsRequired=true)
@SerializedName("pricingScheme")
open var PricingScheme:PricingSchemeEnum? = null
@DataMember(Name="productId", IsRequired=true)
@SerializedName("productId")
open var ProductId:UUID? = null
@DataMember(Name="includedQuantity")
@SerializedName("includedQuantity")
open var IncludedQuantity:Int? = null
@DataMember(Name="maxQuantity")
@SerializedName("maxQuantity")
open var MaxQuantity:Int? = null
@DataMember(Name="unitPrice")
@SerializedName("unitPrice")
open var UnitPrice:Double? = null
@DataMember(Name="tierPricing", EmitDefaultValue=false)
@SerializedName("tierPricing")
open var TierPricing:ArrayList<ProductTierPricingDto> = ArrayList<ProductTierPricingDto>()
@DataMember(Name="articleNumber")
@SerializedName("articleNumber")
open var ArticleNumber:String? = null
}
enum class PricingSchemeEnum
{
UnitPricing,
TierPricing,
}
@DataContract(Name="ProductTierPricingDto")
open class ProductTierPricingDto
{
@DataMember(Name="index", EmitDefaultValue=false)
@SerializedName("index")
open var Index:Int? = null
@DataMember(Name="unitPrice", EmitDefaultValue=false)
@SerializedName("unitPrice")
open var UnitPrice:Double? = null
@DataMember(Name="flatPrice", EmitDefaultValue=false)
@SerializedName("flatPrice")
open var FlatPrice:Double? = null
@DataMember(Name="repeatEvery")
@SerializedName("repeatEvery")
open var RepeatEvery:Int? = null
@DataMember(Name="upperLimit")
@SerializedName("upperLimit")
open var UpperLimit:Int? = null
}
@DataContract(Name="PackageSalesChannelDto")
open class PackageSalesChannelDto
{
@DataMember(Name="id", IsRequired=true)
@SerializedName("id")
open var Id:UUID? = null
@DataMember(Name="name", IsRequired=true)
@SerializedName("name")
open var Name:String? = null
@DataMember(Name="description")
@SerializedName("description")
open var Description:String? = null
@DataMember(Name="validFrom")
@SerializedName("validFrom")
open var ValidFrom:Date? = null
@DataMember(Name="validTo")
@SerializedName("validTo")
open var ValidTo:Date? = null
}
@DataContract(Name="PackageTargetGroupDto")
open class PackageTargetGroupDto
{
@DataMember(Name="id", IsRequired=true)
@SerializedName("id")
open var Id:UUID? = null
@DataMember(Name="name", IsRequired=true)
@SerializedName("name")
open var Name:String? = null
@DataMember(Name="isDefault")
@SerializedName("isDefault")
open var IsDefault:Boolean? = null
@DataMember(Name="externalId")
@SerializedName("externalId")
open var ExternalId:String? = null
}
@DataContract(Name="PackageScheduledChangeResult")
open class PackageScheduledChangeResult
{
@DataMember(Name="status", IsRequired=true)
@SerializedName("status")
open var Status:StatusEnum? = null
@DataMember(Name="id", IsRequired=true)
@SerializedName("id")
open var Id:UUID? = null
@DataMember(Name="versionId", IsRequired=true)
@SerializedName("versionId")
open var VersionId:UUID? = null
@DataMember(Name="package", EmitDefaultValue=false)
@SerializedName("package")
open var Package:PackageScheduledChangeResultDto? = null
@DataMember(Name="scheduledDate", IsRequired=true)
@SerializedName("scheduledDate")
open var ScheduledDate:Date? = null
}
@DataContract(Name="PackageScheduledChangeResultDto")
open class PackageScheduledChangeResultDto
{
@DataMember(Name="status")
@SerializedName("status")
open var Status:PackageStatusEnum? = null
@DataMember(Name="name")
@SerializedName("name")
open var Name:String? = null
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
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/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<PackageResult xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BokaMera.VossIntegration.ApiTools.Model">
<chargePlans>
<PackageChargePlanDto i:nil="true" />
</chargePlans>
<externalId>String</externalId>
<id>00000000-0000-0000-0000-000000000000</id>
<name>String</name>
<plans>
<PackagePlanDto i:nil="true" />
</plans>
<salesChannels>
<PackageSalesChannelDto i:nil="true" />
</salesChannels>
<scheduledChanges>
<PackageScheduledChangeResult i:nil="true" />
</scheduledChanges>
<sourceVersionId>00000000-0000-0000-0000-000000000000</sourceVersionId>
<status>Draft</status>
<targetGroups>
<PackageTargetGroupDto i:nil="true" />
</targetGroups>
<tiers>
<PackageTierDto i:nil="true" />
</tiers>
<versionId>00000000-0000-0000-0000-000000000000</versionId>
</PackageResult>