BokaMera.API.Host

<back to all web services

UpdateBooking

Requires Authentication
The following routes are available for this service:
PUT/bookings/{Id}Update existing bookingUpdates an existing booking if you are authorized to do so. Note. Price is not updated automatically when changing number of spots or resources.
import java.math.*;
import java.util.*;
import net.servicestack.client.*;

public class dtos
{

    @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
    @ValidateRequest(Validator="IsAuthenticated")
    public static class UpdateBooking implements INullableInterval
    {
        /**
        * 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 UUID CompanyId = null;

        /**
        * Id of the booking
        */
        @ApiMember(Description="Id of the booking", ParameterType="path")
        public Integer Id = null;

        public Date From = null;
        public Date To = null;
        public BookingStatusEnum Status = null;
        public Date PaymentExpiration = null;
        public Date LastTimeToUnBook = null;
        /**
        * If you want to add comments when canceling a booking you can add them here, this comments are send in the confirmation to the customer
        */
        @ApiMember(Description="If you want to add comments when canceling a booking you can add them here, this comments are send in the confirmation to the customer")
        public String UnbookedComments = null;

        /**
        * If you want to add comments to a booking you can add them here, this comments are never shared with the customer
        */
        @ApiMember(Description="If you want to add comments to a booking you can add them here, this comments are never shared with the customer")
        public String BookedComments = null;

        /**
        * If you want to add comments to the booking that is sent to the customer, you can add them here. Comments will be sent in the booking confirmation
        */
        @ApiMember(Description="If you want to add comments to the booking that is sent to the customer, you can add them here. Comments will be sent in the booking confirmation")
        public String CommentsToCustomer = null;

        /**
        * If Custom Fields are added to the booking, here you will send the id and the value for each custom field to be updated
        */
        @ApiMember(Description="If Custom Fields are added to the booking, here you will send the id and the value for each custom field to be updated")
        public ArrayList<AddCustomField> CustomFields = null;

        /**
        * Resources you want to change, leave it empty if no changes to the booked resources
        */
        @ApiMember(Description="Resources you want to change, leave it empty if no changes to the booked resources")
        public ResourceToUpdate Resources = null;

        /**
        * If want to allow to book outside the service schedules. This means you can book a time after the schedule opening hours as long as the resource are available. This is only allowed by administrators
        */
        @ApiMember(Description="If want to allow to book outside the service schedules. This means you can book a time after the schedule opening hours as long as the resource are available. This is only allowed by administrators")
        public Boolean AllowBookingOutsideSchedules = null;

        /**
        * Any comment to save to the log when changing the booking.
        */
        @ApiMember(Description="Any comment to save to the log when changing the booking.")
        public String Comment = null;

        /**
        * Any comment sent to user if SendSmsConfirmation or SendEmailConfirmation
        */
        @ApiMember(Description="Any comment sent to user if SendSmsConfirmation or SendEmailConfirmation")
        public String Message = null;

        /**
        * If you want to send SMS confirmation. If null, it will take the default value of the bookings SendSMSConfirmation.
        */
        @ApiMember(Description="If you want to send SMS confirmation. If null, it will take the default value of the bookings SendSMSConfirmation.")
        public Boolean SendSmsConfirmation = null;

        /**
        * If you want to send Email confirmation. If null, it will take the default value of the bookings SendEmailConfirmation.
        */
        @ApiMember(Description="If you want to send Email confirmation. If null, it will take the default value of the bookings SendEmailConfirmation.")
        public Boolean SendEmailConfirmation = null;
        
        public UUID getCompanyId() { return CompanyId; }
        public UpdateBooking setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getId() { return Id; }
        public UpdateBooking setId(Integer value) { this.Id = value; return this; }
        public Date getFrom() { return From; }
        public UpdateBooking setFrom(Date value) { this.From = value; return this; }
        public Date getTo() { return To; }
        public UpdateBooking setTo(Date value) { this.To = value; return this; }
        public BookingStatusEnum getStatus() { return Status; }
        public UpdateBooking setStatus(BookingStatusEnum value) { this.Status = value; return this; }
        public Date getPaymentExpiration() { return PaymentExpiration; }
        public UpdateBooking setPaymentExpiration(Date value) { this.PaymentExpiration = value; return this; }
        public Date getLastTimeToUnBook() { return LastTimeToUnBook; }
        public UpdateBooking setLastTimeToUnBook(Date value) { this.LastTimeToUnBook = value; return this; }
        public String getUnbookedComments() { return UnbookedComments; }
        public UpdateBooking setUnbookedComments(String value) { this.UnbookedComments = value; return this; }
        public String getBookedComments() { return BookedComments; }
        public UpdateBooking setBookedComments(String value) { this.BookedComments = value; return this; }
        public String getCommentsToCustomer() { return CommentsToCustomer; }
        public UpdateBooking setCommentsToCustomer(String value) { this.CommentsToCustomer = value; return this; }
        public ArrayList<AddCustomField> getCustomFields() { return CustomFields; }
        public UpdateBooking setCustomFields(ArrayList<AddCustomField> value) { this.CustomFields = value; return this; }
        public ResourceToUpdate getResources() { return Resources; }
        public UpdateBooking setResources(ResourceToUpdate value) { this.Resources = value; return this; }
        public Boolean isAllowBookingOutsideSchedules() { return AllowBookingOutsideSchedules; }
        public UpdateBooking setAllowBookingOutsideSchedules(Boolean value) { this.AllowBookingOutsideSchedules = value; return this; }
        public String getComment() { return Comment; }
        public UpdateBooking setComment(String value) { this.Comment = value; return this; }
        public String getMessage() { return Message; }
        public UpdateBooking setMessage(String value) { this.Message = value; return this; }
        public Boolean isSendSmsConfirmation() { return SendSmsConfirmation; }
        public UpdateBooking setSendSmsConfirmation(Boolean value) { this.SendSmsConfirmation = value; return this; }
        public Boolean isSendEmailConfirmation() { return SendEmailConfirmation; }
        public UpdateBooking setSendEmailConfirmation(Boolean value) { this.SendEmailConfirmation = value; return this; }
    }

    public static enum BookingStatusEnum
    {
        Booked(1),
        Unbooked(2),
        Reserved(3),
        Canceled(4),
        AwaitingPayment(5),
        AwaitingPaymentNoTimeLimit(6),
        Payed(7),
        AwaitingPaymentRequestFromAdmin(8),
        AwaitingPaymentFromProvider(9),
        Invoiced(10);

        private final int value;
        BookingStatusEnum(final int intValue) { value = intValue; }
        public int getValue() { return value; }
    }

