| Requires any of the roles: | bookingsupplier-administrator-write, superadmin |
| GET | /voss/productGroups/{ProductGroupId} | gets voss product group |
|---|
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using BokaMera.API.ServiceModel.Dtos;
using BokaMera.VossIntegration.ApiTools.Model;
using BokaMera.VossIntegration.ApiTools.Enums;
namespace BokaMera.API.ServiceModel.Dtos
{
[ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)]
public partial class GetVossProductGroup
{
///<summary>
///Passed if we have multilpe packages
///</summary>
[ApiMember(Description="Passed if we have multilpe packages")]
public virtual Guid? PackageId { get; set; }
///<summary>
///Procut Group id to get
///</summary>
[ApiMember(Description="Procut Group id to get", IsRequired=true)]
public virtual Guid ProductGroupId { get; set; }
///<summary>
///Tier id required because it is used it voss url
///</summary>
[ApiMember(Description="Tier id required because it is used it voss url", IsRequired=true)]
public virtual Guid TierId { get; set; }
}
}
namespace BokaMera.VossIntegration.ApiTools.Enums
{
public enum ProductGroupTypeEnum
{
Optional,
Included,
}
public enum ProductTypeEnum
{
Main,
Addon,
License,
Usage,
}
}
namespace BokaMera.VossIntegration.ApiTools.Model
{
[DataContract(Name="ProductGroupProductDto")]
public partial class ProductGroupProductDto
{
[DataMember(Name="type", IsRequired=true)]
public virtual ProductTypeEnum ProductType { get; set; }
[DataMember(Name="status", IsRequired=true)]
public virtual StatusEnum Status { get; set; }
[DataMember(Name="id", IsRequired=true)]
public virtual Guid Id { get; set; }
[DataMember(Name="name", IsRequired=true)]
public virtual string Name { get; set; }
[DataMember(Name="externalId")]
public virtual string ExternalId { get; set; }
[DataMember(Name="articleNumber", IsRequired=true)]
public virtual string ArticleNumber { get; set; }
public enum StatusEnum
{
Active,
Terminated,
}
}
[DataContract(Name="ProductGroupResult")]
public partial class ProductGroupResult
{
[DataMember(Name="productGroupType", IsRequired=true)]
public virtual ProductGroupTypeEnum ProductGroupType { get; set; }
[DataMember(Name="id", IsRequired=true)]
public virtual Guid Id { get; set; }
[DataMember(Name="versionId", IsRequired=true)]
public virtual Guid VersionId { get; set; }
[DataMember(Name="name", IsRequired=true)]
public virtual string Name { get; set; }
[DataMember(Name="externalId")]
public virtual string ExternalId { get; set; }
[DataMember(Name="products", EmitDefaultValue=false)]
public virtual List<ProductGroupProductDto> Products { get; set; } = [];
[DataMember(Name="tags", EmitDefaultValue=false)]
public virtual List<ProductGroupTagDto> Tags { get; set; } = [];
}
[DataContract(Name="ProductGroupTagDto")]
public partial class ProductGroupTagDto
{
[DataMember(Name="type", IsRequired=true)]
public virtual TypeEnum Type { get; set; }
[DataMember(Name="tag", IsRequired=true)]
public virtual string Tag { get; set; }
public enum TypeEnum
{
AtSubscriptionBillingPeriodEnd,
AtBindingPeriodEnd,
Immediately,
}
}
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
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/csv
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length
{"productGroupType":"Optional","name":"String","externalId":"String","products":[{}],"tags":[{}]}