| Requires any of the roles: | bookingsupplier-administrator-write, superadmin |
| GET | /voss/productGroups/{ProductGroupId} | gets voss product group |
|---|
import 'package:servicestack/servicestack.dart';
enum ProductGroupTypeEnum
{
Optional,
Included,
}
enum ProductTypeEnum
{
Main,
Addon,
License,
Usage,
}
enum StatusEnum
{
Active,
Terminated,
}
// @DataContract(Name="ProductGroupProductDto")
class ProductGroupProductDto implements IConvertible
{
// @DataMember(Name="type", IsRequired=true)
ProductTypeEnum? type;
// @DataMember(Name="status", IsRequired=true)
StatusEnum? status;
// @DataMember(Name="id", IsRequired=true)
String? id;
// @DataMember(Name="name", IsRequired=true)
String? name;
// @DataMember(Name="externalId")
String? externalId;
// @DataMember(Name="articleNumber", IsRequired=true)
String? articleNumber;
ProductGroupProductDto({this.type,this.status,this.id,this.name,this.externalId,this.articleNumber});
ProductGroupProductDto.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
type = JsonConverters.fromJson(json['ProductType'],'ProductTypeEnum',context!);
status = JsonConverters.fromJson(json['Status'],'StatusEnum',context!);
id = json['Id'];
name = json['Name'];
externalId = json['ExternalId'];
articleNumber = json['ArticleNumber'];
return this;
}
Map<String, dynamic> toJson() => {
'type': JsonConverters.toJson(type,'ProductTypeEnum',context!),
'status': JsonConverters.toJson(status,'StatusEnum',context!),
'id': id,
'name': name,
'externalId': externalId,
'articleNumber': articleNumber
};
getTypeName() => "ProductGroupProductDto";
TypeContext? context = _ctx;
}
enum TypeEnum
{
AtSubscriptionBillingPeriodEnd,
AtBindingPeriodEnd,
Immediately,
}
// @DataContract(Name="ProductGroupTagDto")
class ProductGroupTagDto implements IConvertible
{
// @DataMember(Name="type", IsRequired=true)
TypeEnum? type;
// @DataMember(Name="tag", IsRequired=true)
String? tag;
ProductGroupTagDto({this.type,this.tag});
ProductGroupTagDto.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
type = JsonConverters.fromJson(json['Type'],'TypeEnum',context!);
tag = json['Tag'];
return this;
}
Map<String, dynamic> toJson() => {
'type': JsonConverters.toJson(type,'TypeEnum',context!),
'tag': tag
};
getTypeName() => "ProductGroupTagDto";
TypeContext? context = _ctx;
}
// @DataContract(Name="ProductGroupResult")
class ProductGroupResult implements IConvertible
{
// @DataMember(Name="productGroupType", IsRequired=true)
ProductGroupTypeEnum? productGroupType;
// @DataMember(Name="id", IsRequired=true)
String? id;
// @DataMember(Name="versionId", IsRequired=true)
String? versionId;
// @DataMember(Name="name", IsRequired=true)
String? name;
// @DataMember(Name="externalId")
String? externalId;
// @DataMember(Name="products", EmitDefaultValue=false)
List<ProductGroupProductDto>? products = [];
// @DataMember(Name="tags", EmitDefaultValue=false)
List<ProductGroupTagDto>? tags = [];
ProductGroupResult({this.productGroupType,this.id,this.versionId,this.name,this.externalId,this.products,this.tags});
ProductGroupResult.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
productGroupType = JsonConverters.fromJson(json['ProductGroupType'],'ProductGroupTypeEnum',context!);
id = json['Id'];
versionId = json['VersionId'];
name = json['Name'];
externalId = json['ExternalId'];
products = JsonConverters.fromJson(json['Products'],'List<ProductGroupProductDto>',context!);
tags = JsonConverters.fromJson(json['Tags'],'List<ProductGroupTagDto>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'productGroupType': JsonConverters.toJson(productGroupType,'ProductGroupTypeEnum',context!),
'id': id,
'versionId': versionId,
'name': name,
'externalId': externalId,
'products': JsonConverters.toJson(products,'List<ProductGroupProductDto>',context!),
'tags': JsonConverters.toJson(tags,'List<ProductGroupTagDto>',context!)
};
getTypeName() => "ProductGroupResult";
TypeContext? context = _ctx;
}
// @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
class GetVossProductGroup implements IConvertible
{
/**
* Passed if we have multilpe packages
*/
// @ApiMember(Description="Passed if we have multilpe packages")
String? PackageId;
/**
* Procut Group id to get
*/
// @ApiMember(Description="Procut Group id to get", IsRequired=true)
String? ProductGroupId;
/**
* Tier id required because it is used it voss url
*/
// @ApiMember(Description="Tier id required because it is used it voss url", IsRequired=true)
String? TierId;
GetVossProductGroup({this.PackageId,this.ProductGroupId,this.TierId});
GetVossProductGroup.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
PackageId = json['PackageId'];
ProductGroupId = json['ProductGroupId'];
TierId = json['TierId'];
return this;
}
Map<String, dynamic> toJson() => {
'PackageId': PackageId,
'ProductGroupId': ProductGroupId,
'TierId': TierId
};
getTypeName() => "GetVossProductGroup";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'api.bokamera.se', types: <String, TypeInfo> {
'ProductGroupTypeEnum': TypeInfo(TypeOf.Enum, enumValues:ProductGroupTypeEnum.values),
'ProductTypeEnum': TypeInfo(TypeOf.Enum, enumValues:ProductTypeEnum.values),
'StatusEnum': TypeInfo(TypeOf.Enum, enumValues:StatusEnum.values),
'ProductGroupProductDto': TypeInfo(TypeOf.Class, create:() => ProductGroupProductDto()),
'TypeEnum': TypeInfo(TypeOf.Enum, enumValues:TypeEnum.values),
'ProductGroupTagDto': TypeInfo(TypeOf.Class, create:() => ProductGroupTagDto()),
'ProductGroupResult': TypeInfo(TypeOf.Class, create:() => ProductGroupResult()),
'List<ProductGroupProductDto>': TypeInfo(TypeOf.Class, create:() => <ProductGroupProductDto>[]),
'List<ProductGroupTagDto>': TypeInfo(TypeOf.Class, create:() => <ProductGroupTagDto>[]),
'GetVossProductGroup': TypeInfo(TypeOf.Class, create:() => GetVossProductGroup()),
});
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.
GET /voss/productGroups/{ProductGroupId} HTTP/1.1
Host: api.bokamera.se
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
productGroupType: Optional,
name: String,
externalId: String,
products:
[
{
}
],
tags:
[
{
}
]
}