BokaMera.API.Host

<back to all web services

CreateResourceType

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin
The following routes are available for this service:
POST/resourcetypesAdd a new resourcetypeAdd a new resourcetype to the company of the currently logged in user, only administrators are allowed to add resourcetypes.
namespace BokaMera.API.ServiceModel.Dtos

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

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

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

        ///<summary>
        ///The resource status
        ///</summary>
        [<ApiMember(Description="The resource status")>]
        member val Active:Boolean = new Boolean() with get,set

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

        ///<summary>
        ///The resource email
        ///</summary>
        [<ApiMember(Description="The resource email")>]
        member val Email:String = null with get,set

        ///<summary>
        ///The resource phone
        ///</summary>
        [<ApiMember(Description="The resource phone")>]
        member val Phone:String = null with get,set

        ///<summary>
        ///The resource color
        ///</summary>
        [<ApiMember(Description="The resource color")>]
        member val Color:String = null with get,set

        ///<summary>
        ///The resource image
        ///</summary>
        [<ApiMember(Description="The resource image")>]
        member val ImageUrl:Uri = null with get,set

        ///<summary>
        ///The priority of the resource
        ///</summary>
        [<ApiMember(Description="The priority of the resource")>]
        member val Priority:Int32 = new Int32() with get,set

        ///<summary>
        ///If the resource want to receive email notifications
        ///</summary>
        [<ApiMember(Description="If the resource want to receive email notifications")>]
        member val EmailNotification:Boolean = new Boolean() with get,set

        ///<summary>
        ///If the resource want to receive sms notifications
        ///</summary>
        [<ApiMember(Description="If the resource want to receive sms notifications")>]
        member val SMSNotification:Boolean = new Boolean() with get,set

        ///<summary>
        ///If the resource want to receive email reminders
        ///</summary>
        [<ApiMember(Description="If the resource want to receive email reminders")>]
        member val EmailReminder:Boolean = new Boolean() with get,set

        ///<summary>
        ///If the resource want to receive sms reminders
        ///</summary>
        [<ApiMember(Description="If the resource want to receive sms reminders")>]
        member val SMSReminder:Boolean = new Boolean() with get,set

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

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

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

        ///<summary>
        ///The resources in the resourcetype. Only shows active resources if not admin.
        ///</summary>
        [<ApiMember(Description="The resources in the resourcetype. Only shows active resources if not admin.")>]
        member val Resources:ResizeArray<ResourceTypeResource> = new ResizeArray<ResourceTypeResource>() with get,set

        ///<summary>
        ///If resourcetype is active or not
        ///</summary>
        [<ApiMember(Description="If resourcetype is active or not")>]
        member val Active:Boolean = new Boolean() with get,set

        ///<summary>
        ///Then date when the resource was created
        ///</summary>
        [<ApiMember(Description="Then date when the resource was created")>]
        member val Created:DateTime = new DateTime() with get,set

        ///<summary>
        ///Then date when the resource was updated
        ///</summary>
        [<ApiMember(Description="Then date when the resource was updated")>]
        member val Updated:DateTime = new DateTime() with get,set

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

        ///<summary>
        ///The priority of the resource. If no priority is set it will take random resource when booking a time.
        ///</summary>
        [<ApiMember(Description="The priority of the resource. If no priority is set it will take random resource when booking a time.")>]
        member val Priority:Int32 = new Int32() with get,set

    [<ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)>]
    [<ApiResponse(Description="You have too low privilegies to call this service", StatusCode=403)>]
    [<ValidateRequest(Validator="IsAuthenticated")>]
    [<AllowNullLiteral>]
    type CreateResourceType() = 
        ///<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>
        ///The resourcetype name
        ///</summary>
        [<ApiMember(Description="The resourcetype name")>]
        member val Name:String = null with get,set

        ///<summary>
        ///The resources to be included
        ///</summary>
        [<ApiMember(Description="The resources to be included")>]
        member val Resources:ResizeArray<AddResourceTypeResource> = new ResizeArray<AddResourceTypeResource>() with get,set

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

        ///<summary>
        ///If resourcetype is active or not
        ///</summary>
        [<ApiMember(Description="If resourcetype is active or not")>]
        member val Active:Boolean = new Boolean() with get,set

F# CreateResourceType 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 /resourcetypes HTTP/1.1 
Host: api.bokamera.se 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	CompanyId: 00000000-0000-0000-0000-000000000000,
	Name: String,
	Resources: 
	[
		{
			Id: 0,
			Priority: 0
		}
	],
	Description: String,
	Active: False
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Id: 0,
	Name: String,
	Description: String,
	Resources: 
	[
		{
			Id: 0,
			Name: String,
			Active: False,
			Description: String,
			Email: String,
			Phone: String,
			Color: String,
			Priority: 0,
			EmailNotification: False,
			SMSNotification: False,
			EmailReminder: False,
			SMSReminder: False
		}
	],
	Active: False
}