Required role: | Admin |
import 'package:servicestack/servicestack.dart';
// @DataContract
abstract class QueryBase
{
// @DataMember(Order=1)
int? skip;
// @DataMember(Order=2)
int? take;
// @DataMember(Order=3)
String? orderBy;
// @DataMember(Order=4)
String? orderByDesc;
// @DataMember(Order=5)
String? include;
// @DataMember(Order=6)
String? fields;
// @DataMember(Order=7)
Map<String,String?>? meta;
QueryBase({this.skip,this.take,this.orderBy,this.orderByDesc,this.include,this.fields,this.meta});
QueryBase.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
skip = json['skip'];
take = json['take'];
orderBy = json['orderBy'];
orderByDesc = json['orderByDesc'];
include = json['include'];
fields = json['fields'];
meta = JsonConverters.toStringMap(json['meta']);
return this;
}
Map<String, dynamic> toJson() => {
'skip': skip,
'take': take,
'orderBy': orderBy,
'orderByDesc': orderByDesc,
'include': include,
'fields': fields,
'meta': meta
};
getTypeName() => "QueryBase";
TypeContext? context = _ctx;
}
abstract class QueryDb<T> extends QueryBase
{
QueryDb();
QueryDb.fromJson(Map<String, dynamic> json) : super.fromJson(json);
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
return this;
}
Map<String, dynamic> toJson() => super.toJson();
getTypeName() => "QueryDb<$T>";
TypeContext? context = _ctx;
}
enum SkuType
{
Product,
PerDev,
PerCore,
Site,
Support,
Training,
Register,
Payment,
}
// @flags()
class LicenseFeature
{
static const LicenseFeature None = const LicenseFeature._(0);
static const LicenseFeature Free = const LicenseFeature._(0);
static const LicenseFeature Premium = const LicenseFeature._(1);
static const LicenseFeature Text = const LicenseFeature._(2);
static const LicenseFeature Client = const LicenseFeature._(4);
static const LicenseFeature Common = const LicenseFeature._(8);
static const LicenseFeature Redis = const LicenseFeature._(16);
static const LicenseFeature RedisSku = const LicenseFeature._(18);
static const LicenseFeature OrmLite = const LicenseFeature._(32);
static const LicenseFeature OrmLiteSku = const LicenseFeature._(34);
static const LicenseFeature ServiceStack = const LicenseFeature._(64);
static const LicenseFeature Server = const LicenseFeature._(128);
static const LicenseFeature Razor = const LicenseFeature._(256);
static const LicenseFeature Admin = const LicenseFeature._(512);
static const LicenseFeature Aws = const LicenseFeature._(1024);
static const LicenseFeature AwsSku = const LicenseFeature._(1026);
static const LicenseFeature All = const LicenseFeature._(2047);
final int _value;
const LicenseFeature._(this._value);
int get value => _value;
static List<LicenseFeature> get values => const [None,Free,Premium,Text,Client,Common,Redis,RedisSku,OrmLite,OrmLiteSku,ServiceStack,Server,Razor,Admin,Aws,AwsSku,All];
}
enum LicenseType
{
Free,
FreeIndividual,
FreeOpenSource,
Indie,
Business,
Enterprise,
TextIndie,
TextBusiness,
OrmLiteIndie,
OrmLiteBusiness,
RedisIndie,
RedisBusiness,
AwsIndie,
AwsBusiness,
Trial,
Site,
TextSite,
RedisSite,
OrmLiteSite,
}
class Sku implements IConvertible
{
int? id;
int? productId;
SkuType? type;
LicenseFeature? feature;
String? code;
String? name;
String? notes;
// @ignore()
int? minQty;
int? maxQty;
int? price;
String? plan;
int? discountOff;
String? discountLabelOff;
int? actualPrice;
bool? isPlan;
bool? isRenewal;
int? subscriptionDurationDays;
int? expiryDurationDays;
int? trialPeriodDays;
int? supportQty;
int? coresQty;
DateTime? createdDate;
DateTime? modifiedDate;
LicenseType? licenseType;
bool? active;
Sku({this.id,this.productId,this.type,this.feature,this.code,this.name,this.notes,this.minQty,this.maxQty,this.price,this.plan,this.discountOff,this.discountLabelOff,this.actualPrice,this.isPlan,this.isRenewal,this.subscriptionDurationDays,this.expiryDurationDays,this.trialPeriodDays,this.supportQty,this.coresQty,this.createdDate,this.modifiedDate,this.licenseType,this.active});
Sku.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
productId = json['productId'];
type = JsonConverters.fromJson(json['type'],'SkuType',context!);
feature = JsonConverters.fromJson(json['feature'],'LicenseFeature',context!);
code = json['code'];
name = json['name'];
notes = json['notes'];
minQty = json['minQty'];
maxQty = json['maxQty'];
price = json['price'];
plan = json['plan'];
discountOff = json['discountOff'];
discountLabelOff = json['discountLabelOff'];
actualPrice = json['actualPrice'];
isPlan = json['isPlan'];
isRenewal = json['isRenewal'];
subscriptionDurationDays = json['subscriptionDurationDays'];
expiryDurationDays = json['expiryDurationDays'];
trialPeriodDays = json['trialPeriodDays'];
supportQty = json['supportQty'];
coresQty = json['coresQty'];
createdDate = JsonConverters.fromJson(json['createdDate'],'DateTime',context!);
modifiedDate = JsonConverters.fromJson(json['modifiedDate'],'DateTime',context!);
licenseType = JsonConverters.fromJson(json['licenseType'],'LicenseType',context!);
active = json['active'];
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'productId': productId,
'type': JsonConverters.toJson(type,'SkuType',context!),
'feature': JsonConverters.toJson(feature,'LicenseFeature',context!),
'code': code,
'name': name,
'notes': notes,
'minQty': minQty,
'maxQty': maxQty,
'price': price,
'plan': plan,
'discountOff': discountOff,
'discountLabelOff': discountLabelOff,
'actualPrice': actualPrice,
'isPlan': isPlan,
'isRenewal': isRenewal,
'subscriptionDurationDays': subscriptionDurationDays,
'expiryDurationDays': expiryDurationDays,
'trialPeriodDays': trialPeriodDays,
'supportQty': supportQty,
'coresQty': coresQty,
'createdDate': JsonConverters.toJson(createdDate,'DateTime',context!),
'modifiedDate': JsonConverters.toJson(modifiedDate,'DateTime',context!),
'licenseType': JsonConverters.toJson(licenseType,'LicenseType',context!),
'active': active
};
getTypeName() => "Sku";
TypeContext? context = _ctx;
}
class Product implements IConvertible
{
int? id;
String? name;
DateTime? createdDate;
DateTime? modifiedDate;
List<Sku>? skus;
bool? active;
Product({this.id,this.name,this.createdDate,this.modifiedDate,this.skus,this.active});
Product.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
name = json['name'];
createdDate = JsonConverters.fromJson(json['createdDate'],'DateTime',context!);
modifiedDate = JsonConverters.fromJson(json['modifiedDate'],'DateTime',context!);
skus = JsonConverters.fromJson(json['skus'],'List<Sku>',context!);
active = json['active'];
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'name': name,
'createdDate': JsonConverters.toJson(createdDate,'DateTime',context!),
'modifiedDate': JsonConverters.toJson(modifiedDate,'DateTime',context!),
'skus': JsonConverters.toJson(skus,'List<Sku>',context!),
'active': active
};
getTypeName() => "Product";
TypeContext? context = _ctx;
}
// @ValidateRequest(Validator="IsAdmin")
class QueryProducts extends QueryDb<Product> implements IConvertible
{
QueryProducts();
QueryProducts.fromJson(Map<String, dynamic> json) : super.fromJson(json);
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
return this;
}
Map<String, dynamic> toJson() => super.toJson();
getTypeName() => "QueryProducts";
TypeContext? context = _ctx;
}
class OrderDetail implements IConvertible
{
int? id;
int? orderId;
int? skuId;
SkuType? skuType;
int? price;
String? description;
int? quantity;
int? total;
OrderDetail({this.id,this.orderId,this.skuId,this.skuType,this.price,this.description,this.quantity,this.total});
OrderDetail.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
orderId = json['orderId'];
skuId = json['skuId'];
skuType = JsonConverters.fromJson(json['skuType'],'SkuType',context!);
price = json['price'];
description = json['description'];
quantity = json['quantity'];
total = json['total'];
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'orderId': orderId,
'skuId': skuId,
'skuType': JsonConverters.toJson(skuType,'SkuType',context!),
'price': price,
'description': description,
'quantity': quantity,
'total': total
};
getTypeName() => "OrderDetail";
TypeContext? context = _ctx;
}
class Order implements IAddress, IConvertible
{
int? id;
int? customerId;
String? productName;
String? firstName;
String? lastName;
String? email;
String? company;
String? phoneNumber;
String? addressLine1;
String? addressLine2;
String? addressCity;
String? addressZip;
String? addressState;
String? addressCountry;
bool? agreeTerms;
String? notes;
String? last4;
int? subTotal;
String? couponId;
int? discount;
int? tax;
int? total;
int? itemQuantity;
int? authorizedQuantity;
int? subscriptionId;
String? licenseRef;
int? paymentId;
int? emailId;
bool? paid;
DateTime? createdDate;
DateTime? modifiedDate;
String? modifiedBy;
DateTime? cancelledDate;
String? cancelledReason;
String? ipAddress;
List<OrderDetail>? orderDetails;
Order({this.id,this.customerId,this.productName,this.firstName,this.lastName,this.email,this.company,this.phoneNumber,this.addressLine1,this.addressLine2,this.addressCity,this.addressZip,this.addressState,this.addressCountry,this.agreeTerms,this.notes,this.last4,this.subTotal,this.couponId,this.discount,this.tax,this.total,this.itemQuantity,this.authorizedQuantity,this.subscriptionId,this.licenseRef,this.paymentId,this.emailId,this.paid,this.createdDate,this.modifiedDate,this.modifiedBy,this.cancelledDate,this.cancelledReason,this.ipAddress,this.orderDetails});
Order.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
customerId = json['customerId'];
productName = json['productName'];
firstName = json['firstName'];
lastName = json['lastName'];
email = json['email'];
company = json['company'];
phoneNumber = json['phoneNumber'];
addressLine1 = json['addressLine1'];
addressLine2 = json['addressLine2'];
addressCity = json['addressCity'];
addressZip = json['addressZip'];
addressState = json['addressState'];
addressCountry = json['addressCountry'];
agreeTerms = json['agreeTerms'];
notes = json['notes'];
last4 = json['last4'];
subTotal = json['subTotal'];
couponId = json['couponId'];
discount = json['discount'];
tax = json['tax'];
total = json['total'];
itemQuantity = json['itemQuantity'];
authorizedQuantity = json['authorizedQuantity'];
subscriptionId = json['subscriptionId'];
licenseRef = json['licenseRef'];
paymentId = json['paymentId'];
emailId = json['emailId'];
paid = json['paid'];
createdDate = JsonConverters.fromJson(json['createdDate'],'DateTime',context!);
modifiedDate = JsonConverters.fromJson(json['modifiedDate'],'DateTime',context!);
modifiedBy = json['modifiedBy'];
cancelledDate = JsonConverters.fromJson(json['cancelledDate'],'DateTime',context!);
cancelledReason = json['cancelledReason'];
ipAddress = json['ipAddress'];
orderDetails = JsonConverters.fromJson(json['orderDetails'],'List<OrderDetail>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'customerId': customerId,
'productName': productName,
'firstName': firstName,
'lastName': lastName,
'email': email,
'company': company,
'phoneNumber': phoneNumber,
'addressLine1': addressLine1,
'addressLine2': addressLine2,
'addressCity': addressCity,
'addressZip': addressZip,
'addressState': addressState,
'addressCountry': addressCountry,
'agreeTerms': agreeTerms,
'notes': notes,
'last4': last4,
'subTotal': subTotal,
'couponId': couponId,
'discount': discount,
'tax': tax,
'total': total,
'itemQuantity': itemQuantity,
'authorizedQuantity': authorizedQuantity,
'subscriptionId': subscriptionId,
'licenseRef': licenseRef,
'paymentId': paymentId,
'emailId': emailId,
'paid': paid,
'createdDate': JsonConverters.toJson(createdDate,'DateTime',context!),
'modifiedDate': JsonConverters.toJson(modifiedDate,'DateTime',context!),
'modifiedBy': modifiedBy,
'cancelledDate': JsonConverters.toJson(cancelledDate,'DateTime',context!),
'cancelledReason': cancelledReason,
'ipAddress': ipAddress,
'orderDetails': JsonConverters.toJson(orderDetails,'List<OrderDetail>',context!)
};
getTypeName() => "Order";
TypeContext? context = _ctx;
}
class LicenseKey implements IConvertible
{
String? ref;
String? name;
LicenseType? type;
int? meta;
String? hash;
String? halg;
DateTime? expiry;
LicenseKey({this.ref,this.name,this.type,this.meta,this.hash,this.halg,this.expiry});
LicenseKey.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ref = json['ref'];
name = json['name'];
type = JsonConverters.fromJson(json['type'],'LicenseType',context!);
meta = json['meta'];
hash = json['hash'];
halg = json['halg'];
expiry = JsonConverters.fromJson(json['expiry'],'DateTime',context!);
return this;
}
Map<String, dynamic> toJson() => {
'ref': ref,
'name': name,
'type': JsonConverters.toJson(type,'LicenseType',context!),
'meta': meta,
'hash': hash,
'halg': halg,
'expiry': JsonConverters.toJson(expiry,'DateTime',context!)
};
getTypeName() => "LicenseKey";
TypeContext? context = _ctx;
}
class Subscription implements IConvertible
{
int? id;
int? customerId;
String? email;
int? skuId;
String? skuName;
SkuType? skuType;
String? code;
int? quantity;
int? supportQuantity;
int? total;
bool? isPlan;
bool? isRenewal;
int? subscriptionDurationDays;
DateTime? renewalDate;
String? licenseRef;
String? licenseName;
String? licenseAddress;
LicenseType? licenseType;
DateTime? expiryDate;
LicenseKey? licenseKey;
String? licenseKeyText;
DateTime? createdDate;
DateTime? modifiedDate;
DateTime? cancelledDate;
String? stripeSubscriptionId;
int? emailId;
int? emailRenewalId;
int? emailExpiredId;
int? renewalSubscriptionId;
String? externalRef;
String? notes;
String? error;
Subscription({this.id,this.customerId,this.email,this.skuId,this.skuName,this.skuType,this.code,this.quantity,this.supportQuantity,this.total,this.isPlan,this.isRenewal,this.subscriptionDurationDays,this.renewalDate,this.licenseRef,this.licenseName,this.licenseAddress,this.licenseType,this.expiryDate,this.licenseKey,this.licenseKeyText,this.createdDate,this.modifiedDate,this.cancelledDate,this.stripeSubscriptionId,this.emailId,this.emailRenewalId,this.emailExpiredId,this.renewalSubscriptionId,this.externalRef,this.notes,this.error});
Subscription.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
customerId = json['customerId'];
email = json['email'];
skuId = json['skuId'];
skuName = json['skuName'];
skuType = JsonConverters.fromJson(json['skuType'],'SkuType',context!);
code = json['code'];
quantity = json['quantity'];
supportQuantity = json['supportQuantity'];
total = json['total'];
isPlan = json['isPlan'];
isRenewal = json['isRenewal'];
subscriptionDurationDays = json['subscriptionDurationDays'];
renewalDate = JsonConverters.fromJson(json['renewalDate'],'DateTime',context!);
licenseRef = json['licenseRef'];
licenseName = json['licenseName'];
licenseAddress = json['licenseAddress'];
licenseType = JsonConverters.fromJson(json['licenseType'],'LicenseType',context!);
expiryDate = JsonConverters.fromJson(json['expiryDate'],'DateTime',context!);
licenseKey = JsonConverters.fromJson(json['licenseKey'],'LicenseKey',context!);
licenseKeyText = json['licenseKeyText'];
createdDate = JsonConverters.fromJson(json['createdDate'],'DateTime',context!);
modifiedDate = JsonConverters.fromJson(json['modifiedDate'],'DateTime',context!);
cancelledDate = JsonConverters.fromJson(json['cancelledDate'],'DateTime',context!);
stripeSubscriptionId = json['stripeSubscriptionId'];
emailId = json['emailId'];
emailRenewalId = json['emailRenewalId'];
emailExpiredId = json['emailExpiredId'];
renewalSubscriptionId = json['renewalSubscriptionId'];
externalRef = json['externalRef'];
notes = json['notes'];
error = json['error'];
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'customerId': customerId,
'email': email,
'skuId': skuId,
'skuName': skuName,
'skuType': JsonConverters.toJson(skuType,'SkuType',context!),
'code': code,
'quantity': quantity,
'supportQuantity': supportQuantity,
'total': total,
'isPlan': isPlan,
'isRenewal': isRenewal,
'subscriptionDurationDays': subscriptionDurationDays,
'renewalDate': JsonConverters.toJson(renewalDate,'DateTime',context!),
'licenseRef': licenseRef,
'licenseName': licenseName,
'licenseAddress': licenseAddress,
'licenseType': JsonConverters.toJson(licenseType,'LicenseType',context!),
'expiryDate': JsonConverters.toJson(expiryDate,'DateTime',context!),
'licenseKey': JsonConverters.toJson(licenseKey,'LicenseKey',context!),
'licenseKeyText': licenseKeyText,
'createdDate': JsonConverters.toJson(createdDate,'DateTime',context!),
'modifiedDate': JsonConverters.toJson(modifiedDate,'DateTime',context!),
'cancelledDate': JsonConverters.toJson(cancelledDate,'DateTime',context!),
'stripeSubscriptionId': stripeSubscriptionId,
'emailId': emailId,
'emailRenewalId': emailRenewalId,
'emailExpiredId': emailExpiredId,
'renewalSubscriptionId': renewalSubscriptionId,
'externalRef': externalRef,
'notes': notes,
'error': error
};
getTypeName() => "Subscription";
TypeContext? context = _ctx;
}
class Customer implements IAddress, IConvertible
{
int? id;
String? email;
String? displayName;
String? firstName;
String? lastName;
String? company;
String? phoneNumber;
String? addressLine1;
String? addressLine2;
String? addressCity;
String? addressZip;
String? addressState;
String? addressCountry;
String? stripeCustomerId;
String? stripeCouponId;
String? plan;
DateTime? createdDate;
bool? isReferrer;
List<Order>? orders;
List<Subscription>? subscriptions;
Customer({this.id,this.email,this.displayName,this.firstName,this.lastName,this.company,this.phoneNumber,this.addressLine1,this.addressLine2,this.addressCity,this.addressZip,this.addressState,this.addressCountry,this.stripeCustomerId,this.stripeCouponId,this.plan,this.createdDate,this.isReferrer,this.orders,this.subscriptions});
Customer.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
email = json['email'];
displayName = json['displayName'];
firstName = json['firstName'];
lastName = json['lastName'];
company = json['company'];
phoneNumber = json['phoneNumber'];
addressLine1 = json['addressLine1'];
addressLine2 = json['addressLine2'];
addressCity = json['addressCity'];
addressZip = json['addressZip'];
addressState = json['addressState'];
addressCountry = json['addressCountry'];
stripeCustomerId = json['stripeCustomerId'];
stripeCouponId = json['stripeCouponId'];
plan = json['plan'];
createdDate = JsonConverters.fromJson(json['createdDate'],'DateTime',context!);
isReferrer = json['isReferrer'];
orders = JsonConverters.fromJson(json['orders'],'List<Order>',context!);
subscriptions = JsonConverters.fromJson(json['subscriptions'],'List<Subscription>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'email': email,
'displayName': displayName,
'firstName': firstName,
'lastName': lastName,
'company': company,
'phoneNumber': phoneNumber,
'addressLine1': addressLine1,
'addressLine2': addressLine2,
'addressCity': addressCity,
'addressZip': addressZip,
'addressState': addressState,
'addressCountry': addressCountry,
'stripeCustomerId': stripeCustomerId,
'stripeCouponId': stripeCouponId,
'plan': plan,
'createdDate': JsonConverters.toJson(createdDate,'DateTime',context!),
'isReferrer': isReferrer,
'orders': JsonConverters.toJson(orders,'List<Order>',context!),
'subscriptions': JsonConverters.toJson(subscriptions,'List<Subscription>',context!)
};
getTypeName() => "Customer";
TypeContext? context = _ctx;
}
// @DataContract
class QueryResponse<T> implements IConvertible
{
// @DataMember(Order=1)
int? offset;
// @DataMember(Order=2)
int? total;
// @DataMember(Order=3)
List<Customer>? results = [];
// @DataMember(Order=4)
Map<String,String?>? meta;
// @DataMember(Order=5)
ResponseStatus? responseStatus;
QueryResponse({this.offset,this.total,this.results,this.meta,this.responseStatus});
QueryResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
offset = json['offset'];
total = json['total'];
results = JsonConverters.fromJson(json['results'],'List<Customer>',context!);
meta = JsonConverters.toStringMap(json['meta']);
responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!);
return this;
}
Map<String, dynamic> toJson() => {
'offset': offset,
'total': total,
'results': JsonConverters.toJson(results,'List<Customer>',context!),
'meta': meta,
'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!)
};
getTypeName() => "QueryResponse<$T>";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'account.servicestack.net', types: <String, TypeInfo> {
'SkuType': TypeInfo(TypeOf.Enum, enumValues:SkuType.values),
'LicenseFeature': TypeInfo(TypeOf.Enum, enumValues:LicenseFeature.values),
'LicenseType': TypeInfo(TypeOf.Enum, enumValues:LicenseType.values),
'Sku': TypeInfo(TypeOf.Class, create:() => Sku()),
'Product': TypeInfo(TypeOf.Class, create:() => Product()),
'List<Sku>': TypeInfo(TypeOf.Class, create:() => <Sku>[]),
'QueryProducts': TypeInfo(TypeOf.Class, create:() => QueryProducts()),
'List<Product>': TypeInfo(TypeOf.Class, create:() => <Product>[]),
'OrderDetail': TypeInfo(TypeOf.Class, create:() => OrderDetail()),
'Order': TypeInfo(TypeOf.Class, create:() => Order()),
'List<OrderDetail>': TypeInfo(TypeOf.Class, create:() => <OrderDetail>[]),
'LicenseKey': TypeInfo(TypeOf.Class, create:() => LicenseKey()),
'Subscription': TypeInfo(TypeOf.Class, create:() => Subscription()),
'Customer': TypeInfo(TypeOf.Class, create:() => Customer()),
'List<Order>': TypeInfo(TypeOf.Class, create:() => <Order>[]),
'List<Subscription>': TypeInfo(TypeOf.Class, create:() => <Subscription>[]),
'List<Customer>': TypeInfo(TypeOf.Class, create:() => <Customer>[]),
});
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /jsv/reply/QueryProducts HTTP/1.1
Host: account.servicestack.net
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
skip: 0,
take: 0,
orderBy: String,
orderByDesc: String,
include: String,
fields: String,
meta:
{
String: String
}
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { offset: 0, total: 0, results: [ { 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 } ], meta: { String: String }, responseStatus: { errorCode: String, message: String, stackTrace: String, errors: [ { errorCode: String, fieldName: String, message: String, meta: { String: String } } ], meta: { String: String } } }