    public static class AddCustomField
    {
        public Integer Id = null;
        public String Value = null;
        
        public Integer getId() { return Id; }
        public AddCustomField setId(Integer value) { this.Id = value; return this; }
        public String getValue() { return Value; }
        public AddCustomField setValue(String value) { this.Value = value; return this; }
    }

    public static class ResourceToUpdate
    {
        /**
        * Set this property to true if you want to autoselected not provided resources. If false you will need to add all resources you want to have booked
        */
        @ApiMember(Description="Set this property to true if you want to autoselected not provided resources. If false you will need to add all resources you want to have booked")
        public Boolean AutoSelectNotDefinedResources = null;

        /**
        * All resources to be booked, if AutoSelectNotDefinedResources is true you will only need to provide the one you want to select, rest will be auto selected if avaiable. 
        */
        @ApiMember(Description="All resources to be booked, if AutoSelectNotDefinedResources is true you will only need to provide the one you want to select, rest will be auto selected if avaiable. ")
        public ArrayList<ResourceToBook> Resources = null;
        
        public Boolean isAutoSelectNotDefinedResources() { return AutoSelectNotDefinedResources; }
        public ResourceToUpdate setAutoSelectNotDefinedResources(Boolean value) { this.AutoSelectNotDefinedResources = value; return this; }
        public ArrayList<ResourceToBook> getResources() { return Resources; }
        public ResourceToUpdate setResources(ArrayList<ResourceToBook> value) { this.Resources = value; return this; }
    }

    public static class ResourceToBook
    {
        public Integer ResourceTypeId = null;
        public Integer ResourceId = null;
        
        public Integer getResourceTypeId() { return ResourceTypeId; }
        public ResourceToBook setResourceTypeId(Integer value) { this.ResourceTypeId = value; return this; }
        public Integer getResourceId() { return ResourceId; }
        public ResourceToBook setResourceId(Integer value) { this.ResourceId = value; return this; }
    }

    public static class BookingQueryResponse
    {
        public Integer Id = null;
        public UUID CompanyId = null;
        public Date From = null;
        public Date To = null;
        public BookingStatusEnum Status = null;
        public Integer StatusId = null;
        public String StatusName = null;
        public BookingStatusQueryResponse StatusInfo = null;
        public Boolean SendEmailReminder = null;
        public Boolean SendSmsReminder = null;
        public Boolean SendSmsConfirmation = null;
        public Boolean SendEmailConfirmation = null;
        public Date LastTimeToUnBook = null;
        public ArrayList<CustomFieldConfigData> CustomFields = null;
        public ArrayList<CustomFieldDataResponse> CustomFieldValues = null;
        public ArrayList<BookedResourceType> BookedResourceTypes = null;
        public BookedCompany Company = null;
        public BookedCustomer Customer = null;
        public ArrayList<BookedQuantity> Quantities = null;
        public ServiceInfoResponse Service = null;
        public Date PaymentExpiration = null;
        public ArrayList<BookingLogQueryResponse> Log = null;
        public ArrayList<BookingPaymentLogQueryResponse> PaymentLog = null;
        public ArrayList<BookingCheckoutQueryResponse> CheckoutLog = null;
        public ArrayList<ExternalReferenceResponse> ExternalReference = null;
        public ResponseStatus ResponseStatus = null;
        public BookingCalendarExportStatus CalendarExportStatus = null;
        public Integer LengthInMinutes = null;
        public String BookedBy = null;
        public String BookedComments = null;
        public String UnbookedComments = null;
        public String CommentsToCustomer = null;
        public Date CreatedDate = null;
        public Date UpdatedDate = null;
        public Date UnbookedOn = null;
        public String CancellationCode = null;
        public String RatingCode = null;
        
