/* Options: Date: 2025-12-14 05:13:30 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: CreateVossUsageTermination.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export enum UsageBehaviourEnum { Full = 'Full', None = 'None', } export enum CreditKindEnum { Normal = 'Normal', Internal = 'Internal', } export enum ProductTypeEnum { Main = 'Main', Addon = 'Addon', License = 'License', Usage = 'Usage', } // @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="UsageCreditOptionsDto") export class UsageCreditOptionsDto { // @DataMember(Name="behaviour", IsRequired=true) public behaviour: UsageBehaviourEnum; // @DataMember(Name="creditKind", IsRequired=true) public creditKind: CreditKindEnum; 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); } } // @DataContract(Name="CreateUsageTerminationResult") export class CreateUsageTerminationResult { // @DataMember(Name="scheduledDate", IsRequired=true) public scheduledDate: string; // @DataMember(Name="reason") public reason: SubscriptionItemTerminationReasonDto; // @DataMember(Name="creditOptions", IsRequired=true) public creditOptions: UsageCreditOptionsDto; // @DataMember(Name="customerBalanceChange", IsRequired=true) public customerBalanceChange: CustomerBalanceChangeDto; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/voss/usage/{Id}/termination", "POST") // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) // @ValidateRequest(Validator="IsAuthenticated") export class CreateVossUsageTermination implements IReturn { /** @description The company id */ // @ApiMember(Description="The company id", IsRequired=true) public CompanyId: string; /** @description Usage Id */ // @ApiMember(Description="Usage Id", IsRequired=true) public Id: string; public InvoiceLineTexts: string[] = []; public TerminationReasonComment: string; public TerminationReasonId: string; /** @description Credit behaviour: <br /> 1. Full - usage will be credited in full <br /> 2. None - no credit will be created */ // @ApiMember(Description="Credit behaviour: <br /> 1. Full - usage will be credited in full <br /> 2. None - no credit will be created", IsRequired=true) public Behaviour: UsageBehaviourEnum; /** @description Credit kind: <br /> 1. Normal - default credit type <br /> 2. Internal - corresponding credit will be marked as internal in invoice file line */ // @ApiMember(Description="Credit kind: <br /> 1. Normal - default credit type <br /> 2. Internal - corresponding credit will be marked as internal in invoice file line", IsRequired=true) public CreditKind: CreditKindEnum; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'CreateVossUsageTermination'; } public getMethod() { return 'POST'; } public createResponse() { return new CreateUsageTerminationResult(); } }