BokaMera.API.Host

<back to all web services

EndAllLicenses

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin
The following routes are available for this service:
POST/licenses/company/deleteEnd all licensesEnd all licenses on the company for the logged in user.
// @ts-nocheck

export class LicenseItemsResponse
{
    public Id: number;
    public Name: string;
    public AllowedItems: number;

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

export class BaseModel
{

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

export class Currency extends BaseModel
{
    // @Required()
    public Name: string;

    // @Required()
    public CurrencySign: string;

    // @Required()
    public Active: boolean;

    public ModifiedDate?: string;
    // @Required()
    public Id: string;

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

export class Country extends BaseModel
{
    // @References("typeof(BokaMera.API.ServiceModel.Db.Currency)")
    public CurrencyId: string;

    public CurrencyInfo: Currency;
    // @Required()
    public Name: string;

    public Culture?: string;
    public TimeZone?: string;
    public ModifiedDate?: string;
    // @Required()
    public Id: string;

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

export class LicensePriceResponse
{
    public LicenseTypeId: number;
    public CountryId: string;
    public Price: number;
    public Country: Country;
    public LicensePlanId: number;

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

export class LicenseTypeQueryResponse
{
    /** @description The license type id */
    // @ApiMember(Description="The license type id")
    public Id: number;

    /** @description The license type name */
    // @ApiMember(Description="The license type name")
    public Name: string;

    /** @description The license type description */
    // @ApiMember(Description="The license type description")
    public Description: string;

    /** @description If the license type is not a standard license but instead an extra license option. An example would be sending newsletter license. */
    // @ApiMember(Description="If the license type is not a standard license but instead an extra license option. An example would be sending newsletter license.")
    public IsExtraLicenseOption: boolean;

    /** @description The period of notice for the license in days. */
    // @ApiMember(Description="The period of notice for the license in days.")
    public PeriodOfNoticeDays: number;

    /** @description The license items for the license type */
    // @ApiMember(Description="The license items for the license type")
    public Items: LicenseItemsResponse[] = [];

    /** @description The license prices in each country for the license type */
    // @ApiMember(Description="The license prices in each country for the license type")
    public Prices: LicensePriceResponse[] = [];

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

export class ProductGroupResponse
{
    public Id: string;
    public Name: string;
    public TierId: string;

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

export class TierResponse
{
    public Id: string;
    public Name: string;
    public ProductGroups: ProductGroupResponse[] = [];

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

export class VossSubscriptionResponse
{
    public SubscriptionBillingPeriodStartDate: string;
    public SubscriptionBillingPeriodEndDate: string;
    public BindingPeriodEndDate?: string;
    public Tier: TierResponse;

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

export class CompanyLicenseQueryResponse
{
    public Id: number;
    public TypeId: number;
    public Type: LicenseTypeQueryResponse;
    public ValidFrom: string;
    public ValidTo: string;
    public VossSubscriptionId?: string;
    public VossSubscription: VossSubscriptionResponse;
    public MetaData: string;
    public Active: boolean;
    public LicenseStatus: string;
    public Canceled: boolean;
    public LicensePlanId?: number;
    public Updated: string;
    public Created: string;

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

export class Questionnaire
{
    public Question: string;
    public Value: string;

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

// @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
// @ValidateRequest(Validator="IsAuthenticated")
export class EndAllLicenses implements ICompany
{
    /** @description The company id, if empty will use the company id for the user you are logged in with. */
    // @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.")
    public CompanyId?: string;

    /** @description If true, all licenses and the booking system are terminated today. If false (default), the licenses stay active and are billed until the end of the current billing period, and each license's ValidTo is set to that date. */
    // @ApiMember(Description="If true, all licenses and the booking system are terminated today. If false (default), the licenses stay active and are billed until the end of the current billing period, and each license's ValidTo is set to that date.")
    public Deactivate: boolean;

    /** @description Questionaire with answers from customer why ending license. */
    // @ApiMember(Description="Questionaire with answers from customer why ending license.")
    public Questionnaire: Questionnaire[] = [];

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

TypeScript EndAllLicenses DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv

HTTP + CSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /licenses/company/delete HTTP/1.1 
Host: testapi.bokamera.se 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"CompanyId":"00000000-0000-0000-0000-000000000000","Deactivate":false,"Questionnaire":[{"Question":"String","Value":"String"}]}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"Id":0,"TypeId":0,"Type":{"Id":0,"Name":"String","Description":"String","IsExtraLicenseOption":false,"PeriodOfNoticeDays":0,"Items":[{"Id":0,"Name":"String","AllowedItems":0}],"Prices":[{"LicenseTypeId":0,"CountryId":"String","Price":0,"Country":{"CurrencyId":"String","CurrencyInfo":{"Name":"String","CurrencySign":"String","Active":false,"ModifiedDate":"0001-01-01T00:00:00.0000000+00:00","Id":"String"},"Name":"String","Culture":"String","TimeZone":"String","ModifiedDate":"0001-01-01T00:00:00.0000000+00:00","Id":"String"},"LicensePlanId":0}]},"VossSubscriptionId":"00000000-0000-0000-0000-000000000000","VossSubscription":{"BindingPeriodEndDate":"0001-01-01T00:00:00","Tier":{"Name":"String","ProductGroups":[{"Name":"String"}]}},"MetaData":"String","Active":false,"LicenseStatus":"String","Canceled":false,"LicensePlanId":0}