BokaMera.API.Host

<back to all web services

GetVossProductGroup

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin
The following routes are available for this service:
GET/voss/productGroups/{ProductGroupId}gets voss product group

export enum ProductGroupTypeEnum
{
    Optional = 'Optional',
    Included = 'Included',
}

export enum ProductTypeEnum
{
    Main = 'Main',
    Addon = 'Addon',
    License = 'License',
    Usage = 'Usage',
}

export enum StatusEnum
{
    Active = 'Active',
    Terminated = 'Terminated',
}

// @DataContract(Name="ProductGroupProductDto")
export class ProductGroupProductDto
{
    // @DataMember(Name="type", IsRequired=true)
    public type: ProductTypeEnum;

    // @DataMember(Name="status", IsRequired=true)
    public status: StatusEnum;

    // @DataMember(Name="id", IsRequired=true)
    public id: string;

    // @DataMember(Name="name", IsRequired=true)
    public name: string;

    // @DataMember(Name="externalId")
    public externalId: string;

    // @DataMember(Name="articleNumber", IsRequired=true)
    public articleNumber: string;

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

export enum TypeEnum
{
    AtSubscriptionBillingPeriodEnd = 'AtSubscriptionBillingPeriodEnd',
    AtBindingPeriodEnd = 'AtBindingPeriodEnd',
    Immediately = 'Immediately',
}

// @DataContract(Name="ProductGroupTagDto")
export class ProductGroupTagDto
{
    // @DataMember(Name="type", IsRequired=true)
    public type: TypeEnum;

    // @DataMember(Name="tag", IsRequired=true)
    public tag: string;

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

// @DataContract(Name="ProductGroupResult")
export class ProductGroupResult
{
    // @DataMember(Name="productGroupType", IsRequired=true)
    public productGroupType: ProductGroupTypeEnum;

    // @DataMember(Name="id", IsRequired=true)
    public id: string;

    // @DataMember(Name="versionId", IsRequired=true)
    public versionId: string;

    // @DataMember(Name="name", IsRequired=true)
    public name: string;

    // @DataMember(Name="externalId")
    public externalId: string;

    // @DataMember(Name="products", EmitDefaultValue=false)
    public products: ProductGroupProductDto[] = [];

    // @DataMember(Name="tags", EmitDefaultValue=false)
    public tags: ProductGroupTagDto[] = [];

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

// @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
export class GetVossProductGroup
{
    /** @description Passed if we have multilpe packages */
    // @ApiMember(Description="Passed if we have multilpe packages")
    public PackageId?: string;

    /** @description Procut Group id to get */
    // @ApiMember(Description="Procut Group id to get", IsRequired=true)
    public ProductGroupId: string;

    /** @description Tier id required because it is used it voss url */
    // @ApiMember(Description="Tier id required because it is used it voss url", IsRequired=true)
    public TierId: string;

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

TypeScript GetVossProductGroup 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 /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: 
	[
		{
			
		}
	]
}