swagger: "2.0"
schemes:
  - https
host: api.hetras-certification.net
basePath: /
info:
  title: hetras Booking API Version 0
  version: v0
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/https_twitter.com_hetras_profile_image.jpeg
  x-origin:
    - format: swagger
      url: https://developer.hetras.com/swagger/spec/BookingAPIv0.json
      version: "2.0"
  x-providerName: hetras-certification.net
  x-serviceName: booking
paths:
  /api/booking/v0/addons:
    get:
      consumes: []
      deprecated: false
      description: "With the addons request you can get a list of offers for addon services available for a specific rate, room type\r

        \            and guest stay details.The channel code will define which rates will be returned based on the access control \r

        \            configuration for related rates."
      operationId: Addons_Get
      parameters:
        - description: Application identifier
          in: header
          name: App-Id
          required: true
          type: string
          x-data-threescale-name: app_ids
        - description: Application key.
          in: header
          name: App-Key
          required: true
          type: string
          x-data-threescale-name: app_keys
        - description: Specifies the hotel id to request offers for.
          format: int32
          in: query
          name: hotelId
          required: true
          type: integer
        - description: Date from when the addon service will be booked to the reservation in the ISO-8601 format "YYYY-MM-DD".
          format: date-time
          in: query
          name: arrivalDate
          required: true
          type: string
        - description: "Date until when the addon service will be booked to the reservation in the ISO-8601 format \"YYYY-MM-DD\".\r

            \            This is usually the departure date of the reservation."
          format: date-time
          in: query
          name: departureDate
          required: true
          type: string
        - description: Channel Code the rate plan needs to be configured for.
          in: query
          name: channelCode
          required: true
          type: string
        - description: Number of adults per room.
          format: byte
          in: query
          maximum: 255
          minimum: 1
          name: adults
          required: true
          type: string
        - description: Number of rooms.
          format: byte
          in: query
          maximum: 255
          minimum: 1
          name: rooms
          required: true
          type: string
        - description: Only return offers for the specified room type code.
          in: query
          name: roomType
          required: true
          type: string
        - description: Only return offers for the specified rate plan code.
          in: query
          name: ratePlanCode
          required: true
          type: string
        - description: Expand the rates breakdown if required.
          enum:
            - None
            - Breakdown
          in: query
          name: expand
          required: false
          type: string
      produces:
        - application/json
        - text/json
      responses:
        "200":
          description: All addon offers for the requested stay details.
          schema:
            $ref: "#/definitions/Addons"
        "401":
          description: You provided wrong credentials, or you reached your API limit.
        "403":
          description: The application does not have access to the requested resource.
        "404":
          description: Not Found. The server has not found anything matching the Request-URI.
        "422":
          description: "The request failed to validate. Either a mandatory parameter was missing or no offers for \r

            \            the requested stay details"
        "500":
          description: We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles.
        "503":
          description: The server is currently unavailable. Please try later.
      summary: Get a list of offers for addon services for the specified guest stay details.
      tags:
        - Addons
  /api/booking/v0/availability:
    get:
      consumes: []
      deprecated: false
      description: Read past occupancy and future availability for a specific hotel. You can also request the breakdown per room type.
      operationId: Availability_Get
      parameters:
        - description: Application identifier
          in: header
          name: App-Id
          required: true
          type: string
          x-data-threescale-name: app_ids
        - description: Application key.
          in: header
          name: App-Key
          required: true
          type: string
          x-data-threescale-name: app_keys
        - description: Specifies the hotel id to request the availability for.
          format: int32
          in: query
          name: hotelId
          required: true
          type: integer
        - description: Defines the first business day you would like to get availability numbers for.
          format: date-time
          in: query
          name: from
          required: true
          type: string
        - description: "Defines the last business day you would like to get availability numbers for. The maximum time span between <i>from</i>´and <i>to</i>\r

            \            is limited to 365 days."
          format: date-time
          in: query
          name: to
          required: true
          type: string
        - description: You can expand the room types breakdown per business day for the availibility numbers if need be.
          enum:
            - RoomTypes
          in: query
          name: expand
          required: false
          type: string
        - description: Amount of items to skip.
          format: int32
          in: query
          name: skip
          required: false
          type: integer
        - description: Amount of items to select.
          format: int32
          in: query
          name: top
          required: false
          type: integer
        - description: Return total number of items for a given filter criteria.
          enum:
            - None
            - AllPages
          in: query
          name: inlinecount
          required: false
          type: string
      produces:
        - application/json
        - text/json
      responses:
        "200":
          description: Returns a list of availabilities per business day.
          schema:
            $ref: "#/definitions/AvailabilityResponse"
        "400":
          description: Bad request. Request parameters syntactically erroneous.
        "401":
          description: You provided wrong credentials, or you reached your API limit.
        "403":
          description: The application does not have access to the requested resource.
        "404":
          description: Not Found. The server has not found anything matching the Request-URI.
        "500":
          description: We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles.
      summary: Gets the availability and occupancy for a specific hotel and timespan.
      tags:
        - Availability
  /api/booking/v0/blocks:
    get:
      consumes: []
      deprecated: false
      description: "With this endpoint you can request a list of blocks for the hotel chain. Currently we only support to optionally\r

        \            filter by the group code linked to the block. Additional filters will be available soon."
      operationId: Blocks_GetBlocksAsync
      parameters:
        - description: Application identifier
          in: header
          name: App-Id
          required: true
          type: string
          x-data-threescale-name: app_ids
        - description: Application key.
          in: header
          name: App-Key
          required: true
          type: string
          x-data-threescale-name: app_keys
        - in: body
          name: token
          required: true
          schema:
            $ref: "#/definitions/CancellationToken"
        - description: Only return blocks for this specific hotel.
          format: int32
          in: query
          name: hotelId
          required: false
          type: integer
        - description: Filter the blocks by the specified group code
          in: query
          name: groupCode
          required: false
          type: string
        - description: Return all blocks where the block's last_departure is greater than specified date.
          format: date-time
          in: query
          name: from
          required: false
          type: string
        - description: Return all blocks where the block's last_departure is less than specified date.
          format: date-time
          in: query
          name: to
          required: false
          type: string
        - description: Return all blocks where the block status is one of the specified values.
          enum:
            - Cancelled
            - Tentative
            - Definite
          in: query
          name: status
          required: false
          type: string
        - collectionFormat: csv
          description: Return all blocks that have related the specified comma-separated rate plans.
          in: query
          items:
            type: string
          name: ratePlanCodes
          required: false
          type: array
        - description: If true it will include also details of block count per each room type.
          in: query
          name: countDetails
          required: false
          type: boolean
        - description: Amount of items to skip.
          format: int32
          in: query
          name: skip
          required: false
          type: integer
        - description: Amount of items to select.
          format: int32
          in: query
          name: top
          required: false
          type: integer
        - description: Return total number of items for a given filter criteria.
          enum:
            - None
            - AllPages
          in: query
          name: inlinecount
          required: false
          type: string
      produces:
        - application/json
        - text/json
      responses:
        "200":
          description: Returns a list of blocks matching the provided filter criteria.
          schema:
            $ref: "#/definitions/Object"
        "204":
          description: There are no blocks matching your filter criteria.
        "400":
          description: Bad request. Request parameters syntactically erroneous.
        "401":
          description: You provided wrong credentials, or you reached your API limit.
        "403":
          description: The application does not have access to the requested resource.
        "404":
          description: Not Found. The server has not found anything matching the Request-URI.
        "500":
          description: We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles.
        "503":
          description: The server is currently unavailable. Please try later.
      summary: Gets a list of blocks.
      tags:
        - Blocks
  /api/booking/v0/blocks/$count:
    get:
      consumes: []
      deprecated: false
      operationId: Blocks_GetBlocksCountAsync
      parameters:
        - description: Application identifier
          in: header
          name: App-Id
          required: true
          type: string
          x-data-threescale-name: app_ids
        - description: Application key.
          in: header
          name: App-Key
          required: true
          type: string
          x-data-threescale-name: app_keys
        - in: body
          name: token
          required: true
          schema:
            $ref: "#/definitions/CancellationToken"
        - description: Only return blocks for this specific hotel.
          format: int32
          in: query
          name: hotelId
          required: false
          type: integer
        - description: Filter the blocks by the specified group code
          in: query
          name: groupCode
          required: false
          type: string
        - description: Return all blocks where the block's last_departure is greater than specified date.
          format: date-time
          in: query
          name: from
          required: false
          type: string
        - description: Return all blocks where the block's last_departure is less than specified date.
          format: date-time
          in: query
          name: to
          required: false
          type: string
        - description: Return all blocks where the block status is one of the specified values.
          enum:
            - Cancelled
            - Tentative
            - Definite
          in: query
          name: status
          required: false
          type: string
        - collectionFormat: csv
          description: Return all blocks that have related the specified comma-separated rate plans.
          in: query
          items:
            type: string
          name: ratePlanCodes
          required: false
          type: array
        - description: If true it will include also details of block count per each room type.
          in: query
          name: countDetails
          required: false
          type: boolean
      produces:
        - application/json
        - text/json
      responses:
        "200":
          description: The total blocks count for a given filter criteria.
          schema:
            $ref: "#/definitions/TotalCountResponse"
        "401":
          description: You provided wrong credentials, or you reached your API limit.
        "403":
          description: The application does not have access to the requested resource.
        "500":
          description: We couldn't return the representation due to an internal server error.
        "503":
          description: The server is currently unavailable. Please try later.
      summary: Get total blocks count that match the given filter criteria.
      tags:
        - Blocks
  "/api/booking/v0/blocks/{blockCode}":
    get:
      consumes: []
      deprecated: false
      description: Read all informationen about a block including the numbers of blocked rooms per room type and business day.
      operationId: Blocks_GetSingleBlockAsync
      parameters:
        - description: Application identifier
          in: header
          name: App-Id
          required: true
          type: string
          x-data-threescale-name: app_ids
        - description: Application key.
          in: header
          name: App-Key
          required: true
          type: string
          x-data-threescale-name: app_keys
        - description: "Specifies the block code. The block code is composed of the hotel code, a dash and the block code \r

            \            as shown in the hetras UI."
          in: path
          name: blockCode
          required: true
          type: string
        - description: ""
          in: body
          name: token
          required: true
          schema:
            $ref: "#/definitions/CancellationToken"
      produces:
        - application/json
        - text/json
      responses:
        "200":
          description: Returns you all details for the specific block.
          schema:
            $ref: "#/definitions/Object"
        "400":
          description: Bad request. Request parameters syntactically erroneous.
        "401":
          description: You provided wrong credentials, or you reached your API limit.
        "403":
          description: The application does not have access to the requested resource.
        "404":
          description: Not Found. The server has not found anything matching the Request-URI.
        "500":
          description: We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles.
        "503":
          description: The server is currently unavailable. Please try later.
      summary: Gets the details for a specific block.
      tags:
        - Blocks
  /api/booking/v0/bookings:
    get:
      consumes: []
      deprecated: false
      description: "Here you can easily find bookings matching various criteria. The booking you are looking for has to fullfill all the specified criteria\r

        \            at the same time. So if you specify a customer name and a channel code you will get all bookings where the firstname or lastname of a guest or a \r

        \            contact contains the specified value and that have been done through the defined channel.\r

        \            A booking can consist of multiple reservations, so even if you are looking for a specific reservation which is part of a multi-room booking you will get\r

        \            all reservations for this booking returned."
      operationId: Bookings_GetBookings
      parameters:
        - description: Application identifier
          in: header
          name: App-Id
          required: true
          type: string
          x-data-threescale-name: app_ids
        - description: Application key.
          in: header
          name: App-Key
          required: true
          type: string
          x-data-threescale-name: app_keys
        - description: Only return bookings for this specific hotel.
          format: int32
          in: query
          name: hotelId
          required: false
          type: integer
        - description: Return bookings for this cancellation id.
          in: query
          name: cancellationId
          required: false
          type: string
        - description: "Return bookings matching this reservation number. Please note that reservation numbers are only unique within a hotel. If you\r

            \            don´t specify a hotel filter at the same time you could get back multiple bookings from different hotels."
          format: int32
          in: query
          name: reservationNumber
          required: false
          type: integer
        - description: "Return all bookings where the first or lastname of one of the guests or the contact contains the specified value. The search is executed case insensitive\r

            \            and also stripping of any whitespaces."
          in: query
          name: customerName
          required: false
          type: string
        - description: "Return all bookings where the primary email address of one of the guests or the contact contains the specified value. The search is executed case insensitive\r

            \            and also stripping of any whitespaces."
          in: query
          name: customerEmail
          required: false
          type: string
        - description: Return all bookings the id of one of the guests or the contact matches the specified value.
          in: query
          name: customerId
          required: false
          type: string
        - description: Return all bookings having the specified room number assigned.
          in: query
          name: roomNumber
          required: false
          type: string
        - description: Return all bookings exactly matching the specified external id. This filter is case sensitive.
          in: query
          name: externalId
          required: false
          type: string
        - description: "Return all bookings where the name of the linked company or travel agent profile contains the specified value. The search is executed case insensitive\r

            \            and also stripping of any whitespaces."
          in: query
          name: companyName
          required: false
          type: string
        - description: Return all bookings the id of the company or travel agent profile matches the specified value.
          in: query
          name: companyId
          required: false
          type: string
        - description: "Return all bookings where the primary email address of the company or the travel agent profile contains the specified value. The search is executed case insensitive\r

            \            and also stripping of any whitespaces."
          in: query
          name: companyEmail
          required: false
          type: string
        - description: Return all bookings where the block code matches the specified value.
          in: query
          name: blockCode
          required: false
          type: string
        - collectionFormat: csv
          description: Return all bookings where the reservation status is one of the specified values.
          in: query
          items:
            enum:
              - Tentative
              - Waitlisted
              - OnRequest
              - NonGuaranteed
              - Guaranteed
              - InHouse
              - CheckedOut
              - NoShow
              - Denied
              - Cancelled
              - Released
              - Walked
              - Expired
              - WalkIn
              - Registered
            type: string
          name: reservationStatuses
          required: false
          type: array
        - collectionFormat: csv
          description: Return all bookings where the market code is one of the specified values.
          in: query
          items:
            type: string
          name: marketCodes
          required: false
          type: array
        - collectionFormat: csv
          description: Return all bookings where the channel code is one of the specified values.
          in: query
          items:
            type: string
          name: channelCodes
          required: false
          type: array
        - collectionFormat: csv
          description: Return all bookings where the subchannel code is one of the specified values.
          in: query
          items:
            type: string
          name: subChannelCodes
          required: false
          type: array
        - collectionFormat: csv
          description: Return all bookings where the room type is one of the specified values.
          in: query
          items:
            type: string
          name: roomTypes
          required: false
          type: array
        - collectionFormat: csv
          description: Return all bookings where the rate plan code is one of the specified values.
          in: query
          items:
            type: string
          name: ratePlanCodes
          required: false
          type: array
        - collectionFormat: csv
          description: Return all reservations with at least one of the specified labels.
          in: query
          items:
            type: string
          name: labels
          required: false
          type: array
        - description: "Start date for the selected date filter. If you select arrival date as date filter the bookings returned will have at least\r

            \            one reservation arriving on the specified date or later."
          format: date-time
          in: query
          name: from
          required: false
          type: string
        - description: "End date for the selected date filter. If you select arrival date as date filter the bookings returned will have at least\r

            \            one reservation arriving on the specified date or earlier."
          format: date-time
          in: query
          name: to
          required: false
          type: string
        - description: "Select a date field you want to filter bookings by. Only one filter at a time can be applied. The to and from dates\r

            \            will then define the time range."
          enum:
            - ArrivalDate
            - DepartureDate
            - StayDate
            - CreationDate
            - ModificationDate
          in: query
          name: dateFilter
          required: false
          type: string
        - description: To be able to request reservations without personal data based on GDPR.
          enum:
            - Customers
          in: query
          name: exclude
          required: false
          type: string
        - description: Amount of items to skip.
          format: int32
          in: query
          name: skip
          required: false
          type: integer
        - description: Amount of items to select.
          format: int32
          in: query
          name: top
          required: false
          type: integer
        - description: Return total number of items for a given filter criteria.
          enum:
            - None
            - AllPages
          in: query
          name: inlinecount
          required: false
          type: string
      produces:
        - application/json
        - text/json
      responses:
        "200":
          description: A list of reservations for the requested hotel identifier.
          schema:
            $ref: "#/definitions/BookingListResponse"
        "204":
          description: There are no bookings matching your filter criteria.
        "401":
          description: You provided wrong credentials, or you reached your API limit.
        "403":
          description: The application does not have access to the requested resource.
        "404":
          description: Not Found. The server has not found anything matching the Request-URI.
        "422":
          description: The request failed to validate.
        "500":
          description: We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles.
        "503":
          description: The server is currently unavailable. Please try later.
      summary: Find bookings matching the given filter criteria.
      tags:
        - Bookings
    post:
      consumes:
        - application/json
        - text/json
      deprecated: false
      description: "Create a new booking as defined in the requests payload. You can get more information about the payload if you check out the\r

        \            documentation for the reservation request model.<br />\r

        \            Please also have a look at the <a href=\"https://developer.hetras.com/docs/tutorials\" onfocus=\"this.blur()\">Tutorials</a>.<br />\r

        \            For more details on how the API responds to errors please check our documentation on \r

        \            <a href=\"https://developer.hetras.com/docs/errors/\" onfocus=\"this.blur()\">Error Handling</a>."
      operationId: Bookings_CreateBooking
      parameters:
        - description: Application identifier
          in: header
          name: App-Id
          required: true
          type: string
          x-data-threescale-name: app_ids
        - description: Application key.
          in: header
          name: App-Key
          required: true
          type: string
          x-data-threescale-name: app_keys
        - description: Specifies the details of the booking to be created.
          in: body
          name: reservation
          required: true
          schema:
            $ref: "#/definitions/Reservation"
        - description: Whether to send a confirmation email to the primary guest
          in: query
          name: sendConfirmation
          required: false
          type: boolean
      produces:
        - application/json
        - text/json
      responses:
        "201":
          description: "The creation of the booking was successful. You will get back the confirmation id and maybe warnings, if\r

            \            e.g. the prepayment could not be captured."
          schema:
            $ref: "#/definitions/ReservationConfirmation"
        "400":
          description: Bad request. Request body erroneous.
        "401":
          description: You provided wrong credentials, or you reached your API limit.
        "403":
          description: The application does not have access to the requested resource.
        "404":
          description: Not Found. The server has not found anything matching the Request-URI.
        "422":
          description: The request failed to validate.
        "500":
          description: We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles.
        "503":
          description: The server is currently unavailable. Please try later.
      summary: Create a new booking.
      tags:
        - Bookings
  /api/booking/v0/bookings/$count:
    get:
      consumes: []
      deprecated: false
      description: "Get the count of all bookings matching your criteria. The bookings have to fullfill all the specified criteria\r

        \            at the same time. So if you specify a customer name and a channel code you will get the count for all bookings where the firstname or lastname \r

        \            of a guest or a contact contains the specified value and that have been done through the defined channel."
      operationId: Bookings_GetBookingsCount
      parameters:
        - description: Application identifier
          in: header
          name: App-Id
          required: true
          type: string
          x-data-threescale-name: app_ids
        - description: Application key.
          in: header
          name: App-Key
          required: true
          type: string
          x-data-threescale-name: app_keys
        - description: Only return bookings for this specific hotel.
          format: int32
          in: query
          name: hotelId
          required: false
          type: integer
        - description: Return bookings for this cancellation id.
          in: query
          name: cancellationId
          required: false
          type: string
        - description: "Return bookings matching this reservation number. Please note that reservation numbers are only unique within a hotel. If you\r

            \            don´t specify a hotel filter at the same time you could get back multiple bookings from different hotels."
          format: int32
          in: query
          name: reservationNumber
          required: false
          type: integer
        - description: "Return all bookings where the first or lastname of one of the guests or the contact contains the specified value. The search is executed case insensitive\r

            \            and also stripping of any whitespaces."
          in: query
          name: customerName
          required: false
          type: string
        - description: "Return all bookings where the primary email address of one of the guests or the contact contains the specified value. The search is executed case insensitive\r

            \            and also stripping of any whitespaces."
          in: query
          name: customerEmail
          required: false
          type: string
        - description: Return all bookings the id of one of the guests or the contact matches the specified value.
          in: query
          name: customerId
          required: false
          type: string
        - description: Return all bookings having the specified room number assigned.
          in: query
          name: roomNumber
          required: false
          type: string
        - description: Return all bookings exactly matching the specified external id. This filter is case sensitive.
          in: query
          name: externalId
          required: false
          type: string
        - description: "Return all bookings where the name of the linked company or travel agent profile contains the specified value. The search is executed case insensitive\r

            \            and also stripping of any whitespaces."
          in: query
          name: companyName
          required: false
          type: string
        - description: Return all bookings the id of the company or travel agent profile matches the specified value.
          in: query
          name: companyId
          required: false
          type: string
        - description: "Return all bookings where the primary email address of the company or the travel agent profile contains the specified value. The search is executed case insensitive\r

            \            and also stripping of any whitespaces."
          in: query
          name: companyEmail
          required: false
          type: string
        - description: Return all bookings where the block code matches the specified value.
          in: query
          name: blockCode
          required: false
          type: string
        - collectionFormat: csv
          description: Return all bookings where the reservation status is one of the specified values.
          in: query
          items:
            enum:
              - Tentative
              - Waitlisted
              - OnRequest
              - NonGuaranteed
              - Guaranteed
              - InHouse
              - CheckedOut
              - NoShow
              - Denied
              - Cancelled
              - Released
              - Walked
              - Expired
              - WalkIn
              - Registered
            type: string
          name: reservationStatuses
          required: false
          type: array
        - collectionFormat: csv
          description: Return all bookings where the market code is one of the specified values.
          in: query
          items:
            type: string
          name: marketCodes
          required: false
          type: array
        - collectionFormat: csv
          description: Return all bookings where the channel code is one of the specified values.
          in: query
          items:
            type: string
          name: channelCodes
          required: false
          type: array
        - collectionFormat: csv
          description: Return all bookings where the subchannel code is one of the specified values.
          in: query
          items:
            type: string
          name: subChannelCodes
          required: false
          type: array
        - collectionFormat: csv
          description: Return all bookings where the room type is one of the specified values.
          in: query
          items:
            type: string
          name: roomTypes
          required: false
          type: array
        - collectionFormat: csv
          description: Return all bookings where the rate plan code is one of the specified values.
          in: query
          items:
            type: string
          name: ratePlanCodes
          required: false
          type: array
        - collectionFormat: csv
          description: Return all reservations with at least one of the specified labels.
          in: query
          items:
            type: string
          name: labels
          required: false
          type: array
        - description: "Start date for the selected date filter. If you select arrival date as date filter the bookings returned will have at least\r

            \            one reservation arriving on the specified date or later."
          format: date-time
          in: query
          name: from
          required: false
          type: string
        - description: "End date for the selected date filter. If you select arrival date as date filter the bookings returned will have at least\r

            \            one reservation arriving on the specified date or earlier."
          format: date-time
          in: query
          name: to
          required: false
          type: string
        - description: "Select a date field you want to filter bookings by. Only one filter at a time can be applied. The to and from dates\r

            \            will then define the time range."
          enum:
            - ArrivalDate
            - DepartureDate
            - StayDate
            - CreationDate
            - ModificationDate
          in: query
          name: dateFilter
          required: false
          type: string
        - description: To be able to request reservations without personal data based on GDPR.
          enum:
            - Customers
          in: query
          name: exclude
          required: false
          type: string
      produces:
        - application/json
        - text/json
      responses:
        "200":
          description: The total booking count for a given filter criteria.
          schema:
            $ref: "#/definitions/TotalCountResponse"
        "401":
          description: You provided wrong credentials, or you reached your API limit.
        "403":
          description: The application does not have access to the requested resource.
        "500":
          description: We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles.
        "503":
          description: The server is currently unavailable. Please try later.
      summary: Get total count of bookings matchung the given filter criteria.
      tags:
        - Bookings
  "/api/booking/v0/bookings/{confirmationId}":
    get:
      consumes: []
      deprecated: false
      description: "A booking groups all reservations done in one single request and can be identified by the confirmation id.\r

        \            Guests usually use the confirmation id to check in at the kiosk, on the website or mobile device. In hetras\r

        \            all reservations of one booking share the room type, rate plan and number of guests per room."
      operationId: Bookings_GetBooking
      parameters:
        - description: Application identifier
          in: header
          name: App-Id
          required: true
          type: string
          x-data-threescale-name: app_ids
        - description: Application key.
          in: header
          name: App-Key
          required: true
          type: string
          x-data-threescale-name: app_keys
        - description: The confirmation id for the booking to load.
          in: path
          name: confirmationId
          required: true
          type: string
        - description: Specifies the expand type.
          enum:
            - None
            - RoomRates
          in: query
          name: expand
          required: false
          type: string
        - description: Specifies the exclude type.
          enum:
            - None
            - Customers
          in: query
          name: exclude
          required: false
          type: string
      produces:
        - application/json
        - text/json
      responses:
        "200":
          description: Returns a list of all reservations for that booking.
          schema:
            $ref: "#/definitions/ReservationsResponse"
        "401":
          description: You provided wrong credentials, or you reached your API limit.
        "403":
          description: The application does not have access to the requested resource.
        "404":
          description: Not Found. The server has not found anything matching the Request-URI.
        "500":
          description: We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles.
        "503":
          description: The server is currently unavailable. Please try later.
      summary: Load all reservations for one booking by confirmation id.
      tags:
        - Bookings
  "/api/booking/v0/bookings/{confirmationId}/reservations/{reservationNumber}":
    get:
      consumes: []
      deprecated: false
      description: With this request you can load one specific reservation done with one booking request.
      operationId: Bookings_GetReservation
      parameters:
        - description: Application identifier
          in: header
          name: App-Id
          required: true
          type: string
          x-data-threescale-name: app_ids
        - description: Application key.
          in: header
          name: App-Key
          required: true
          type: string
          x-data-threescale-name: app_keys
        - description: The confirmation id for the booking the reservation was made.
          in: path
          name: confirmationId
          required: true
          type: string
        - description: Specifies the reservation number for the reservation to load.
          format: int32
          in: path
          name: reservationNumber
          required: true
          type: integer
        - description: Specifies the expand type.
          enum:
            - None
            - RoomRates
          in: query
          name: expand
          required: false
          type: string
        - description: Specifies the exclude type.
          enum:
            - None
            - Customers
          in: query
          name: exclude
          required: false
          type: string
      produces:
        - application/json
        - text/json
      responses:
        "200":
          description: Returns the details of the reservation specified.
          schema:
            $ref: "#/definitions/ReservationResponse"
        "401":
          description: You provided wrong credentials, or you reached your API limit.
        "403":
          description: The application does not have access to the requested resource.
        "404":
          description: Not Found. The server has not found anything matching the Request-URI.
        "500":
          description: We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles.
        "503":
          description: The server is currently unavailable. Please try later.
      summary: Load a specific reservation from a booking.
      tags:
        - Bookings
    patch:
      consumes:
        - application/json
        - text/json
      deprecated: false
      description: "The hetras API is using this <a href=\"https://developer.hetras.com/docs/patch\" onfocus=\"this.blur()\" target=\"_blank\">Patch Specification</a>\r

        \            to partially update an existing resource. Currently this call allows to update the following fields:\r

        \            external_id, market_code, channel_code, subchannel_code, guarantee_type, comment, addon_services, labels, guests, contact and company.\r

        \            <br /><br />\r

        \            A request example:<br /><pre>\r

        \            [\r

        \              {\r

        \                \"op\": \"replace\", \"path\": \"/addon_services\", \"value\": [\"BREAKFAST\", \"PARKING\"]\r

        \              },\r

        \              {\r

        \                \"op\": \"add\", \"path\": \"/labels/-\", \"value\": \"MOBILE\"\r

        \              },\r

        \              {\r

        \                \"op\": \"replace\", \"path\": \"/guests/SHOW-1234\", \"value\": { \"customer_id\": \"SHOW-1234\", \"primary\": false }\r

        \              },\r

        \              {\r

        \                \"op\": \"add\", \"path\": \"/guests/-\", \"value\": { \"customer_id\": \"SHOW-5678\", \"primary\": true }\r

        \              }\r

        \            ]\r

        \            </pre><br />\r

        \            For more details on how the API responds to errors please check our documentation on \r

        \            <a href=\"https://developer.hetras.com/docs/errors/\" onfocus=\"this.blur()\">Error Handling</a>."
      operationId: Bookings_Patch
      parameters:
        - description: Application identifier
          in: header
          name: App-Id
          required: true
          type: string
          x-data-threescale-name: app_ids
        - description: Application key.
          in: header
          name: App-Key
          required: true
          type: string
          x-data-threescale-name: app_keys
        - description: The confirmation id for the booking the reservation was made.
          in: path
          name: confirmationId
          required: true
          type: string
        - description: Specifies the reservation number for the reservation that has to be updated.
          format: int32
          in: path
          name: reservationNumber
          required: true
          type: integer
        - description: A set of JSON Patch operations
          in: body
          name: patchRequest
          required: true
          schema:
            $ref: "#/definitions/JsonPatchDocument[ReservationPatchableModel]"
      produces:
        - application/json
        - text/json
      responses:
        "200":
          description: The update was successful. Reponse would contain a referer to the updated reservation.
          schema:
            $ref: "#/definitions/Object"
        "400":
          description: Bad request. Request body erroneous.
        "401":
          description: You provided wrong credentials, or you reached your API limit.
        "403":
          description: The application does not have access to the requested resource.
        "404":
          description: Not Found. The server has not found anything matching the Request-URI.
        "422":
          description: The request failed to validate.
        "500":
          description: We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles.
        "503":
          description: The server is currently unavailable. Please try later.
      summary: Partially updates a reservation.
      tags:
        - Bookings
  "/api/booking/v0/bookings/{confirmationId}/reservations/{reservationNumber}/assign_room":
    post:
      consumes:
        - application/json
        - text/json
      deprecated: false
      description: "By default this API call assigns a random room, which has the proper room type, is not already assigned\r

        \            to another reservation or has any maintenance status set for the stay period of the underlying reservation. If the\r

        \            arrival date for the underlying reservation is the current business day dirty rooms are excluded by default. For reservation\r

        \            arriving on any latter day the room condition is not taken into account.<br />\r

        \            By specifiying the room selection criteria in the request body you can influence which room will be assigned. See the request model\r

        \            for further details.<br />\r

        \            For more details on how the API responds to errors please check our documentation on \r

        \            <a href=\"https://developer.hetras.com/docs/errors/\" onfocus=\"this.blur()\">Error Handling</a>."
      operationId: Bookings_PostRoomAssignment
      parameters:
        - description: Application identifier
          in: header
          name: App-Id
          required: true
          type: string
          x-data-threescale-name: app_ids
        - description: Application key.
          in: header
          name: App-Key
          required: true
          type: string
          x-data-threescale-name: app_keys
        - description: The confirmation id for the booking the reservation was made.
          in: path
          name: confirmationId
          required: true
          type: string
        - description: Specifies the reservation number for the reservation the room should be assigned to.
          format: int32
          in: path
          name: reservationNumber
          required: true
          type: integer
        - description: Specifies the criteria for the room selection.
          in: body
          name: assigningCriteria
          required: false
          schema:
            $ref: "#/definitions/AssignRoomCriteria"
      produces:
        - application/json
        - text/json
      responses:
        "200":
          description: The room assignment was successful. The Reponse would contain the room number assigned.
          schema:
            $ref: "#/definitions/AssignRoomResponse"
        "400":
          description: Bad request. Request body erroneous.
        "401":
          description: You provided wrong credentials, or you reached your API limit.
        "403":
          description: The application does not have access to the requested resource.
        "404":
          description: Not Found. The server has not found anything matching the Request-URI.
        "422":
          description: The request failed to validate. The reason could be no available rooms or a mismatch of room types etc.
        "500":
          description: We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles.
        "503":
          description: The server is currently unavailable. Please try later.
      summary: Assign a room to a reservation.
      tags:
        - Bookings
  "/api/booking/v0/bookings/{confirmationId}/reservations/{reservationNumber}/cancel":
    post:
      consumes: []
      deprecated: false
      description: "This request will cancel one specific reservation. It will show up in the hetras UI in the Cancellation and NoShow\r

        \            processing screen and it will be up to the hotel staff to either charge or waive the cancellation fee.<br />\r

        \            For more details on how the API responds to errors please check our documentation on \r

        \            <a href=\"https://developer.hetras.com/docs/errors/\" onfocus=\"this.blur()\">Error Handling</a>."
      operationId: Bookings_CancelReservation
      parameters:
        - description: Application identifier
          in: header
          name: App-Id
          required: true
          type: string
          x-data-threescale-name: app_ids
        - description: Application key.
          in: header
          name: App-Key
          required: true
          type: string
          x-data-threescale-name: app_keys
        - description: The confirmation id for the booking the reservation was made.
          in: path
          name: confirmationId
          required: true
          type: string
        - description: Specifies the reservation number for the reservation to cancel.
          format: int32
          in: path
          name: reservationNumber
          required: true
          type: integer
        - description: Whether to send a confirmation email to the primary guest
          in: query
          name: sendConfirmation
          required: false
          type: boolean
      produces:
        - application/json
        - text/json
      responses:
        "200":
          description: Returns the cancellation id and the cancellation fee that will be charged to the folio of the reservation.
          schema:
            $ref: "#/definitions/CancellationResponse"
        "400":
          description: Bad request. Request body erroneous.
        "401":
          description: You provided wrong credentials, or you reached your API limit.
        "403":
          description: The application does not have access to the requested resource.
        "404":
          description: Not Found. The server has not found anything matching the Request-URI.
        "500":
          description: We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles.
        "503":
          description: The server is currently unavailable. Please try later.
      summary: Cancel one reservation.
      tags:
        - Bookings
  "/api/booking/v0/bookings/{confirmationId}/reservations/{reservationNumber}/check_in":
    post:
      consumes:
        - application/json
        - text/json
      deprecated: false
      description: "With this call you can set a reservation to the status inhouse. It allows only single room reservations to be checked in.\r

        \            The reservation must have assigned a vacant and clean room.<br />\r

        \            For more details on how the API responds to errors please check our documentation on \r

        \            <a href=\"https://developer.hetras.com/docs/errors/\" onfocus=\"this.blur()\">Error Handling</a>."
      operationId: Bookings_CheckIn
      parameters:
        - description: Application identifier
          in: header
          name: App-Id
          required: true
          type: string
          x-data-threescale-name: app_ids
        - description: Application key.
          in: header
          name: App-Key
          required: true
          type: string
          x-data-threescale-name: app_keys
        - description: The confirmation id for the booking the reservation was made.
          in: path
          name: confirmationId
          required: true
          type: string
        - description: Specifies the reservation number for the reservation to be checked in.
          format: int32
          in: path
          name: reservationNumber
          required: true
          type: integer
        - description: Specifies checkIn details, for example Client Identity.
          in: body
          name: checkInDetails
          required: true
          schema:
            $ref: "#/definitions/CheckInDetails"
      produces:
        - application/json
        - text/json
      responses:
        "200":
          description: The check in was successful
          schema:
            $ref: "#/definitions/BaseResponse"
        "401":
          description: You provided wrong credentials, or you reached your API limit.
        "403":
          description: The application does not have access to the requested resource.
        "404":
          description: Not Found. The server has not found anything matching the Request-URI.
        "422":
          description: The request failed to validate. The reason could be wrong room or reservation status, wrong start date of reservation etc.
        "500":
          description: We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles.
        "503":
          description: The server is currently unavailable. Please try later.
      summary: Performs a check in operation for a reservation.
      tags:
        - Bookings
  "/api/booking/v0/bookings/{confirmationId}/reservations/{reservationNumber}/check_out":
    post:
      consumes: []
      deprecated: false
      description: "With this call you can set a reservation to the checkout status. It allows only single room reservations to be checked out.\r

        \            For more details on how the API responds to errors please check our documentation on \r

        \            <a href=\"https://developer.hetras.com/docs/errors/\" onfocus=\"this.blur()\">Error Handling</a>."
      operationId: Bookings_CheckOut
      parameters:
        - description: Application identifier
          in: header
          name: App-Id
          required: true
          type: string
          x-data-threescale-name: app_ids
        - description: Application key.
          in: header
          name: App-Key
          required: true
          type: string
          x-data-threescale-name: app_keys
        - description: The confirmation id for the booking the reservation was made.
          in: path
          name: confirmationId
          required: true
          type: string
        - description: Specifies the reservation number for the reservation to be checked out.
          format: int32
          in: path
          name: reservationNumber
          required: true
          type: integer
      produces:
        - application/json
        - text/json
      responses:
        "200":
          description: The check out was successful
          schema:
            $ref: "#/definitions/BaseResponse"
        "401":
          description: You provided wrong credentials, or you reached your API limit.
        "403":
          description: The application does not have access to the requested resource.
        "404":
          description: Not Found. The server has not found anything matching the Request-URI.
        "422":
          description: The request failed to validate. The reason could be wrong reservation status, such as it was already checked out.
        "500":
          description: We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles.
        "503":
          description: The server is currently unavailable. Please try later.
      summary: Performs a check out operation for a reservation.
      tags:
        - Bookings
  "/api/booking/v0/bookings/{confirmationId}/reservations/{reservationNumber}/payment_token":
    put:
      consumes:
        - application/json
        - text/json
      deprecated: false
      description: "TBD.<br />\r

        \            For more details on how the API responds to errors please check our documentation on \r

        \            <a href=\"https://developer.hetras.com/docs/errors/\" onfocus=\"this.blur()\">Error Handling</a>."
      operationId: Bookings_PaymentToken
      parameters:
        - description: Application identifier
          in: header
          name: App-Id
          required: true
          type: string
          x-data-threescale-name: app_ids
        - description: Application key.
          in: header
          name: App-Key
          required: true
          type: string
          x-data-threescale-name: app_keys
        - description: The confirmation id for the booking the reservation was made.
          in: path
          name: confirmationId
          required: true
          type: string
        - description: Specifies the reservation number for the reservation to be checked in.
          format: int32
          in: path
          name: reservationNumber
          required: true
          type: integer
        - description: ""
          in: body
          name: authorizationRequest
          required: true
          schema:
            $ref: "#/definitions/AuthorizationRequest"
      produces:
        - application/json
        - text/json
      responses:
        "200":
          description: The payment token was added successfully
          schema:
            $ref: "#/definitions/BaseResponse"
        "401":
          description: You provided wrong credentials, or you reached your API limit.
        "403":
          description: The application does not have access to the requested resource.
        "404":
          description: Not Found. The server has not found anything matching the Request-URI.
        "422":
          description: The request failed to validate. The reason could be wrong room or reservation status, wrong start date of reservation etc.
        "500":
          description: We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles.
        "503":
          description: The server is currently unavailable. Please try later.
      summary: Post a payment token for a reservation.
      tags:
        - Bookings
  "/api/booking/v0/bookings/{confirmationId}/reservations/{reservationNumber}/pre_authorize":
    post:
      consumes:
        - application/json
        - text/json
      deprecated: false
      description: "With this call you can trigger a terminal authorization prompt for a reservation guest. \r

        \            For more details on how the API responds to errors please check our documentation on \r

        \            <a href=\"https://developer.hetras.com/docs/errors/\" onfocus=\"this.blur()\">Error Handling</a>."
      operationId: Bookings_TerminalAuthorization
      parameters:
        - description: Application identifier
          in: header
          name: App-Id
          required: true
          type: string
          x-data-threescale-name: app_ids
        - description: Application key.
          in: header
          name: App-Key
          required: true
          type: string
          x-data-threescale-name: app_keys
        - description: The confirmation id for the booking the reservation was made.
          in: path
          name: confirmationId
          required: true
          type: string
        - description: Specifies the reservation number for the reservation to be checked in.
          format: int32
          in: path
          name: reservationNumber
          required: true
          type: integer
        - description: Specifies authorization details, such as amount and client identity.
          in: body
          name: authorizationRequest
          required: true
          schema:
            $ref: "#/definitions/TerminalAuthorizationRequest"
      produces:
        - application/json
        - text/json
      responses:
        "200":
          description: The operation was successful
          schema:
            $ref: "#/definitions/BaseResponse"
        "401":
          description: You provided wrong credentials, or you reached your API limit.
        "403":
          description: The application does not have access to the requested resource.
        "404":
          description: Not Found. The server has not found anything matching the Request-URI.
        "422":
          description: The request failed to validate. The reason could be wrong room or reservation status, wrong start date of reservation etc.
        "500":
          description: We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles.
        "503":
          description: The server is currently unavailable. Please try later.
      summary: Performs a chip and pin credit card authorization for a reservation.
      tags:
        - Bookings
  /api/booking/v0/daily_rates:
    get:
      consumes: []
      deprecated: false
      description: "With the rates request you can get a list of different daily rates. You will have to at least \r

        \            specify the hotel, the channel code, and a calendar range. The channel code will define which rates will be \r

        \            returned based on the access control configuration for the rates. Additionally rate plan codes may be specified in\r

        \            the request in order to limit only those rates of the given plans, if they are not specified, it will return all the public rate plans.\r

        \            If requested the caller may specify whether he wants policies or not."
      operationId: DailyRates_GetDailyRates
      parameters:
        - description: Application identifier
          in: header
          name: App-Id
          required: true
          type: string
          x-data-threescale-name: app_ids
        - description: Application key.
          in: header
          name: App-Key
          required: true
          type: string
          x-data-threescale-name: app_keys
        - description: Define the hotel id to request the availability for.
          format: int32
          in: query
          name: hotelId
          required: true
          type: integer
        - description: Define the first business day you would like to get availability numbers for. The day should not be in the past.
          format: date-time
          in: query
          name: from
          required: true
          type: string
        - description: "Define the last business day you would like to get rates for (inclusive). The maximum time span between <i>'From'</i> and <i>'To'</i>\r

            \            is limited to 365 days. This can't be less than the 'From' date."
          format: date-time
          in: query
          name: to
          required: true
          type: string
        - description: Define the channel code in order to look up the rates for.
          in: query
          name: channelCode
          required: true
          type: string
        - collectionFormat: csv
          description: Define the sections you want to expand and get informed about rates for.
          in: query
          items:
            enum:
              - None
              - Policies
              - RatePlans
            type: string
          name: expand
          required: false
          type: array
        - collectionFormat: csv
          description: Define the codes of rate plans to show in the response. A list of comma ',' separated rate plan codes.
          in: query
          items:
            type: string
          name: ratePlanCodes
          required: false
          type: array
        - description: Amount of items to skip.
          format: int32
          in: query
          name: skip
          required: false
          type: integer
        - description: Amount of items to select.
          format: int32
          in: query
          name: top
          required: false
          type: integer
        - description: Return total number of items for a given filter criteria.
          enum:
            - None
            - AllPages
          in: query
          name: inlinecount
          required: false
          type: string
      produces:
        - application/json
        - text/json
      responses:
        "200":
          description: Different rates for the requested stay details grouped by room type.
          schema:
            $ref: "#/definitions/DailyRatesResponse"
        "204":
          description: When there are no data to return.
        "400":
          description: The request failed to validate. One of the missing request parameters was missing or their value was wrong.
        "401":
          description: You provided wrong credentials, or you reached your API limit.
        "403":
          description: The application does not have access to the requested resource.
        "404":
          description: Not Found. The server has not found anything matching the Request-URI. This code will not be returned when there are no data to return for (please see 204).
        "409":
          description: When an error occurs which prevent the API to return a response and is normally cause by bad input.
        "500":
          description: We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles.
        "503":
          description: The server is currently unavailable. Please try later.
      summary: Get a list of daily rates given a hotel Id, a channel code and a date range.
      tags:
        - DailyRates
  /api/booking/v0/rates:
    get:
      consumes: []
      deprecated: false
      description: "With the rates request you can get a list of different rate offers per room type. You will have to at least \r

        \            specify the hotel, the arrival and departure date, number of adults per room and the channel code. The channel code\r

        \            will define which rates will be returned based on the access control configuration for the rates."
      operationId: Rates_Get
      parameters:
        - description: Application identifier
          in: header
          name: App-Id
          required: true
          type: string
          x-data-threescale-name: app_ids
        - description: Application key.
          in: header
          name: App-Key
          required: true
          type: string
          x-data-threescale-name: app_keys
        - description: Specifies the hotel id to request offers for.
          format: int32
          in: query
          name: hotelId
          required: true
          type: integer
        - description: Date of arrival for the guest in the ISO-8601 format "YYYY-MM-DD".
          format: date-time
          in: query
          name: arrivalDate
          required: true
          type: string
        - description: Date of departure for the guest in the ISO-8601 format "YYYY-MM-DD".
          format: date-time
          in: query
          name: departureDate
          required: true
          type: string
        - description: Channel Code the rate plan needs to be configured for.
          in: query
          name: channelCode
          required: true
          type: string
        - description: Number of adults per room.
          format: byte
          in: query
          minimum: 1
          name: adults
          required: true
          type: string
        - description: Number of rooms (default is 1).
          format: byte
          in: query
          minimum: 1
          name: rooms
          required: false
          type: string
        - description: Only return offers with rates for the specified room type code.
          in: query
          name: roomType
          required: false
          type: string
        - description: Only return offers for the specified room type code.
          in: query
          name: ratePlanCode
          required: false
          type: string
        - description: Only return offers for the specified group code.
          in: query
          name: groupCode
          required: false
          type: string
        - description: Expand the rates breakdown if required.
          enum:
            - None
            - Breakdown
          in: query
          name: expand
          required: false
          type: string
      produces:
        - application/json
        - text/json
      responses:
        "200":
          description: Different rates for the requested stay details grouped by room type.
          schema:
            $ref: "#/definitions/Rates"
        "401":
          description: You provided wrong credentials, or you reached your API limit.
        "403":
          description: The application does not have access to the requested resource.
        "404":
          description: Not Found. The server has not found anything matching the Request-URI. It is also used if there are no rates available for the specified guest stay details.
        "422":
          description: "The request failed to validate. Either a mandatory parameter was missing or no offers for \r

            \            the requested stay details"
        "500":
          description: We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles.
        "503":
          description: The server is currently unavailable. Please try later.
      summary: Get a list of room offers for the specified guest stay details.
      tags:
        - Rates