        public Integer getId() { return Id; }
        public BookingQueryResponse setId(Integer value) { this.Id = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public BookingQueryResponse setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Date getFrom() { return From; }
        public BookingQueryResponse setFrom(Date value) { this.From = value; return this; }
        public Date getTo() { return To; }
        public BookingQueryResponse setTo(Date value) { this.To = value; return this; }
        public BookingStatusEnum getStatus() { return Status; }
        public BookingQueryResponse setStatus(BookingStatusEnum value) { this.Status = value; return this; }
        public Integer getStatusId() { return StatusId; }
        public BookingQueryResponse setStatusId(Integer value) { this.StatusId = value; return this; }
        public String getStatusName() { return StatusName; }
        public BookingQueryResponse setStatusName(String value) { this.StatusName = value; return this; }
        public BookingStatusQueryResponse getStatusInfo() { return StatusInfo; }
        public BookingQueryResponse setStatusInfo(BookingStatusQueryResponse value) { this.StatusInfo = value; return this; }
        public Boolean isSendEmailReminder() { return SendEmailReminder; }
        public BookingQueryResponse setSendEmailReminder(Boolean value) { this.SendEmailReminder = value; return this; }
        public Boolean isSendSmsReminder() { return SendSmsReminder; }
        public BookingQueryResponse setSendSmsReminder(Boolean value) { this.SendSmsReminder = value; return this; }
        public Boolean isSendSmsConfirmation() { return SendSmsConfirmation; }
        public BookingQueryResponse setSendSmsConfirmation(Boolean value) { this.SendSmsConfirmation = value; return this; }
        public Boolean isSendEmailConfirmation() { return SendEmailConfirmation; }
        public BookingQueryResponse setSendEmailConfirmation(Boolean value) { this.SendEmailConfirmation = value; return this; }
        public Date getLastTimeToUnBook() { return LastTimeToUnBook; }
        public BookingQueryResponse setLastTimeToUnBook(Date value) { this.LastTimeToUnBook = value; return this; }
        public ArrayList<CustomFieldConfigData> getCustomFields() { return CustomFields; }
        public BookingQueryResponse setCustomFields(ArrayList<CustomFieldConfigData> value) { this.CustomFields = value; return this; }
        public ArrayList<CustomFieldDataResponse> getCustomFieldValues() { return CustomFieldValues; }
        public BookingQueryResponse setCustomFieldValues(ArrayList<CustomFieldDataResponse> value) { this.CustomFieldValues = value; return this; }
        public ArrayList<BookedResourceType> getBookedResourceTypes() { return BookedResourceTypes; }
        public BookingQueryResponse setBookedResourceTypes(ArrayList<BookedResourceType> value) { this.BookedResourceTypes = value; return this; }
        public BookedCompany getCompany() { return Company; }
        public BookingQueryResponse setCompany(BookedCompany value) { this.Company = value; return this; }
        public BookedCustomer getCustomer() { return Customer; }
        public BookingQueryResponse setCustomer(BookedCustomer value) { this.Customer = value; return this; }
        public ArrayList<BookedQuantity> getQuantities() { return Quantities; }
        public BookingQueryResponse setQuantities(ArrayList<BookedQuantity> value) { this.Quantities = value; return this; }
        public ServiceInfoResponse getService() { return Service; }
        public BookingQueryResponse setService(ServiceInfoResponse value) { this.Service = value; return this; }
        public Date getPaymentExpiration() { return PaymentExpiration; }
        public BookingQueryResponse setPaymentExpiration(Date value) { this.PaymentExpiration = value; return this; }
        public ArrayList<BookingLogQueryResponse> getLog() { return Log; }
        public BookingQueryResponse setLog(ArrayList<BookingLogQueryResponse> value) { this.Log = value; return this; }
        public ArrayList<BookingPaymentLogQueryResponse> getPaymentLog() { return PaymentLog; }
        public BookingQueryResponse setPaymentLog(ArrayList<BookingPaymentLogQueryResponse> value) { this.PaymentLog = value; return this; }
        public ArrayList<BookingCheckoutQueryResponse> getCheckoutLog() { return CheckoutLog; }
        public BookingQueryResponse setCheckoutLog(ArrayList<BookingCheckoutQueryResponse> value) { this.CheckoutLog = value; return this; }
        public ArrayList<ExternalReferenceResponse> getExternalReference() { return ExternalReference; }
        public BookingQueryResponse setExternalReference(ArrayList<ExternalReferenceResponse> value) { this.ExternalReference = value; return this; }
        public ResponseStatus getResponseStatus() { return ResponseStatus; }
        public BookingQueryResponse setResponseStatus(ResponseStatus value) { this.ResponseStatus = value; return this; }
        public BookingCalendarExportStatus getCalendarExportStatus() { return CalendarExportStatus; }
        public BookingQueryResponse setCalendarExportStatus(BookingCalendarExportStatus value) { this.CalendarExportStatus = value; return this; }
        public Integer getLengthInMinutes() { return LengthInMinutes; }
        public BookingQueryResponse setLengthInMinutes(Integer value) { this.LengthInMinutes = value; return this; }
        public String getBookedBy() { return BookedBy; }
        public BookingQueryResponse setBookedBy(String value) { this.BookedBy = value; return this; }
        public String getBookedComments() { return BookedComments; }
        public BookingQueryResponse setBookedComments(String value) { this.BookedComments = value; return this; }
        public String getUnbookedComments() { return UnbookedComments; }
        public BookingQueryResponse setUnbookedComments(String value) { this.UnbookedComments = value; return this; }
        public String getCommentsToCustomer() { return CommentsToCustomer; }
        public BookingQueryResponse setCommentsToCustomer(String value) { this.CommentsToCustomer = value; return this; }
        public Date getCreatedDate() { return CreatedDate; }
        public BookingQueryResponse setCreatedDate(Date value) { this.CreatedDate = value; return this; }
        public Date getUpdatedDate() { return UpdatedDate; }
        public BookingQueryResponse setUpdatedDate(Date value) { this.UpdatedDate = value; return this; }
        public Date getUnbookedOn() { return UnbookedOn; }
        public BookingQueryResponse setUnbookedOn(Date value) { this.UnbookedOn = value; return this; }
        public String getCancellationCode() { return CancellationCode; }
        public BookingQueryResponse setCancellationCode(String value) { this.CancellationCode = value; return this; }
        public String getRatingCode() { return RatingCode; }
        public BookingQueryResponse setRatingCode(String value) { this.RatingCode = value; return this; }
    }

    public static class BookingStatusQueryResponse
    {
        public Integer Id = null;
        public String Name = null;
        public String Description = null;
        public String Icon = null;
        public String Color = null;
        
        public Integer getId() { return Id; }
        public BookingStatusQueryResponse setId(Integer value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public BookingStatusQueryResponse setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public BookingStatusQueryResponse setDescription(String value) { this.Description = value; return this; }
        public String getIcon() { return Icon; }
        public BookingStatusQueryResponse setIcon(String value) { this.Icon = value; return this; }
        public String getColor() { return Color; }
        public BookingStatusQueryResponse setColor(String value) { this.Color = value; return this; }
    }

    public static class CustomFieldConfigData
    {
        /**
        * Custom field id
        */
        @ApiMember(Description="Custom field id")
        public Integer Id = null;

        /**
        * Configuration name. Example: 'Number of persons'.
        */
        @ApiMember(Description="Configuration name. Example: 'Number of persons'.")
        public String Name = null;

        /**
        * Custom field description. Example: 'For how many persons is this booking?'
        */
        @ApiMember(Description="Custom field description. Example: 'For how many persons is this booking?'")
        public String Description = null;

        /**
        * Field width. Example: 20 for 20px
        */
        @ApiMember(Description="Field width. Example: 20 for 20px")
        public Integer Width = null;

        /**
        * Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox'
        */
        @ApiMember(Description="Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox'")
        public String DataType = null;

        /**
        * Default value of the field. Example: '3'
        */
        @ApiMember(Description="Default value of the field. Example: '3'")
        public String DefaultValue = null;

        /**
        * Determines if the field is required to have a value or not
        */
        @ApiMember(Description="Determines if the field is required to have a value or not")
        public Boolean IsMandatory = null;

        /**
        * Error message shown to the user if the field data is required but not entered
        */
        @ApiMember(Description="Error message shown to the user if the field data is required but not entered")
        public String MandatoryErrorMessage = null;

        /**
        * Max lenght of the field
        */
        @ApiMember(Description="Max lenght of the field")
        public Integer MaxLength = null;

        /**
        * If the field should have multiple lines
        */
        @ApiMember(Description="If the field should have multiple lines")
        public Boolean MultipleLineText = null;

        /**
        * Regular expression used for validation of the field
        */
        @ApiMember(Description="Regular expression used for validation of the field")
        public String RegEx = null;

        /**
        * Error message shown if the regular expression validation failed
        */
        @ApiMember(Description="Error message shown if the regular expression validation failed")
        public String RegExErrorMessage = null;

        /**
        * The values to select from if Datatype is DropDown for this custom field
        */
        @ApiMember(Description="The values to select from if Datatype is DropDown for this custom field")
        public ArrayList<CustomFieldValueResponse> Values = null;
        
