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.
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*


@ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
@ValidateRequest(Validator="IsAuthenticated")
open class EndAllLicenses : ICompany
{
    /**
    * 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.")
    override var CompanyId:UUID? = null

    /**
    * 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.")
    open var Deactivate:Boolean? = null

    /**
    * Questionaire with answers from customer why ending license.
    */
    @ApiMember(Description="Questionaire with answers from customer why ending license.")
    open var Questionnaire:ArrayList<Questionnaire> = ArrayList<Questionnaire>()
}

open class Questionnaire
{
    open var Question:String? = null
    open var Value:String? = null
}

open class CompanyLicenseQueryResponse
{
    open var Id:Int? = null
    open var TypeId:Int? = null
    open var Type:LicenseTypeQueryResponse? = null
    open var ValidFrom:Date? = null
    open var ValidTo:Date? = null
    open var VossSubscriptionId:UUID? = null
    open var VossSubscription:VossSubscriptionResponse? = null
    open var MetaData:String? = null
    open var Active:Boolean? = null
    open var LicenseStatus:String? = null
    open var Canceled:Boolean? = null
    open var LicensePlanId:Int? = null
    open var Updated:Date? = null
    open var Created:Date? = null
}

open class LicenseTypeQueryResponse
{
    /**
    * The license type id
    */
    @ApiMember(Description="The license type id")
    open var Id:Int? = null

    /**
    * The license type name
    */
    @ApiMember(Description="The license type name")
    open var Name:String? = null

    /**
    * The license type description
    */
    @ApiMember(Description="The license type description")
    open var Description:String? = null

    /**
    * 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.")
    open var IsExtraLicenseOption:Boolean? = null

    /**
    * The period of notice for the license in days.
    */
    @ApiMember(Description="The period of notice for the license in days.")
    open var PeriodOfNoticeDays:Int? = null

    /**
    * The license items for the license type
    */
    @ApiMember(Description="The license items for the license type")
    open var Items:ArrayList<LicenseItemsResponse> = ArrayList<LicenseItemsResponse>()

    /**
    * The license prices in each country for the license type
    */
    @ApiMember(Description="The license prices in each country for the license type")
    open var Prices:ArrayList<LicensePriceResponse> = ArrayList<LicensePriceResponse>()
}

open class LicenseItemsResponse
{
    open var Id:Int? = null
    open var Name:String? = null
    open var AllowedItems:Int? = null
}

open class LicensePriceResponse
{
    open var LicenseTypeId:Int? = null
    open var CountryId:String? = null
    open var Price:Int? = null
    open var Country:Country? = null
    open var LicensePlanId:Int? = null
}

open class Country : BaseModel()
{
    @References(Type=Currency::class)
    open var CurrencyId:String? = null

    open var CurrencyInfo:Currency? = null
    @Required()
    open var Name:String? = null

    open var Culture:String? = null
    open var TimeZone:String? = null
    open var ModifiedDate:Date? = null
    @Required()
    open var Id:String? = null
}

open class BaseModel
{
}

open class Currency : BaseModel()
{
    @Required()
    open var Name:String? = null

    @Required()
    open var CurrencySign:String? = null

    @Required()
    open var Active:Boolean? = null

    open var ModifiedDate:Date? = null
    @Required()
    open var Id:String? = null
}

open class VossSubscriptionResponse
{
    open var SubscriptionBillingPeriodStartDate:Date? = null
    open var SubscriptionBillingPeriodEndDate:Date? = null
    open var BindingPeriodEndDate:Date? = null
    open var Tier:TierResponse? = null
}

open class TierResponse
{
    open var Id:UUID? = null
    open var Name:String? = null
    open var ProductGroups:ArrayList<ProductGroupResponse> = ArrayList<ProductGroupResponse>()
}

open class ProductGroupResponse
{
    open var Id:UUID? = null
    open var Name:String? = null
    open var TierId:UUID? = null
}

Kotlin 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}