ServiceStack Home (Live)

<back to all web services

Product

The following routes are available for this service:
GET/Product
GET/Product/{Id}

export enum SkuType
{
    Product = 'Product',
    PerDev = 'PerDev',
    PerCore = 'PerCore',
    Site = 'Site',
    Support = 'Support',
    Training = 'Training',
    Register = 'Register',
    Payment = 'Payment',
}

// @Flags()
export enum LicenseFeature
{
    None = 0,
    Free = 0,
    Premium = 1,
    Text = 2,
    Client = 4,
    Common = 8,
    Redis = 16,
    RedisSku = 18,
    OrmLite = 32,
    OrmLiteSku = 34,
    ServiceStack = 64,
    Server = 128,
    Razor = 256,
    Admin = 512,
    Aws = 1024,
    AwsSku = 1026,
    All = 2047,
}

export enum LicenseType
{
    Free = 'Free',
    FreeIndividual = 'FreeIndividual',
    FreeOpenSource = 'FreeOpenSource',
    Indie = 'Indie',
    Business = 'Business',
    Enterprise = 'Enterprise',
    TextIndie = 'TextIndie',
    TextBusiness = 'TextBusiness',
    OrmLiteIndie = 'OrmLiteIndie',
    OrmLiteBusiness = 'OrmLiteBusiness',
    RedisIndie = 'RedisIndie',
    RedisBusiness = 'RedisBusiness',
    AwsIndie = 'AwsIndie',
    AwsBusiness = 'AwsBusiness',
    Trial = 'Trial',
    Site = 'Site',
    TextSite = 'TextSite',
    RedisSite = 'RedisSite',
    OrmLiteSite = 'OrmLiteSite',
}

export class Sku
{
    public id: number;
    public productId: number;
    public type: SkuType;
    public feature: LicenseFeature;
    public code: string;
    public name: string;
    public notes: string;
    // @Ignore()
    public minQty?: number;

    public maxQty?: number;
    public price: number;
    public plan: string;
    public discountOff: number;
    public discountLabelOff: string;
    public actualPrice: number;
    public isPlan: boolean;
    public isRenewal: boolean;
    public subscriptionDurationDays?: number;
    public expiryDurationDays?: number;
    public trialPeriodDays?: number;
    public supportQty: number;
    public coresQty?: number;
    public createdDate: string;
    public modifiedDate: string;
    public licenseType: LicenseType;
    public active: boolean;

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

export class Product
{
    public id: number;
    public name: string;
    public createdDate: string;
    public modifiedDate: string;
    public skus: Sku[];
    public active: boolean;

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

TypeScript Product DTOs

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

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /Product HTTP/1.1 
Host: account.servicestack.net 
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<Product xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/MyApp.ServiceModel">
  <Active>false</Active>
  <CreatedDate>0001-01-01T00:00:00</CreatedDate>
  <Id>0</Id>
  <ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
  <Name>String</Name>
  <Skus>
    <Sku>
      <Active>false</Active>
      <Code>String</Code>
      <CoresQty>0</CoresQty>
      <CreatedDate>0001-01-01T00:00:00</CreatedDate>
      <DiscountLabelOff>String</DiscountLabelOff>
      <DiscountOff>0</DiscountOff>
      <ExpiryDurationDays>0</ExpiryDurationDays>
      <Feature>None</Feature>
      <Id>0</Id>
      <IsPlan>false</IsPlan>
      <IsRenewal>false</IsRenewal>
      <LicenseType>Free</LicenseType>
      <MaxQty>0</MaxQty>
      <ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
      <Name>String</Name>
      <Notes>String</Notes>
      <Plan>String</Plan>
      <Price>0</Price>
      <ProductId>0</ProductId>
      <SubscriptionDurationDays>0</SubscriptionDurationDays>
      <SupportQty>0</SupportQty>
      <TrialPeriodDays>0</TrialPeriodDays>
      <Type>Product</Type>
    </Sku>
  </Skus>
</Product>