BokaMera.API.Host

<back to all web services

CreateApiKey

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin
The following routes are available for this service:
POST/apikeysCreate a new API key for the logged in user's companyGenerates a new API key for the company of the currently logged in user and returns it. A company administrator can only create keys for their own company.
Imports System
Imports System.IO
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports BokaMera.API.ServiceModel.Dtos

Namespace Global

    Namespace BokaMera.API.ServiceModel.Dtos

        Public Partial Class ApiKeyResponse
            '''<Summary>
            '''The company the API key belongs to
            '''</Summary>
            <ApiMember(Description:="The company the API key belongs to")>
            Public Overridable Property CompanyId As Guid

            '''<Summary>
            '''The API key value to send in the x-api-key header
            '''</Summary>
            <ApiMember(Description:="The API key value to send in the x-api-key header")>
            Public Overridable Property ApiKey As Guid

            '''<Summary>
            '''Whether the key is active
            '''</Summary>
            <ApiMember(Description:="Whether the key is active")>
            Public Overridable Property Active As Boolean

            '''<Summary>
            '''When the key was created
            '''</Summary>
            <ApiMember(Description:="When the key was created")>
            Public Overridable Property CreatedDate As Date

            '''<Summary>
            '''When the key expires, if ever
            '''</Summary>
            <ApiMember(Description:="When the key expires, if ever")>
            Public Overridable Property ExpiryDate As Date?

            '''<Summary>
            '''Contact email registered for the key
            '''</Summary>
            <ApiMember(Description:="Contact email registered for the key")>
            Public Overridable Property ContactEmail As String

            '''<Summary>
            '''Free text notes for the key
            '''</Summary>
            <ApiMember(Description:="Free text notes for the key")>
            Public Overridable Property Notes As String

            '''<Summary>
            '''Comma separated list of IP addresses the key is restricted to, if any
            '''</Summary>
            <ApiMember(Description:="Comma separated list of IP addresses the key is restricted to, if any")>
            Public Overridable Property AllowedIpAddresses As String
        End Class

        <ApiResponse(Description:="Returned if the current user is not authenticated", StatusCode:=401)>
        <ApiResponse(Description:="Returned if the current user does not have the required role", StatusCode:=403)>
        Public Partial Class CreateApiKey
            Implements ICompany
            '''<Summary>
            '''The company to create the API key for. Defaults to the logged in user's company. Only a SuperAdmin may specify a company other than their own; for other roles this value is ignored.
            '''</Summary>
            <ApiMember(Description:="The company to create the API key for. Defaults to the logged in user's company. Only a SuperAdmin may specify a company other than their own; for other roles this value is ignored.")>
            Public Overridable Property CompanyId As Guid? Implements ICompany.CompanyId

            '''<Summary>
            '''Optional contact email to register for the key. Defaults to the logged in user's email.
            '''</Summary>
            <ApiMember(Description:="Optional contact email to register for the key. Defaults to the logged in user's email.")>
            Public Overridable Property ContactEmail As String

            '''<Summary>
            '''Optional free text note for the key.
            '''</Summary>
            <ApiMember(Description:="Optional free text note for the key.")>
            Public Overridable Property Notes As String
        End Class
    End Namespace
End Namespace

VB.NET CreateApiKey DTOs

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

HTTP + JSV

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

POST /apikeys HTTP/1.1 
Host: api.bookmore.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	CompanyId: 00000000-0000-0000-0000-000000000000,
	ContactEmail: String,
	Notes: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Active: False,
	ExpiryDate: "0001-01-01T00:00:00",
	ContactEmail: String,
	Notes: String,
	AllowedIpAddresses: String
}