BokaMera.API.Host

<back to all web services

GetVossPackage

The following routes are available for this service:
GET/voss/packagesget voss package
// @ts-nocheck

export enum PackageStatusEnum
{
    Draft = 'Draft',
    Staged = 'Staged',
    Published = 'Published',
    Archived = 'Archived',
    Discarded = 'Discarded',
}

export enum ProductGroupTypeEnum
{
    Optional = 'Optional',
    Included = 'Included',
}

export enum TypeEnum
{
    AtSubscriptionBillingPeriodEnd = 'AtSubscriptionBillingPeriodEnd',
    AtBindingPeriodEnd = 'AtBindingPeriodEnd',
}

// @DataContract(Name="ProductGroupTagDto")
export class ProductGroupTagDto
{
    // @DataMember(Name="type", IsRequired=true)
    public type: TypeEnum;

    // @DataMember(Name="tag", IsRequired=true)
    public tag: string;

    public constructor(init?: Partial<ProductGroupTagDto>) { (Object as any).assign(this, init); }
}

export enum ProductTypeEnum
{
    Main = 'Main',
    Addon = 'Addon',
    License = 'License',
    Usage = 'Usage',
}

export enum StatusEnum
{
    Active = 'Active',
    Terminated = 'Terminated',
}

// @DataContract(Name="PackageProductDto")
export class PackageProductDto
{
    // @DataMember(Name="type", IsRequired=true)
    public type: ProductTypeEnum;

    // @DataMember(Name="status", IsRequired=true)
    public status: StatusEnum;

    // @DataMember(Name="id", IsRequired=true)
    public id: string;

    // @DataMember(Name="name", IsRequired=true)
    public name: string;

    // @DataMember(Name="externalId")
    public externalId: string;

    // @DataMember(Name="articleNumber")
    public articleNumber: string;

    public constructor(init?: Partial<PackageProductDto>) { (Object as any).assign(this, init); }
}

// @DataContract(Name="PackageProductGroupDto")
export class PackageProductGroupDto
{
    // @DataMember(Name="productGroupType", IsRequired=true)
    public productGroupType: ProductGroupTypeEnum;

    // @DataMember(Name="id", IsRequired=true)
    public id: string;

    // @DataMember(Name="name", IsRequired=true)
    public name: string;

    // @DataMember(Name="externalId")
    public externalId: string;

    // @DataMember(Name="tags", EmitDefaultValue=false)
    public tags: ProductGroupTagDto[] = [];

    // @DataMember(Name="products", EmitDefaultValue=false)
    public products: PackageProductDto[] = [];

    public constructor(init?: Partial<PackageProductGroupDto>) { (Object as any).assign(this, init); }
}

// @DataContract(Name="PackageTierDto")
export class PackageTierDto
{
    // @DataMember(Name="id", IsRequired=true)
    public id: string;

    // @DataMember(Name="name", IsRequired=true)
    public name: string;

    // @DataMember(Name="externalId")
    public externalId: string;

    // @DataMember(Name="productGroups", EmitDefaultValue=false)
    public productGroups: PackageProductGroupDto[] = [];

    public constructor(init?: Partial<PackageTierDto>) { (Object as any).assign(this, init); }
}

export enum PeriodEndActionEnum
{
    Renew = 'Renew',
    Terminate = 'Terminate',
}

export enum UnitEnum
{
    Day = 'Day',
    Month = 'Month',
    Year = 'Year',
}

// @DataContract(Name="TimeLengthDto")
export class TimeLengthDto
{
    // @DataMember(Name="unit", IsRequired=true)
    public unit: UnitEnum;

    // @DataMember(Name="value", EmitDefaultValue=false)
    public value: number;

    public constructor(init?: Partial<TimeLengthDto>) { (Object as any).assign(this, init); }
}

// @DataContract(Name="BindingPeriodCycleDto")
export class BindingPeriodCycleDto
{
    // @DataMember(Name="periodEndAction", IsRequired=true)
    public periodEndAction: PeriodEndActionEnum;

    // @DataMember(Name="length", IsRequired=true)
    public length: TimeLengthDto;

    public constructor(init?: Partial<BindingPeriodCycleDto>) { (Object as any).assign(this, init); }
}

export enum PeriodAnchorEnum
{
    PeriodCreated = 'PeriodCreated',
    PeriodStart = 'PeriodStart',
    PeriodEnd = 'PeriodEnd',
}