        public Integer getId() { return Id; }
        public CustomFieldConfigData setId(Integer value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public CustomFieldConfigData setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public CustomFieldConfigData setDescription(String value) { this.Description = value; return this; }
        public Integer getWidth() { return Width; }
        public CustomFieldConfigData setWidth(Integer value) { this.Width = value; return this; }
        public String getDataType() { return DataType; }
        public CustomFieldConfigData setDataType(String value) { this.DataType = value; return this; }
        public String getDefaultValue() { return DefaultValue; }
        public CustomFieldConfigData setDefaultValue(String value) { this.DefaultValue = value; return this; }
        public Boolean getIsMandatory() { return IsMandatory; }
        public CustomFieldConfigData setIsMandatory(Boolean value) { this.IsMandatory = value; return this; }
        public String getMandatoryErrorMessage() { return MandatoryErrorMessage; }
        public CustomFieldConfigData setMandatoryErrorMessage(String value) { this.MandatoryErrorMessage = value; return this; }
        public Integer getMaxLength() { return MaxLength; }
        public CustomFieldConfigData setMaxLength(Integer value) { this.MaxLength = value; return this; }
        public Boolean isMultipleLineText() { return MultipleLineText; }
        public CustomFieldConfigData setMultipleLineText(Boolean value) { this.MultipleLineText = value; return this; }
        public String getRegEx() { return RegEx; }
        public CustomFieldConfigData setRegEx(String value) { this.RegEx = value; return this; }
        public String getRegExErrorMessage() { return RegExErrorMessage; }
        public CustomFieldConfigData setRegExErrorMessage(String value) { this.RegExErrorMessage = value; return this; }
        public ArrayList<CustomFieldValueResponse> getValues() { return Values; }
        public CustomFieldConfigData setValues(ArrayList<CustomFieldValueResponse> value) { this.Values = value; return this; }
    }

    public static class CustomFieldValueResponse
    {
        public String Value = null;
        
        public String getValue() { return Value; }
        public CustomFieldValueResponse setValue(String value) { this.Value = value; return this; }
    }

    public static class CustomFieldDataResponse
    {
        public Integer Id = null;
        public String Column = null;
        public String Name = null;
        public String Description = null;
        public String Value = null;
        /**
        * Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox'
        */
        @ApiMember(Description="Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox'")
        public String DataType = null;
        
        public Integer getId() { return Id; }
        public CustomFieldDataResponse setId(Integer value) { this.Id = value; return this; }
        public String getColumn() { return Column; }
        public CustomFieldDataResponse setColumn(String value) { this.Column = value; return this; }
        public String getName() { return Name; }
        public CustomFieldDataResponse setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public CustomFieldDataResponse setDescription(String value) { this.Description = value; return this; }
        public String getValue() { return Value; }
        public CustomFieldDataResponse setValue(String value) { this.Value = value; return this; }
        public String getDataType() { return DataType; }
        public CustomFieldDataResponse setDataType(String value) { this.DataType = value; return this; }
    }

    public static class BookedResourceType
    {
        /**
        * The resource type id
        */
        @ApiMember(Description="The resource type id")
        public Integer Id = null;

        /**
        * The resource type name
        */
        @ApiMember(Description="The resource type name")
        public String Name = null;

        /**
        * The resources inside resource type
        */
        @ApiMember(Description="The resources inside resource type")
        public ArrayList<BookedResource> Resources = null;
        
        public Integer getId() { return Id; }
        public BookedResourceType setId(Integer value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public BookedResourceType setName(String value) { this.Name = value; return this; }
        public ArrayList<BookedResource> getResources() { return Resources; }
        public BookedResourceType setResources(ArrayList<BookedResource> value) { this.Resources = value; return this; }
    }

    public static class BookedResource
    {
        public Integer Id = null;
        public String Name = null;
        public String Color = null;
        public Uri ImageUrl = null;
        public String Email = null;
        public String MobilePhone = null;
        public String AccessGroup = null;
        public Boolean EmailNotification = null;
        public Boolean SMSNotification = null;
        public Boolean EmailReminder = null;
        public Boolean SMSReminder = null;
        
        public Integer getId() { return Id; }
        public BookedResource setId(Integer value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public BookedResource setName(String value) { this.Name = value; return this; }
        public String getColor() { return Color; }
        public BookedResource setColor(String value) { this.Color = value; return this; }
        public Uri getImageUrl() { return ImageUrl; }
        public BookedResource setImageUrl(Uri value) { this.ImageUrl = value; return this; }
        public String getEmail() { return Email; }
        public BookedResource setEmail(String value) { this.Email = value; return this; }
        public String getMobilePhone() { return MobilePhone; }
        public BookedResource setMobilePhone(String value) { this.MobilePhone = value; return this; }
        public String getAccessGroup() { return AccessGroup; }
        public BookedResource setAccessGroup(String value) { this.AccessGroup = value; return this; }
        public Boolean isEmailNotification() { return EmailNotification; }
        public BookedResource setEmailNotification(Boolean value) { this.EmailNotification = value; return this; }
        public Boolean isSmsNotification() { return SMSNotification; }
        public BookedResource setSmsNotification(Boolean value) { this.SMSNotification = value; return this; }
        public Boolean isEmailReminder() { return EmailReminder; }
        public BookedResource setEmailReminder(Boolean value) { this.EmailReminder = value; return this; }
        public Boolean isSmsReminder() { return SMSReminder; }
        public BookedResource setSmsReminder(Boolean value) { this.SMSReminder = value; return this; }
    }

    public static class BookedCompany
    {
        public UUID Id = null;
        public String Name = null;
        public Uri LogoType = null;
        public String Category = null;
        public String Street1 = null;
        public String Street2 = null;
        public String ZipCode = null;
        public String City = null;
        public String CountryId = null;
        public String Longitude = null;
        public String Latitude = null;
        public String Phone = null;
        public String Email = null;
        public String HomePage = null;
        public String SitePath = null;
        public Boolean IsFavorite = null;
        public Integer PaymentProviderId = null;
        
