| GET | /voss/packages | get voss package |
|---|
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using BokaMera.API.ServiceModel.Dtos;
using BokaMera.VossIntegration.ApiTools.Model;
using BokaMera.VossIntegration.ApiTools.Enums;
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 virtual Guid? PackageId { get; set; }
}
}
namespace BokaMera.VossIntegration.ApiTools.Enums
{
public enum PackageStatusEnum
{
Draft,
Staged,
Published,
Archived,
Discarded,
}
public enum ProductGroupTypeEnum
{
Optional,
Included,
}
public enum ProductTypeEnum
{
Main,
Addon,
License,
Usage,
}
}
namespace BokaMera.VossIntegration.ApiTools.Model
{
[DataContract(Name="BillingPeriodCycleDto")]
public partial class BillingPeriodCycleDto
{
[DataMember(Name="length", IsRequired=true)]
public virtual TimeLengthDto Length { get; set; }
[DataMember(Name="invoiceDateOffset", IsRequired=true)]
public virtual PeriodDateOffsetDto InvoiceDateOffset { get; set; }
[DataMember(Name="renewalDateOffset", IsRequired=true)]
public virtual PeriodDateOffsetDto RenewalDateOffset { get; set; }
}
[DataContract(Name="BindingPeriodCycleDto")]
public partial class BindingPeriodCycleDto
{
[DataMember(Name="periodEndAction", IsRequired=true)]
public virtual PeriodEndActionEnum PeriodEndAction { get; set; }
[DataMember(Name="length", IsRequired=true)]
public virtual TimeLengthDto Length { get; set; }
public enum PeriodEndActionEnum
{
Renew,
Terminate,
}
}
[DataContract(Name="PackageChargePlanDto")]
public partial class PackageChargePlanDto
{
[DataMember(Name="id", IsRequired=true)]
public virtual Guid Id { get; set; }
[DataMember(Name="tierId", IsRequired=true)]
public virtual Guid TierId { get; set; }
[DataMember(Name="planId", IsRequired=true)]
public virtual Guid PlanId { get; set; }
[DataMember(Name="productGroupPricings", IsRequired=true)]
public virtual List<ProductGroupPricingDto> ProductGroupPricings { get; set; } = [];
}
[DataContract(Name="PackagePlanDto")]
public partial class PackagePlanDto
{
[DataMember(Name="id", IsRequired=true)]
public virtual Guid Id { get; set; }
[DataMember(Name="name", IsRequired=true)]
public virtual string Name { get; set; }
[DataMember(Name="externalId")]
public virtual string ExternalId { get; set; }
[DataMember(Name="bindingPeriodCycle", IsRequired=true)]
public virtual BindingPeriodCycleDto BindingPeriodCycle { get; set; }
[DataMember(Name="subscriptionBillingPeriodCycle", IsRequired=true)]
public virtual BillingPeriodCycleDto SubscriptionBillingPeriodCycle { get; set; }
[DataMember(Name="usageBillingPeriodCycle", IsRequired=true)]
public virtual BillingPeriodCycleDto UsageBillingPeriodCycle { get; set; }
}
[DataContract(Name="PackageProductDto")]
public partial class PackageProductDto
{
[DataMember(Name="type", IsRequired=true)]
public virtual ProductTypeEnum ProductType { get; set; }
[DataMember(Name="status", IsRequired=true)]
public virtual StatusEnum Status { get; set; }
[DataMember(Name="id", IsRequired=true)]
public virtual Guid Id { get; set; }
[DataMember(Name="name", IsRequired=true)]
public virtual string Name { get; set; }
[DataMember(Name="externalId")]
public virtual string ExternalId { get; set; }
[DataMember(Name="articleNumber")]
public virtual string ArticleNumber { get; set; }
public enum StatusEnum
{
Active,
Terminated,
}
}
[DataContract(Name="PackageProductGroupDto")]
public partial class PackageProductGroupDto
{
[DataMember(Name="productGroupType", IsRequired=true)]
public virtual ProductGroupTypeEnum ProductGroupType { get; set; }
[DataMember(Name="id", IsRequired=true)]
public virtual Guid Id { get; set; }
[DataMember(Name="name", IsRequired=true)]
public virtual string Name { get; set; }
[DataMember(Name="externalId")]
public virtual string ExternalId { get; set; }
[DataMember(Name="tags", EmitDefaultValue=false)]
public virtual List<ProductGroupTagDto> Tags { get; set; } = [];
[DataMember(Name="products", EmitDefaultValue=false)]
public virtual List<PackageProductDto> Products { get; set; } = [];
}
[DataContract(Name="PackageResult")]
public partial class PackageResult
{
[DataMember(Name="status", IsRequired=true)]
public virtual PackageStatusEnum PackageStatus { get; set; }
[DataMember(Name="id", IsRequired=true)]
public virtual Guid Id { get; set; }
[DataMember(Name="versionId", IsRequired=true)]
public virtual Guid VersionId { get; set; }
[DataMember(Name="sourceVersionId")]
public virtual Guid? SourceVersionId { get; set; }
[DataMember(Name="name", IsRequired=true)]
public virtual string Name { get; set; }
[DataMember(Name="externalId")]
public virtual string ExternalId { get; set; }
[DataMember(Name="tiers", IsRequired=true)]
public virtual List<PackageTierDto> Tiers { get; set; } = [];
[DataMember(Name="plans", IsRequired=true)]
public virtual List<PackagePlanDto> Plans { get; set; } = [];
[DataMember(Name="chargePlans", IsRequired=true)]
public virtual List<PackageChargePlanDto> ChargePlans { get; set; } = [];
[DataMember(Name="salesChannels", IsRequired=true)]
public virtual List<PackageSalesChannelDto> SalesChannels { get; set; } = [];
[DataMember(Name="targetGroups", IsRequired=true)]
public virtual List<PackageTargetGroupDto> TargetGroups { get; set; } = [];
[DataMember(Name="scheduledChanges", IsRequired=true)]
public virtual List<PackageScheduledChangeResult> ScheduledChanges { get; set; } = [];
}
[DataContract(Name="PackageSalesChannelDto")]
public partial class PackageSalesChannelDto
{
[DataMember(Name="id", IsRequired=true)]
public virtual Guid Id { get; set; }
[DataMember(Name="name", IsRequired=true)]
public virtual string Name { get; set; }
[DataMember(Name="description")]
public virtual string Description { get; set; }
[DataMember(Name="validFrom")]
public virtual DateTime? ValidFrom { get; set; }
[DataMember(Name="validTo")]
public virtual DateTime? ValidTo { get; set; }
}
[DataContract(Name="PackageScheduledChangeResult")]
public partial class PackageScheduledChangeResult
{
[DataMember(Name="status", IsRequired=true)]
public virtual StatusEnum Status { get; set; }
[DataMember(Name="id", IsRequired=true)]
public virtual Guid Id { get; set; }
[DataMember(Name="versionId", IsRequired=true)]
public virtual Guid VersionId { get; set; }
[DataMember(Name="package", EmitDefaultValue=false)]
public virtual PackageScheduledChangeResultDto Package { get; set; }
[DataMember(Name="scheduledDate", IsRequired=true)]
public virtual DateTime ScheduledDate { get; set; }
public enum StatusEnum
{
Active,
Terminated,
}
}
[DataContract(Name="PackageScheduledChangeResultDto")]
public partial class PackageScheduledChangeResultDto
{
[DataMember(Name="status")]
public virtual PackageStatusEnum? Status { get; set; }
[DataMember(Name="name")]
public virtual string Name { get; set; }
}
[DataContract(Name="PackageTargetGroupDto")]
public partial class PackageTargetGroupDto
{
[DataMember(Name="id", IsRequired=true)]
public virtual Guid Id { get; set; }
[DataMember(Name="name", IsRequired=true)]
public virtual string Name { get; set; }
[DataMember(Name="isDefault")]
public virtual bool IsDefault { get; set; }
[DataMember(Name="externalId")]
public virtual string ExternalId { get; set; }
}
[DataContract(Name="PackageTierDto")]
public partial class PackageTierDto
{
[DataMember(Name="id", IsRequired=true)]
public virtual Guid Id { get; set; }
[DataMember(Name="name", IsRequired=true)]
public virtual string Name { get; set; }
[DataMember(Name="externalId")]
public virtual string ExternalId { get; set; }
[DataMember(Name="productGroups", EmitDefaultValue=false)]
public virtual List<PackageProductGroupDto> ProductGroups { get; set; } = [];
}
[DataContract(Name="PeriodDateOffsetDto")]
public partial class PeriodDateOffsetDto
{
[DataMember(Name="periodAnchor", IsRequired=true)]
public virtual PeriodAnchorEnum PeriodAnchor { get; set; }
[DataMember(Name="length", IsRequired=true)]
public virtual TimeLengthDto Length { get; set; }
[DataMember(Name="valueAnchor")]
public virtual int? ValueAnchor { get; set; }
public enum PeriodAnchorEnum
{
PeriodCreated,
PeriodStart,
PeriodEnd,
}
}
[DataContract(Name="ProductGroupPricingDto")]
public partial class ProductGroupPricingDto
{
[DataMember(Name="productGroupId", IsRequired=true)]
public virtual Guid ProductGroupId { get; set; }
[DataMember(Name="articleNumber", IsRequired=true)]
public virtual string ArticleNumber { get; set; }
[DataMember(Name="price", EmitDefaultValue=false)]
public virtual double Price { get; set; }
[DataMember(Name="productPricings", EmitDefaultValue=false)]
public virtual List<ProductPricingDto> ProductPricings { get; set; } = [];
}
[DataContract(Name="ProductGroupTagDto")]
public partial class ProductGroupTagDto
{
[DataMember(Name="type", IsRequired=true)]
public virtual TypeEnum Type { get; set; }
[DataMember(Name="tag", IsRequired=true)]
public virtual string Tag { get; set; }
public enum TypeEnum
{
AtSubscriptionBillingPeriodEnd,
AtBindingPeriodEnd,
}
}
[DataContract(Name="ProductPricingDto")]
public partial class ProductPricingDto
{
[DataMember(Name="pricingScheme", IsRequired=true)]
public virtual PricingSchemeEnum PricingScheme { get; set; }
[DataMember(Name="productId", IsRequired=true)]
public virtual Guid ProductId { get; set; }
[DataMember(Name="includedQuantity")]
public virtual int? IncludedQuantity { get; set; }
[DataMember(Name="maxQuantity")]
public virtual int? MaxQuantity { get; set; }
[DataMember(Name="unitPrice")]
public virtual double? UnitPrice { get; set; }
[DataMember(Name="tierPricing", EmitDefaultValue=false)]
public virtual List<ProductTierPricingDto> TierPricing { get; set; } = [];
[DataMember(Name="articleNumber")]
public virtual string ArticleNumber { get; set; }
public enum PricingSchemeEnum
{
UnitPricing,
TierPricing,
}
}
[DataContract(Name="ProductTierPricingDto")]
public partial class ProductTierPricingDto
{
[DataMember(Name="index", EmitDefaultValue=false)]
public virtual int Index { get; set; }
[DataMember(Name="unitPrice", EmitDefaultValue=false)]
public virtual double UnitPrice { get; set; }
[DataMember(Name="flatPrice", EmitDefaultValue=false)]
public virtual double FlatPrice { get; set; }
[DataMember(Name="repeatEvery")]
public virtual int? RepeatEvery { get; set; }
[DataMember(Name="upperLimit")]
public virtual int? UpperLimit { get; set; }
}
[DataContract(Name="TimeLengthDto")]
public partial class TimeLengthDto
{
[DataMember(Name="unit", IsRequired=true)]
public virtual UnitEnum Unit { get; set; }
[DataMember(Name="value", EmitDefaultValue=false)]
public virtual int Value { get; set; }
public enum UnitEnum
{
Day,
Month,
Year,
}
}
}
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
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":[{}]}