// @DataContract(Name="PeriodDateOffsetDto")
export class PeriodDateOffsetDto
{
    // @DataMember(Name="periodAnchor", IsRequired=true)
    public periodAnchor: PeriodAnchorEnum;

    // @DataMember(Name="length", IsRequired=true)
    public length: TimeLengthDto;

    // @DataMember(Name="valueAnchor")
    public valueAnchor?: number;

    public constructor(init?: Partial<PeriodDateOffsetDto>) { (Object as any).assign(this, init); }
}

// @DataContract(Name="BillingPeriodCycleDto")
export class BillingPeriodCycleDto
{
    // @DataMember(Name="length", IsRequired=true)
    public length: TimeLengthDto;

    // @DataMember(Name="invoiceDateOffset", IsRequired=true)
    public invoiceDateOffset: PeriodDateOffsetDto;

    // @DataMember(Name="renewalDateOffset", IsRequired=true)
    public renewalDateOffset: PeriodDateOffsetDto;

    public constructor(init?: Partial<BillingPeriodCycleDto>) { (Object as any).assign(this, init); }
}

// @DataContract(Name="PackagePlanDto")
export class PackagePlanDto
{
    // @DataMember(Name="id", IsRequired=true)
    public id: string;

    // @DataMember(Name="name", IsRequired=true)
    public name: string;

    // @DataMember(Name="externalId")
    public externalId: string;

    // @DataMember(Name="bindingPeriodCycle", IsRequired=true)
    public bindingPeriodCycle: BindingPeriodCycleDto;

    // @DataMember(Name="subscriptionBillingPeriodCycle", IsRequired=true)
    public subscriptionBillingPeriodCycle: BillingPeriodCycleDto;

    // @DataMember(Name="usageBillingPeriodCycle", IsRequired=true)
    public usageBillingPeriodCycle: BillingPeriodCycleDto;

    public constructor(init?: Partial<PackagePlanDto>) { (Object as any).assign(this, init); }
}

export enum PricingSchemeEnum
{
    UnitPricing = 'UnitPricing',
    TierPricing = 'TierPricing',
}

// @DataContract(Name="ProductTierPricingDto")
export class ProductTierPricingDto
{
    // @DataMember(Name="index", EmitDefaultValue=false)
    public index: number;

    // @DataMember(Name="unitPrice", EmitDefaultValue=false)
    public unitPrice: number;

    // @DataMember(Name="flatPrice", EmitDefaultValue=false)
    public flatPrice: number;

    // @DataMember(Name="repeatEvery")
    public repeatEvery?: number;

    // @DataMember(Name="upperLimit")
    public upperLimit?: number;

    public constructor(init?: Partial<ProductTierPricingDto>) { (Object as any).assign(this, init); }
}

// @DataContract(Name="ProductPricingDto")
export class ProductPricingDto
{
    // @DataMember(Name="pricingScheme", IsRequired=true)
    public pricingScheme: PricingSchemeEnum;

    // @DataMember(Name="productId", IsRequired=true)
    public productId: string;

    // @DataMember(Name="includedQuantity")
    public includedQuantity?: number;

    // @DataMember(Name="maxQuantity")
    public maxQuantity?: number;

    // @DataMember(Name="unitPrice")
    public unitPrice?: number;

    // @DataMember(Name="tierPricing", EmitDefaultValue=false)
    public tierPricing: ProductTierPricingDto[] = [];

    // @DataMember(Name="articleNumber")
    public articleNumber: string;

    public constructor(init?: Partial<ProductPricingDto>) { (Object as any).assign(this, init); }
}

// @DataContract(Name="ProductGroupPricingDto")
export class ProductGroupPricingDto
{
    // @DataMember(Name="productGroupId", IsRequired=true)
    public productGroupId: string;

    // @DataMember(Name="articleNumber", IsRequired=true)
    public articleNumber: string;

    // @DataMember(Name="price", EmitDefaultValue=false)
    public price: number;

    // @DataMember(Name="productPricings", EmitDefaultValue=false)
    public productPricings: ProductPricingDto[] = [];

    public constructor(init?: Partial<ProductGroupPricingDto>) { (Object as any).assign(this, init); }
}

// @DataContract(Name="PackageChargePlanDto")
export class PackageChargePlanDto
{
    // @DataMember(Name="id", IsRequired=true)
    public id: string;

    // @DataMember(Name="tierId", IsRequired=true)
    public tierId: string;