        public UUID getId() { return Id; }
        public BookedCompany setId(UUID value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public BookedCompany setName(String value) { this.Name = value; return this; }
        public Uri getLogoType() { return LogoType; }
        public BookedCompany setLogoType(Uri value) { this.LogoType = value; return this; }
        public String getCategory() { return Category; }
        public BookedCompany setCategory(String value) { this.Category = value; return this; }
        public String getStreet1() { return Street1; }
        public BookedCompany setStreet1(String value) { this.Street1 = value; return this; }
        public String getStreet2() { return Street2; }
        public BookedCompany setStreet2(String value) { this.Street2 = value; return this; }
        public String getZipCode() { return ZipCode; }
        public BookedCompany setZipCode(String value) { this.ZipCode = value; return this; }
        public String getCity() { return City; }
        public BookedCompany setCity(String value) { this.City = value; return this; }
        public String getCountryId() { return CountryId; }
        public BookedCompany setCountryId(String value) { this.CountryId = value; return this; }
        public String getLongitude() { return Longitude; }
        public BookedCompany setLongitude(String value) { this.Longitude = value; return this; }
        public String getLatitude() { return Latitude; }
        public BookedCompany setLatitude(String value) { this.Latitude = value; return this; }
        public String getPhone() { return Phone; }
        public BookedCompany setPhone(String value) { this.Phone = value; return this; }
        public String getEmail() { return Email; }
        public BookedCompany setEmail(String value) { this.Email = value; return this; }
        public String getHomePage() { return HomePage; }
        public BookedCompany setHomePage(String value) { this.HomePage = value; return this; }
        public String getSitePath() { return SitePath; }
        public BookedCompany setSitePath(String value) { this.SitePath = value; return this; }
        public Boolean getIsFavorite() { return IsFavorite; }
        public BookedCompany setIsFavorite(Boolean value) { this.IsFavorite = value; return this; }
        public Integer getPaymentProviderId() { return PaymentProviderId; }
        public BookedCompany setPaymentProviderId(Integer value) { this.PaymentProviderId = value; return this; }
    }

    public static class BookedCustomer
    {
        public UUID Id = null;
        public String Firstname = null;
        public String Lastname = null;
        public String Email = null;
        public String Phone = null;
        public String FacebookUserName = null;
        public String ImageUrl = null;
        public String CorporateIdentityNumber = null;
        public String InvoiceAddress1 = null;
        public String InvoiceAddress2 = null;
        public String InvoiceCity = null;
        public String InvoicePostalCode = null;
        public String InvoiceCountryCode = null;
        
        public UUID getId() { return Id; }
        public BookedCustomer setId(UUID value) { this.Id = value; return this; }
        public String getFirstname() { return Firstname; }
        public BookedCustomer setFirstname(String value) { this.Firstname = value; return this; }
        public String getLastname() { return Lastname; }
        public BookedCustomer setLastname(String value) { this.Lastname = value; return this; }
        public String getEmail() { return Email; }
        public BookedCustomer setEmail(String value) { this.Email = value; return this; }
        public String getPhone() { return Phone; }
        public BookedCustomer setPhone(String value) { this.Phone = value; return this; }
        public String getFacebookUserName() { return FacebookUserName; }
        public BookedCustomer setFacebookUserName(String value) { this.FacebookUserName = value; return this; }
        public String getImageUrl() { return ImageUrl; }
        public BookedCustomer setImageUrl(String value) { this.ImageUrl = value; return this; }
        public String getCorporateIdentityNumber() { return CorporateIdentityNumber; }
        public BookedCustomer setCorporateIdentityNumber(String value) { this.CorporateIdentityNumber = value; return this; }
        public String getInvoiceAddress1() { return InvoiceAddress1; }
        public BookedCustomer setInvoiceAddress1(String value) { this.InvoiceAddress1 = value; return this; }
        public String getInvoiceAddress2() { return InvoiceAddress2; }
        public BookedCustomer setInvoiceAddress2(String value) { this.InvoiceAddress2 = value; return this; }
        public String getInvoiceCity() { return InvoiceCity; }
        public BookedCustomer setInvoiceCity(String value) { this.InvoiceCity = value; return this; }
        public String getInvoicePostalCode() { return InvoicePostalCode; }
        public BookedCustomer setInvoicePostalCode(String value) { this.InvoicePostalCode = value; return this; }
        public String getInvoiceCountryCode() { return InvoiceCountryCode; }
        public BookedCustomer setInvoiceCountryCode(String value) { this.InvoiceCountryCode = value; return this; }
    }

    public static class BookedQuantity
    {
        /**
        * The quantity Id
        */
        @ApiMember(Description="The quantity Id")
        public Integer Id = null;

        /**
        * The quantity for booked on this price category
        */
        @ApiMember(Description="The quantity for booked on this price category")
        public Integer Quantity = null;

        /**
        * The price
        */
        @ApiMember(Description="The price")
        public Double Price = null;

        /**
        * The price bofore rebate codes
        */
        @ApiMember(Description="The price bofore rebate codes")
        public Double PriceBeforeRebate = null;

        /**
        * The price currency
        */
        @ApiMember(Description="The price currency")
        public String CurrencyId = null;

        /**
        * The price sign
        */
        @ApiMember(Description="The price sign")
        public String PriceSign = null;

        /**
        * The price category
        */
        @ApiMember(Description="The price category")
        public String Category = null;

        /**
        * The price VAT in percent
        */
        @ApiMember(Description="The price VAT in percent")
        public BigDecimal VAT = null;

        /**
        * The price text to display
        */
        @ApiMember(Description="The price text to display")
        public String PriceText = null;

        /**
        * If the quantity you add should occupy a spot. Default is true. If no it will only be a row that includes price information.
        */
        @ApiMember(Description="If the quantity you add should occupy a spot. Default is true. If no it will only be a row that includes price information.")
        public Boolean OccupiesSpot = null;
        
        public Integer getId() { return Id; }
        public BookedQuantity setId(Integer value) { this.Id = value; return this; }
        public Integer getQuantity() { return Quantity; }
        public BookedQuantity setQuantity(Integer value) { this.Quantity = value; return this; }
        public Double getPrice() { return Price; }
        public BookedQuantity setPrice(Double value) { this.Price = value; return this; }
        public Double getPriceBeforeRebate() { return PriceBeforeRebate; }
        public BookedQuantity setPriceBeforeRebate(Double value) { this.PriceBeforeRebate = value; return this; }
        public String getCurrencyId() { return CurrencyId; }
        public BookedQuantity setCurrencyId(String value) { this.CurrencyId = value; return this; }
        public String getPriceSign() { return PriceSign; }
        public BookedQuantity setPriceSign(String value) { this.PriceSign = value; return this; }
        public String getCategory() { return Category; }
        public BookedQuantity setCategory(String value) { this.Category = value; return this; }
        public BigDecimal getVat() { return VAT; }
        public BookedQuantity setVat(BigDecimal value) { this.VAT = value; return this; }
        public String getPriceText() { return PriceText; }
        public BookedQuantity setPriceText(String value) { this.PriceText = value; return this; }
        public Boolean isOccupiesSpot() { return OccupiesSpot; }
        public BookedQuantity setOccupiesSpot(Boolean value) { this.OccupiesSpot = value; return this; }
    }

