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 .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 /Product HTTP/1.1 
Host: account.servicestack.net 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	id: 0,
	name: String,
	createdDate: 0001-01-01,
	modifiedDate: 0001-01-01,
	skus: 
	[
		{
			id: 0,
			productId: 0,
			type: Product,
			feature: 0,
			code: String,
			name: String,
			notes: String,
			maxQty: 0,
			price: 0,
			plan: String,
			discountOff: 0,
			discountLabelOff: String,
			actualPrice: 0,
			isPlan: False,
			isRenewal: False,
			subscriptionDurationDays: 0,
			expiryDurationDays: 0,
			trialPeriodDays: 0,
			supportQty: 0,
			coresQty: 0,
			createdDate: 0001-01-01,
			modifiedDate: 0001-01-01,
			licenseType: Free,
			active: False
		}
	],
	active: False
}