    // @DataMember(Name="planId", IsRequired=true)
    public planId: string;

    // @DataMember(Name="productGroupPricings", IsRequired=true)
    public productGroupPricings: ProductGroupPricingDto[] = [];

    public constructor(init?: Partial<PackageChargePlanDto>) { (Object as any).assign(this, init); }
}

// @DataContract(Name="PackageSalesChannelDto")
export class PackageSalesChannelDto
{
    // @DataMember(Name="id", IsRequired=true)
    public id: string;

    // @DataMember(Name="name", IsRequired=true)
    public name: string;

    // @DataMember(Name="description")
    public description: string;

    // @DataMember(Name="validFrom")
    public validFrom?: string;

    // @DataMember(Name="validTo")
    public validTo?: string;

    public constructor(init?: Partial<PackageSalesChannelDto>) { (Object as any).assign(this, init); }
}

// @DataContract(Name="PackageTargetGroupDto")
export class PackageTargetGroupDto
{
    // @DataMember(Name="id", IsRequired=true)
    public id: string;

    // @DataMember(Name="name", IsRequired=true)
    public name: string;

    // @DataMember(Name="isDefault")
    public isDefault: boolean;

    // @DataMember(Name="externalId")
    public externalId: string;

    public constructor(init?: Partial<PackageTargetGroupDto>) { (Object as any).assign(this, init); }
}

// @DataContract(Name="PackageScheduledChangeResultDto")
export class PackageScheduledChangeResultDto
{
    // @DataMember(Name="status")
    public status?: PackageStatusEnum;

    // @DataMember(Name="name")
    public name: string;

    public constructor(init?: Partial<PackageScheduledChangeResultDto>) { (Object as any).assign(this, init); }
}

// @DataContract(Name="PackageScheduledChangeResult")
export class PackageScheduledChangeResult
{
    // @DataMember(Name="status", IsRequired=true)
    public status: StatusEnum;

    // @DataMember(Name="id", IsRequired=true)
    public id: string;

    // @DataMember(Name="versionId", IsRequired=true)
    public versionId: string;

    // @DataMember(Name="package", EmitDefaultValue=false)
    public package: PackageScheduledChangeResultDto;

    // @DataMember(Name="scheduledDate", IsRequired=true)
    public scheduledDate: string;

    public constructor(init?: Partial<PackageScheduledChangeResult>) { (Object as any).assign(this, init); }
}

// @DataContract(Name="PackageResult")
export class PackageResult
{
    // @DataMember(Name="status", IsRequired=true)
    public status: PackageStatusEnum;

    // @DataMember(Name="id", IsRequired=true)
    public id: string;

    // @DataMember(Name="versionId", IsRequired=true)
    public versionId: string;

    // @DataMember(Name="sourceVersionId")
    public sourceVersionId?: string;

    // @DataMember(Name="name", IsRequired=true)
    public name: string;

    // @DataMember(Name="externalId")
    public externalId: string;

    // @DataMember(Name="tiers", IsRequired=true)
    public tiers: PackageTierDto[] = [];

    // @DataMember(Name="plans", IsRequired=true)
    public plans: PackagePlanDto[] = [];

    // @DataMember(Name="chargePlans", IsRequired=true)
    public chargePlans: PackageChargePlanDto[] = [];

    // @DataMember(Name="salesChannels", IsRequired=true)
    public salesChannels: PackageSalesChannelDto[] = [];

    // @DataMember(Name="targetGroups", IsRequired=true)
    public targetGroups: PackageTargetGroupDto[] = [];

    // @DataMember(Name="scheduledChanges", IsRequired=true)
    public scheduledChanges: PackageScheduledChangeResult[] = [];

    public constructor(init?: Partial<PackageResult>) { (Object as any).assign(this, init); }
}

// @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
export class GetVossPackage
{
    /** @description 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 PackageId?: string;

    public constructor(init?: Partial<GetVossPackage>) { (Object as any).assign(this, init); }
}

TypeScript GetVossPackage DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

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/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	status: Draft,
	sourceVersionId: 00000000-0000-0000-0000-000000000000,
	name: String,
	externalId: String,
	tiers: 
	[
		{
			
		}
	],
	plans: 
	[
		{
			
		}
	],
	chargePlans: 
	[
		{
			
		}
	],
	salesChannels: 
	[
		{
			
		}
	],
	targetGroups: 
	[
		{
			
		}
	],
	scheduledChanges: 
	[
		{
			
		}
	]
}