    public static class ServiceInfoResponse
    {
        public Integer Id = null;
        public String Name = null;
        public String Description = null;
        public Uri ImageUrl = null;
        public Integer LengthInMinutes = null;
        public Integer MaxNumberOfSpotsPerBooking = null;
        public GroupBookingSettings GroupBooking = null;
        public MultipleResourceSettings MultipleResource = null;
        public Boolean IsGroupBooking = null;
        public Boolean IsPaymentEnabled = null;
        
        public Integer getId() { return Id; }
        public ServiceInfoResponse setId(Integer value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public ServiceInfoResponse setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public ServiceInfoResponse setDescription(String value) { this.Description = value; return this; }
        public Uri getImageUrl() { return ImageUrl; }
        public ServiceInfoResponse setImageUrl(Uri value) { this.ImageUrl = value; return this; }
        public Integer getLengthInMinutes() { return LengthInMinutes; }
        public ServiceInfoResponse setLengthInMinutes(Integer value) { this.LengthInMinutes = value; return this; }
        public Integer getMaxNumberOfSpotsPerBooking() { return MaxNumberOfSpotsPerBooking; }
        public ServiceInfoResponse setMaxNumberOfSpotsPerBooking(Integer value) { this.MaxNumberOfSpotsPerBooking = value; return this; }
        public GroupBookingSettings getGroupBooking() { return GroupBooking; }
        public ServiceInfoResponse setGroupBooking(GroupBookingSettings value) { this.GroupBooking = value; return this; }
        public MultipleResourceSettings getMultipleResource() { return MultipleResource; }
        public ServiceInfoResponse setMultipleResource(MultipleResourceSettings value) { this.MultipleResource = value; return this; }
        public Boolean getIsGroupBooking() { return IsGroupBooking; }
        public ServiceInfoResponse setIsGroupBooking(Boolean value) { this.IsGroupBooking = value; return this; }
        public Boolean getIsPaymentEnabled() { return IsPaymentEnabled; }
        public ServiceInfoResponse setIsPaymentEnabled(Boolean value) { this.IsPaymentEnabled = value; return this; }
    }

    public static class GroupBookingSettings
    {
        public Boolean Active = null;
        public Integer Min = null;
        public Integer Max = null;
        
        public Boolean isActive() { return Active; }
        public GroupBookingSettings setActive(Boolean value) { this.Active = value; return this; }
        public Integer getMin() { return Min; }
        public GroupBookingSettings setMin(Integer value) { this.Min = value; return this; }
        public Integer getMax() { return Max; }
        public GroupBookingSettings setMax(Integer value) { this.Max = value; return this; }
    }

    public static class MultipleResourceSettings
    {
        public Boolean Active = null;
        public Integer Min = null;
        public Integer Max = null;
        
        public Boolean isActive() { return Active; }
        public MultipleResourceSettings setActive(Boolean value) { this.Active = value; return this; }
        public Integer getMin() { return Min; }
        public MultipleResourceSettings setMin(Integer value) { this.Min = value; return this; }
        public Integer getMax() { return Max; }
        public MultipleResourceSettings setMax(Integer value) { this.Max = value; return this; }
    }

    public static class BookingLogQueryResponse
    {
        /**
        * The booking log id
        */
        @ApiMember(Description="The booking log id")
        public Integer Id = null;

        /**
        * The booking id
        */
        @ApiMember(Description="The booking id")
        public Integer BookingId = null;

        /**
        * The type of event
        */
        @ApiMember(Description="The type of event")
        public Integer EventTypeId = null;

        /**
        * The type of event
        */
        @ApiMember(Description="The type of event")
        public BookingLogEventTypeResponse EventType = null;

        /**
        * Comments that could be added to the event log item
        */
        @ApiMember(Description="Comments that could be added to the event log item")
        public String Comments = null;

        /**
        * The user created the event
        */
        @ApiMember(Description="The user created the event")
        public String UserName = null;

        /**
        * Then date when the event occured
        */
        @ApiMember(Description="Then date when the event occured")
        public Date Created = null;
        
        public Integer getId() { return Id; }
        public BookingLogQueryResponse setId(Integer value) { this.Id = value; return this; }
        public Integer getBookingId() { return BookingId; }
        public BookingLogQueryResponse setBookingId(Integer value) { this.BookingId = value; return this; }
        public Integer getEventTypeId() { return EventTypeId; }
        public BookingLogQueryResponse setEventTypeId(Integer value) { this.EventTypeId = value; return this; }
        public BookingLogEventTypeResponse getEventType() { return EventType; }
        public BookingLogQueryResponse setEventType(BookingLogEventTypeResponse value) { this.EventType = value; return this; }
        public String getComments() { return Comments; }
        public BookingLogQueryResponse setComments(String value) { this.Comments = value; return this; }
        public String getUserName() { return UserName; }
        public BookingLogQueryResponse setUserName(String value) { this.UserName = value; return this; }
        public Date getCreated() { return Created; }
        public BookingLogQueryResponse setCreated(Date value) { this.Created = value; return this; }
    }

    public static class BookingLogEventTypeResponse
    {
        /**
        * The event type id
        */
        @ApiMember(Description="The event type id")
        public Integer Id = null;

        /**
        * The event type name
        */
        @ApiMember(Description="The event type name")
        public String Name = null;

        /**
        * The event type description
        */
        @ApiMember(Description="The event type description")
        public String Description = null;
        
        public Integer getId() { return Id; }
        public BookingLogEventTypeResponse setId(Integer value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public BookingLogEventTypeResponse setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public BookingLogEventTypeResponse setDescription(String value) { this.Description = value; return this; }
    }

    public static class BookingPaymentLogQueryResponse
    {
        /**
        * The booking payment log id
        */
        @ApiMember(Description="The booking payment log id")
        public Integer Id = null;

        /**
        * The booking id
        */
        @ApiMember(Description="The booking id")
        public Integer BookingId = null;

        /**
        * The payment reference id
        */
        @ApiMember(Description="The payment reference id")
        public String PaymentReferenceId = null;

        /**
        * The payment order item reference id
        */
        @ApiMember(Description="The payment order item reference id")
        public String OrderItemReferenceId = null;

        /**
        * The payment reference id
        */
        @ApiMember(Description="The payment reference id")
        public Integer PaymentProviderId = null;

        /**
        * The payment amount
        */
        @ApiMember(Description="The payment amount")
        public Double Amount = null;

        /**
        * The payment VAT in percent
        */
        @ApiMember(Description="The payment VAT in percent")
        public BigDecimal VAT = null;

        /**
        * The payment amount that is credited
        */
        @ApiMember(Description="The payment amount that is credited")
        public Double AmountCredited = null;

        /**
        * The payment currency id
        */
        @ApiMember(Description="The payment currency id")
        public String CurrencyId = null;