definitions:
  AcceptedGuaranteeTypes:
    properties:
      accepted:
        description: "In this list you find all the accepted guarantee types for this offer. They are sorted in ascending\r

          \            order."
        items:
          enum:
            - PM4Hold
            - PM6Hold
            - GuaranteeToCreditCard
            - GuaranteeToGuestAccount
            - GuaranteeByTravelAgent
            - GuaranteeByCompany
            - Deposit
            - Voucher
            - Prepayment
            - NonGuaranteed
            - Tentative
            - Waitlist
          type: string
        type: array
      minimum:
        description: "Based on the rateplan a reservation does need to have a minimum guarantee. When you create a new booking you\r

          \            can always use a higher guarantee type starting from the minimum. If you do not specify a guarantee when creating\r

          \            a new booking using this offer this guarantee type will be used by default. See \r

          \            https://developer.hetras.com/docs/tutorials#payment for information about guarantee types and payment details"
        enum:
          - PM4Hold
          - PM6Hold
          - GuaranteeToCreditCard
          - GuaranteeToGuestAccount
          - GuaranteeByTravelAgent
          - GuaranteeByCompany
          - Deposit
          - Voucher
          - Prepayment
          - NonGuaranteed
          - Tentative
          - Waitlist
        type: string
    type: object
  AddonOffer:
    properties:
      breakdown:
        description: "In this collection you will get an entry with price information for every day the addon service will be charged\r

          \            to the folio of the reservation if the addon service is booked."
        items:
          $ref: "#/definitions/AddonOfferBreakdown"
        type: array
      code:
        description: The code of the addon service
        type: string
      description:
        description: The description of the addon service
        type: string
      frequency:
        description: "The frequency this addon service will be charged to the reservation. This field is a string that can be displayed,\r

          \            but is not supposed to be used for computation"
        type: string
      name:
        description: The name of the addon service
        type: string
      rate_mode:
        description: "The price for an addon service can be per person or per room. All the prices in an offer are already calculated\r

          \            for all rooms and number of persons per room. Based on this attribute you will be able to know how to calculate\r

          \            the price per person and room, per room or per person depending on your needs."
        enum:
          - PerRoom
          - PerPerson
        type: string
      total_stay:
        $ref: "#/definitions/AddonOfferRate"
        description: "This object gives you the price information if this addon service is booked for the total stay defined in your\r

          \            request by arrivalDate and departureDate"
    type: object
  AddonOfferBreakdown:
    properties:
      business_day:
        description: The business day the price for the addon service will be posted to the folio of the reservation
        format: date-time
        type: string
      currency:
        description: The currency the addon service will be charged in.
        type: string
      included_tax:
        description: "The amount of taxes already included in the gross rate of the addon service also calculated for all rooms and\r

          \            all persons."
        format: double
        type: number
      rate:
        description: The gross rate of the addon service. It is the price calculated for all rooms and all persons.
        format: double
        type: number
    type: object
  AddonOfferRate:
    properties:
      currency:
        description: The currency the addon service will be charged in.
        type: string
      included_tax:
        description: "The amount of taxes already included in the gross rate of the addon service also calculated for all rooms and\r

          \            all persons."
        format: double
        type: number
      rate:
        description: The gross rate of the addon service. It is the price calculated for all rooms and all persons.
        format: double
        type: number
    type: object
  AddonRate:
    properties:
      business_day:
        description: The business day the addon service should be charged
        format: date-time
        type: string
      code:
        description: The code of the addon service to be booked
        type: string
      rate:
        description: Total gross amount for the service
        format: double
        type: number
    type: object
  Addons:
    properties:
      addon_services:
        description: A collection of offers for addon services.
        items:
          $ref: "#/definitions/AddonOffer"
        type: array
      adults:
        description: The number of adults per room the addon offers are requested for. The rates will then already reflects this.
        format: int32
        type: integer
      arrival_date:
        description: The arrival date of the reservation the addon offers are supposed to be booked on.
        format: date-time
        type: string
      departure_date:
        description: The departure date of the reservation the addon offers are supposed to be booked on.
        format: date-time
        type: string
      hotel_id:
        description: The id of the hotel the addon offers will be valid for
        format: int32
        type: integer
      hotel_name:
        description: The name of the hotel the addon offers will be valid for
        type: string
      rate_plan:
        $ref: "#/definitions/RatePlan"
        description: "The rate plan all the addon offers are valid for. The reservation you want to book this addons for needs\r

          \            to have the same rate plan otherwise you might see different prices on the target reservation."
      room:
        $ref: "#/definitions/ReservationRoom"
        description: "The room type all the addon offers are valid for. The reservation you want to book this addons for needs\r

          \            to have the same room type otherwise you might see different prices on the target reservation."
      rooms:
        description: The number of rooms the addon offers are requested for. The rates will then already reflects this.
        format: int32
        type: integer
    type: object
  AssignRoomCriteria:
    description: Represents a set of criteria for assigning a room
    properties:
      amenities:
        description: Ensure the assigned room will have all the amenities specified. You can provide a comma seperated list of amenity codes.
        items:
          type: string
        type: array
      condition:
        description: "Here you can define to limit the list of assignable rooms based on their current condition. This is only applicable if the underlying reservation\r

          \            is due to arrive on the current business day. If not set by default only clean rooms will be assigned."
        enum:
          - CleanNotInspected
          - Clean
          - Dirty
          - Any
        type: string
      include_out_of_service:
        description: "Sometimes you might want to assign rooms which are out of service (small repair needed) if no other rooms are available anymore. If you set\r

          \            include_out_of_service to true even those rooms will be considered. The default is false."
        type: boolean
      locations:
        description: Ensure the assigned room will have at least one of the specified locations. You can provide a comma seperated list of location codes.
        items:
          type: string
        type: array
      respect_guest_preferences:
        description: "Defines if the preferences for locations, amenities and views of the primary guest should be taken into account. All defined preferences in the guest\r

          \            profile override any of the criteria defined in the request body. The default is false."
        type: boolean
      room_number:
        description: "If you define a specific room number this room will be assigned if not assigned to another reservation, has proper room type and is not OutOfOrder \r

          \            or OutOfInventory for the stay duration of the underlying reservaton. If set all other filter criteria will be ignored."
        type: string
      views:
        description: Ensure the assigned room will have at least one of the specified views. You can provide a comma seperated list of view codes.
        items:
          type: string
        type: array
    type: object
  AssignRoomResponse:
    description: Defines the response for room assignment operation
    properties:
      _warnings:
        description: "Warnings that came up when your request was processed. Your request will still be processed successfull when\r

          \            you see such warnings in your response"
        items:
          type: string
        type: array
      room_number:
        description: The room number assigned
        type: string
    type: object
  AuthorizationDetails:
    properties:
      amount:
        description: AuthorizedAmount
        format: double
        type: number
      expiry_date:
        description: Authorization ExpiryDate
        format: date-time
        type: string
      merchant_reference:
        description: Merchant Reference
        maxLength: 50
        minLength: 0
        type: string
      reference:
        description: Authorization Reference
        maxLength: 255
        minLength: 0
        type: string
      shopper_reference:
        description: Shopper Reference
        maxLength: 50
        minLength: 0
        type: string
    required:
      - reference
      - merchant_reference
      - shopper_reference
    type: object
  AuthorizationRequest:
    properties:
      authorization:
        $ref: "#/definitions/AuthorizationDetails"
        description: Authorization Details
      no_authorization_required:
        description: "Whether hetras should skip authorization using the provided token when no authorization details are supplied.\r

          \            Optional flag, defaults to false."
        type: boolean
      payment_token:
        description: The token you get from the payment service provider
        maxLength: 255
        minLength: 0
        type: string
    required:
      - payment_token
    type: object
  AvailabilityDetail:
    properties:
      _links:
        additionalProperties:
          $ref: "#/definitions/LinkObject"
        description: Collection of links to related resources
        type: object
      available:
        description: "The number of rooms that were originally available to sell. This is the the house count reduced by rooms set\r

          \            to OutOfOrder but increased by the set overbooking"
        format: int32
        type: integer
      blocked:
        $ref: "#/definitions/Blocked"
        description: The breakdown for rooms blocked
      day_use:
        description: The number of day use reservations
        format: int32
        type: integer
      house_count:
        description: The total count of physical rooms reduced by the number of rooms set to OutOfInventory
        format: int32
        type: integer
      maintenance:
        $ref: "#/definitions/Maintenance"
        description: The breakdown for rooms under maintenance
      overbooking:
        description: The manually set overbooking
        format: int32
        type: integer
      room_count:
        description: The total count of physical rooms
        format: int32
        type: integer
      sold:
        description: The count of rooms sold. It sums up the rooms sold through individual reservations plus rooms blocked definitely
        format: int32
        type: integer
      to_sell:
        description: The number of rooms still available to sell. It is available reduced by the already sold rooms
        format: int32
        type: integer
    type: object
  AvailabilityResponse:
    properties:
      _count:
        description: The number of items matching your request in total for all pages.
        format: int32
        type: integer
      _links:
        additionalProperties:
          $ref: "#/definitions/LinkObject"
        description: Collection of links to related resources
        type: object
      daily_availabilities:
        description: The list of availability numbers per business day
        items:
          $ref: "#/definitions/DailyAvailability"
        type: array
      hotel:
        $ref: "#/definitions/EmbeddedHotel"
        description: The hotel info you requsted the availability numbers for
    type: object
  BaseResponse:
    properties:
      _warnings:
        description: "Warnings that came up when your request was processed. Your request will still be processed successfull when\r

          \            you see such warnings in your response"
        items:
          type: string
        type: array
    type: object
  BlockInfo:
    properties:
      _links:
        additionalProperties:
          $ref: "#/definitions/LinkObject"
        description: Collection of links to related resources
        type: object
      code:
        description: "The code is composed of the hotel code a dash and the block code shown in the hetras UI. An \r

          \            example block code on the API for a block with code TRAVEL1 defined for the hotel with code ABC would \r

          \            be ABC-TRAVEL1"
        type: string
      name:
        description: The name of the block
        type: string
    type: object
  BlockListRequest:
    properties:
      countDetails:
        description: If true it will include also details of block count per each room type.
        type: boolean
      from:
        description: Return all blocks where the block's last_departure is greater than specified date.
        format: date-time
        type: string
      groupCode:
        description: Filter the blocks by the specified group code
        type: string
      hotelId:
        description: Only return blocks for this specific hotel.
        format: int32
        type: integer
      ratePlanCodes:
        description: Return all blocks that have related the specified comma-separated rate plans.
        items:
          type: string
        type: array
      status:
        description: Return all blocks where the block status is one of the specified values.
        enum:
          - Cancelled
          - Tentative
          - Definite
        type: string
      to:
        description: Return all blocks where the block's last_departure is less than specified date.
        format: date-time
        type: string
    type: object
  Blocked:
    properties:
      definite:
        description: Number of rooms blocked defintely
        format: int32
        type: integer
      remaining:
        description: Number of definitely blocked rooms not picked up
        format: int32
        type: integer
      tentative:
        description: Number of rooms blocked tentatively
        format: int32
        type: integer
    type: object
  BookingListItem:
    properties:
      _links:
        additionalProperties:
          $ref: "#/definitions/LinkObject"
        description: Collection of links to related resources
        type: object
      confirmation_id:
        description: "The confirmation id for the booking which the guest can use to check in on the kiosk, add the\r

          \            booking to the mobile app etc. It is used as identifier for all reservations done with the same\r

          \            booking request."
        type: string
      created:
        description: Timestamp the booking was created
        format: date-time
        type: string
      reservations:
        description: Collection of reservations made with on booking request.
        items:
          $ref: "#/definitions/BookingListReservationItem"
        type: array
      updated:
        description: Timestamp of when the booking was changed the last time
        format: date-time
        type: string
    type: object
  BookingListRequest:
    properties:
      blockCode:
        description: Return all bookings where the block code matches the specified value.
        type: string
      cancellationId:
        description: Return bookings for this cancellation id.
        type: string
      channelCodes:
        description: Return all bookings where the channel code is one of the specified values.
        items:
          type: string
        type: array
      companyEmail:
        description: "Return all bookings where the primary email address of the company or the travel agent profile contains the specified value. The search is executed case insensitive\r

          \            and also stripping of any whitespaces."
        type: string
      companyId:
        description: Return all bookings the id of the company or travel agent profile matches the specified value.
        type: string
      companyName:
        description: "Return all bookings where the name of the linked company or travel agent profile contains the specified value. The search is executed case insensitive\r

          \            and also stripping of any whitespaces."
        type: string
      customerEmail:
        description: "Return all bookings where the primary email address of one of the guests or the contact contains the specified value. The search is executed case insensitive\r

          \            and also stripping of any whitespaces."
        type: string
      customerId:
        description: Return all bookings the id of one of the guests or the contact matches the specified value.
        type: string
      customerName:
        description: "Return all bookings where the first or lastname of one of the guests or the contact contains the specified value. The search is executed case insensitive\r

          \            and also stripping of any whitespaces."
        type: string
      dateFilter:
        description: "Select a date field you want to filter bookings by. Only one filter at a time can be applied. The to and from dates\r

          \            will then define the time range."
        enum:
          - ArrivalDate
          - DepartureDate
          - StayDate
          - CreationDate
          - ModificationDate
        type: string
      exclude:
        description: To be able to request reservations without personal data based on GDPR.
        enum:
          - Customers
        type: string
      externalId:
        description: Return all bookings exactly matching the specified external id. This filter is case sensitive.
        type: string
      from:
        description: "Start date for the selected date filter. If you select arrival date as date filter the bookings returned will have at least\r

          \            one reservation arriving on the specified date or later."
        format: date-time
        type: string
      hotelId:
        description: Only return bookings for this specific hotel.
        format: int32
        type: integer
      labels:
        description: Return all reservations with at least one of the specified labels.
        items:
          type: string
        type: array
      marketCodes:
        description: Return all bookings where the market code is one of the specified values.
        items:
          type: string
        type: array
      ratePlanCodes:
        description: Return all bookings where the rate plan code is one of the specified values.
        items:
          type: string
        type: array
      reservationNumber:
        description: "Return bookings matching this reservation number. Please note that reservation numbers are only unique within a hotel. If you\r

          \            don´t specify a hotel filter at the same time you could get back multiple bookings from different hotels."
        format: int32
        type: integer
      reservationStatuses:
        description: Return all bookings where the reservation status is one of the specified values.
        items:
          enum:
            - Tentative
            - Waitlisted
            - OnRequest
            - NonGuaranteed
            - Guaranteed
            - InHouse
            - CheckedOut
            - NoShow
            - Denied
            - Cancelled
            - Released
            - Walked
            - Expired
            - WalkIn
            - Registered
          type: string
        type: array
      roomNumber:
        description: Return all bookings having the specified room number assigned.
        type: string
      roomTypes:
        description: Return all bookings where the room type is one of the specified values.
        items:
          type: string
        type: array
      subChannelCodes:
        description: Return all bookings where the subchannel code is one of the specified values.
        items:
          type: string
        type: array
      to:
        description: "End date for the selected date filter. If you select arrival date as date filter the bookings returned will have at least\r

          \            one reservation arriving on the specified date or earlier."
        format: date-time
        type: string
    type: object
  BookingListReservationItem:
    properties:
      _links:
        additionalProperties:
          $ref: "#/definitions/LinkObject"
        description: Collection of links to related resources
        type: object
      adults:
        description: The number of adults per room
        format: int32
        type: integer
      arrival_date:
        description: The arrival date of the guests
        format: date-time
        type: string
      balance:
        description: "The balance for all folios of this reservartion. It is calculated by all already charged room and service rates plus manual charges \r

          \            or charges from other systems like POS minus all payments. A negative balance indicates the reservation is overpaid, a positive balance \r

          \            that the guest owes the hotel money"
        format: double
        type: number
      block_code:
        description: If this reservation is a pick-up from a block you will see the appropriate block code here
        type: string
      cancellation_id:
        description: The cancellation id if the reservation has been cancelled
        type: string
      channel_code:
        description: "The code of the channel that was used when the booking has been created. It is also known as source. \r

          \            Possible values can be OTA, GDS or DIRECT, but it is configurable per hotel"
        type: string
      companies:
        $ref: "#/definitions/CompaniesInfo"
        description: Information about related companies
      created:
        description: Timestamp the reservation was created
        format: date-time
        type: string
      customers:
        $ref: "#/definitions/CustomersInfo"
        description: Information about customers
      departure_date:
        description: The departure date of the guests
        format: date-time
        type: string
      external_id:
        description: "The external id for this reservation is the unique identifier from the system that created the booking in hetras. It could be the id of an\r

          \            OTA like Expedia or booking.com or one of the GDS systems like Amadeus or Galileo"
        type: string
      hotel:
        $ref: "#/definitions/HotelInfo"
        description: Information about the hotel the reservation belongs to
      labels:
        description: The labels attached to this reservation.
        items:
          type: string
        type: array
      market_code:
        description: The code of the market segment the rate plan for this reservation is linked to
        type: string
      rate_plan:
        $ref: "#/definitions/RatePlan"
        description: The rate plan details this reservation is related to
      reservation_number:
        description: The reservation number of the reservation
        format: int32
        type: integer
      reservation_status:
        description: The current status of this reservation
        enum:
          - Tentative
          - Waitlisted
          - OnRequest
          - NonGuaranteed
          - Guaranteed
          - InHouse
          - CheckedOut
          - NoShow
          - Denied
          - Cancelled
          - Released
          - Walked
          - Expired
          - WalkIn
          - Registered
        type: string
      room:
        $ref: "#/definitions/RoomInfo"
        description: "The room type this reservation is related to and if applicable the already assigned specific room for \r

          \            this reservation"
      rooms:
        description: "The number of rooms this reservation is valid for. After a multi-room booking is done there will be \r

          \            one reservation in hetras for this booking for all rooms. The hotel staff then will split this reservation into\r

          \            one reservation per room to be able to check in the guests"
        format: int32
        type: integer
      subchannel_code:
        description: "The code of the subchannel that was used when the booking has been created. Possible values can be \r

          \            BOOKING, EXPEDIA or WALKIN, but it is configurable per hotel"
        type: string
      updated:
        description: Timestamp of when the reservation was changed the last time
        format: date-time
        type: string
    type: object
  BookingListResponse:
    properties:
      _count:
        description: The number of items matching your request in total for all pages.
        format: int32
        type: integer
      _links:
        additionalProperties:
          $ref: "#/definitions/LinkObject"
        description: Collection of links to related resources
        type: object
      bookings:
        description: Collection of bookings that match the defined filter criteria.
        items:
          $ref: "#/definitions/BookingListItem"
        type: array
    type: object
  CancellationPolicy:
    properties:
      description:
        description: Description of the cancellation policy suitable for displaying to customers
        type: string
      fee:
        description: The fee a guest has to pay when cancelling the reservation
        format: double
        type: number
      fee_date:
        description: The date and time in UTC from when the fee has to be paid in case of cancellation
        format: date-time
        type: string
    type: object
  CancellationResponse:
    description: Result of cancel operation
    properties:
      _warnings:
        description: "Warnings that came up when your request was processed. Your request will still be processed successfull when\r

          \            you see such warnings in your response"
        items:
          type: string
        type: array
      balance:
        description: The current balance on the reservations folio without the cancellation fee
        format: double
        type: number
      cancellation_fee:
        description: "The fee that might be charged to the folio of the reservation. The cancelled reservation will\r

          \            show up in the cancellation and no show processing screen and the hotel staff will either charge\r

          \            the fee or waive it."
        format: double
        type: number
      cancellation_id:
        description: The id of the successful cancellation. With this id the hotel staff will be able to find the reservation
        type: string
    type: object
  CancellationToken:
    properties:
      CanBeCanceled:
        readOnly: true
        type: boolean
      IsCancellationRequested:
        readOnly: true
        type: boolean
      WaitHandle:
        $ref: "#/definitions/WaitHandle"
        readOnly: true
    type: object
  Card:
    properties:
      id:
        type: string
    type: object
  CheckInDetails:
    properties:
      client_identity:
        description: Client identity
        type: string
    type: object
  CompaniesInfo:
    properties:
      company:
        $ref: "#/definitions/Company"
        description: The company linked to this reservation
      travel_agent:
        $ref: "#/definitions/Company"
        description: The travel agent linked to this reservation
    type: object
  Company:
    properties:
      company_id:
        description: "The id of a company profile. The id is build out of the Supplier Code a dash and the profile id\r

          \            shown in the hetras UI. An example id on the API for a profile with id 12345 on the level of supplier ABC \r

          \            would be ABC-12345"
        type: string
    type: object
  Contact:
    properties:
      customer_id:
        description: "The id of a customer profile. The id is build out of the Supplier Code a dash and the profile id\r

          \            shown in the hetras UI. An example id on the API for a profile with id 12345 on the level of supplier ABC \r

          \            would be ABC-12345"
        type: string
    type: object
  ContactResponse:
    properties:
      _links:
        additionalProperties:
          $ref: "#/definitions/LinkObject"
        description: Collection of links to related resources
        type: object
      customer_id:
        description: "The id of a customer profile. The id is build out of the Supplier Code a dash and the profile id\r

          \            shown in the hetras UI. An example id on the API for a profile with id 12345 on the level of supplier ABC \r

          \            would be ABC-12345"
        type: string
    type: object
  Customer:
    properties:
      consent_subscribe:
        description: The list of consents which the customer is subscribing
        items:
          type: string
        type: array
      consent_unsubscribe:
        description: The list of consents which the customer is unsubscribing
        items:
          type: string
        type: array
      customer_id:
        description: "The id of a customer profile. The id is build out of the Supplier Code a dash and the profile id\r

          \            shown in the hetras UI. An example id on the API for a profile with id 12345 on the level of supplier ABC \r

          \            would be ABC-12345"
        type: string
      email:
        description: The primary email address of the guest
        type: string
      first_name:
        description: First name of the guest
        type: string
      gender:
        description: Gender
        enum:
          - Unspecified
          - Male
          - Female
        type: string
      last_name:
        description: Last name of the guest
        type: string
      mailing_address:
        $ref: "#/definitions/MailingAddress"
        description: "The home mailing address of the guest or if no home mailing address is specified it will\r

          \            give you the first address found on the guest profile."
      nationality:
        description: "The nationality of the guest in ISO 3166-1 alpha-2 format\r

          \            (see: http://www.iso.org/iso/country_codes/iso_3166_code_lists/country_names_and_code_elements.htm)"
        type: string
      phone:
        description: The primary phone number of the guest
        type: string
      primary:
        description: Defines if the guest is the primary guest of the reservation
        type: boolean
      title:
        description: Title of the guest. Needs to be taken from the available titles defined in the codes
        type: string
    type: object
  CustomerResponse:
    properties:
      _links:
        additionalProperties:
          $ref: "#/definitions/LinkObject"
        description: Collection of links to related resources
        type: object
      customer_id:
        description: "The id of a customer profile. The id is build out of the Supplier Code a dash and the profile id\r

          \            shown in the hetras UI. An example id on the API for a profile with id 12345 on the level of supplier ABC \r

          \            would be ABC-12345"
        type: string
      email:
        description: The primary email address of the guest
        type: string
      first_name:
        description: First name of the guest
        type: string
      gender:
        description: Gender
        enum:
          - Unspecified
          - Male
          - Female
        type: string
      last_name:
        description: Last name of the guest
        type: string
      mailing_address:
        $ref: "#/definitions/MailingAddress"
        description: "The home mailing address of the guest or if no home mailing address is specified it will\r

          \            give you the first address found on the guest profile."
      nationality:
        description: "The nationality of the guest in ISO 3166-1 alpha-2 format\r

          \            (see: http://www.iso.org/iso/country_codes/iso_3166_code_lists/country_names_and_code_elements.htm)"
        type: string
      phone:
        description: The primary phone number of the guest
        type: string
      primary:
        description: Defines if the guest is the primary guest of the reservation
        type: boolean
      subscribed_consents:
        description: Gets or sets the list of consents subscribed by customer
        items:
          type: string
        type: array
      title:
        description: Title of the guest. Needs to be taken from the available titles defined in the codes
        type: string
    type: object
  CustomersInfo:
    properties:
      contact:
        $ref: "#/definitions/CustomerResponse"
        description: The contact linked to this reservation
      guests:
        description: A list of guest details for this reservation
        items:
          $ref: "#/definitions/CustomerResponse"
        type: array
    type: object
  DailyAvailability:
    properties:
      business_day:
        description: The business day the following availability numbers are shown for
        format: date-time
        type: string
      house_level:
        $ref: "#/definitions/AvailabilityDetail"
        description: The availability numbers for the house level
      room_types:
        description: The availability numbers for all room types if the expand parameter is set appropriately
        items:
          $ref: "#/definitions/RoomAvailabilityDetail"
        type: array
    type: object
  DailyCalendarRate:
    properties:
      business_day:
        format: date-time
        type: string
      offers:
        items:
          $ref: "#/definitions/DailyRateOffer"
        type: array
    type: object
  DailyRate:
    properties:
      addon_services:
        description: List of addon services with additional price information.
        items:
          $ref: "#/definitions/ServiceRate"
        type: array
      date:
        description: Date the room rate will be charged to the folio
        format: date-time
        type: string
      excluded_tax:
        description: The amount of extra taxes also calculated for all rooms and all persons per room.
        format: double
        type: number
      included_services:
        description: List of codes for all services already included in the gross rate
        items:
          type: string
        type: array
      included_tax:
        description: "The amount of taxes already included in the gross nightly rate also calculated for all rooms and\r

          \            all persons per room."
        format: double
        type: number
      rate:
        description: The gross room rate. It is the price calculated for all rooms and all persons per room.
        format: double
        type: number
      room_type:
        description: Code of the room type which is booked for that day
        type: string
    type: object
  DailyRateCancellationPolicy:
    properties:
      _links:
        additionalProperties:
          $ref: "#/definitions/LinkObject"
        description: Collection of links to related resources
        type: object
      code:
        type: string
    type: object
  DailyRateHotel:
    properties:
      _links:
        additionalProperties:
          $ref: "#/definitions/LinkObject"
        description: Collection of links to related resources
        type: object
      code:
        type: string
      id:
        format: int32
        type: integer
      name:
        type: string
    type: object
  DailyRateNoShowPolicy:
    properties:
      _links:
        additionalProperties:
          $ref: "#/definitions/LinkObject"
        description: Collection of links to related resources
        type: object
      code:
        type: string
    type: object
  DailyRateOffer:
    properties:
      cancellation_policy_code:
        type: string
      guarantee_type_code:
        type: string
      noshow_policy_code:
        type: string
      rateplan_code:
        type: string
      room_type_details:
        items:
          $ref: "#/definitions/DailyRateRoomOffer"
        type: array
    type: object
  DailyRatePlan:
    properties:
      _links:
        additionalProperties:
          $ref: "#/definitions/LinkObject"
        description: Collection of links to related resources
        type: object
      code:
        type: string
      currency:
        description: Three letter ISO code.
        type: string
      name:
        type: string
    type: object
  DailyRateRoomOffer:
    properties:
      available_rooms_count:
        format: int32
        type: integer
      is_available:
        type: boolean
      rates:
        items:
          $ref: "#/definitions/DailyRoomRate"
        type: array
      restrictions:
        $ref: "#/definitions/Restrictions"
      room_type_code:
        type: string
      unavailable_reason:
        description: If there is an issue and this room offer is unavailable (IsAvailable=false) this message may be not empty.
        type: string
    type: object
  DailyRatesResponse:
    properties:
      _count:
        description: The number of items matching your request in total for all pages.
        format: int32
        type: integer
      _links:
        additionalProperties:
          $ref: "#/definitions/LinkObject"
        description: Collection of links to related resources
        type: object
      daily_rates:
        items:
          $ref: "#/definitions/DailyCalendarRate"
        type: array
      hotel:
        $ref: "#/definitions/DailyRateHotel"
      policies:
        $ref: "#/definitions/Policies"
      rateplans:
        items:
          $ref: "#/definitions/DailyRatePlan"
        type: array
      room_types:
        items:
          $ref: "#/definitions/RoomType"
        type: array
    type: object
  DailyRoomRate:
    properties:
      adults:
        format: int32
        type: integer
      rate:
        format: double
        type: number
    type: object
  DepositPolicy:
    properties:
      amount:
        description: Deposit amount that has to be paid
        format: double
        type: number
      description:
        description: Description of the deposit policy suitable for displaying to customers
        type: string
      due_date:
        description: Date the deposit amount has to be paid latest
        format: date-time
        type: string
    type: object
  EmbeddedHotel:
    properties:
      code:
        description: The code of the hotel
        type: string
      id:
        description: The id of the hotel
        format: int32
        type: integer
      name:
        description: The name of the hotel
        type: string
    type: object
  EmbeddedRoom:
    description: "Represents a short version of room information. To get the full version\r

      \            please follow the self link from the links collection"
    properties:
      _links:
        additionalProperties:
          $ref: "#/definitions/LinkObject"
        description: Collection of links to related resources
        type: object
      description:
        description: Description of the room
        type: string
      name:
        description: Name of the room
        type: string
      number:
        description: Number of the room
        type: string
      room_type:
        $ref: "#/definitions/EmbeddedRoomType"
        description: Room type of the room. Contains only the basic properties of the room type
    type: object
  EmbeddedRoomType:
    description: "Basic data for a room type. To get the full details please follow the self link\r

      \            from the links collection"
    properties:
      _links:
        additionalProperties:
          $ref: "#/definitions/LinkObject"
        description: Collection of links to related resources
        type: object
      code:
        description: Code of the room type
        type: string
      description:
        description: Description of the room type
        type: string
      name:
        description: Name of the room type
        type: string
    type: object
  GeneralPolicy:
    properties:
      description:
        description: Description of the general policy suitable for displaying to customers
        type: string
      name:
        description: Name of the general policy
        type: string
    type: object
  GetAddonsRequest:
    properties:
      adults:
        description: Number of adults per room.
        format: byte
        maximum: 255
        minimum: 1
        type: string
      arrivalDate:
        description: Date from when the addon service will be booked to the reservation in the ISO-8601 format "YYYY-MM-DD".
        format: date-time
        type: string
      channelCode:
        description: Channel Code the rate plan needs to be configured for.
        type: string
      departureDate:
        description: "Date until when the addon service will be booked to the reservation in the ISO-8601 format \"YYYY-MM-DD\".\r

          \            This is usually the departure date of the reservation."
        format: date-time
        type: string
      expand:
        description: Expand the rates breakdown if required.
        enum:
          - None
          - Breakdown
        type: string
      hotelId:
        description: Specifies the hotel id to request offers for.
        format: int32
        type: integer
      ratePlanCode:
        description: Only return offers for the specified rate plan code.
        type: string
      roomType:
        description: Only return offers for the specified room type code.
        type: string
      rooms:
        description: Number of rooms.
        format: byte
        maximum: 255
        minimum: 1
        type: string
    required:
      - hotelId
      - arrivalDate
      - departureDate
      - channelCode
      - adults
      - rooms
      - roomType
      - ratePlanCode
    type: object
  GetAvailabilityRequest:
    properties:
      expand:
        description: You can expand the room types breakdown per business day for the availibility numbers if need be.
        enum:
          - RoomTypes
        type: string
      from:
        description: Defines the first business day you would like to get availability numbers for.
        format: date-time
        type: string
      hotelId:
        description: Specifies the hotel id to request the availability for.
        format: int32
        type: integer
      to:
        description: "Defines the last business day you would like to get availability numbers for. The maximum time span between <i>from</i>´and <i>to</i>\r

          \            is limited to 365 days."
        format: date-time
        type: string
    required:
      - hotelId
      - from
      - to
    type: object
  GetCardsResponse:
    properties:
      cards:
        items:
          $ref: "#/definitions/Card"
        type: array
    type: object
  GetDailyRatesRequest:
    properties:
      channelCode:
        description: Define the channel code in order to look up the rates for.
        type: string
      expand:
        description: Define the sections you want to expand and get informed about rates for.
        items:
          enum:
            - None
            - Policies
            - RatePlans
          type: string
        type: array
      from:
        description: Define the first business day you would like to get availability numbers for. The day should not be in the past.
        format: date-time
        type: string
      hotelId:
        description: Define the hotel id to request the availability for.
        format: int32
        type: integer
      ratePlanCodes:
        description: Define the codes of rate plans to show in the response. A list of comma ',' separated rate plan codes.
        items:
          type: string
        type: array
      to:
        description: "Define the last business day you would like to get rates for (inclusive). The maximum time span between <i>'From'</i> and <i>'To'</i>\r

          \            is limited to 365 days. This can't be less than the 'From' date."
        format: date-time
        type: string
    required:
      - hotelId
      - from
      - to
      - channelCode
    type: object
  Guarantee:
    properties:
      guarantee_type:
        description: One of the accepted guarantee types from the offer you selected out of the rates response
        enum:
          - PM4Hold
          - PM6Hold
          - GuaranteeToCreditCard
          - GuaranteeToGuestAccount
          - GuaranteeByTravelAgent
          - GuaranteeByCompany
          - Deposit
          - Voucher
          - Prepayment
          - NonGuaranteed
          - Tentative
          - Waitlist
        type: string
      token:
        $ref: "#/definitions/Token"
        description: The token to be used for capturing the reservations amount or to guarantee for the reservation
    type: object
  GuaranteeResponse:
    properties:
      guarantee_type:
        description: The guarantee type of the reservation
        enum:
          - PM4Hold
          - PM6Hold
          - GuaranteeToCreditCard
          - GuaranteeToGuestAccount
          - GuaranteeByTravelAgent
          - GuaranteeByCompany
          - Deposit
          - Voucher
          - Prepayment
          - NonGuaranteed
          - Tentative
          - Waitlist
        type: string
      valid_token:
        description: "Tells you if there is a token for a valid creadit card on the reservation that can be used to\r

          \            capture the reservations amount or to guarantee for the reservation"
        type: boolean
    type: object
  GuaranteeTypes:
    properties:
      accepted:
        items:
          enum:
            - PM4Hold
            - PM6Hold
            - GuaranteeByCompany
            - GuaranteeByTravelAgent
            - GuaranteeToGuestAccount
            - GuaranteeToCreditCard
            - Deposit
            - Prepayment
            - NonGuaranteed
          type: string
        type: array
      code:
        type: string
    type: object
  HotelInfo:
    properties:
      code:
        description: Hotel Code which is also called property or component code
        type: string
      id:
        description: Hotel Identifier
        format: int32
        type: integer
    type: object
  "JsonPatchDocument[ReservationPatchableModel]":
    items:
      $ref: "#/definitions/Operation[ReservationPatchableModel]"
    properties: {}
    type: array
  LinkObject:
    description: A Link Object represents a hyperlink from the containing resource to a URI.
    properties:
      deprecation:
        description: "<para>The \"deprecation\" property is OPTIONAL.</para>\r

          <para> </para>\r

          <para>Its presence indicates that the link is to be deprecated (i.e.\r

          \            removed) at a future date.  Its value is a URL that SHOULD provide\r

          \            further information about the deprecation.\r

          \            A client SHOULD provide some notification (for example, by logging a\r

          \            warning message) whenever it traverses over a link that has this\r

          \            property.  The notification SHOULD include the deprecation property's\r

          \            value so that a client maintainer can easily find information about\r

          \            the deprecation.</para>"
        type: string
      href:
        description: "<para>The \"href\" property is REQUIRED.</para>\r

          <para> </para>\r

          <para>Its value is either a URI [RFC3986] or a URI Template [RFC6570].\r

          \            If the value is a URI Template then the Link Object SHOULD have a\r

          \            \"templated\" attribute whose value is true.</para>"
        type: string
      hreflang:
        description: "<para>The \"hreflang\" property is OPTIONAL.</para>\r

          <para> </para>\r

          <para>Its value is a string and is intended for indicating the language of\r

          \            the target resource (as defined by [RFC5988]).</para>"
        type: string
      name:
        description: "<para>The \"name\" property is OPTIONAL.</para>\r

          <para> </para>\r

          <para>Its value MAY be used as a secondary key for selecting Link Objects\r

          \            which share the same relation type.</para>"
        type: string
      profile:
        description: "<para>The \"profile\" property is OPTIONAL.</para>\r

          <para> </para>\r

          <para>Its value is a string which is a URI that hints about the profile.</para>"
        type: string
      templated:
        description: "<para>The \"templated\" property is OPTIONAL.</para>\r

          <para> </para>\r

          <para>Its value is boolean and SHOULD be true when the Link Object's \"href\"\r

          \            property is a URI Template.\r

          \            Its value SHOULD be considered false if it is undefined or any other\r

          \            value than true.</para>"
        type: boolean
      title:
        description: "<para>The \"title\" property is OPTIONAL.</para>\r

          <para> </para>\r

          <para>Its value is a string and is intended for labelling the link with a\r

          \            human-readable identifier (as defined by [RFC5988]).</para>"
        type: string
      type:
        description: "<para>The \"type\" property is OPTIONAL.</para>\r

          <para> </para>\r

          <para>Its value is a string used as a hint to indicate the media type\r

          \            expected when dereferencing the target resource.</para>"
        type: string
    required:
      - href
    type: object
  MailingAddress:
    properties:
      address:
        description: The address details like street, number, and other in free format
        type: string
      address_type:
        description: One of the values from the enumeration of allowed address types
        enum:
          - Home
          - Business
          - Billing
          - Other
        type: string
      city:
        description: The city name for this address
        type: string
      country:
        description: "The country code for this address in ISO 3166-1 alpha-2 format\r

          \            (see: <a href=\"http://www.iso.org/iso/country_codes/iso_3166_code_lists/country_names_and_code_elements.htm\" onfocus=\"this.blur()\" target=\"_blank\">http://www.iso.org/iso/country_codes/iso_3166_code_lists/country_names_and_code_elements.htm</a>)"
        type: string
      postal_code:
        description: The postal code for this address
        type: string
    type: object
  Maintenance:
    properties:
      out_of_inventory:
        description: Number of rooms set to OutOfInventory
        format: int32
        type: integer
      out_of_order:
        description: Number of rooms set to OutOfOrder
        format: int32
        type: integer
      out_of_service:
        description: Number of rooms set to OutOfService
        format: int32
        type: integer
    type: object
  NoShowPolicy:
    properties:
      description:
        description: Description of the noshow policy suitable for displaying to customers
        type: string
      fee:
        description: The fee that will be charged to the reservations folio in case the guest does not show up
        format: double
        type: number
    type: object
  Object:
    properties: {}
    type: object
  Offer:
    properties:
      _links:
        additionalProperties:
          $ref: "#/definitions/LinkObject"
        description: Link to request addon offers for this stay
        type: object
      adults:
        description: Number of adults the offer is calculated for
        format: int32
        type: integer
      available_rooms:
        description: Number of currently available rooms for that specific offer
        format: int32
        type: integer
      breakdown:
        description: In this collection you will get an entry with price information for every day.
        items:
          $ref: "#/definitions/RoomOfferDailyRate"
        type: array
      cancellation_policies:
        description: List of cancellation policies defined for that rate
        items:
          $ref: "#/definitions/CancellationPolicy"
        type: array
      currency:
        description: The amounts of this offer are always in this currency
        type: string
      deposit_policies:
        description: List of Deposit policies defined for that rate
        items:
          $ref: "#/definitions/DepositPolicy"
        type: array
      general_policies:
        description: List of general policies defined for that rate
        items:
          $ref: "#/definitions/GeneralPolicy"
        type: array
      guarantee_types:
        $ref: "#/definitions/AcceptedGuaranteeTypes"
        description: Accepted guarantee types and the minimum guarantee type defined for that rate
      included_services:
        description: A list of  of services included already in the rate for this offer
        items:
          type: string
        type: array
      noshow_policy:
        $ref: "#/definitions/NoShowPolicy"
        description: No Show policy defined for that rate
      rate_plan_code:
        description: The code of the rate plan for this offer
        type: string
      total_stay:
        $ref: "#/definitions/Rate"
        description: The total stay amounts for this offer
    type: object
  "Operation[ReservationPatchableModel]":
    properties:
      from:
        type: string
      op:
        type: string
      path:
        type: string
      value:
        $ref: "#/definitions/Object"
    type: object
  PagedDataRequest:
    properties:
      inlinecount:
        description: Return total number of items for a given filter criteria.
        enum:
          - None
          - AllPages
        type: string
      skip:
        description: Amount of items to skip.
        format: int32
        type: integer
      top:
        description: Amount of items to select.
        format: int32
        type: integer
    type: object
  Policies:
    properties:
      cancellation_policies:
        items:
          $ref: "#/definitions/DailyRateCancellationPolicy"
        type: array
      guarantee_types:
        items:
          $ref: "#/definitions/GuaranteeTypes"
        type: array
      noshow_policies:
        items:
          $ref: "#/definitions/DailyRateNoShowPolicy"
        type: array
    type: object
  PreCheckInRequest:
    description: With this request you can execute a precheckin on a reservation
    properties:
      device_id:
        description: The device id that will be put on the reservation
        type: string
    required:
      - device_id
    type: object
  Rate:
    properties:
      addon_services:
        description: List of addon services with additional price information.
        items:
          $ref: "#/definitions/ServiceRate"
        type: array
      excluded_tax:
        description: The amount of extra taxes also calculated for all rooms and all persons per room.
        format: double
        type: number
      included_services:
        description: List of codes for all services already included in the gross rate
        items:
          type: string
        type: array
      included_tax:
        description: "The amount of taxes already included in the gross nightly rate also calculated for all rooms and\r

          \            all persons per room."
        format: double
        type: number
      rate:
        description: The gross room rate. It is the price calculated for all rooms and all persons per room.
        format: double
        type: number
    type: object
  RatePlan:
    properties:
      code:
        description: Code of the rate plan
        type: string
      description:
        description: Description of the rate plan suitable for being displayed to customers
        type: string
      name:
        description: Name of the rate plan
        type: string
    type: object
  Rates:
    properties:
      arrival_date:
        description: The arrival date of the guest for this rate offer
        format: date-time
        type: string
      departure_date:
        description: The departure date of the guest for this rate offer
        format: date-time
        type: string
      hotel_id:
        description: The id of the hotel the rate offers will be valid for
        format: int32
        type: integer
      hotel_name:
        description: The name of the hotel the rate offers will be valid for
        type: string
      rate_plans:
        description: List of rate plans details for rates you can find offers in the room_offers
        items:
          $ref: "#/definitions/RatePlan"
        type: array
      room_offers:
        description: List of room types with available rate offers ordered from ascending
        items:
          $ref: "#/definitions/RoomOffer"
        type: array
      rooms:
        description: List of room type details for room types you can find offers in the room_offers
        items:
          $ref: "#/definitions/ReservationRoom"
        type: array
      services:
        description: List of service details for included services in offers you can find in the room_offers
        items:
          $ref: "#/definitions/Service"
        type: array
    type: object
  RatesRequest:
    properties:
      adults:
        description: Number of adults per room.
        format: byte
        minimum: 1
        type: string
      arrivalDate:
        description: Date of arrival for the guest in the ISO-8601 format "YYYY-MM-DD".
        format: date-time
        type: string
      channelCode:
        description: Channel Code the rate plan needs to be configured for.
        type: string
      departureDate:
        description: Date of departure for the guest in the ISO-8601 format "YYYY-MM-DD".
        format: date-time
        type: string
      expand:
        description: Expand the rates breakdown if required.
        enum:
          - None
          - Breakdown
        type: string
      groupCode:
        description: Only return offers for the specified group code.
        type: string
      hotelId:
        description: Specifies the hotel id to request offers for.
        format: int32
        type: integer
      ratePlanCode:
        description: Only return offers for the specified room type code.
        type: string
      roomType:
        description: Only return offers with rates for the specified room type code.
        type: string
      rooms:
        description: Number of rooms (default is 1).
        format: byte
        minimum: 1
        type: string
    required:
      - hotelId
      - arrivalDate
      - departureDate
      - channelCode
      - adults
    type: object
  Reservation:
    properties:
      addons:
        description: A list of addon service codes that should be booked for all reservations of this booking
        items:
          type: string
        type: array
      adults:
        description: The number of adults per room
        format: int32
        type: integer
      arrival_date:
        description: The arrival date of the guests
        format: date-time
        type: string
      channel_code:
        description: The channel code for this reservation. You can find available channels in the codes for the hotel.
        type: string
      comment:
        description: The comment you want to add for this reservation
        type: string
      company:
        $ref: "#/definitions/Company"
        description: The company that will be linked to this reservation
      contact:
        $ref: "#/definitions/Contact"
        description: The contact that will be linked to this reservation
      departure_date:
        description: The departure date of the guests
        format: date-time
        type: string
      external_id:
        description: "The external id for this reservation. You can put here your own id used by you or the external system\r

          \            you integrate hetras with"
        type: string
      group_code:
        description: The group code based on which the reservation will be created.
        type: string
      guarantee:
        $ref: "#/definitions/Guarantee"
        description: "The guarantee for this reservation. See https://developer.hetras.com/docs/tutorials#payment for information about\r

          \            how to fill out the guarantee object"
      guests:
        description: A list of guests with some basic guest details
        items:
          $ref: "#/definitions/Customer"
        type: array
      hotel_id:
        description: The id of the hotel this reservation is valid for
        format: int32
        type: integer
      payment_method:
        description: The payment method for this reservation
        enum:
          - None
          - Cash
          - CreditCard
          - WireTransfer
          - ChargeToCompany
          - Check
          - Voucher
          - DebitCard
          - Token
          - Miscellaneous
          - DigitalPayment
        type: string
      prepay_discount:
        description: "If you create a booking for a rateplan requiring prepayment this amount will be deducted from the booking value before\r

          \            the prepayment will be taken. This feature is useful when the booker redeems a gift voucher and you want to \r

          \            only capture the remaining amount from the guest´s credit card"
        format: double
        type: number
      rate_plan:
        description: The rate plan code this reservation is related to
        type: string
      room_type:
        description: The room type code this reservation is related to
        type: string
      rooms:
        description: "The number of rooms this reservation is for. After a multi-room booking is done there will be \r

          \            one reservation in hetras for all rooms. The hotel staff then will split this reservation into\r

          \            one reservation per room to be able to check in the guests"
        format: int32
        type: integer
      travel_agent:
        $ref: "#/definitions/Company"
        description: The travel agency that will be linked to this reservation
    required:
      - hotel_id
    type: object
  ReservationConfirmation:
    properties:
      _warnings:
        description: "Warnings that came up when your request was processed. Your request will still be processed successfull when\r

          \            you see such warnings in your response"
        items:
          type: string
        type: array
      confirmation_id:
        description: "The confirmation id for the newly created booking which the guest can use to check in on the kiosk, add the\r

          \            booking to the mobile app etc."
        type: string
      reservation_id:
        description: The reservation number of the newly created reservation
        format: int32
        type: integer
    type: object
  ReservationDetails:
    properties:
      addon_rates:
        description: A breakdown of addon services with their prices for every stay day
        items:
          $ref: "#/definitions/AddonRate"
        type: array
      adults:
        description: The number of adults per room
        format: int32
        type: integer
      arrival_date:
        description: The arrival date of the guests
        format: date-time
        type: string
      channel_code:
        description: The channel code for this reservation. You can find available channels in the codes for the hotel.
        type: string
      comment:
        description: The comment you want to add for this reservation
        type: string
      company:
        $ref: "#/definitions/Company"
        description: The company that will be linked to this reservation
      contact:
        $ref: "#/definitions/Contact"
        description: The contact that will be linked to this reservation
      departure_date:
        description: The departure date of the guests
        format: date-time
        type: string
      external_id:
        description: "The external id for this reservation. You can put here your own id used by you or the external system\r

          \            you integrate hetras with"
        type: string
      group_code:
        description: The group code based on which the reservation will be created.
        type: string
      guarantee:
        $ref: "#/definitions/Guarantee"
        description: "The guarantee for this reservation. See https://developer.hetras.com/docs/tutorials#payment for information about\r

          \            how to fill out the guarantee object"
      guests:
        description: A list of guests with some basic guest details
        items:
          $ref: "#/definitions/Customer"
        type: array
      hotel_id:
        description: The id of the hotel this reservation is valid for
        format: int32
        type: integer
      payment_method:
        description: The payment method for this reservation
        enum:
          - None
          - Cash
          - CreditCard
          - WireTransfer
          - ChargeToCompany
          - Check
          - Voucher
          - DebitCard
          - Token
          - Miscellaneous
          - DigitalPayment
        type: string
      prepay_discount:
        description: "If you create a booking for a rateplan requiring prepayment this amount will be deducted from the booking value before\r

          \            the prepayment will be taken. This feature is useful when the booker redeems a gift voucher and you want to \r

          \            only capture the remaining amount from the guest´s credit card"
        format: double
        type: number
      room_rates:
        description: A breakdown of room rates specified for every stay day
        items:
          $ref: "#/definitions/RoomRate"
        type: array
      rooms:
        description: "The number of rooms this reservation is for. After a multi-room booking is done there will be \r

          \            one reservation in hetras for all rooms. The hotel staff then will split this reservation into\r

          \            one reservation per room to be able to check in the guests"
        format: int32
        type: integer
      travel_agent:
        $ref: "#/definitions/Company"
        description: The travel agency that will be linked to this reservation
    required:
      - hotel_id
    type: object
  ReservationRequestParameters:
    properties:
      sendConfirmation:
        description: Whether to send a confirmation email to the primary guest
        type: boolean
    type: object
  ReservationResponse:
    properties:
      _warnings:
        description: "Warnings that came up when your request was processed. Your request will still be processed successfull when\r

          \            you see such warnings in your response"
        items:
          type: string
        type: array
      addon_services:
        description: "A list of addon service codes that are currently booked on the reservation. Services which are charged\r

          \            once per stay are only visible before and on the day they are booked for."
        items:
          type: string
        type: array
      adults:
        description: The number of adults per room
        format: int32
        type: integer
      arrival_date:
        description: The arrival date of the guests
        format: date-time
        type: string
      balance:
        description: "The balance for all folios of this reservartion. It is calculated by all already charged room and service\r

          \            rates plus manual charges or charges from other systems like POS minus all payments. A negative balance\r

          \            indicates the reservation is overpaid, a positive balance that the guest owes the hotel money"
        format: double
        type: number
      block:
        $ref: "#/definitions/BlockInfo"
        description: If this reservation is a pick-up from a block you will see the appropriate block here
      cancellation_id:
        description: Given the reservation was cancelled, this field contains the cancellation id
        type: string
      cancellation_policies:
        description: The cancellation policies that were applicable on the date the booking was done
        items:
          $ref: "#/definitions/CancellationPolicy"
        type: array
      channel_code:
        description: "The code of the channel that was used when the booking has been created. It is also known as source. \r

          \            Possible values can be OTA, GDS or DIRECT, but it is configurable per hotel"
        type: string
      checkin_time:
        description: The real checkin time of the guests. It will be set after the checkin has been performed
        format: date-time
        type: string
      checkout_time:
        description: The real checkout time of the guests. It will be set after the checkout has been performed
        format: date-time
        type: string
      comment:
        description: The comment for this reservation
        type: string
      company:
        $ref: "#/definitions/Company"
        description: The company linked to this reservation
      confirmation_id:
        description: "The confirmation id for the booking which the guest can use to check in on the kiosk, add the\r

          \            booking to the mobile app etc. It is used as identifier for all reservations done with the same\r

          \            booking request"
        type: string
      contact:
        $ref: "#/definitions/ContactResponse"
        description: The contact linked to this reservation
      created:
        description: Timestamp the reservation was created
        format: date-time
        type: string
      currency:
        description: The currency all amounts of this reservation will be shown in
        type: string
      departure_date:
        description: The departure date of the guests
        format: date-time
        type: string
      external_id:
        description: "The external id for this reservation is the unique identifier from the system that created the booking in hetras. It could be the id of an\r

          \            OTA like Expedia or booking.com or one of the GDS systems like Amadeus or Galileo"
        type: string
      general_policies:
        description: The general policies that were applicable on the date the booking was done
        items:
          $ref: "#/definitions/GeneralPolicy"
        type: array
      guarantee:
        $ref: "#/definitions/GuaranteeResponse"
        description: The guarantee for this reservation
      guests:
        description: A list of guest details for this reservation
        items:
          $ref: "#/definitions/CustomerResponse"
        type: array
      hotel_id:
        description: The id of the hotel this reservation is valid for
        format: int32
        type: integer
      labels:
        description: A list of labels that are attached to the reservation.
        items:
          type: string
        type: array
      market_code:
        description: The code of the market segment the rate plan for this reservation is linked to
        type: string
      noshow_policy:
        $ref: "#/definitions/NoShowPolicy"
        description: The noshow policy that were applicable on the date the booking was done
      payment_method:
        description: The payment method for this reservation
        enum:
          - None
          - Cash
          - CreditCard
          - WireTransfer
          - ChargeToCompany
          - Check
          - Voucher
          - DebitCard
          - Token
          - Miscellaneous
          - DigitalPayment
        type: string
      rate_plan:
        $ref: "#/definitions/RatePlan"
        description: The rate plan details this reservation is related to
      reservation_number:
        description: The reservation number of the reservation
        format: int32
        type: integer
      reservation_status:
        description: The current status of this reservation
        enum:
          - Tentative
          - Waitlisted
          - OnRequest
          - NonGuaranteed
          - Guaranteed
          - InHouse
          - CheckedOut
          - NoShow
          - Denied
          - Cancelled
          - Released
          - Walked
          - Expired
          - WalkIn
          - Registered
        type: string
      room:
        $ref: "#/definitions/EmbeddedRoom"
        description: "The room type this reservation is related to and if applicable the already assigned specific room for \r

          \            this reservation"
      room_rates:
        description: The breakdown for all daily room rates and service charges for this reservation
        items:
          $ref: "#/definitions/DailyRate"
        type: array
      rooms:
        description: "The number of rooms this reservation is valid for. After a multi-room booking is done there will be \r

          \            one reservation in hetras for this booking for all rooms. The hotel staff then will split this reservation into\r

          \            one reservation per room to be able to check in the guests"
        format: int32
        type: integer
      services:
        description: A list of details for all services included and addon service booked on this reservation
        items:
          $ref: "#/definitions/Service"
        type: array
      subchannel_code:
        description: "The code of the subchannel that was used when the booking has been created. Possible values can be \r

          \            BOOKING, EXPEDIA or WALKIN, but it is configurable per hotel"
        type: string
      total_stay:
        $ref: "#/definitions/Rate"
        description: The total stay amounts for this reservation
      updated:
        description: Timestamp of when the reservation was changed the last time
        format: date-time
        type: string
    type: object
  ReservationRoom:
    properties:
      description:
        description: The description of the room type
        type: string
      name:
        description: The name of the room type
        type: string
      room_number:
        description: The room number of the assigned room
        format: int32
        type: integer
      type:
        description: The code of the room type
        type: string
    type: object
  ReservationsResponse:
    description: Reservation collection response model
    properties:
      reservations:
        description: All reservations for the requested booking
        items:
          $ref: "#/definitions/ReservationResponse"
        type: array
    type: object
  Restrictions:
    properties:
      closed:
        type: boolean
      closed_to_arrival:
        type: boolean
      closed_to_departure:
        type: boolean
      maximum_length_of_stay:
        format: int32
        type: integer
      minimum_length_of_stay:
        format: int32
        type: integer
      minimum_stay_through:
        format: int32
        type: integer
    type: object
  RoomAvailabilityDetail:
    properties:
      _links:
        additionalProperties:
          $ref: "#/definitions/LinkObject"
        description: Collection of links to related resources
        type: object
      available:
        description: "The number of rooms that were originally available to sell. This is the the house count reduced by rooms set\r

          \            to OutOfOrder but increased by the set overbooking"
        format: int32
        type: integer
      blocked:
        $ref: "#/definitions/Blocked"
        description: The breakdown for rooms blocked
      code:
        description: Code of the room type
        type: string
      day_use:
        description: The number of day use reservations
        format: int32
        type: integer
      default:
        description: Specifies if the room type is the default room type of the hotel
        type: boolean
      house_count:
        description: The total count of physical rooms reduced by the number of rooms set to OutOfInventory
        format: int32
        type: integer
      maintenance:
        $ref: "#/definitions/Maintenance"
        description: The breakdown for rooms under maintenance
      overbooking:
        description: The manually set overbooking
        format: int32
        type: integer
      room_count:
        description: The total count of physical rooms
        format: int32
        type: integer
      sold:
        description: The count of rooms sold. It sums up the rooms sold through individual reservations plus rooms blocked definitely
        format: int32
        type: integer
      to_sell:
        description: The number of rooms still available to sell. It is available reduced by the already sold rooms
        format: int32
        type: integer
    type: object
  RoomInfo:
    properties:
      number:
        description: Number of the room if one is assigned already
        type: string
      room_type:
        $ref: "#/definitions/RoomTypeInfo"
        description: Room type information
    type: object
  RoomOffer:
    properties:
      offers:
        description: A list of rate offers for the appropriate room type ordered by amount ascending
        items:
          $ref: "#/definitions/Offer"
        type: array
      room_type:
        description: The room type all offers will be valid for
        type: string
    type: object
  RoomOfferDailyRate:
    properties:
      business_day:
        description: The business day the prize for the daily rate and all included services will be posted to the folio of the reservation
        format: date-time
        type: string
      excluded_tax:
        description: "The amount of taxes that are not included in the gross rate of the room offer and will be charged separately for\r

          \            that business day. It is also calculated for all rooms and all persons per room"
        format: double
        type: number
      included_tax:
        description: "The amount of taxes already included in the gross rate of the room and all included services for this business day.\r

          \            The prize is calculated for all rooms and all persons per room"
        format: double
        type: number
      rate:
        description: "The gross rate for this day for the room and all included services. The prize is calculated for all rooms and all \r

          \            persons per room"
        format: double
        type: number
    type: object
  RoomRate:
    properties:
      business_day:
        description: The business day the room rate will be charged
        format: date-time
        type: string
      rate:
        description: "Total gross amount to be charged for the rate including all services of a package. Only extra taxes might\r

          \            be added to the booking on top"
        format: double
        type: number
      rate_plan:
        description: The rate plan code for the specified business day
        type: string
      room_type:
        description: The room type code for the specified business day
        type: string
    type: object
  RoomType:
    properties:
      _links:
        additionalProperties:
          $ref: "#/definitions/LinkObject"
        description: Collection of links to related resources
        type: object
      code:
        type: string
      name:
        type: string
    type: object
  RoomTypeInfo:
    properties:
      code:
        description: Code of the room type
        type: string
      name:
        description: Name of the room type
        type: string
    type: object
  SafeWaitHandle:
    properties:
      IsClosed:
        readOnly: true
        type: boolean
      IsInvalid:
        readOnly: true
        type: boolean
    type: object
  Service:
    properties:
      code:
        description: The code of the service
        type: string
      description:
        description: The description of the service which is suitable for displaying to customers
        type: string
      frequency:
        description: "The frequency for charging the service to the guests folio. It is a free text and only suitable for \r

          \            displaying to customers"
        type: string
      is_addon:
        description: This flag indicates if a service is an addon or is included already in the room rate
        type: boolean
      name:
        description: The name of the service
        type: string
    type: object
  ServiceRate:
    properties:
      code:
        description: The code of the service
        type: string
      included_tax:
        description: The included taxes in the gross rate of the service calculated for all rooms and all persons
        format: double
        type: number
      rate:
        description: The gross rate of the service calculated for all rooms and all persons
        format: double
        type: number
    type: object
  TerminalAuthorizationRequest:
    properties:
      amount_to_authorize:
        description: The amount to authorize
        format: double
        type: number
      client_identity:
        description: Client identity
        type: string
    type: object
  Token:
    properties:
      authorization_expiry_date:
        description: The authorization expiry date you got back from the payment service provider
        format: date-time
        type: string
      authorization_reference:
        description: "The authorization reference. This value is specific for different payment service providers. There will be\r

          \            a page on the developer portal explaining the pattern on how to fill this value for the payment service\r

          \            provider hetras is integrated with"
        type: string
      authorization_status:
        description: The authorization status you got back from the payment service provider
        enum:
          - Authorized
          - Refused
          - Error
          - Canceled
          - Consumed
          - AuthorizedWithZeroAmount
        type: string
      authorized_amount:
        description: The authorized amount
        format: double
        type: number
      merchant_reference:
        description: The merchant reference you used when requesting the token from the payment service provider
        type: string
      shopper_email:
        description: The shopper email you used when requesting the token from the payment service provider
        type: string
      shopper_reference:
        description: "The shopper reference you used when requesting the token from the payment service provider. It can\r

          \            be the same as the merchant reference"
        type: string
      token_id:
        description: The token id you get from the payment service provider
        type: string
    type: object
  TotalCountResponse:
    properties:
      _count:
        description: Returns the total count for all items matching the query parameters. If none is matching it will return 0.
        format: int64
        type: integer
    required:
      - _count
    type: object
  WaitHandle:
    properties:
      Handle:
        $ref: "#/definitions/Object"
      SafeWaitHandle:
        $ref: "#/definitions/SafeWaitHandle"
    type: object
