/* Options: Date: 2025-12-14 05:12:46 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bokamera.se //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CreateVossUsage.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export enum CreditKindEnum { Normal = 'Normal', Internal = 'Internal', } export enum ProductTypeEnum { Main = 'Main', Addon = 'Addon', License = 'License', Usage = 'Usage', } export enum SubscriptionBehaviourEnum { Prorate = 'Prorate', Full = 'Full', None = 'None', } // @DataContract(Name="SubscriptionItemTerminationReasonDto") export class SubscriptionItemTerminationReasonDto { // @DataMember(Name="reasonId", IsRequired=true) public reasonId: string; // @DataMember(Name="reasonName", IsRequired=true) public reasonName: string; // @DataMember(Name="reasonExternalId") public reasonExternalId: string; // @DataMember(Name="subReasonId") public subReasonId?: string; // @DataMember(Name="subReasonName") public subReasonName: string; // @DataMember(Name="subReasonExternalId") public subReasonExternalId: string; // @DataMember(Name="comment", IsRequired=true) public comment: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract(Name="CustomerBalanceChangeItemDto") export class CustomerBalanceChangeItemDto { // @DataMember(Name="type", IsRequired=true) public type: ProductTypeEnum; // @DataMember(Name="id", IsRequired=true) public id: string; // @DataMember(Name="name", IsRequired=true) public name: string; // @DataMember(Name="productGroupId", IsRequired=true) public productGroupId: string; // @DataMember(Name="productGroupName", IsRequired=true) public productGroupName: string; // @DataMember(Name="quantity", IsRequired=true) public quantity: number; // @DataMember(Name="amount", IsRequired=true) public amount: number; // @DataMember(Name="discountAmount", IsRequired=true) public discountAmount: number; // @DataMember(Name="totalAmount", EmitDefaultValue=false) public totalAmount: number; // @DataMember(Name="invoiceRecipientCustomerId", IsRequired=true) public invoiceRecipientCustomerId: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract(Name="CustomerBalanceChangeDto") export class CustomerBalanceChangeDto { // @DataMember(Name="items", EmitDefaultValue=false) public items: CustomerBalanceChangeItemDto[] = []; // @DataMember(Name="totalAmount", EmitDefaultValue=false) public totalAmount: number; // @DataMember(Name="totalDiscountAmount", EmitDefaultValue=false) public totalDiscountAmount: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum ProductGroupTypeEnum { Optional = 'Optional', Included = 'Included', } export enum StatusEnum { Active = 'Active', Terminated = 'Terminated', } // @DataContract(Name="SubscriptionProductGroupProductResultDto") export class SubscriptionProductGroupProductResultDto { // @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) { (Object as any).assign(this, init); } } export enum TypeEnum { AtSubscriptionBillingPeriodEnd = 'AtSubscriptionBillingPeriodEnd', AtBindingPeriodEnd = 'AtBindingPeriodEnd', Immediately = 'Immediately', } export enum SourceEnum { Direct = 'Direct', Plan = 'Plan', CustomerExpiration = 'CustomerExpiration', Update = 'Update', Unpaid = 'Unpaid', } // @DataContract(Name="CreditOptionsDto") export class CreditOptionsDto { // @DataMember(Name="behaviour", IsRequired=true) public behaviour: SubscriptionBehaviourEnum; // @DataMember(Name="creditKind", IsRequired=true) public creditKind: CreditKindEnum; // @DataMember(Name="prorateTimeAnchor") public prorateTimeAnchor?: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract(Name="SubscriptionItemTerminationDto") export class SubscriptionItemTerminationDto { // @DataMember(Name="type") public type: TypeEnum; // @DataMember(Name="source", IsRequired=true) public source: SourceEnum; // @DataMember(Name="scheduledDate", IsRequired=true) public scheduledDate: string; // @DataMember(Name="reason") public reason: SubscriptionItemTerminationReasonDto; // @DataMember(Name="creditOptions", IsRequired=true) public creditOptions: CreditOptionsDto; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract(Name="CreateSubscriptionProductGroupResult") export class CreateSubscriptionProductGroupResult { // @DataMember(Name="productGroupType", IsRequired=true) public productGroupType: ProductGroupTypeEnum; // @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="products", EmitDefaultValue=false) public products: SubscriptionProductGroupProductResultDto[] = []; // @DataMember(Name="termination") public termination: SubscriptionItemTerminationDto; // @DataMember(Name="created", IsRequired=true) public created: string; // @DataMember(Name="customerBalanceChange", IsRequired=true) public customerBalanceChange: CustomerBalanceChangeDto; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/voss/usage", "POST") // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) // @ValidateRequest(Validator="IsAuthenticated") export class CreateVossUsage implements IReturn { /** @description The company id */ // @ApiMember(Description="The company id", IsRequired=true) public CompanyId: string; /** @description Article number. Can be fetched from products */ // @ApiMember(Description="Article number. Can be fetched from products", IsRequired=true) public ArticleNumber: string; /** @description Example: developer worked 6 hours */ // @ApiMember(Description="Example: developer worked 6 hours", IsRequired=true) public Quantity: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'CreateVossUsage'; } public getMethod() { return 'POST'; } public createResponse() { return new CreateSubscriptionProductGroupResult(); } }