        /**
        * The payment currency info
        */
        @ApiMember(Description="The payment currency info")
        public CurrencyInfoResponse CurrencyInfo = null;

        /**
        * Comments that could be added to the event log item
        */
        @ApiMember(Description="Comments that could be added to the event log item")
        public String Comments = null;

        /**
        * The date when the payment items was created
        */
        @ApiMember(Description="The date when the payment items was created")
        public Date Created = null;

        /**
        * The date when the payment items was update
        */
        @ApiMember(Description="The date when the payment items was update")
        public Date Updated = null;
        
        public Integer getId() { return Id; }
        public BookingPaymentLogQueryResponse setId(Integer value) { this.Id = value; return this; }
        public Integer getBookingId() { return BookingId; }
        public BookingPaymentLogQueryResponse setBookingId(Integer value) { this.BookingId = value; return this; }
        public String getPaymentReferenceId() { return PaymentReferenceId; }
        public BookingPaymentLogQueryResponse setPaymentReferenceId(String value) { this.PaymentReferenceId = value; return this; }
        public String getOrderItemReferenceId() { return OrderItemReferenceId; }
        public BookingPaymentLogQueryResponse setOrderItemReferenceId(String value) { this.OrderItemReferenceId = value; return this; }
        public Integer getPaymentProviderId() { return PaymentProviderId; }
        public BookingPaymentLogQueryResponse setPaymentProviderId(Integer value) { this.PaymentProviderId = value; return this; }
        public Double getAmount() { return Amount; }
        public BookingPaymentLogQueryResponse setAmount(Double value) { this.Amount = value; return this; }
        public BigDecimal getVat() { return VAT; }
        public BookingPaymentLogQueryResponse setVat(BigDecimal value) { this.VAT = value; return this; }
        public Double getAmountCredited() { return AmountCredited; }
        public BookingPaymentLogQueryResponse setAmountCredited(Double value) { this.AmountCredited = value; return this; }
        public String getCurrencyId() { return CurrencyId; }
        public BookingPaymentLogQueryResponse setCurrencyId(String value) { this.CurrencyId = value; return this; }
        public CurrencyInfoResponse getCurrencyInfo() { return CurrencyInfo; }
        public BookingPaymentLogQueryResponse setCurrencyInfo(CurrencyInfoResponse value) { this.CurrencyInfo = value; return this; }
        public String getComments() { return Comments; }
        public BookingPaymentLogQueryResponse setComments(String value) { this.Comments = value; return this; }
        public Date getCreated() { return Created; }
        public BookingPaymentLogQueryResponse setCreated(Date value) { this.Created = value; return this; }
        public Date getUpdated() { return Updated; }
        public BookingPaymentLogQueryResponse setUpdated(Date value) { this.Updated = value; return this; }
    }

    public static class CurrencyInfoResponse
    {
        /**
        * The currency id
        */
        @ApiMember(Description="The currency id")
        public String Id = null;

        /**
        * The currency id
        */
        @ApiMember(Description="The currency id")
        public String Name = null;

        /**
        * The currency id
        */
        @ApiMember(Description="The currency id")
        public String CurrencySign = null;
        
        public String getId() { return Id; }
        public CurrencyInfoResponse setId(String value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public CurrencyInfoResponse setName(String value) { this.Name = value; return this; }
        public String getCurrencySign() { return CurrencySign; }
        public CurrencyInfoResponse setCurrencySign(String value) { this.CurrencySign = value; return this; }
    }

    public static class BookingCheckoutQueryResponse
    {
        /**
        * The checkout id
        */
        @ApiMember(Description="The checkout id")
        public UUID Id = null;

        /**
        * The booking id
        */
        @ApiMember(Description="The booking id")
        public Integer BookingId = null;

        /**
        * The purchase id
        */
        @ApiMember(Description="The purchase id")
        public Integer PurchaseId = null;

        /**
        * The payment checkout expiration datetime
        */
        @ApiMember(Description="The payment checkout expiration datetime")
        public Date ExpirationTime = null;

        /**
        * The payment snippet code
        */
        @ApiMember(Description="The payment snippet code")
        public String Snippet = null;

        /**
        * The payment status
        */
        @ApiMember(Description="The payment status")
        public String Status = null;

        /**
        * Log message
        */
        @ApiMember(Description="Log message")
        public String Message = null;

        /**
        * When the checkout log item was created
        */
        @ApiMember(Description="When the checkout log item was created")
        public Date Created = null;

        /**
        * When the checkout log item was updated
        */
        @ApiMember(Description="When the checkout log item was updated")
        public Date Updated = null;
        
        public UUID getId() { return Id; }
        public BookingCheckoutQueryResponse setId(UUID value) { this.Id = value; return this; }
        public Integer getBookingId() { return BookingId; }
        public BookingCheckoutQueryResponse setBookingId(Integer value) { this.BookingId = value; return this; }
        public Integer getPurchaseId() { return PurchaseId; }
        public BookingCheckoutQueryResponse setPurchaseId(Integer value) { this.PurchaseId = value; return this; }
        public Date getExpirationTime() { return ExpirationTime; }
        public BookingCheckoutQueryResponse setExpirationTime(Date value) { this.ExpirationTime = value; return this; }
        public String getSnippet() { return Snippet; }
        public BookingCheckoutQueryResponse setSnippet(String value) { this.Snippet = value; return this; }
        public String getStatus() { return Status; }
        public BookingCheckoutQueryResponse setStatus(String value) { this.Status = value; return this; }
        public String getMessage() { return Message; }
        public BookingCheckoutQueryResponse setMessage(String value) { this.Message = value; return this; }
        public Date getCreated() { return Created; }
        public BookingCheckoutQueryResponse setCreated(Date value) { this.Created = value; return this; }
        public Date getUpdated() { return Updated; }
        public BookingCheckoutQueryResponse setUpdated(Date value) { this.Updated = value; return this; }
    }

    public static class ExternalReferenceResponse
    {
        public UUID CompanyId = null;
        public UUID Id = null;
        public UUID OwnerId = null;
        public String ReferenceType = null;
        public String ExternalData = null;
        public String CreatedBy = null;
        public Date Updated = null;
        public Date Created = null;
        
