BokaMera.API.Host

<back to all web services

CompanyLicenseQuery

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin, bookingsupplier-administrator-read
The following routes are available for this service:
GET/licenses/companyFind licenses for the logged in users companyFind licenses for the logged in users company.
namespace BokaMera.API.ServiceModel.Db

open System
open System.IO
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    [<AllowNullLiteral>]
    type LicenseItemsResponse() = 
        member val Id:Int32 = new Int32() with get,set
        member val Name:String = null with get,set
        member val AllowedItems:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type BaseModel() = 
        class end

    [<AllowNullLiteral>]
    type Currency() = 
        inherit BaseModel()
        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val CurrencySign:String = null with get,set

        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:String = null with get,set

    [<AllowNullLiteral>]
    type Country() = 
        inherit BaseModel()
        [<References(typeof<Currency>)>]
        member val CurrencyId:String = null with get,set

        member val CurrencyInfo:Currency = null with get,set
        [<Required>]
        member val Name:String = null with get,set

        member val Culture:String = null with get,set
        member val TimeZone:String = null with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        [<Required>]
        member val Id:String = null with get,set

    [<AllowNullLiteral>]
    type LicensePrice() = 
        inherit BaseModel()
        [<Ignore>]
        member val Country:Country = null with get,set

        [<Ignore>]
        member val MonthlyPayment:Boolean = new Boolean() with get,set

        [<Required>]
        member val LicenseTypeId:Int32 = new Int32() with get,set

        [<Required>]
        member val CountryId:String = null with get,set

        [<Required>]
        member val Price:Int32 = new Int32() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type LicenseTypeQueryResponse() = 
        ///<summary>
        ///The license type id
        ///</summary>
        [<ApiMember(Description="The license type id")>]
        member val Id:Int32 = new Int32() with get,set

        ///<summary>
        ///The license type name
        ///</summary>
        [<ApiMember(Description="The license type name")>]
        member val Name:String = null with get,set

        ///<summary>
        ///The license type description
        ///</summary>
        [<ApiMember(Description="The license type description")>]
        member val Description:String = null with get,set

        ///<summary>
        ///If the license type is not a standard license but instead an extra license option. An example would be sending newsletter license.
        ///</summary>
        [<ApiMember(Description="If the license type is not a standard license but instead an extra license option. An example would be sending newsletter license.")>]
        member val IsExtraLicenseOption:Boolean = new Boolean() with get,set

        ///<summary>
        ///The period of notice for the license in days.
        ///</summary>
        [<ApiMember(Description="The period of notice for the license in days.")>]
        member val PeriodOfNoticeDays:Int32 = new Int32() with get,set

        ///<summary>
        ///The license items for the license type
        ///</summary>
        [<ApiMember(Description="The license items for the license type")>]
        member val Items:ResizeArray<LicenseItemsResponse> = null with get,set

        ///<summary>
        ///The license prices in each country for the license type
        ///</summary>
        [<ApiMember(Description="The license prices in each country for the license type")>]
        member val Prices:ResizeArray<LicensePrice> = null with get,set

    [<AllowNullLiteral>]
    type CompanyLicenseQueryResponse() = 
        member val Id:Int32 = new Int32() with get,set
        member val TypeId:Int32 = new Int32() with get,set
        member val Type:LicenseTypeQueryResponse = null with get,set
        member val ValidFrom:DateTime = new DateTime() with get,set
        member val ValidTo:DateTime = new DateTime() with get,set
        member val MetaData:String = null with get,set
        member val Active:Boolean = new Boolean() with get,set
        member val Canceled:Boolean = new Boolean() with get,set
        member val Updated:DateTime = new DateTime() with get,set
        member val Created:DateTime = new DateTime() with get,set

    [<AllowNullLiteral>]
    type LicenseTypeItem() = 
        inherit BaseModel()
        [<Ignore>]
        member val Name:String = null with get,set

        [<Ignore>]
        member val LicenseType:LicenseType = null with get,set

        [<Required>]
        member val LicenseTypesId:Int32 = new Int32() with get,set

        [<Required>]
        member val LicenseItemsId:Int32 = new Int32() with get,set

        [<Required>]
        member val NumberOfItems:Int32 = new Int32() with get,set

        member val Id:Int32 = new Int32() with get,set
        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set

    [<AllowNullLiteral>]
    type LicenseType() = 
        inherit BaseModel()
        [<Ignore>]
        member val LicenseItems:IList<LicenseTypeItem> = null with get,set

        [<Ignore>]
        member val Prices:IList<LicensePrice> = null with get,set

        [<Ignore>]
        member val IsFree:Boolean = new Boolean() with get,set

        [<Ignore>]
        member val PeriodOfNoticeDays:Int32 = new Int32() with get,set

        [<Ignore>]
        member val NextLicenseOption:LicenseType = null with get,set

        [<Required>]
        member val Name:String = null with get,set

        [<Required>]
        member val Description:String = null with get,set

        [<Required>]
        member val ExtraLicenseOption:Boolean = new Boolean() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val Active:Boolean = new Boolean() with get,set
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type License() = 
        inherit BaseModel()
        member val Type:LicenseType = null with get,set
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        [<Required>]
        member val TypeId:Int32 = new Int32() with get,set

        [<Required>]
        member val ValidFrom:DateTime = new DateTime() with get,set

        [<Required>]
        member val ValidTo:DateTime = new DateTime() with get,set

        [<Required>]
        member val Active:Boolean = new Boolean() with get,set

        [<Required>]
        member val Updated:DateTime = new DateTime() with get,set

        [<Required>]
        member val Created:DateTime = new DateTime() with get,set

        member val ModifiedDate:Nullable<DateTimeOffset> = new Nullable<DateTimeOffset>() with get,set
        member val MetaData:String = null with get,set

    [<DataContract>]
    [<AllowNullLiteral>]
    type QueryBase() = 
        ///<summary>
        ///Skip over a given number of elements in a sequence and then return the remainder. Use this when you need paging.<br/><br/><strong>Example:</strong><br/><code>?skip=10&orderBy=Id</code>
        ///</summary>
        [<DataMember(Order=1)>]
        member val Skip:Nullable<Int32> = new Nullable<Int32>() with get,set

        ///<summary>
        ///Return a given number of elements in a sequence and then skip over the remainder. Use this when you need paging.<br/><br/><strong>Example:</strong><br/><code>?take=20</code>
        ///</summary>
        [<DataMember(Order=2)>]
        member val Take:Nullable<Int32> = new Nullable<Int32>() with get,set

        ///<summary>
        ///Comma separated list of fields to order by. Prefix the field name with a minus if you wan't to invert the sort for that field.<br/><br/><strong>Example:</strong><br/><code>?orderBy=Id,-Age,FirstName</code>
        ///</summary>
        [<DataMember(Order=3)>]
        member val OrderBy:String = null with get,set

        ///<summary>
        ///Comma separated list of fields to order by in descending order. Prefix the field name with a minus if you wan't to invert the sort for that field.<br/><br/><strong>Example:</strong><br/><code>?orderByDesc=Id,-Age,FirstName</code>
        ///</summary>
        [<DataMember(Order=4)>]
        member val OrderByDesc:String = null with get,set

        ///<summary>
        ///Include any of the aggregates <code>AVG, COUNT, FIRST, LAST, MAX, MIN, SUM</code> in your result set. The results will be returned in the meta field.<br/><br/><strong>Example:</strong><br/><code>?include=COUNT(*) as Total</code><br/><br/>or multiple fields with<br/><code>?include=Count(*) Total, Min(Age), AVG(Age) AverageAge</code><br/></br>or unique with<br/><code>?include=COUNT(DISTINCT LivingStatus) as UniqueStatus</code>
        ///</summary>
        [<DataMember(Order=5)>]
        member val Include:String = null with get,set

        [<DataMember(Order=6)>]
        member val Fields:String = null with get,set

        [<DataMember(Order=7)>]
        member val Meta:Dictionary<String, String> = null with get,set

    [<AllowNullLiteral>]
    type QueryDb<From, Into>() = 
        inherit QueryBase()

    [<ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)>]
    [<ValidateRequest(Validator="IsAuthenticated")>]
    [<AllowNullLiteral>]
    type CompanyLicenseQuery() = 
        inherit QueryDb<License, CompanyLicenseQueryResponse>()
        ///<summary>
        ///The company id, if empty will use the company id for the user you are logged in with.
        ///</summary>
        [<ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.")>]
        member val CompanyId:Nullable<Guid> = new Nullable<Guid>() with get,set

        ///<summary>
        ///If you want to include the connected license items
        ///</summary>
        [<ApiMember(DataType="boolean", Description="If you want to include the connected license items", ParameterType="query")>]
        member val OnlyActiveLicenses:Boolean = new Boolean() with get,set

        ///<summary>
        ///What country you want to list the prices for
        ///</summary>
        [<ApiMember(DataType="string", Description="What country you want to list the prices for")>]
        member val CountryId:String = null with get,set

        ///<summary>
        ///Search by the Meta data information on the license
        ///</summary>
        [<ApiMember(DataType="string", Description="Search by the Meta data information on the license")>]
        member val MetaData:String = null with get,set

        ///<summary>
        ///Id of the license type
        ///</summary>
        [<ApiMember(Description="Id of the license type")>]
        member val TypeId:Nullable<Int32> = new Nullable<Int32>() with get,set

        ///<summary>
        ///If you want to only select Extra license options
        ///</summary>
        [<ApiMember(DataType="boolean", Description="If you want to only select Extra license options", ParameterType="query")>]
        member val IsExtraLicenseOption:Nullable<Boolean> = new Nullable<Boolean>() with get,set

        ///<summary>
        ///If you want to include the connected license items
        ///</summary>
        [<ApiMember(DataType="boolean", Description="If you want to include the connected license items", ParameterType="query")>]
        member val IncludeLicenseItems:Boolean = new Boolean() with get,set

        ///<summary>
        ///If you want to include the connected licens prices
        ///</summary>
        [<ApiMember(DataType="boolean", Description="If you want to include the connected licens prices", ParameterType="query")>]
        member val IncludeLicensePrices:Boolean = new Boolean() with get,set

        member val ResponseStatus:ResponseStatus = null with get,set

    [<AllowNullLiteral>]
    type AccessKeyTypeResponse() = 
        member val Id:Int32 = new Int32() with get,set
        member val KeyType:String = null with get,set
        member val Description:String = null with get,set

    [<DataContract>]
    [<AllowNullLiteral>]
    type QueryResponse<T>() = 
        [<DataMember(Order=1)>]
        member val Offset:Int32 = new Int32() with get,set

        [<DataMember(Order=2)>]
        member val Total:Int32 = new Int32() with get,set

        [<DataMember(Order=3)>]
        member val Results:ResizeArray<AccessKeyTypeResponse> = null with get,set

        [<DataMember(Order=4)>]
        member val Meta:Dictionary<String, String> = null with get,set

        [<DataMember(Order=5)>]
        member val ResponseStatus:ResponseStatus = null with get,set

F# CompanyLicenseQuery DTOs

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

HTTP + OTHER

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

GET /licenses/company HTTP/1.1 
Host: api.bookmore.com 
Accept: text/jsonl
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"Offset":0,"Total":0,"Results":[{"Id":0,"TypeId":0,"Type":{"Id":0,"Name":"String","Description":"String","IsExtraLicenseOption":false,"PeriodOfNoticeDays":0,"Items":[{"Id":0,"Name":"String","AllowedItems":0}],"Prices":[{"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"},"MonthlyPayment":true,"LicenseTypeId":0,"CountryId":"String","Price":0,"ModifiedDate":"0001-01-01T00:00:00.0000000+00:00"}]},"MetaData":"String","Active":false,"Canceled":false}],"Meta":{"String":"String"},"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}