        public UUID getCompanyId() { return CompanyId; }
        public ExternalReferenceResponse setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public UUID getId() { return Id; }
        public ExternalReferenceResponse setId(UUID value) { this.Id = value; return this; }
        public UUID getOwnerId() { return OwnerId; }
        public ExternalReferenceResponse setOwnerId(UUID value) { this.OwnerId = value; return this; }
        public String getReferenceType() { return ReferenceType; }
        public ExternalReferenceResponse setReferenceType(String value) { this.ReferenceType = value; return this; }
        public String getExternalData() { return ExternalData; }
        public ExternalReferenceResponse setExternalData(String value) { this.ExternalData = value; return this; }
        public String getCreatedBy() { return CreatedBy; }
        public ExternalReferenceResponse setCreatedBy(String value) { this.CreatedBy = value; return this; }
        public Date getUpdated() { return Updated; }
        public ExternalReferenceResponse setUpdated(Date value) { this.Updated = value; return this; }
        public Date getCreated() { return Created; }
        public ExternalReferenceResponse setCreated(Date value) { this.Created = value; return this; }
    }

    public static class BookingCalendarExportStatus
    {
        public String CalendarId = null;
        public Integer BookingId = null;
        public Boolean Synced = null;
        
        public String getCalendarId() { return CalendarId; }
        public BookingCalendarExportStatus setCalendarId(String value) { this.CalendarId = value; return this; }
        public Integer getBookingId() { return BookingId; }
        public BookingCalendarExportStatus setBookingId(Integer value) { this.BookingId = value; return this; }
        public Boolean isSynced() { return Synced; }
        public BookingCalendarExportStatus setSynced(Boolean value) { this.Synced = value; return this; }
    }

}

Java UpdateBooking 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.

PUT /bookings/{Id} HTTP/1.1 
Host: testapi.bokamera.se 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	CompanyId: 00000000-0000-0000-0000-000000000000,
	Id: 0,
	From: "0001-01-01T00:00:00",
	To: "0001-01-01T00:00:00",
	Status: 0,
	PaymentExpiration: "0001-01-01T00:00:00",
	LastTimeToUnBook: "0001-01-01T00:00:00",
	UnbookedComments: String,
	BookedComments: String,
	CommentsToCustomer: String,
	CustomFields: 
	[
		{
			Id: 0,
			Value: String
		}
	],
	Resources: 
	{
		AutoSelectNotDefinedResources: False,
		Resources: 
		[
			{
				ResourceTypeId: 0,
				ResourceId: 0
			}
		]
	},
	AllowBookingOutsideSchedules: False,
	Comment: String,
	Message: String,
	SendSmsConfirmation: False,
	SendEmailConfirmation: False
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Id: 0,
	Status: Booked,
	StatusId: 0,
	StatusName: String,
	StatusInfo: 
	{
		Id: 0,
		Name: String,
		Description: String,
		Icon: String,
		Color: String
	},
	SendEmailReminder: False,
	SendSmsReminder: False,
	SendSmsConfirmation: False,
	SendEmailConfirmation: False,
	LastTimeToUnBook: "0001-01-01T00:00:00",
	CustomFields: 
	[
		{
			"Id": 0,
			"Name": "String",
			"Description": "String",
			"Width": 0,
			"DataType": "String",
			"DefaultValue": "String",
			"IsMandatory": false,
			"MandatoryErrorMessage": "String",
			"MaxLength": 0,
			"MultipleLineText": false,
			"RegEx": "String",
			"RegExErrorMessage": "String",
			"Values": 
			[
				{
					"Value": "String"
				}
			]
		}
	],
	CustomFieldValues: 
	[
		{
			Id: 0,
			Column: String,
			Name: String,
			Description: String,
			Value: String,
			DataType: String
		}
	],
	BookedResourceTypes: 
	[
		{
			Id: 0,
			Name: String,
			Resources: 
			[
				{
					Id: 0,
					Name: String,
					Color: String,
					Email: String,
					MobilePhone: String,
					AccessGroup: String,
					EmailNotification: False,
					SMSNotification: False,
					EmailReminder: False,
					SMSReminder: False
				}
			]
		}
	],
	Company: 
	{
		Name: String,
		Category: String,
		Street1: String,
		Street2: String,
		ZipCode: String,
		City: String,
		CountryId: String,
		Longitude: String,
		Latitude: String,
		Phone: String,
		Email: String,
		HomePage: String,
		SitePath: String,
		IsFavorite: False,
		PaymentProviderId: 0
	},
	Customer: 
	{
		Firstname: String,
		Lastname: String,
		Email: String,
		Phone: String,
		FacebookUserName: String,
		ImageUrl: String,
		CorporateIdentityNumber: String,
		InvoiceAddress1: String,
		InvoiceAddress2: String,
		InvoiceCity: String,
		InvoicePostalCode: String,
		InvoiceCountryCode: String
	},
	Quantities: 
	[
		{
			Id: 0,
			Quantity: 0,
			Price: 0,
			PriceBeforeRebate: 0,
			CurrencyId: String,
			PriceSign: String,
			Category: String,
			VAT: 0,
			PriceText: String,
			OccupiesSpot: False
		}
	],
	Service: 
	{
		Id: 0,
		Name: String,
		Description: String,
		LengthInMinutes: 0,
		MaxNumberOfSpotsPerBooking: 0,
		GroupBooking: 
		{
			Active: False,
			Min: 0,
			Max: 0
		},
		MultipleResource: 
		{
			Active: False,
			Min: 0,
			Max: 0
		},
		IsGroupBooking: False,
		IsPaymentEnabled: False
	},
	PaymentExpiration: "0001-01-01T00:00:00",
	Log: 
	[
		{
			Id: 0,
			BookingId: 0,
			EventTypeId: 0,
			EventType: 
			{
				Id: 0,
				Name: String,
				Description: String
			},
			Comments: String,
			UserName: String
		}
	],
	PaymentLog: 
	[
		{
			Id: 0,
			BookingId: 0,
			PaymentReferenceId: String,
			OrderItemReferenceId: String,
			PaymentProviderId: 0,
			Amount: 0,
			VAT: 0,
			AmountCredited: 0,
			CurrencyId: String,
			CurrencyInfo: 
			{
				Id: String,
				Name: String,
				CurrencySign: String
			},
			Comments: String
		}
	],
	CheckoutLog: 
	[
		{
			BookingId: 0,
			PurchaseId: 0,
			ExpirationTime: "0001-01-01T00:00:00",
			Snippet: String,
			Status: String,
			Message: String
		}
	],
	ExternalReference: 
	[
		{
			ReferenceType: String,
			ExternalData: String,
			CreatedBy: String
		}
	],
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	},
	CalendarExportStatus: 
	{
		CalendarId: String,
		BookingId: 0,
		Synced: False
	},
	LengthInMinutes: 0,
	BookedBy: String,
	BookedComments: String,
	UnbookedComments: String,
	CommentsToCustomer: String,
	UnbookedOn: "0001-01-01T00:00:00",
	CancellationCode: String,
	RatingCode: String
}