openapi: 3.0.0
info:
  description: >-
    The Res:Harmonics Public API provides seamless access to powerful tools for
    managing and automating property operations. Designed for developers and
    businesses, the API enables integration with Res:Harmonics’ platform to
    manage bookings, availability, rates, and guest experiences in real-time.
    With comprehensive documentation and robust endpoints, users can customise
    workflows, synchronise systems, and build tailored solutions to enhance
    operational efficiency. Whether you’re running serviced apartments,
    Build-to-Rent schemes, or co-living spaces, the Res:Harmonics API is your
    gateway to streamlined property management.
  version: 3.0a5
  title: res:harmonics API
  termsOfService: https://www.resharmonics.com
  contact:
    name: Res:harmonics
    url: https://www.resharmonics.com
    email: support@resharmonics.com
  license:
    name: License of API
    url: https://www.resharmonics.com
tags:
  - name: Access Groups
    description: >-
      Access Group entities from the Property Management System (PMS), used to
      map access groups from integrated access control systems, providing
      detailed information and management capabilities for access control within
      buildings and facilities.
  - name: Activities
    description: >-
      Activities are tasks created in the Property Management System (PMS). Each
      activity can be assigned to a user, a team, or a company. Operations
      include retrieval, creation, updates, and management of activity notes.
      The PMS ensures that all activities are tracked and managed efficiently,
      providing a comprehensive overview of tasks and their statuses within the
      property management workflow.
  - name: Area
    description: >-
      Area Entity from the Property Management System (PMS). Areas are part of
      the geography of the PMS and are used to define the location of
      properties, including their hierarchical structure within cities and
      regions.
  - name: Availabilities
    description: >-
      Used to search for availability and pricing, including chargeable for
      specific dates. This endpoint allows users to query the availability of
      properties within the property management system (PMS), taking into
      account various parameters such as date ranges, unit types, guest counts,
      and promotional codes. It provides detailed information on available
      units, their rates, and any applicable restrictions or conditions.
  - name: Billing Frequencies
    description: >-
      Billing Frequency entity from the Property Management System (PMS), used
      to define the intervals at which billing occurs. This helps in organizing
      and managing financial operations efficiently within the PMS. Billing
      frequencies are essential for ensuring timely and accurate billing
      processes, which are crucial for maintaining financial stability and
      customer satisfaction within the PMS.
  - name: Booking Types
    description: >-
      Booking Type entity from the Property Management System (PMS), used to
      categorize bookings and define different behaviors. Booking types help in
      organizing and managing various booking categories within the PMS,
      ensuring efficient handling of reservations and associated operations.
  - name: Bookings
    description: >-
      Bookings entity from the PMS, the booking is the main entity for a
      reservation, it contains all the information about the reservation,
      combined with a list of room stays which represent the individual stays in
      the units
  - name: Building
    description: >-
      Represents the Building entity within the Property Management System
      (PMS). This includes comprehensive property details such as the building's
      name, address, facilities, operational attributes, and any associated
      metadata. The Building entity is essential for managing and integrating
      property data, ensuring accurate and up-to-date information for
      operational and administrative purposes.
  - name: Channels
    description: >-
      Represents sales channels within the Property Management System (PMS),
      allowing users to categorize different sales channels or booking mediums.
      Sales channels capture details such as the channel operator, commission,
      and other criteria. This functionality enhances searchability, reporting,
      and segmentation by enabling property managers to create and manage custom
      channels tailored to their operational needs. Channels can be used for
      filtering, grouping, and applying business logic to different entities
      across the PMS, supporting improved organization and data management.
  - name: City
    description: >-
      Represents the City entity within the PMS, including details such as the
      city's name, geographic location, and any associated properties or
      operational data. This entity is used to categorise and manage properties
      by location, enabling filtering and reporting based on city-level
      information.
  - name: Companies
    description: >-
      Represents the Company entities within the PMS, which include detailed
      information about organisations associated with properties, bookings, or
      other business operations. The Company entity contains attributes such as
      the company name, contact information, address, industry type, and
      relationships with contacts or accounts. It is used to manage corporate
      accounts, track business partnerships, and enable streamlined handling of
      organisation-level interactions within the system.
  - name: Contacts
    description: >-
      Represents the Contacts entity within the PMS CRM module, encompassing
      information about individuals or organisations associated with properties.
      This entity includes details such as names, contact information (e.g.,
      phone numbers, email addresses), roles, and relationship to specific
      properties or bookings. It is used for managing customer relationships,
      tracking communication history, and facilitating operations such as guest
      management or corporate account handling.
  - name: Country
    description: >-
      Provides endpoints for managing Country entities within the Property
      Management System (PMS). These operations include retrieving country
      details, creating new country records, and updating existing country
      information. Country entities store essential geographical and regulatory
      data, such as country names, ISO codes, and associated regional settings.
      This functionality supports property localisation, tax configurations,
      currency settings, and compliance with international regulations.
  - name: Developments
    description: >-
      Represents the Developments entity within the Property Management System
      (PMS), which is used to manage real estate developments, property
      projects, or grouped property assets. A development typically consists of
      multiple buildings or units and includes key details such as location,
      associated properties, construction status, and project timelines. This
      entity supports large-scale property management by enabling structured
      organisation, tracking of development progress, and integration with
      booking, pricing, and operational workflows.
  - name: Extras
    description: >-
      Represents Extras within the Property Management System (PMS), which are
      additional services or products that can be added to a booking. Extras may
      include amenities such as parking, breakfast, airport transfers,
      housekeeping services, or any custom add-ons offered by the property.
      These entities are used to enhance guest experiences, provide personalised
      services, and generate additional revenue streams. Extras can be
      configured with pricing, availability rules, and booking conditions to
      ensure seamless integration with reservation workflows.
  - name: Guest Stays
    description: >-
      Represents Guest Stay entities within the Property Management System
      (PMS), which track individual guest stays associated with a room stay. A
      Guest Stay captures key details such as guest information, check-in and
      check-out dates, separate to the booked room, and stay status. This entity
      is essential for managing guest experiences, tracking physical occupancy,
      and facilitating seamless accommodation operations. 
  - name: Industries
    description: >-
      Represents Industry entities within the Property Management System (PMS),
      which categorise businesses, corporate clients, and organisations based on
      their industry sector. Industry entities are used to segment accounts,
      track market trends, and apply industry-specific pricing, policies, or
      reporting structures. This functionality supports better organisation,
      enhanced analytics, and streamlined management of corporate bookings and
      partnerships.
  - name: Issues
    description: >-
      Represents Issues within the Property Management System (PMS), which track
      and manage property-related concerns, maintenance requests, and guest
      service requests. Issues can include general maintenance tasks,
      housekeeping requests, guest complaints, or operational incidents that
      require resolution. This functionality supports efficient task assignment,
      workflow automation, and real-time issue tracking to ensure prompt
      resolution and enhance guest satisfaction. Issues can be associated with
      properties, units, bookings, or specific guest stays, enabling seamless
      communication between staff and management.
  - name: Market Segments
    description: >-
      Represents Market Segment entities within the Property Management System
      (PMS), which categorise customer groups based on booking patterns,
      demographics, or business classifications. Market segments help in
      defining pricing strategies, targeted marketing campaigns, and reporting
      insights. They are commonly used to differentiate corporate clients,
      leisure travelers, government bookings, wholesalers, and other key
      customer groups. This functionality enables property managers to optimise
      revenue, personalise guest experiences, and improve operational
      decision-making.
  - name: Nationalities
    description: >-
      Represents Nationality entities within the Property Management System
      (PMS), used to categorise guests, customers, or corporate clients based on
      their country of nationality. Nationality data supports compliance with
      regulatory requirements, enhances reporting and analytics, and enables
      targeted marketing or pricing strategies. This functionality helps
      property managers track guest demographics, improve customer segmentation,
      and personalise services based on nationality-specific preferences.
  - name: Rates
    description: >-
      Endpoints for managing and querying rates and pricing within the PMS.
      These endpoints enable the creation, updating, retrieval, and deletion of
      rate records associated with properties, room types, and booking policies.
      Rate management functionality includes support for dynamic pricing,
      seasonal adjustments, promotional offers, and rate plans (e.g.,
      refundable, non-refundable). Additionally, these endpoints facilitate
      integration with revenue management systems, allowing for real-time
      updates and querying of rates based on availability, occupancy, and other
      parameters. This suite of endpoints is essential for optimising pricing
      strategies and ensuring accurate and efficient rate handling.
  - name: Referrers
    description: >-
      Represents Referrer entities within the Property Management System (PMS),
      which track sources of referrals for guests, bookings, or corporate
      clients. Referrers help identify the origin of reservations, whether from
      marketing campaigns, travel agencies, corporate partnerships, or other
      sources. This functionality enables property managers to analyse booking
      trends, measure the effectiveness of referral channels, and optimise
      marketing strategies. Referrer data can also be used for loyalty programs,
      commission tracking, and targeted promotions.
  - name: Region
    description: >-
      Represents Region entities within the Property Management System (PMS).
      Regions are used to categorize geographical areas for better management
      and reporting. This functionality helps in organizing properties, defining
      operational zones, and generating location-based insights. Regions can be
      used to optimize resource allocation, enhance guest experiences, and
      support strategic decision-making.
  - name: Room Stays
    description: >-
      Room stays are the specific stays in rooms under a booking, linking
      pricing, room, guests, and rates. This entity is part of the Property
      Management System (PMS) and is used to manage and track the details of
      each stay, including the duration, associated guests, and any additional
      services or charges. Room stays help in organizing bookings, ensuring
      accurate billing, and enhancing the overall guest experience.
  - name: Sales Invoices
    description: >-
      Operations related to Sales Invoice entity from the Property Management
      System (PMS), including retrieval, creation, updating, and deletion of
      sales invoices. This API provides endpoints to manage sales invoices,
      which are essential for tracking sales transactions, generating financial
      reports, and ensuring accurate billing. The operations include retrieving
      a list of all sales invoices, fetching details of a specific invoice,
      creating new invoices, updating existing invoices, and marking invoices as
      posted or exported to external finance systems. These functionalities help
      in maintaining the financial integrity and operational efficiency of the
      PMS.
  - name: Tags
    description: >-
      Represents Tag entities within the Property Management System (PMS),
      allowing users to categorise and organise various system entities with
      custom tag information. Tags provide a flexible way to label and classify
      properties, bookings, guests, accounts, and other records based on
      specific criteria. This functionality enhances searchability, reporting,
      and segmentation by enabling property managers to create and manage custom
      tags tailored to their operational needs. Tags can be used for filtering,
      grouping, and applying business logic to different entities across the
      PMS, supporting improved organisation and data management.
  - name: Teams
    description: >-
      Represents the Team entity within the Property Management System (PMS),
      which is used to manage groups of users or staff members associated with
      specific roles, responsibilities, or properties. The Team entity includes
      details such as team name, members, assigned tasks, and permissions. This
      functionality is essential for organising operational workflows, assigning
      responsibilities across properties, and ensuring efficient collaboration
      between staff members. Teams can be linked to specific properties,
      bookings, or tasks, enabling streamlined management and accountability in
      day-to-day operations.
  - name: Unit Access Groups
    description: >-
      Represents Unit Access Groups within the Property Management System (PMS),
      allowing access control and permission management for unit entities. Unit
      Access Groups link units to Access Groups which are the access control
      groups defined in external acces control systems. Contacts are linked to
      Access Groups for the duration of their stay based on unit they are
      staying in
  - name: Unit Types
    description: >-
      Represents Unit Type entities within the Property Management System (PMS),
      defining the classification and characteristics of different units within
      a property. Unit Types help categorise accommodations based on factors
      such as size, layout, amenities, and occupancy capacity (e.g., studio,
      one-bedroom apartment, deluxe suite). This functionality is essential for
      inventory management, pricing strategies, availability searches, and
      reporting. Unit Types enable property managers to streamline booking
      processes, optimise revenue, and ensure accurate property listings across
      platforms.
  - name: Units
    description: >-
      Represents Unit entities within the Property Management System (PMS),
      which are individual accommodations available for booking within a
      property. Units can include apartments, hotel rooms, serviced residences,
      or other types of rentable spaces. Each Unit is associated with a Unit
      Type, property, and relevant metadata such as availability, capacity,
      amenities, and pricing. This functionality supports efficient inventory
      management, booking operations, and property administration, enabling
      property managers to track occupancy, apply pricing strategies, and manage
      unit-specific details. Units are integral to availability searches,
      booking workflows, and reporting analytics within the PMS.
  - name: Users
    description: >-
      Represents User entities within the Property Management System (PMS),
      managing authentication, authorisation, and role-based access control.
      Users can include property managers, front desk staff, housekeeping teams,
      administrators, and external partners, each with specific permissions and
      roles. This functionality enables secure access management, user activity
      tracking, and assignment of responsibilities within the PMS. User entities
      store essential details such as usernames, roles, contact information, and
      access privileges, ensuring proper security measures and operational
      control. The Users API facilitates user creation, role management,
      authentication, and administrative oversight.
paths:
  /api/v3/accessGroups:
    get:
      tags:
        - Access Groups
      summary: Retrieve list of Access Groups
      description: >-
        Retrieve list of Access Groups based on search parameters such as
        building ID and name. Supports pagination.
      operationId: listAllAccessGroupsUsingGET
      parameters:
        - name: buildingId
          in: query
          description: Id of a specific building linked to the access group
          required: false
          schema:
            type: integer
            format: int64
        - name: name
          in: query
          description: Name of access group
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_SaltoAccessGroupProjection_
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_SaltoAccessGroupProjection_
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
    post:
      tags:
        - Access Groups
      summary: Create Access Group
      description: >-
        Create a new Access Group within the Property Management System (PMS).
        This endpoint allows you to add a new access group, which can be used to
        manage access control within buildings and facilities.
      operationId: createAccessGroupUsingPOST
      requestBody:
        $ref: '#/components/requestBodies/Access_Group_DTO'
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_Access_Group_DTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_Access_Group_DTO_'
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/accessGroups/{id}:
    get:
      tags:
        - Access Groups
      summary: Retrieve Access Group
      description: >-
        Retrieve an Access Group by Id. This endpoint allows you to fetch
        detailed information about a specific Access Group using its unique
        identifier. The response includes all relevant details of the Access
        Group.
      operationId: getUnitAccessGroupByIdUsingGET
      parameters:
        - name: id
          in: path
          description: Id of Access Group
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_Access_Group_DTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_Access_Group_DTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
    put:
      tags:
        - Access Groups
      summary: Update Access Group
      description: >-
        Update an Access Group within the Property Management System (PMS). The
        Access Group must exist to be updated. This endpoint allows you to
        modify the details of an existing access group, ensuring that access
        control information is kept up-to-date.
      operationId: updateAccessGroupUsingPUT
      parameters:
        - name: id
          in: path
          description: Id of Access Group
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        $ref: '#/components/requestBodies/Access_Group_DTO'
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_Access_Group_DTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_Access_Group_DTO_'
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/activities:
    get:
      tags:
        - Activities
      summary: Retrieve list of activities
      description: >-
        Retrieve a list of activities based on search criteria such as subject,
        assignee, booking reference, unit, building, issue, status, activity
        type, due date, and scheduled date. This allows for efficient management
        and tracking of tasks within the Property Management System (PMS).
      operationId: getActivitiesUsingGET
      parameters:
        - name: subject
          in: query
          description: Filter by subject of the Activity
          required: false
          schema:
            type: string
        - name: userAssigneeId
          in: query
          description: Filter by user assignee ID
          required: false
          schema:
            type: integer
            format: int64
        - name: teamAssigneeId
          in: query
          description: Filter by team assignee ID
          required: false
          schema:
            type: integer
            format: int64
        - name: companyAssigneeId
          in: query
          description: Filter by company assignee ID
          required: false
          schema:
            type: integer
            format: int64
        - name: bookingReference
          in: query
          description: Filter by booking reference
          required: false
          schema:
            type: string
        - name: unitId
          in: query
          description: Filter by unit ID
          required: false
          schema:
            type: integer
            format: int64
        - name: unitName
          in: query
          description: Filter by unit name
          required: false
          schema:
            type: string
        - name: buildingId
          in: query
          description: Filter by building ID
          required: false
          schema:
            type: integer
            format: int64
        - name: buildingName
          in: query
          description: Filter by building name
          required: false
          schema:
            type: string
        - name: issueId
          in: query
          description: Filter by issue ID
          required: false
          schema:
            type: integer
            format: int64
        - name: status
          in: query
          description: Filter by status
          required: false
          schema:
            type: string
        - name: activityType
          in: query
          description: Filter by activity type
          required: false
          schema:
            type: string
        - name: dueDate
          in: query
          description: Filter activities with a Due date greater than
          required: false
          schema:
            type: string
            format: date
        - name: dueDateEnd
          in: query
          description: Filter activities with a Due date less than
          required: false
          schema:
            type: string
            format: date
        - name: scheduledDate
          in: query
          description: >-
            Filter activities with a Scheduled date greater than or equal to
            (format "yyyy-MM-dd'T'HH:mm" e.g. 2025-04-07T14:30)
          required: false
          schema:
            type: string
            format: date-time
        - name: scheduledDateEnd
          in: query
          description: >-
            Filter activities with a scheduled date less than (format
            "yyyy-MM-dd'T'HH:mm" e.g. 2025-04-07T14:30)
          required: false
          schema:
            type: string
            format: date-time
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_ActivityListItemProjection_
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_ActivityListItemProjection_
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/activities/notes/{id}:
    get:
      tags:
        - Activities
      summary: Retrieve the specified activity note
      description: >-
        Retrieve the details of an activity note using its unique identifier.
        This endpoint allows you to fetch comprehensive information about a
        specific activity note within the Property Management System (PMS),
        including its content, creation date, and any associated metadata.
      operationId: getActivityNoteUsingGET
      parameters:
        - name: id
          in: path
          description: Unique identifier of the activity note
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_ActivityNoteDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_ActivityNoteDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/activities/{id}:
    get:
      tags:
        - Activities
      summary: Retrieve an activity specified by activity id.
      description: >-
        Retrieve the details of an activity using its unique identifier. This
        endpoint allows you to fetch comprehensive information about a specific
        activity within the Property Management System (PMS), including its
        status, assignee, related notes, and other relevant details.
      operationId: retrieveActivityUsingGET
      parameters:
        - name: id
          in: path
          description: Activity ID
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_ActivityDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_ActivityDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/activities/{id}/notes:
    get:
      tags:
        - Activities
      summary: Retrieve the notes for an activity specified by activity identifier.
      description: >-
        Retrieve all notes associated with a specific activity using its unique
        identifier. This endpoint allows you to fetch all comments, updates, and
        additional information related to an activity within the Property
        Management System (PMS). Notes provide a detailed history and context
        for the activity, ensuring comprehensive tracking and management.
      operationId: getActivityNotesUsingGET
      parameters:
        - name: id
          in: path
          description: Activity ID
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resources_Resource_ActivityNoteDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resources_Resource_ActivityNoteDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
    post:
      tags:
        - Activities
      summary: Create a note on an activity specified by activity identifier.
      description: >-
        Create a new note for the specified activity using its unique
        identifier. This endpoint allows you to add additional information or
        comments to an activity within the Property Management System (PMS).
        Notes can be used to provide updates, document progress, or communicate
        important details related to the activity.
      operationId: createActivityNotesUsingPOST
      parameters:
        - name: id
          in: path
          description: Activity ID
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ActivityNoteCreateRequest'
        description: Activity Note data to create
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_ActivityNoteDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_ActivityNoteDTO_'
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/activities/{id}/status:
    put:
      tags:
        - Activities
      summary: Update the status
      description: >-
        Update the status of an activity specified by activity id. This endpoint
        allows you to change the status of an activity within the Property
        Management System (PMS), ensuring that the task's progress is accurately
        tracked and managed. Valid statuses include OPEN, STARTED, RESOLVED, and
        CLOSED.
      operationId: updateActivityStatusUsingPUT
      parameters:
        - name: id
          in: path
          description: Activity ID
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StatusUpdateDTO'
        description: Activity Status Update data
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_ActivityDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_ActivityDTO_'
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/areas:
    get:
      tags:
        - Area
      summary: Retrieve list of areas
      description: >-
        Retrieve a list of areas within the Property Management System (PMS).
        This endpoint allows you to fetch details about various geographical
        areas, including their hierarchical structure within cities and regions.
        Areas are used to define the location of properties and are essential
        for organizing and managing properties effectively within the PMS.
      operationId: listAllAreasUsingGET
      parameters:
        - name: areaName
          in: query
          description: Name of the area
          required: false
          schema:
            type: string
        - name: cityId
          in: query
          description: ID of the city
          required: false
          schema:
            type: integer
            format: int64
        - name: cityName
          in: query
          description: Name of the city
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_AreaListItemProjection_
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_AreaListItemProjection_
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/areas/{id}:
    get:
      tags:
        - Area
      summary: Retrieve an area by Id
      description: >-
        Retrieve the details of a specific area within the Property Management
        System (PMS) using its unique identifier. This endpoint allows you to
        fetch comprehensive information about a particular geographical area,
        including its hierarchical structure within cities and regions. Areas
        are essential for organizing and managing properties effectively within
        the PMS.
      operationId: getAreaByIdUsingGET
      parameters:
        - name: id
          in: path
          description: ID of the area
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_AreaDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_AreaDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/availabilities:
    get:
      tags:
        - Availabilities
      summary: >-
        Retrieve real-time room availability and corresponding pricing based on
        specified criteria such as date range, room type, occupancy, and
        applicable rate plans
      operationId: availabilitySearchUsingGET
      parameters:
        - name: dateFrom
          in: query
          description: The start date of the availability search
          required: true
          schema:
            type: string
            format: date
        - name: dateTo
          in: query
          description: The end date of the availability search
          required: true
          schema:
            type: string
            format: date
        - name: inventoryType
          in: query
          description: The type of inventory to search for, either UNIT or UNIT_TYPE
          required: true
          schema:
            type: string
        - name: guests
          in: query
          description: The number of guests for the booking
          required: false
          schema:
            type: integer
            format: int32
        - name: unitTypeType
          in: query
          description: >-
            List of unit type types to search for, e.g. STUDIO, ONE_BEDROOM,
            TWO_BEDROOM
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: promoCode
          in: query
          description: Promotional code to apply to the search
          required: false
          schema:
            type: string
        - name: featureIds
          in: query
          description: List of feature facility IDs to search for
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: rateCode
          in: query
          description: Rate code to apply to the search
          required: false
          schema:
            type: string
        - name: rateId
          in: query
          description: Rate Id to apply to the search
          required: false
          schema:
            type: integer
            format: int64
        - name: ratePlanIds
          in: query
          description: List of rate plan IDs to search for
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int64
        - name: buildingIds
          in: query
          description: List of building IDs to search for
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int64
        - name: cityId
          in: query
          description: City Id to search for
          required: false
          schema:
            type: integer
            format: int64
        - name: areaId
          in: query
          description: Area Id to search for
          required: false
          schema:
            type: integer
            format: int64
        - name: bookingType
          in: query
          description: Restrict results based on type of booking
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/Resources_Resource_PropertyRateAvailabilityDTO_
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Resources_Resource_PropertyRateAvailabilityDTO_
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/availabilities/unit/{unitId}/intervals:
    get:
      tags:
        - Availabilities
      summary: Retrieve intervals of availability for a unit specified by unit id
      operationId: findAvailabilityIntervalsPerUnitUsingGET
      parameters:
        - name: unitId
          in: path
          description: unitId
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/Resources_Resource_AvailabilityIntervalDto_
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Resources_Resource_AvailabilityIntervalDto_
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/billingFrequencies:
    get:
      tags:
        - Billing Frequencies
      summary: Retrieve all billing frequencies
      description: >-
        Retrieve a list of all billing frequencies within the Property
        Management System (PMS). This endpoint allows you to fetch details about
        different billing intervals, which help in organizing and managing
        various financial operations efficiently within the PMS.
      operationId: getBillingFrequenciesUsingGET
      parameters:
        - name: code
          in: query
          description: Filter billing frequencies by code
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resources_Resource_BillingFrequencyDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resources_Resource_BillingFrequencyDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/billingFrequencies/{id}:
    get:
      tags:
        - Billing Frequencies
      summary: Retrieve billing frequency with specified id
      description: >-
        Retrieve the details of a specific billing frequency within the Property
        Management System (PMS) using its unique identifier. This endpoint
        allows you to fetch comprehensive information about a particular billing
        interval, including its characteristics and associated behaviors.
        Billing frequencies are essential for organizing and managing various
        financial operations efficiently within the PMS.
      operationId: getBillingFrequencyByIdUsingGET
      parameters:
        - name: id
          in: path
          description: Unique identifier of the billing frequency
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_BillingFrequencyDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_BillingFrequencyDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/bookingTypes:
    get:
      tags:
        - Booking Types
      summary: Retrieve all booking types
      description: >-
        Retrieve a list of all booking types within the Property Management
        System (PMS). This endpoint allows you to fetch details about different
        booking categories, which help in organizing and managing various
        reservations and associated operations efficiently within the PMS.
      operationId: getBookingTypesUsingGET
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resources_Resource_BookingTypeDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resources_Resource_BookingTypeDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/bookingTypes/{id}:
    get:
      tags:
        - Booking Types
      summary: Retrieve booking type with specified id
      description: >-
        Retrieve the details of a specific booking type within the Property
        Management System (PMS) using its unique identifier. This endpoint
        allows you to fetch comprehensive information about a particular booking
        category, including its characteristics and associated behaviors.
        Booking types are essential for organizing and managing various
        reservations and operations efficiently within the PMS.
      operationId: getBookingTypeByIdUsingGET
      parameters:
        - name: id
          in: path
          description: Unique identifier of the booking type
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_BookingTypeDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_BookingTypeDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/bookings:
    get:
      tags:
        - Bookings
      summary: Search for bookings
      description: >-
        Search for bookings via a variety of optional filters within the
        Property Management System (PMS). This endpoint allows you to filter
        bookings based on date ranges, statuses, unit IDs, booking contact IDs,
        and other criteria, providing a flexible way to retrieve specific
        booking information as needed.
      operationId: listAllBookingsUsingGET
      parameters:
        - name: dateFrom
          in: query
          description: >-
            Start of date range for which bookings are retrieved, based on start
            and end date of booking
          required: false
          schema:
            type: string
            format: date
        - name: dateTo
          in: query
          description: >-
            End of date range for which bookings are retrieved, based on start
            and end date of booking
          required: false
          schema:
            type: string
            format: date
        - name: lastUpdatedFrom
          in: query
          description: >-
            Timestamp of the last update to the booking, returns bookings
            updated after this timestamp
          required: false
          schema:
            type: string
            format: date-time
        - name: lastUpdatedTo
          in: query
          description: >-
            Timestamp of the last update to the booking, returns bookings
            updated before this timestamp
          required: false
          schema:
            type: string
            format: date-time
        - name: createdFrom
          in: query
          description: >-
            Timestamp of the booking creation, returns bookings created after
            this timestamp
          required: false
          schema:
            type: string
            format: date-time
        - name: createdTo
          in: query
          description: >-
            Timestamp of the booking creation, returns bookings created before
            this timestamp
          required: false
          schema:
            type: string
            format: date-time
        - name: unitId
          in: query
          description: ID of the unit
          required: false
          schema:
            type: integer
            format: int64
        - name: bookingContactId
          in: query
          description: ID of the booking contact
          required: false
          schema:
            type: integer
            format: int64
        - name: bookingAccountId
          in: query
          description: ID of the booking account
          required: false
          schema:
            type: integer
            format: int64
        - name: billingAccountId
          in: query
          description: ID of the billing account
          required: false
          schema:
            type: integer
            format: int64
        - name: statuses
          in: query
          description: Array of statuses for the booking
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
            default: CONFIRMED,CHECKED_IN,CHECKED_OUT
        - name: bookingReference
          in: query
          description: Booking reference number
          required: false
          schema:
            type: string
        - name: channelId
          in: query
          description: ID of the channel
          required: false
          schema:
            type: integer
            format: int64
        - name: bookingId
          in: query
          description: ID of the booking
          required: false
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_BookingRoomStayListItemProjection_
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_BookingRoomStayListItemProjection_
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
    post:
      tags:
        - Bookings
      summary: Create a booking/enquiry
      description: >-
        This endpoint is used to create a new booking with room stays in a
        ENQUIRY status. If 'reserveForMinutes' is specified the availability
        will be held for the number of minutes specified. Once the booking is
        created use the 'updateStatuses' endpoint to change the status to
        PENDING, CONFIRMED or CHECKED_IN.
      operationId: createBookingUsingPOST
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Booking'
        description: newBooking
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_BookingDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_BookingDTO_'
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/bookings/{bookingId}/payments:
    post:
      tags:
        - Bookings
      summary: Create a payment record against a booking.
      description: >-
        Creates a payment record against a booking. The payment record will be
        reconciled against any outstanding invoices. Where necessary invoices
        will be auto posted. The payDueBefore parameter can be used to specify
        invoices up to a certain date to be paid. If there is insufficient
        outstanding on invoices, the payment is rejected.
      operationId: reconcileBookingPaymentsUsingPOST
      parameters:
        - name: bookingId
          in: path
          description: ID of the booking
          required: true
          schema:
            type: integer
            format: int64
        - name: payDueBefore
          in: query
          description: The date up to which invoices should be paid
          required: false
          schema:
            type: string
            format: date
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BookingPaymentCreateDTO'
        description: The payment details
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resources_FinancialDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resources_FinancialDTO_'
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/bookings/{bookingId}/updateStatuses:
    put:
      tags:
        - Bookings
      summary: Update roomstay statuses on a specified booking.
      description: >-
        This endpoint allows you to update the statuses of room stays associated
        with a specific booking within the Property Management System (PMS).
        Room stay statuses can include various states such as CONFIRMED,
        CHECKED_IN, CHECKED_OUT, etc. Updating these statuses helps in managing
        the booking lifecycle and ensuring accurate tracking of room occupancy
        and availability.
      operationId: updateBookingStatusUsingPUT
      parameters:
        - name: bookingId
          in: path
          description: ID of the booking
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BookingStatusUpdateDTO'
        description: bookingStatusUpdate
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/Resources_Resource_RoomStayStatusUpdateResultDTO_
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Resources_Resource_RoomStayStatusUpdateResultDTO_
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/bookings/{id}:
    get:
      tags:
        - Bookings
      summary: Retrieve a booking and its associated data.
      description: >-
        Retrieve detailed information about a specific booking within the
        Property Management System (PMS). This includes all associated data such
        as room stays, invoices, notes, and tags. This endpoint ensures
        comprehensive access to all relevant booking details, facilitating
        efficient management and tracking of reservations.
      operationId: getBookingDtoByIdentifierUsingGET
      parameters:
        - name: id
          in: path
          description: ID of the booking
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_BookingDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_BookingDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/bookings/{id}/financialSummary:
    get:
      tags:
        - Bookings
      summary: Retrieve the financial summary for a specified booking
      description: >-
        Retrieve a detailed financial summary for a specific booking within the
        Property Management System (PMS). This includes all charges, payments,
        and adjustments related to the booking, providing a comprehensive
        overview of the booking's financial status. This endpoint ensures that
        all financial transactions linked to the booking are accessible,
        facilitating efficient financial management and tracking.
      operationId: getBookingPriceBreakdownUsingGET
      parameters:
        - name: id
          in: path
          description: id
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_BookingPriceBreakdown_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_BookingPriceBreakdown_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/bookings/{id}/notes:
    get:
      tags:
        - Bookings
      summary: Retrieve list of all notes for specified booking
      description: >-
        Retrieve a comprehensive list of all notes associated with a specific
        booking within the Property Management System (PMS). Notes provide
        detailed information about the booking, including comments, updates, and
        additional context. This endpoint ensures that all notes linked to the
        booking are accessible, facilitating efficient management and tracking
        of reservations.
      operationId: getNotesByBookingIdUsingGET
      parameters:
        - name: id
          in: path
          description: ID of the booking
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resources_Resource_BookingNoteDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resources_Resource_BookingNoteDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
    post:
      tags:
        - Bookings
      summary: Record a note against a specified booking
      description: >-
        Record a note against a specified booking within the Property Management
        System (PMS). This endpoint allows you to add comments, updates, or
        additional information related to a booking. Notes provide detailed
        context and history for the booking, ensuring comprehensive tracking and
        management of reservations.
      operationId: createBookingNoteUsingPOST
      parameters:
        - name: id
          in: path
          description: ID of booking
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BookingNoteCreateDTO'
        description: Booking Note to be created
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_BookingNoteDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_BookingNoteDTO_'
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/bookings/{id}/roomStays:
    get:
      tags:
        - Bookings
      summary: Retrieve list of all room stays for specified booking
      description: >-
        Retrieve a comprehensive list of all room stays associated with a
        specific booking within the Property Management System (PMS). This
        endpoint provides detailed information about each room stay, including
        the status, duration, and associated unit. It ensures that all room
        stays linked to the booking are accessible, facilitating efficient
        management and tracking of reservations.
      operationId: getRoomStaysByBookingIdUsingGET
      parameters:
        - name: id
          in: path
          description: ID of the booking
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_BookingRoomStayListItemProjection_
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_BookingRoomStayListItemProjection_
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/bookings/{id}/salesInvoices:
    get:
      tags:
        - Bookings
      summary: Retrieve list of all invoices for specified booking
      description: >-
        Retrieve a comprehensive list of all invoices associated with a specific
        booking within the Property Management System (PMS). This endpoint
        provides detailed financial information related to the booking,
        including all charges, payments, and adjustments. It ensures that all
        financial transactions linked to the booking are accessible,
        facilitating efficient financial management and tracking.
      operationId: getInvoicesByBookingIdUsingGET
      parameters:
        - name: id
          in: path
          description: ID of the booking
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_SalesInvoiceListItemProjection_
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_SalesInvoiceListItemProjection_
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/bookings/{id}/tags:
    get:
      tags:
        - Bookings
      summary: Retrieve list of all tags for specified booking
      description: >-
        Retrieve a comprehensive list of all tags associated with a specific
        booking within the Property Management System (PMS). Tags provide
        additional metadata and categorization for bookings, allowing for better
        organization and filtering. This endpoint ensures that all tags linked
        to the booking are accessible, facilitating efficient management and
        tracking of reservations.
      operationId: getTagsByBookingIdUsingGET
      parameters:
        - name: id
          in: path
          description: ID of the booking
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resources_Resource_TagDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resources_Resource_TagDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/buildings:
    get:
      tags:
        - Building
      summary: Retrieve list of buildings
      description: >-
        Retrieve a list of all buildings managed within the PMS. The response
        includes essential information for each building, such as its unique ID,
        name, address, facilities, and operational status. Optional query
        parameters can be included to refine the results, such as filtering by
        city, operational status, or specific attributes. This endpoint is
        particularly useful for displaying a catalogue of properties, managing
        building records, or integrating building data with external systems.
      operationId: listAllBuildingsUsingGET
      parameters:
        - name: buildingName
          in: query
          description: Name of the building to search for
          required: false
          schema:
            type: string
        - name: developmentName
          in: query
          description: Name of the development to search for
          required: false
          schema:
            type: string
        - name: developmentId
          in: query
          description: Id of the development to search for
          required: false
          schema:
            type: integer
            format: int64
        - name: areaName
          in: query
          description: Name of the area to search for
          required: false
          schema:
            type: string
        - name: areaId
          in: query
          description: Id of the area to search for
          required: false
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_BuildingListItemProjection_
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_BuildingListItemProjection_
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/buildings/{id}:
    get:
      tags:
        - Building
      summary: Retrieve a building by ID
      description: >-
        Fetch detailed information about a specific building within the PMS
        using its unique identifier. The response includes details such as the
        building's name, address, facilities, operational status, and any
        associated metadata. This endpoint is typically used to view or manage
        property-specific information.
      operationId: getBuildingByIdUsingGET
      parameters:
        - name: id
          in: path
          description: Unique identifier of the building to retrieve
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_BuildingDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_BuildingDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/channels:
    get:
      tags:
        - Channels
      summary: Retrieve all Channels
      description: >-
        Fetch a list of all channels within the Property Management System
        (PMS). This endpoint is useful for retrieving detailed information about
        channels, including their names and descriptions. The response includes
        a list of channels, which can be used for categorizing and organizing
        various system entities. If no channels are found, an empty list will be
        returned. In case of an unexpected system error, a `500 Internal Server
        Error` will be triggered.
      operationId: listChannelsUsingGET
      parameters:
        - name: name
          in: query
          description: name
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Page_Resource_ChannelDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Page_Resource_ChannelDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/channels/{id}:
    get:
      tags:
        - Channels
      summary: Retrieve a specific Channel
      description: >-
        Fetch a specific channel within the Property Management System (PMS).
        This endpoint is useful for retrieving detailed information about a
        specific channel, including its name and description. If the channel is
        not found, a `404 Not Found` response will be triggered. In case of an
        unexpected system error, a `500 Internal Server Error` will be
        triggered.
      operationId: getChannelByIdUsingGET
      parameters:
        - name: id
          in: path
          description: ID of the channel to retrieve
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_ChannelDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_ChannelDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/cities:
    get:
      tags:
        - City
      summary: Retrieve list of buildings
      description: >-
        Fetch a comprehensive list of buildings available within the PMS. The
        response includes details for each building, such as its name, unique
        identifier, address, facilities, and operational status. Optional query
        parameters can be used to filter the results by criteria such as
        location, status, or associated city. This endpoint is useful for
        managing property inventories and facilitating searches across multiple
        buildings.
      operationId: listAllCitiesUsingGET
      parameters:
        - name: cityName
          in: query
          description: Name of the city to search for
          required: false
          schema:
            type: string
        - name: regionId
          in: query
          description: Id of the region to search for
          required: false
          schema:
            type: integer
            format: int64
        - name: regionName
          in: query
          description: Name of the region to search for
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_CityListItemProjection_
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_CityListItemProjection_
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/cities/{id}:
    get:
      tags:
        - City
      summary: Retrieve a city by ID
      description: >-
        Fetch detailed information about a specific city within the PMS using
        its unique identifier. The response includes the city's name, associated
        properties, and any relevant metadata. This endpoint is commonly used to
        retrieve location-specific data to support property management and
        reporting functions.
      operationId: getCityByIdUsingGET
      parameters:
        - name: id
          in: path
          description: Unique identifier of the city to retrieve
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_CityDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_CityDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/companies:
    get:
      tags:
        - Companies
      summary: Retrieve list of companies by search filters
      description: >-
        Retrieve a paginated list of companies from the PMS based on specified
        search filters. Optional query parameters include company name, email
        address, telephone number, referrer, industry, market segment, and
        account ID. Each filter allows partial matches using wildcards for
        greater flexibility in searching. If no filters are provided, the
        endpoint returns all available companies. The response contains key
        details for each company, such as name, contact information, and
        industry, presented in a paginated format to facilitate navigation. This
        endpoint is ideal for managing corporate accounts, identifying business
        partnerships, and integrating company information with other systems.
        Pagination controls can be used to manage the size and order of results.
      operationId: listCompaniesUsingGET
      parameters:
        - name: companyName
          in: query
          description: Company name to search for
          required: false
          schema:
            type: string
        - name: emailAddress
          in: query
          description: Email address to search for
          required: false
          schema:
            type: string
        - name: telephoneNumber
          in: query
          description: Telephone number to search for
          required: false
          schema:
            type: string
        - name: referrer
          in: query
          description: Referrer to search for
          required: false
          schema:
            type: string
        - name: industry
          in: query
          description: Industry to search for
          required: false
          schema:
            type: string
        - name: marketSegment
          in: query
          description: Market segment to search for
          required: false
          schema:
            type: string
        - name: accountId
          in: query
          description: Account ID to search for
          required: false
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_CompanyListItemProjection_
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_CompanyListItemProjection_
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
    post:
      tags:
        - Companies
      summary: Create a new company
      description: >-
        Create a new company record in the PMS by providing the company details
        in the request body. The input JSON payload should include information
        such as the company's name, contact details, industry, and other
        relevant attributes. The authenticated user is associated with the
        creation for audit purposes. Upon successful creation, the response
        returns the full details of the newly created company, including its
        unique identifier. This endpoint is essential for adding new
        organisations to the system for management and operational purposes.
      operationId: createCompanyUsingPOST
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CompanyDTO'
        description: companyDTO
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_CompanyDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_CompanyDTO_'
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/companies/{id}:
    get:
      tags:
        - Companies
      summary: Retrieve company specified by company ID
      description: >-
        Retrieve detailed information about a specific company in the PMS by
        providing its unique company ID. The response includes comprehensive
        data such as the company's name, contact information, address, industry,
        and any associated metadata. If the specified company ID does not exist,
        a 'Not Found' error will be returned. This endpoint is useful for
        viewing and managing individual company records, enabling efficient
        retrieval of corporate account details.
      operationId: getCompanyByIdUsingGET
      parameters:
        - name: id
          in: path
          description: Company ID to search for
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_CompanyDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_CompanyDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
    put:
      tags:
        - Companies
      summary: Update a company record
      description: >-
        Update an existing company record in the PMS by providing the company's
        unique ID and updated details in the request body. The input JSON
        payload should include the fields to be updated, such as the company's
        name, contact information, industry, or other attributes. The system
        verifies the existence of the company before applying the updates, and
        any attempt to update a non-existent company will result in a 'Not
        Found' error. Upon successful update, the response returns the full
        details of the updated company. This endpoint ensures efficient
        management of company records while maintaining data integrity.
      operationId: updateCompanyUsingPUT
      parameters:
        - name: id
          in: path
          description: Company ID to update
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CompanyDTO'
        description: Company data to update
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_CompanyDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_CompanyDTO_'
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/contacts:
    get:
      tags:
        - Contacts
      summary: Returns a list of contacts
      description: >-
        Retrieve a paginated list of contacts from the CRM module of the PMS.
        This endpoint supports optional query parameters to filter the results,
        including email address, first name, last name, telephone number, and
        account ID. If no filters are provided, the endpoint returns all
        available contacts in the system. The response includes a paginated list
        of contact records with key details, such as names and contact
        information, making it suitable for displaying contact directories or
        integrating with external systems. Pagination parameters can also be
        used to control the size and order of the result set.
      operationId: retrieveContactsUsingGET
      parameters:
        - name: emailAddress
          in: query
          description: Email address of the contact
          required: false
          schema:
            type: string
        - name: firstName
          in: query
          description: First name of the contact
          required: false
          schema:
            type: string
        - name: lastName
          in: query
          description: Last name of the contact
          required: false
          schema:
            type: string
        - name: telephoneNumber
          in: query
          description: Telephone number of the contact
          required: false
          schema:
            type: string
        - name: accountId
          in: query
          description: Account ID of the contact
          required: false
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_ContactListItemProjection_
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_ContactListItemProjection_
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
    post:
      tags:
        - Contacts
      summary: Create a contact
      description: >-
        Create a new contact record in the CRM module of the PMS. This endpoint
        accepts a JSON payload containing the contact's details, such as name,
        contact information (e.g., email, phone), role, and any related
        metadata. The authenticated user's details are used to associate the
        creation with an authorised account. Upon successful creation, the
        response returns the newly created contact's data, including its unique
        identifier. This endpoint is essential for adding new individuals or
        organisations to the contact database for guest management or
        operational purposes.
      operationId: createContactUsingPOST
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactDTO'
        description: Contact data to create
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_ContactDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_ContactDTO_'
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/contacts/{id}:
    get:
      tags:
        - Contacts
      summary: Retrieve contact using contact ID
      description: >-
        Fetch detailed information about a specific contact in the CRM module of
        the PMS using their unique contact ID. The response includes key details
        such as the contact's name, contact information (e.g., email, phone),
        role, associated organisation, and any linked properties or bookings.
        This endpoint is essential for accessing and managing individual contact
        records for guest management, corporate accounts, or operational
        purposes.
      operationId: getContactByIdUsingGET
      parameters:
        - name: id
          in: path
          description: Contact ID
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_ContactDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_ContactDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
    put:
      tags:
        - Contacts
      summary: Update a contact record
      description: >-
        Update an existing contact record in the CRM module of the PMS. This
        endpoint requires the contact's unique ID as a path variable and a JSON
        payload containing the updated contact details, such as name, contact
        information, role, or related metadata. The system verifies the
        existence of the contact and applies locking mechanisms to prevent
        concurrent modifications during the update process. Upon successful
        completion, the updated contact record is saved, and the response
        includes the latest contact details. This endpoint is essential for
        maintaining up-to-date contact information and ensuring data integrity
        in the CRM module.
      operationId: updateContactUsingPUT
      parameters:
        - name: id
          in: path
          description: Contact ID
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactDTO'
        description: contactRecord
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_ContactDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_ContactDTO_'
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/contacts/{id}/notes:
    get:
      tags:
        - Contacts
      summary: Get notes from a contact record
      description: >-
        Retrieve all notes associated with a specific contact record in the CRM
        module of the PMS. The response includes a list of notes, each
        containing details such as the note's content, creation date, author,
        and any associated tags or categories. This endpoint is useful for
        tracking communication history, documenting interactions, and
        maintaining a comprehensive record of engagements with contacts.
      operationId: getContactNotesUsingGET
      parameters:
        - name: id
          in: path
          description: Contact ID
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resources_ContactNoteDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resources_ContactNoteDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/countries:
    get:
      tags:
        - Country
      summary: Retrieve list of countries
      description: >-
        Retrieve a paginated list of countries stored within the Property
        Management System (PMS). This endpoint supports optional filtering by
        country name using the `countryName` query parameter, which allows
        partial matching for flexible searches. The response includes key
        country details such as country name, ISO codes, and other relevant
        metadata. This endpoint is useful for managing country-specific
        configurations, including localisation, tax settings, and currency
        associations. If no search criteria are provided, all available country
        records will be returned in a paginated format.
      operationId: listAllCountriesUsingGET
      parameters:
        - name: countryName
          in: query
          description: Name of the country to search for
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_CountryListItemProjection_
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_CountryListItemProjection_
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/countries/{id}:
    get:
      tags:
        - Country
      summary: Retrieve a country by ID
      description: >-
        Fetch detailed information about a specific country within the Property
        Management System (PMS) by providing its unique ID. The response
        includes essential country details such as the country's name, ISO
        codes, and any associated metadata. This endpoint is commonly used for
        retrieving country-specific settings related to localisation, tax
        regulations, and currency configurations. If the specified country ID
        does not exist, a `404 Not Found` error will be returned. In case of an
        unexpected system error, a `500 Internal Server Error` will be
        triggered.
      operationId: getCountryByIdUsingGET
      parameters:
        - name: id
          in: path
          description: Unique identifier of the country
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_CountryDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_CountryDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/developments:
    get:
      tags:
        - Developments
      summary: Retrieve list of developments
      description: >-
        Retrieve a paginated list of developments within the Property Management
        System (PMS). This endpoint supports optional filtering by development
        name, area ID, or area name, allowing flexible search criteria. Each
        development represents a property project or a group of buildings and
        includes key details such as name, location, and associated properties.
        The response provides a structured list of developments, which is useful
        for managing large-scale property assets, tracking project status, and
        integrating with booking and operational workflows. If no filters are
        applied, all available developments will be returned in a paginated
        format.
      operationId: listAllDevelopmentsUsingGET
      parameters:
        - name: developmentName
          in: query
          description: Filter by development name (case-insensitive, wildcard supported)
          required: false
          schema:
            type: string
        - name: areaId
          in: query
          description: Filter by area ID
          required: false
          schema:
            type: integer
            format: int64
        - name: areaName
          in: query
          description: Filter by area name (case-insensitive, wildcard supported)
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_DevelopmentListItemProjection_
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_DevelopmentListItemProjection_
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/developments/{id}:
    get:
      tags:
        - Developments
      summary: Retrieve a development by ID
      description: >-
        Fetch detailed information about a specific development within the
        Property Management System (PMS) using its unique ID. The response
        includes key details such as the development's name, associated
        buildings, location, status, and other relevant metadata. This endpoint
        is useful for retrieving structured property development data,
        supporting asset management, and integrating with booking and
        operational workflows. If the specified development ID does not exist, a
        `404 Not Found` error will be returned. In case of an unexpected system
        error, a `500 Internal Server Error` will be triggered.
      operationId: getUnitByIdUsingGET
      parameters:
        - name: id
          in: path
          description: Development ID
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_DevelopmentDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_DevelopmentDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/extras:
    get:
      tags:
        - Extras
      summary: Search for chargeable extras
      description: >-
        Retrieve a paginated list of chargeable extras within the Property
        Management System (PMS). Chargeable extras represent additional services
        or products that can be added to bookings, such as parking, meals, or
        cleaning services. This endpoint allows filtering by billing frequency,
        building ID, and whether the extra is available through the Internet
        Booking Engine (IBE). The response includes details about each extra,
        such as pricing, availability, and applicable billing rules. If an
        invalid billing frequency is provided, a `400 Bad Request` error will be
        returned. If no filters are applied, all available chargeable extras
        will be returned in a paginated format, making it easier to manage and
        integrate additional services into property operations.
      operationId: searchAllExtrasUsingGET
      parameters:
        - name: billingFrequency
          in: query
          description: Filter by billing frequency
          required: false
          schema:
            type: string
            enum:
              - DAILY
              - WEEKLY
              - MONTHLY
              - YEARLY
        - name: buildingId
          in: query
          description: Filter by building ID
          required: false
          schema:
            type: integer
            format: int64
        - name: availableThroughIBE
          in: query
          description: Filter by availability through IBE
          required: false
          schema:
            type: boolean
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_ChargeableExtraDTO_
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_ChargeableExtraDTO_
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/extras/{rateId}:
    get:
      tags:
        - Extras
      summary: Retrieve compulsory chargeable extras for a rate ID
      description: >-
        Fetch a list of compulsory chargeable extras associated with a specific
        rate code within the Property Management System (PMS). Compulsory extras
        are additional services or fees that must be included when booking a
        rate, such as cleaning fees, resort fees, or mandatory meal plans. This
        endpoint requires the `rateCode` as a path variable and a date range
        (`startDate` and `endDate`) as query parameters to determine the
        applicable extras for the specified period. The response includes
        details about each extra, including pricing, validity dates, and
        availability. This functionality is useful for ensuring that mandatory
        add-ons are applied correctly in booking workflows and pricing
        calculations. If the rate code does not exist or is invalid, an
        appropriate error response will be returned.
      operationId: retrieveCompulsoryExtrasForRateIdUsingGET
      parameters:
        - name: rateId
          in: path
          description: Unique identifier for the rate ID
          required: true
          schema:
            type: integer
            format: int64
        - name: startDate
          in: query
          description: Start date for the rate ID
          required: true
          schema:
            type: string
            format: date
        - name: endDate
          in: query
          description: End date for the rate ID
          required: true
          schema:
            type: string
            format: date
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resources_Resource_ChargeableExtraDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resources_Resource_ChargeableExtraDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/extras/{roomStayExtraId}/payment:
    post:
      tags:
        - Extras
      summary: Record a payment against an extra attached to a room stay
      description: >-
        Registers a payment for a chargeable extra linked to a specific room
        stay within the Property Management System (PMS). This endpoint requires
        the `roomStayExtraId` as a path variable to identify the extra and a
        payment request body containing the payment details. It verifies the
        existence of the room stay extra and checks for any associated sales
        invoices. If an outstanding balance remains, the payment is processed
        and recorded. The response includes financial details related to the
        transaction, such as the payment reference and updated invoice status.
        If the extra does not exist, the invoice is already paid, or there are
        no invoices to process, a `400 Bad Request` error will be returned.
      operationId: updateExtraPaymentUsingPOST
      parameters:
        - name: roomStayExtraId
          in: path
          description: roomStayExtraId
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargeableExtraPaymentDTO'
        description: extraPaymentUpdate
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_FinancialDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_FinancialDTO_'
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/guestStays:
    get:
      tags:
        - Guest Stays
      summary: Retrieve Guest Stays from defined parameters.
      description: >-
        Retrieve a paginated list of guest stays within the Property Management
        System (PMS) based on specified search criteria. This endpoint allows
        filtering by date range (`dateFrom` and `dateTo`), unit ID, contact ID,
        guest details (email, first name, last name), status (`CONFIRMED`,
        `CHECKED_IN`, `CHECKED_OUT` by default), and booking reference. Guest
        Stays represent individual guest reservations linked to a room stay and
        include key details such as guest identity, booking status, and
        associated property information. The response provides a paginated list
        of Guest Stay records, making it useful for tracking occupancy, managing
        guest check-ins and check-outs, and retrieving stay details for
        reporting or operational purposes. If no filters are provided, all guest
        stays within the default parameters will be returned.
      operationId: listAllGuestStaysUsingGET
      parameters:
        - name: dateFrom
          in: query
          description: Start date of the date range to filter guest stays
          required: false
          schema:
            type: string
            format: date
        - name: dateTo
          in: query
          description: End date of the date range to filter guest stays
          required: false
          schema:
            type: string
            format: date
        - name: unitId
          in: query
          description: Unique identifier of the unit to filter guest stays
          required: false
          schema:
            type: integer
            format: int64
        - name: contactId
          in: query
          description: Unique identifier of the contact to filter guest stays
          required: false
          schema:
            type: integer
            format: int64
        - name: emailAddress
          in: query
          description: Email address of the guest to filter guest stays
          required: false
          schema:
            type: string
        - name: firstName
          in: query
          description: First name of the guest to filter guest stays
          required: false
          schema:
            type: string
        - name: lastName
          in: query
          description: Last name of the guest to filter guest stays
          required: false
          schema:
            type: string
        - name: statuses
          in: query
          description: >-
            Status of the guest stay to filter guest stays (Default to
            CONFIRMED,CHECKED_IN,CHECKED_OUT if not specified
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
            default: CONFIRMED,CHECKED_IN,CHECKED_OUT
        - name: bookingReference
          in: query
          description: Booking reference of the guest stay to filter guest stays
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_GuestStayListItemProjection_
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_GuestStayListItemProjection_
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/guestStays/{id}:
    get:
      tags:
        - Guest Stays
      summary: Retrieve Guest Stay by ID
      description: >-
        Fetch detailed information about a specific Guest Stay within the
        Property Management System (PMS) using its unique ID. A Guest Stay
        represents an individual guest's reservation linked to a room stay and
        includes key details such as check-in and check-out dates, assigned
        unit, guest information, booking reference, and stay status. This
        endpoint is useful for retrieving stay-specific data for guest
        management, reporting, or operational workflows. If the specified Guest
        Stay ID does not exist, a `404 Not Found` error will be returned. In
        case of an unexpected system error, a `500 Internal Server Error` will
        be triggered.
      operationId: getGuestStayByIdUsingGET
      parameters:
        - name: id
          in: path
          description: Unique identifier of the Guest Stay
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_GuestStayDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_GuestStayDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/industries:
    get:
      tags:
        - Industries
      summary: Retrieve all industries
      description: >-
        Fetch a list of all industries stored within the Property Management
        System (PMS). Industries represent business sectors and are used for
        categorising corporate clients, segmenting accounts, and applying
        industry-specific pricing, policies, or reporting structures. The
        response includes details of each industry, providing a structured way
        to organise and manage business relationships within the PMS. This
        endpoint is useful for analytics, market segmentation, and corporate
        account management. If an unexpected system error occurs, a `500
        Internal Server Error` will be triggered.
      operationId: listIndustriesUsingGET
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resources_Resource_IndustryDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resources_Resource_IndustryDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/industries/{id}:
    get:
      tags:
        - Industries
      summary: Retrieve industry by ID
      description: >-
        Fetch detailed information about a specific industry within the Property
        Management System (PMS) using its unique ID. Industries are used to
        categorise corporate clients, segment accounts, and manage
        industry-specific pricing, policies, or reporting structures. The
        response includes key details about the industry, making it useful for
        analytics, business segmentation, and corporate account management. If
        the specified industry ID does not exist, a `404 Not Found` error will
        be returned. In case of an unexpected system error, a `500 Internal
        Server Error` will be triggered.
      operationId: getIndustryByIdUsingGET
      parameters:
        - name: id
          in: path
          description: The unique identifier of the industry
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_IndustryDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_IndustryDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/issues:
    get:
      tags:
        - Issues
      summary: Retrieve a list of issues
      description: >-
        Fetch a paginated list of issues within the Property Management System
        (PMS), representing property management tasks, maintenance requests, or
        guest service concerns. This endpoint allows filtering by multiple
        parameters, including issue details (ID, subject, status, type,
        priority), assignment details (assignee user or team), date ranges
        (reported date, response target date, resolution target date, last
        updated date), and related entities (booking, unit, or building). The
        response includes key issue details, making it useful for tracking
        operational tasks, managing maintenance workflows, and ensuring
        efficient resolution. If no filters are applied, all available issues
        will be returned in a paginated format. In case of an unexpected system
        error, a `500 Internal Server Error` will be triggered.
      operationId: retrieveIssuesUsingGET
      parameters:
        - name: issueId
          in: query
          description: Issue ID
          required: false
          schema:
            type: integer
            format: int64
        - name: subject
          in: query
          description: Subject
          required: false
          schema:
            type: string
        - name: assigneeUserId
          in: query
          description: Assignee User ID
          required: false
          schema:
            type: integer
            format: int64
        - name: assigneeTeamId
          in: query
          description: Assignee Team ID
          required: false
          schema:
            type: integer
            format: int64
        - name: reportedDate
          in: query
          description: Reported Date
          required: false
          schema:
            type: string
            format: date
        - name: reportedDateEnd
          in: query
          description: Reported Date End
          required: false
          schema:
            type: string
            format: date
        - name: responseTargetDate
          in: query
          description: Response Target Date
          required: false
          schema:
            type: string
            format: date
        - name: responseTargetDateEnd
          in: query
          description: Response Target Date End
          required: false
          schema:
            type: string
            format: date
        - name: resolutionTargetDate
          in: query
          description: Resolution Target Date
          required: false
          schema:
            type: string
            format: date
        - name: resolutionTargetDateEnd
          in: query
          description: Resolution Target Date End
          required: false
          schema:
            type: string
            format: date
        - name: issueLastUpdatedDate
          in: query
          description: Issue Last Updated Date
          required: false
          schema:
            type: string
            format: date
        - name: issueLastUpdatedDateEnd
          in: query
          description: Issue Last Updated Date End
          required: false
          schema:
            type: string
            format: date
        - name: bookingId
          in: query
          description: Booking ID
          required: false
          schema:
            type: integer
            format: int64
        - name: unitId
          in: query
          description: Unit ID
          required: false
          schema:
            type: integer
            format: int64
        - name: buildingId
          in: query
          description: Building ID
          required: false
          schema:
            type: integer
            format: int64
        - name: status
          in: query
          description: Status
          required: false
          schema:
            type: string
        - name: issueTypeId
          in: query
          description: Issue Type ID
          required: false
          schema:
            type: integer
            format: int64
        - name: priorityId
          in: query
          description: Priority ID
          required: false
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_IssueListProjection_
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_IssueListProjection_
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
    post:
      tags:
        - Issues
      summary: Create new issue
      description: >-
        Create a new issue within the Property Management System (PMS) to track
        property-related concerns, maintenance requests, or guest service
        requests. This endpoint accepts a JSON payload containing issue details,
        including description, priority, category, associated property or unit,
        and reporter information. The created issue is linked to relevant
        entities such as a property, unit, booking, or guest stay to facilitate
        efficient resolution. The response returns the newly created issue with
        a unique identifier. If any referenced object IDs do not exist in the
        PMS, a `400 Bad Request` error will be returned due to data integrity
        violations. In case of an unexpected error, a `500 Internal Server
        Error` will be triggered.
      operationId: createEntityUsingPOST
      requestBody:
        $ref: '#/components/requestBodies/Issue'
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_Issue_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_Issue_'
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/issues/issuePriorities:
    get:
      tags:
        - Issues
      summary: Retrieve a list of all issue priorities
      description: >-
        Fetch a list of all available issue priorities within the Property
        Management System (PMS). Issue priorities help classify and manage the
        urgency of property-related concerns, maintenance requests, or guest
        service issues. Priorities can include different levels, such as 'Low',
        'Medium', 'High', or custom-defined priority levels, ensuring that
        critical issues are addressed promptly. This endpoint provides
        structured priority data to facilitate efficient issue management,
        resource allocation, and response time tracking. The response includes a
        list of issue priorities along with relevant metadata. If an unexpected
        system error occurs, a `500 Internal Server Error` will be triggered.
      operationId: getIssuePriorityUsingGET_1
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resources_Resource_IssuePriorityDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resources_Resource_IssuePriorityDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/issues/issuePriorities/{id}:
    get:
      tags:
        - Issues
      summary: Retrieve an issue priority by ID
      description: >-
        Fetch detailed information about a specific issue priority within the
        Property Management System (PMS) using its unique ID. Issue priorities
        define the urgency of property-related concerns, maintenance requests,
        or guest service issues, ensuring efficient task management and
        resolution. The response includes key details such as the priority level
        and its associated metadata. If the specified priority ID does not
        exist, a `404 Not Found` error will be returned. In case of an
        unexpected system error, a `500 Internal Server Error` will be
        triggered.
      operationId: getIssuePriorityUsingGET
      parameters:
        - name: id
          in: path
          description: id
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_IssuePriorityDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_IssuePriorityDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/issues/issueStatuses:
    get:
      tags:
        - Issues
      summary: Retrieve a list of all issue statuses
      description: >-
        Fetch a list of all possible issue statuses within the Property
        Management System (PMS). Issue statuses indicate the current progress of
        property-related concerns, maintenance requests, or guest service
        issues. Common statuses include `OPEN`, `STARTED`, `RESOLVED`, and
        `CLOSED`, ensuring clear tracking of an issue's lifecycle. This endpoint
        provides structured status data to help streamline issue management,
        prioritisation, and resolution workflows. The response includes a list
        of predefined issue statuses. If an unexpected system error occurs, a
        `500 Internal Server Error` will be triggered.
      operationId: getIssueStatusesUsingGET
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resources_string_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resources_string_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/issues/issueTypes:
    get:
      tags:
        - Issues
      summary: Retrieve a list of all issue types
      description: >-
        Fetch a list of all available issue types within the Property Management
        System (PMS). Issue types categorise different kinds of property-related
        concerns, maintenance requests, or guest service issues, such as
        housekeeping, technical repairs, complaints, or general inquiries. This
        endpoint provides a structured way to classify and manage operational
        issues, ensuring efficient tracking and resolution. The response
        includes a list of issue types, each containing relevant metadata. If an
        unexpected system error occurs, a `500 Internal Server Error` will be
        triggered.
      operationId: getIssueTypesUsingGET
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resources_Resource_IssueTypeDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resources_Resource_IssueTypeDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/issues/{id}:
    get:
      tags:
        - Issues
      summary: Retrieve issue entity by ID
      description: >-
        Fetch detailed information about a specific issue within the Property
        Management System (PMS) using its unique ID. Issues represent property
        management concerns, maintenance requests, or guest service requests.
        The response includes key details such as issue type, description,
        status, priority, associated property or unit, and reporting details.
        This endpoint is useful for tracking ongoing issues, managing
        maintenance workflows, and ensuring timely resolution. If the specified
        issue ID does not exist, a `404 Not Found` error will be returned.
      operationId: retrieveEntityUsingGET
      parameters:
        - name: id
          in: path
          description: Issue ID
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_Issue_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_Issue_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
    put:
      tags:
        - Issues
      summary: Update issue entity
      description: >-
        Modify an existing issue within the Property Management System (PMS) by
        providing updated details in the request body. The update process
        requires a valid issue ID and allows modifications to fields such as
        issue status, priority, category, or resolution notes. Issues are
        typically associated with properties, units, bookings, or guest stays,
        ensuring efficient tracking and management. To prevent data conflicts, a
        locking mechanism is applied during updates. The response includes the
        updated issue details. If the issue ID does not exist, a `404 Not Found`
        error will be returned. In case of an unexpected error, a `500 Internal
        Server Error` will be triggered.
      operationId: updateEntityUsingPUT
      parameters:
        - name: id
          in: path
          description: Issue ID
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        $ref: '#/components/requestBodies/Issue'
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_Issue_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_Issue_'
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/issues/{id}/notes:
    get:
      tags:
        - Issues
      summary: Retrieve a list of notes on an issue
      description: >-
        Fetch all notes associated with a specific issue within the Property
        Management System (PMS) using its unique ID. Issue notes provide a
        historical record of updates, comments, and actions taken on maintenance
        requests, guest concerns, or operational issues. The response includes
        details such as note content, author, timestamp, and any relevant
        metadata. This endpoint is useful for tracking communication, ensuring
        accountability, and maintaining an audit trail for issue resolution. If
        the issue ID does not exist, a `404 Not Found` error will be returned.
        In case of an unexpected system error, a `500 Internal Server Error`
        will be triggered.
      operationId: getIssueNotesUsingGET
      parameters:
        - name: id
          in: path
          description: Issue ID
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resources_Resource_IssueNote_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resources_Resource_IssueNote_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
    post:
      tags:
        - Issues
      summary: Create an issue note
      description: >-
        Add a new note to a specific issue within the Property Management System
        (PMS) using the issue's unique ID. Issue notes serve as a communication
        log, allowing users to document updates, comments, or actions taken on
        maintenance requests, guest concerns, or operational issues. The request
        body must contain the note details, including its content and any
        relevant metadata. If the specified issue ID does not exist, a `404 Not
        Found` error will be returned. Upon successful creation, the response
        includes the newly added note. This endpoint ensures proper
        documentation of issue progress and facilitates collaboration between
        team members.
      operationId: createIssueNoteUsingPOST
      parameters:
        - name: id
          in: path
          description: Issue ID
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IssueNote'
        description: Issue Note
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_IssueNote_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_IssueNote_'
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/issues/{id}/status:
    put:
      tags:
        - Issues
      summary: Update the status of an issue by ID
      description: >-
        Modify the status of a specific issue within the Property Management
        System (PMS) using its unique issue ID. The request body must include a
        valid status update (`OPEN`, `STARTED`, `RESOLVED`, or `CLOSED`). This
        endpoint ensures proper issue tracking and workflow management by
        allowing users to update the issue's progress. 


        - **OPEN**: Marks the issue as newly created and pending action. 

        - **STARTED**: Indicates work has begun on resolving the issue. 

        - **RESOLVED**: Confirms the issue has been addressed but not yet
        closed. 

        - **CLOSED**: Marks the issue as fully completed and closed. 


        The response includes the updated issue details. If the issue ID does
        not exist, a `404 Not Found` error will be returned. In case of an
        unexpected system error, a `500 Internal Server Error` will be
        triggered.
      operationId: updateActivityStatusUsingPUT_1
      parameters:
        - name: id
          in: path
          description: Issue ID
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StatusUpdateDTO'
        description: Status Update
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_Issue_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_Issue_'
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/marketSegments:
    get:
      tags:
        - Market Segments
      summary: Retrieve all market segments
      description: >-
        Fetch a list of all available market segments within the Property
        Management System (PMS). Market segments categorise customer groups
        based on booking patterns, demographics, or business classifications
        such as corporate, leisure, government, or wholesale. This segmentation
        helps optimise pricing strategies, personalise guest experiences, and
        generate meaningful reports for revenue management and marketing. The
        response includes a list of all defined market segments, each with
        relevant metadata. If an unexpected system error occurs, a `500 Internal
        Server Error` will be triggered.
      operationId: listMarketSegmentsUsingGET
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resources_Resource_MarketSegmentDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resources_Resource_MarketSegmentDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/marketSegments/{id}:
    get:
      tags:
        - Market Segments
      summary: Retrieve market segment by ID
      description: >-
        Fetch detailed information about a specific market segment within the
        Property Management System (PMS) using its unique ID. Market segments
        categorise customer groups based on booking behaviors, demographics, or
        business classifications such as corporate, leisure, government, or
        wholesale. This endpoint is useful for retrieving segment-specific data
        for reporting, pricing strategies, and targeted marketing efforts. The
        response includes details about the market segment, including its
        classification and associated metadata. If the specified market segment
        ID does not exist, a `404 Not Found` error will be returned. In case of
        an unexpected system error, a `500 Internal Server Error` will be
        triggered.
      operationId: getMarketSegmentByIdUsingGET
      parameters:
        - name: id
          in: path
          description: Unique identifier of the market segment
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_MarketSegmentDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_MarketSegmentDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/nationalities:
    get:
      tags:
        - Nationalities
      summary: Retrieve all nationalities
      description: >-
        Fetch a list of all available nationalities within the Property
        Management System (PMS). Nationality entities help categorise guests,
        customers, or corporate clients based on their country of nationality.
        This data is useful for compliance with regulatory requirements,
        demographic reporting, targeted marketing, and personalised service
        offerings. The response includes a list of all defined nationalities
        along with relevant metadata. If an unexpected system error occurs, a
        `500 Internal Server Error` will be triggered.
      operationId: getNationalitiesUsingGET
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resources_Resource_NationalityDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resources_Resource_NationalityDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/nationalities/{id}:
    get:
      tags:
        - Nationalities
      summary: Retrieve nationality by ID
      description: >-
        Fetch detailed information about a specific nationality within the
        Property Management System (PMS) using its unique ID. Nationality
        entities help categorise guests, customers, or corporate clients based
        on their country of nationality, supporting compliance, reporting, and
        personalised services. The response includes relevant metadata such as
        country name and ISO codes. If the specified nationality ID does not
        exist, a `404 Not Found` error will be returned. In case of an
        unexpected system error, a `500 Internal Server Error` will be
        triggered.
      operationId: getNationalityByIdUsingGET
      parameters:
        - name: id
          in: path
          description: Unique identifier
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_NationalityDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_NationalityDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/rates:
    get:
      tags:
        - Rates
      summary: Search for rates by specified criteria
      description: >-
        Retrieve a list of rates that match the specified criteria, such as date
        range, unit type, rate ID, company ID, or rate code. The optional
        parameters `dateFrom` and `dateTo` allow for filtering rates within a
        specific date range, while `unitTypeId`, `rateId`, `companyId`, and
        `rateCode` can further narrow the search. Results are returned in a
        paginated format, making it easier to navigate through large datasets.
        This endpoint is useful for querying rates for specific units,
        validating pricing for bookings, or integrating rate information with
        external systems. If no filters are provided, the endpoint returns all
        rates within the default date range.
      operationId: getAllRatesInDateRangeUsingGET
      parameters:
        - name: dateFrom
          in: query
          description: The start date for filtering rates
          required: true
          schema:
            type: string
            format: date
        - name: dateTo
          in: query
          description: The end date for filtering rates
          required: true
          schema:
            type: string
            format: date
        - name: unitTypeId
          in: query
          description: The ID of the unit type
          required: false
          schema:
            type: integer
            format: int64
        - name: rateId
          in: query
          description: The ID of the rate
          required: false
          schema:
            type: integer
            format: int64
        - name: companyId
          in: query
          description: The ID of the company
          required: false
          schema:
            type: integer
            format: int64
        - name: rateCode
          in: query
          description: The code of the rate
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PagedResources_Resource_RateDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResources_Resource_RateDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/rates/{rateId}/segments:
    get:
      tags:
        - Rates
      summary: >-
        Retrieve list of rate summaries for a rate specified by rate ID between
        two dates. This groupstogether rates with similar names and returns the
        rate segments for the specified date range. Allowing for easy comparison
        of rates with different lengths of stay and amounts.
      operationId: getSnapshotOfRateUsingGET
      parameters:
        - name: rateId
          in: path
          description: The id of the rate for which to retrieve the segments
          required: true
          schema:
            type: integer
            format: int64
        - name: dateFrom
          in: query
          description: The start date for filtering rate segments
          required: true
          schema:
            type: string
            format: date
        - name: dateTo
          in: query
          description: The end date for filtering rate segments
          required: true
          schema:
            type: string
            format: date
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resources_RateSegmentSnapshotDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resources_RateSegmentSnapshotDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/referrers:
    get:
      tags:
        - Referrers
      summary: Retrieve list of all referrers
      description: >-
        Fetch a list of all available referrers within the Property Management
        System (PMS). Referrers track sources of referrals for guests, bookings,
        or corporate clients, helping to identify the origin of reservations.
        This data is useful for analysing booking trends, measuring the
        effectiveness of referral channels, and optimising marketing strategies.
        The response includes a list of all defined referrers, each with
        relevant metadata. If an unexpected system error occurs, a `500 Internal
        Server Error` will be triggered.
      operationId: listReferrersUsingGET
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resources_Resource_ReferrerDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resources_Resource_ReferrerDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/referrers/{id}:
    get:
      tags:
        - Referrers
      summary: Retrieve a specific referrer by its ID
      description: >-
        Fetch details of a specific referrer within the Property Management
        System (PMS) using its unique ID. This endpoint returns the referrer
        information, which includes metadata about the source of referrals. If
        the referrer is not found, a `404 Not Found` error will be returned. In
        case of an unexpected system error, a `500 Internal Server Error` will
        be triggered.
      operationId: getReferrerByIdUsingGET
      parameters:
        - name: id
          in: path
          description: The unique ID of the referrer
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_ReferrerDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_ReferrerDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/regions:
    get:
      tags:
        - Region
      summary: Retrieve list of regions
      description: >-
        Fetch a paginated list of regions within the Property Management System
        (PMS). Regions help in organizing properties, defining operational
        zones, and generating location-based insights. The response includes a
        list of regions with relevant metadata. If an unexpected system error
        occurs, a `500 Internal Server Error` will be triggered.
      operationId: listAllRegionsUsingGET
      parameters:
        - name: regionName
          in: query
          description: Name of the region to filter by
          required: false
          schema:
            type: string
        - name: countryId
          in: query
          description: ID of the country to filter by
          required: false
          schema:
            type: integer
            format: int64
        - name: countryName
          in: query
          description: Name of the country to filter by
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_RegionListItemProjection_
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_RegionListItemProjection_
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/regions/{id}:
    get:
      tags:
        - Region
      summary: Retrieve a region by Id
      description: >-
        Fetch detailed information about a specific region within the Property
        Management System (PMS) using its unique ID. Regions help in organizing
        properties, defining operational zones, and generating location-based
        insights. This endpoint is useful for retrieving region-specific data
        for reporting, resource allocation, and strategic decision-making. The
        response includes details about the region, including its classification
        and associated metadata. If the specified region ID does not exist, a
        `404 Not Found` error will be returned. In case of an unexpected system
        error, a `500 Internal Server Error` will be triggered.
      operationId: getRegionByIdUsingGET
      parameters:
        - name: id
          in: path
          description: Unique identifier of the region to retrieve
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_RegionDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_RegionDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/roomStays:
    get:
      tags:
        - Room Stays
      summary: Retrieve Room Stays from defined parameters.
      description: >-
        Fetch a paginated list of room stays based on various filters such as
        date, status, and booking details. The response includes a list of room
        stays with relevant metadata. If an unexpected system error occurs, a
        `500 Internal Server Error` will be triggered.
      operationId: listAllRoomStaysUsingGET
      parameters:
        - name: dateFrom
          in: query
          description: Start date for filtering room stays
          required: false
          schema:
            type: string
            format: date
        - name: dateTo
          in: query
          description: End date for filtering room stays
          required: false
          schema:
            type: string
            format: date
        - name: lastUpdatedFrom
          in: query
          description: Filter by last updated timestamp
          required: false
          schema:
            type: string
            format: date-time
        - name: lastUpdatedTo
          in: query
          description: Filter by last updated timestamp
          required: false
          schema:
            type: string
            format: date-time
        - name: createFrom
          in: query
          description: Filter by creation timestamp
          required: false
          schema:
            type: string
            format: date-time
        - name: createdTo
          in: query
          description: Filter by creation timestamp
          required: false
          schema:
            type: string
            format: date-time
        - name: unitId
          in: query
          description: Filter by unit ID
          required: false
          schema:
            type: integer
            format: int64
        - name: bookingContactId
          in: query
          description: Filter by booking contact ID
          required: false
          schema:
            type: integer
            format: int64
        - name: bookingAccountId
          in: query
          description: Filter by booking account ID
          required: false
          schema:
            type: integer
            format: int64
        - name: billingAccountId
          in: query
          description: Filter by billing account ID
          required: false
          schema:
            type: integer
            format: int64
        - name: statuses
          in: query
          description: Filter by statuses
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
            default: CONFIRMED,CHECKED_IN,CHECKED_OUT
        - name: bookingReference
          in: query
          description: Filter by booking reference
          required: false
          schema:
            type: string
        - name: channelId
          in: query
          description: Filter by channel ID
          required: false
          schema:
            type: integer
            format: int64
        - name: bookingId
          in: query
          description: Filter by booking ID
          required: false
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_BookingRoomStayListItemProjection_
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_BookingRoomStayListItemProjection_
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/roomStays/roomStays/{id}/lock:
    patch:
      tags:
        - Room Stays
      summary: Lock a specified roomstay
      description: >-
        Locks the room stay identified by the given ID, preventing further
        modifications. This operation is useful for ensuring that the details of
        a room stay are finalized and cannot be altered. If the specified room
        stay ID does not exist, a `404 Not Found` error will be returned. In
        case of an unexpected system error, a `500 Internal Server Error` will
        be triggered.
      operationId: roomStayApiLockRoomStayUsingPATCH
      parameters:
        - name: id
          in: path
          description: The unique identifier of the room stay to lock
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_RoomStayDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_RoomStayDTO_'
        '204':
          description: No Content
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /api/v3/roomStays/{id}:
    get:
      tags:
        - Room Stays
      summary: Retrieve Room Stay by id
      description: >-
        Fetch detailed information about a specific room stay within the
        Property Management System (PMS) using its unique ID. Room stays help in
        organizing bookings, ensuring accurate billing, and enhancing the
        overall guest experience. This endpoint is useful for retrieving room
        stay-specific data for reporting, resource allocation, and strategic
        decision-making. The response includes details about the room stay,
        including its duration, associated guests, and any additional services
        or charges. If the specified room stay ID does not exist, a `404 Not
        Found` error will be returned. In case of an unexpected system error, a
        `500 Internal Server Error` will be triggered.
      operationId: getRoomStayByIdUsingGET
      parameters:
        - name: id
          in: path
          description: The unique identifier of the room stay to retrieve
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_RoomStayDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_RoomStayDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/roomStays/{id}/activities:
    get:
      tags:
        - Room Stays
      summary: Retrieve activities for specified room stay
      description: >-
        Fetch a list of all activities associated with a specific room stay.
        This endpoint is useful for retrieving detailed information about
        activities related to a room stay. If the specified room stay ID does
        not exist, a `404 Not Found` error will be returned. In case of an
        unexpected system error, a `500 Internal Server Error` will be
        triggered.
      operationId: getActivitiesByRoomStayIdUsingGET
      parameters:
        - name: id
          in: path
          description: The unique identifier of the room stay to retrieve activities for
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resources_Resource_ActivityDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resources_Resource_ActivityDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/roomStays/{id}/chargeableExtras:
    get:
      tags:
        - Room Stays
      summary: Retrieve extras for specified room stay
      description: >-
        Fetch a list of all chargeable extras associated with a specific room
        stay. This endpoint is useful for retrieving detailed information about
        additional services or charges applied to a room stay. If the specified
        room stay ID does not exist, a `404 Not Found` error will be returned.
        In case of an unexpected system error, a `500 Internal Server Error`
        will be triggered.
      operationId: getRoomStayExtrasByRoomStayIdUsingGET
      parameters:
        - name: id
          in: path
          description: >-
            The unique identifier of the room stay to retrieve chargeable extras
            for
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resources_Resource_RoomStayExtraDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resources_Resource_RoomStayExtraDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/roomStays/{id}/guestStays:
    get:
      tags:
        - Room Stays
      summary: Retrieve guest stays for specified room stay
      description: >-
        Fetch a list of all guest stays associated with a specific room stay.
        This endpoint is useful for retrieving detailed information about guests
        staying in a room. If the specified room stay ID does not exist, a `404
        Not Found` error will be returned. In case of an unexpected system
        error, a `500 Internal Server Error` will be triggered.
      operationId: getGuestStaysByRoomStayIdUsingGET
      parameters:
        - name: id
          in: path
          description: The unique identifier of the room stay to retrieve guest stays for
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resources_Resource_GuestStayDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resources_Resource_GuestStayDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/roomStays/{id}/salesInvoiceItems:
    get:
      tags:
        - Room Stays
      summary: Retrieve list of all invoice items for specified room stay
      description: >-
        Fetch a list of all invoice items associated with a specific room stay.
        This endpoint is useful for retrieving detailed billing information for
        a room stay, including charges for services and any additional fees. If
        the specified room stay ID does not exist, a `404 Not Found` error will
        be returned. In case of an unexpected system error, a `500 Internal
        Server Error` will be triggered.
      operationId: getInvoicesByRoomStayIdUsingGET
      parameters:
        - name: id
          in: path
          description: The unique identifier of the room stay to retrieve invoice items for
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resources_Resource_SalesInvoiceItemDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resources_Resource_SalesInvoiceItemDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/salesInvoices:
    get:
      tags:
        - Sales Invoices
      summary: Retrieve a list of all invoices
      description: >-
        Fetch a list of all sales invoices within the Property Management System
        (PMS). This endpoint is useful for retrieving detailed information about
        sales transactions, including invoice dates, associated organizations,
        and statuses. The response includes paginated results of sales invoices,
        which can be filtered by date range, organization ID, and status. If no
        invoices match the specified criteria, an empty list will be returned.
        In case of an unexpected system error, a `500 Internal Server Error`
        will be triggered.
      operationId: findSalesInvoicesUsingGET
      parameters:
        - name: dateFrom
          in: query
          description: Start date for filtering invoices
          required: false
          schema:
            type: string
            format: date
        - name: dateTo
          in: query
          description: End date for filtering invoices
          required: false
          schema:
            type: string
            format: date
        - name: organisationId
          in: query
          description: ID of the organization to filter invoices by
          required: false
          schema:
            type: integer
            format: int64
        - name: status
          in: query
          description: Status of the invoices to filter by, must be [DRAFT, POSTED, VOID]
          required: false
          schema:
            type: string
            enum:
              - DRAFT
              - VOID
              - POSTED
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_SalesInvoiceListItemProjection_
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_SalesInvoiceListItemProjection_
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/salesInvoices/salesInvoiceItems/{id}:
    get:
      tags:
        - Sales Invoices
      summary: Retrieve a single invoice item
      description: >-
        Fetch detailed information about a specific sales invoice item within
        the Property Management System (PMS) using its unique ID. Sales invoice
        items are essential for tracking individual components of sales
        transactions, including item descriptions, quantities, and prices. This
        endpoint is useful for retrieving item-specific data for reporting,
        auditing, and financial analysis. If the specified sales invoice item ID
        does not exist, a `404 Not Found` error will be returned. In case of an
        unexpected system error, a `500 Internal Server Error` will be
        triggered.
      operationId: findInvoiceItemUsingGET
      parameters:
        - name: id
          in: path
          description: id
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_SalesInvoiceItemDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_SalesInvoiceItemDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/salesInvoices/{id}:
    get:
      tags:
        - Sales Invoices
      summary: Retrieve a single invoice
      description: >-
        Fetch detailed information about a specific sales invoice within the
        Property Management System (PMS) using its unique ID. Sales invoices are
        essential for tracking sales transactions, generating financial reports,
        and ensuring accurate billing. This endpoint is useful for retrieving
        invoice-specific data for reporting, auditing, and financial analysis.
        The response includes details about the sales invoice, including its
        date, associated organization, status, and line items. If the specified
        sales invoice ID does not exist, a `404 Not Found` error will be
        returned. In case of an unexpected system error, a `500 Internal Server
        Error` will be triggered.
      operationId: findInvoiceUsingGET
      parameters:
        - name: id
          in: path
          description: ID of the sales invoice to retrieve
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_SalesInvoiceDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_SalesInvoiceDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/salesInvoices/{id}/exported:
    patch:
      tags:
        - Sales Invoices
      summary: Update an invoice as Exported to an external finance system
      description: >-
        Mark a specific sales invoice as exported to an external finance system
        using its unique ID. This operation is essential for synchronizing the
        invoice status with external financial systems, ensuring that the
        invoice is recognized as exported. The request body should include the
        external ID and the exported date. If the specified sales invoice ID
        does not exist, a `404 Not Found` error will be returned. If the invoice
        is not in the 'POSTED' status, a `400 Bad Request` error will be
        returned. In case of an unexpected system error, a `500 Internal Server
        Error` will be triggered.
      operationId: markAsExportedUsingPATCH
      parameters:
        - name: id
          in: path
          description: ID of the sales invoice to mark as exported
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FinancialUpdateDTO'
        description: Financial update details
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_SalesInvoiceDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_SalesInvoiceDTO_'
        '204':
          description: No Content
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /api/v3/salesInvoices/{id}/post:
    put:
      tags:
        - Sales Invoices
      summary: Mark invoice as posted
      description: >-
        Mark a specific sales invoice as posted using its unique ID. This
        operation is essential for updating the invoice status to 'POSTED',
        indicating that the invoice has been finalized and is ready for further
        processing. If the specified sales invoice ID does not exist, a `404 Not
        Found` error will be returned. If the invoice is already in the 'POSTED'
        status, a `400 Bad Request` error will be returned. In case of an
        unexpected system error, a `500 Internal Server Error` will be
        triggered.
      operationId: markSalesInvoicePostedUsingPUT
      parameters:
        - name: id
          in: path
          description: ID of the sales invoice to mark as posted
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_SalesInvoiceDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_SalesInvoiceDTO_'
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/salesInvoices/{id}/salesInvoiceItems:
    get:
      tags:
        - Sales Invoices
      summary: Retrieve all sales invoice items for a specific invoice
      description: >-
        Fetch all sales invoice items associated with a specific sales invoice
        using its unique ID. This endpoint is useful for retrieving detailed
        information about the items within a sales invoice, including item
        descriptions, quantities, and prices. If the specified sales invoice ID
        does not exist, a `404 Not Found` error will be returned. In case of an
        unexpected system error, a `500 Internal Server Error` will be
        triggered.
      operationId: findInvoiceItemsUsingGET
      parameters:
        - name: id
          in: path
          description: ID of the sales invoice to retrieve items for
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resources_Resource_SalesInvoiceItemDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resources_Resource_SalesInvoiceItemDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/tags:
    get:
      tags:
        - Tags
      summary: Retrieve all Tags
      description: >-
        Fetch a list of all tags within the Property Management System (PMS).
        This endpoint is useful for retrieving detailed information about tags,
        including their names and descriptions. The response includes a list of
        tags, which can be used for categorizing and organizing various system
        entities. If no tags are found, an empty list will be returned. In case
        of an unexpected system error, a `500 Internal Server Error` will be
        triggered.
      operationId: listTagsUsingGET
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resources_Resource_TagDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resources_Resource_TagDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/tags/{id}:
    get:
      tags:
        - Tags
      summary: Retrieve tags using specified ID
      description: >-
        Fetch detailed information about a specific tag within the Property
        Management System (PMS) using its unique ID. Tags are essential for
        categorizing and organizing various system entities, such as properties,
        bookings, guests, accounts, and other records. This endpoint is useful
        for retrieving tag-specific data for reporting, auditing, and data
        management purposes. The response includes details about the tag,
        including its name and description. If the specified tag ID does not
        exist, a `404 Not Found` error will be returned. In case of an
        unexpected system error, a `500 Internal Server Error` will be
        triggered.
      operationId: getTagtByIdUsingGET
      parameters:
        - name: id
          in: path
          description: The unique ID of the tag
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_TagDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_TagDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/teams:
    get:
      tags:
        - Teams
      summary: Search for Team entities
      description: >-
        Retrieve a paginated list of teams within the Property Management System
        (PMS) based on optional search criteria. You can filter the results by
        team name using a query parameter (`teamName`), which supports partial
        matches with wildcards. The response includes a paginated list of team
        records, each containing basic details such as the team's name and key
        attributes. This endpoint is useful for browsing and managing multiple
        teams, enabling efficient search and navigation across large datasets.
        If no search criteria are provided, all teams will be returned in the
        response.
      operationId: searchTeamsUsingGET
      parameters:
        - name: teamName
          in: query
          description: The name of the team to search for
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_TeamListItemProjection_
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_TeamListItemProjection_
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/teams/{id}:
    get:
      tags:
        - Teams
      summary: Retrieve team entity by ID
      description: >-
        Fetch detailed information about a specific team within the Property
        Management System (PMS) by providing its unique ID. The response
        includes information such as the team's name, members, assigned roles,
        permissions, and any associated properties or tasks. This endpoint is
        useful for managing team configurations, reviewing responsibilities, or
        retrieving team-specific details for operational purposes. If the team
        ID does not exist, an appropriate error response will be returned.
      operationId: findTeamUsingGET
      parameters:
        - name: id
          in: path
          description: The unique identifier of the team entity
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_TeamDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_TeamDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/unitAccessGroups:
    get:
      tags:
        - Unit Access Groups
      summary: Retrieve list of Unit Access Groups
      description: >-
        Fetch a list of all unit access groups within the Property Management
        System (PMS). This endpoint is useful for retrieving detailed
        information about unit access groups, including their associated units
        and access group names. The response includes a paginated list of unit
        access groups, which can be used for managing access control and
        permissions. If no unit access groups are found, an empty list will be
        returned. In case of an unexpected system error, a `500 Internal Server
        Error` will be triggered.
      operationId: listAllUnitAccessGroupsUsingGET
      parameters:
        - name: unitId
          in: query
          description: Unit Id
          required: false
          schema:
            type: integer
            format: int64
        - name: accessGroupName
          in: query
          description: Access Group Name
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_UnitAccessGroupProjection_
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_UnitAccessGroupProjection_
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
    post:
      tags:
        - Unit Access Groups
      summary: Create a new Access Group
      description: >-
        Create a new unit access group within the Property Management System
        (PMS). This endpoint allows the creation of a new unit access group,
        which links a unit to an access group. The request body must include
        details of the unit and the access group. The response includes the
        newly created unit access group details. In case of validation errors, a
        `400 Bad Request` error will be returned. In case of an unexpected
        system error, a `500 Internal Server Error` will be triggered.
      operationId: createUnitAccessGroupUsingPOST
      requestBody:
        $ref: '#/components/requestBodies/UnitAccessGroupDTO'
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_UnitAccessGroupDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_UnitAccessGroupDTO_'
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
    put:
      tags:
        - Unit Access Groups
      summary: Update a unit access group
      description: >-
        Update an existing unit access group within the Property Management
        System (PMS). This endpoint allows the modification of details for a
        specific unit access group, including its associated unit and access
        group information. The request body must include the updated details of
        the unit access group. The response includes the updated unit access
        group details. If the specified unit access group ID does not exist, a
        `404 Not Found` error will be returned. In case of validation errors, a
        `400 Bad Request` error will be returned. In case of an unexpected
        system error, a `500 Internal Server Error` will be triggered.
      operationId: updateUnitAccessGroupUsingPUT
      requestBody:
        $ref: '#/components/requestBodies/UnitAccessGroupDTO'
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_UnitAccessGroupDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_UnitAccessGroupDTO_'
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/unitAccessGroups/{id}:
    get:
      tags:
        - Unit Access Groups
      summary: Retrieve an Unit Access Group by Id
      description: >-
        Fetch detailed information about a specific unit access group within the
        Property Management System (PMS) using its unique ID. Unit access groups
        are essential for managing access control and permissions for unit
        entities. This endpoint is useful for retrieving unit access
        group-specific data for reporting, auditing, and data management
        purposes. The response includes details about the unit access group,
        including its associated unit and access group names. If the specified
        unit access group ID does not exist, a `404 Not Found` error will be
        returned. In case of an unexpected system error, a `500 Internal Server
        Error` will be triggered.
      operationId: getUnitAccessGroupByIdUsingGET_1
      parameters:
        - name: id
          in: path
          description: Unit Access Group Id
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_UnitAccessGroupDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_UnitAccessGroupDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/unitTypes:
    get:
      tags:
        - Unit Types
      summary: Get all unit types
      description: >-
        Fetch a list of all unit types within the Property Management System
        (PMS). This endpoint is useful for retrieving detailed information about
        unit types, including their classification and characteristics such as
        size, layout, amenities, and occupancy capacity. The response includes a
        paginated list of unit types, which can be used for inventory
        management, pricing strategies, availability searches, and reporting. If
        no unit types are found, an empty list will be returned. In case of an
        unexpected system error, a `500 Internal Server Error` will be
        triggered.
      operationId: getAllUnitTypesUsingGET
      parameters:
        - name: unitTypeName
          in: query
          description: The name of the unit type
          required: false
          schema:
            type: string
        - name: buildingName
          in: query
          description: The name of the building
          required: false
          schema:
            type: string
        - name: buildingId
          in: query
          description: The ID of the building
          required: false
          schema:
            type: integer
            format: int64
        - name: developmentName
          in: query
          description: The name of the development
          required: false
          schema:
            type: string
        - name: developmentId
          in: query
          description: The ID of the development
          required: false
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_UnitTypeListItemProjection_
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_UnitTypeListItemProjection_
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/unitTypes/{id}:
    get:
      tags:
        - Unit Types
      summary: Retrieve a unit type by Id
      description: >-
        Fetch detailed information about a specific unit type within the
        Property Management System (PMS) using its unique ID. Unit types are
        essential for categorizing accommodations based on factors such as size,
        layout, amenities, and occupancy capacity. This endpoint is useful for
        retrieving unit type-specific data for inventory management, pricing
        strategies, availability searches, and reporting. The response includes
        details about the unit type, including its classification and
        characteristics. If the specified unit type ID does not exist, a `404
        Not Found` error will be returned. In case of an unexpected system
        error, a `500 Internal Server Error` will be triggered.
      operationId: getUnitTypeByIdUsingGET
      parameters:
        - name: id
          in: path
          description: The unique identifier of the unit type
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_UnitTypeDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_UnitTypeDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/units:
    get:
      tags:
        - Units
      summary: Retrieve list of units
      description: >-
        Fetch a list of all units within the Property Management System (PMS).
        This endpoint is useful for retrieving detailed information about units,
        including their availability, capacity, amenities, and pricing. The
        response includes a paginated list of units, which can be used for
        inventory management, booking operations, and property administration.
        If no units are found, an empty list will be returned. In case of an
        unexpected system error, a `500 Internal Server Error` will be
        triggered.
      operationId: listAllPropertiesUsingGET
      parameters:
        - name: buildingId
          in: query
          description: Filter by building name
          required: false
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_UnitListItemProjection_
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_UnitListItemProjection_
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/units/{id}:
    get:
      tags:
        - Units
      summary: Retrieve a unit by Id
      description: >-
        Fetch detailed information about a specific unit within the Property
        Management System (PMS) using its unique ID. Units are essential for
        categorizing accommodations based on factors such as availability,
        capacity, amenities, and pricing. This endpoint is useful for retrieving
        unit-specific data for inventory management, booking operations, and
        property administration. The response includes details about the unit,
        including its classification and characteristics. If the specified unit
        ID does not exist, a `404 Not Found` error will be returned. In case of
        an unexpected system error, a `500 Internal Server Error` will be
        triggered.
      operationId: getUnitByIdUsingGET_1
      parameters:
        - name: id
          in: path
          description: Unit ID
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_UnitDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_UnitDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/units/{id}/accessGroups:
    get:
      tags:
        - Units
      summary: Retrieve list of unit access groups
      description: >-
        Fetch a list of all access groups associated with a specific unit within
        the Property Management System (PMS) using its unique ID. Access groups
        define the permissions and access levels for different users or roles
        within the unit. This endpoint is useful for retrieving detailed
        information about the access groups assigned to a unit, including their
        names, descriptions, and associated permissions. The response includes a
        list of access groups, which can be used for managing user access,
        security settings, and role-based permissions. If no access groups are
        found for the specified unit ID, an empty list will be returned. In case
        of an unexpected system error, a `500 Internal Server Error` will be
        triggered.
      operationId: getUnitUnitAccessGroupsUsingGET
      parameters:
        - name: id
          in: path
          description: Unit ID
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resources_Resource_UnitAccessGroupDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resources_Resource_UnitAccessGroupDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/users:
    get:
      tags:
        - Users
      summary: Search for User entities
      description: >-
        This endpoint allows searching for user entities based on various
        criteria such as username, first name, and last name. It returns a
        paginated list of user projections in JSON format. The search parameters
        are optional and can be combined to narrow down the search results.
      operationId: searchUsersUsingGET
      parameters:
        - name: userName
          in: query
          description: The username of the user entity
          required: false
          schema:
            type: string
        - name: firstName
          in: query
          description: The first name of the user entity
          required: false
          schema:
            type: string
        - name: lastName
          in: query
          description: The last name of the user entity
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_UserListItemProjection_
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PagedResources_Resource_UserListItemProjection_
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v3/users/{id}:
    get:
      tags:
        - Users
      summary: Retrieve user entity by id
      description: >-
        This endpoint retrieves a user entity based on the provided user ID. It
        returns the user details in JSON format. The user ID must be specified
        in the URL path.
      operationId: findUserUsingGET
      parameters:
        - name: id
          in: path
          description: The unique identifier of the user entity
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Resource_UserDTO_'
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_UserDTO_'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
servers:
  - url: //api3.rerumapp.uk/api/v3
components:
  requestBodies:
    Access_Group_DTO:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Access_Group_DTO'
      description: Access Group DTO
      required: true
    Issue:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Issue'
      description: Issue details
      required: true
    UnitAccessGroupDTO:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UnitAccessGroupDTO'
      description: Unit Access Group Details
      required: true
  securitySchemes:
    X-Auth-Token:
      type: apiKey
      name: X-Auth-Token
      in: header
  schemas:
    ActivityDTO:
      type: object
      properties:
        activityTemplateId:
          type: integer
          format: int64
          description: Activity template ID
        activityType:
          $ref: '#/components/schemas/ActivityTypeDTO'
        booking:
          $ref: '#/components/schemas/BookingSummaryDTO'
        building:
          $ref: '#/components/schemas/BuildingSummaryDTO'
        chargeableExtraId:
          type: integer
          format: int64
          description: Chargeable extra ID
        checklistRequired:
          type: boolean
          example: false
          description: Whether a checklist is required for the Activity
        closedByUser:
          $ref: '#/components/schemas/UserSummaryDTO'
        closedDate:
          type: string
          format: date-time
          description: Closed date of the Activity
        closedLocation:
          type: string
          description: Closed location of the Activity
        companyAssignee:
          $ref: '#/components/schemas/CompanySummaryDTO'
        completedLocation:
          type: string
          description: Completed location of the Activity
        consumableItemType:
          type: string
          description: Consumable item type of the Activity
          enum:
            - LAUNDRY
        contactId:
          $ref: '#/components/schemas/ContactSummaryDTO'
        content:
          type: string
          description: Content of the Activity
        dueDate:
          type: string
          format: date
          description: Due date of the Activity
        duration:
          type: integer
          format: int32
          description: Duration of the Activity
        elapsedTime:
          type: integer
          format: int64
          description: Elapsed time of the Activity
        generated:
          type: boolean
          example: false
          description: Whether the Activity is generated
        guestStayId:
          $ref: '#/components/schemas/GuestStaySummaryDTO'
        id:
          type: integer
          format: int64
          description: ID of the Activity
        issue:
          $ref: '#/components/schemas/Issue'
        keyLocationId:
          type: integer
          format: int64
          description: Key location ID of the Activity
        originalScheduledDate:
          type: string
          format: date-time
          description: Original scheduled date of the Activity
        ppmId:
          type: integer
          format: int64
          description: PPM ID of the Activity
        priority:
          type: string
          description: Priority of the Activity
          enum:
            - ONE
            - TWO
            - THREE
            - FOUR
            - FIVE
        resolvedByUser:
          $ref: '#/components/schemas/UserSummaryDTO'
        resolvedDate:
          type: string
          format: date-time
          description: Resolved date of the Activity
        restrictsAvailability:
          type: boolean
          example: false
          description: Whether the Activity restricts availability
        roomStay:
          $ref: '#/components/schemas/RoomStaySummaryDTO'
        roomStayExtraId:
          type: integer
          format: int64
          description: Room stay extra ID
        scheduledDate:
          type: string
          format: date-time
          description: Scheduled date of the Activity
        startedByUser:
          $ref: '#/components/schemas/UserSummaryDTO'
        startedDate:
          type: string
          format: date-time
          description: Started date of the Activity
        startedLocation:
          type: string
          description: Started location of the Activity
        status:
          type: string
          description: Status of the Activity
          enum:
            - OPEN
            - STARTED
            - RESOLVED
            - CLOSED
        subject:
          type: string
          description: Subject of the Activity
        teamAssignee:
          $ref: '#/components/schemas/TeamDTO'
        tracksUnitAmendments:
          type: boolean
          example: false
          description: Whether the Activity tracks unit amendments
        unit:
          $ref: '#/components/schemas/UnitSummaryDTO'
        unitType:
          $ref: '#/components/schemas/UnitTypeSummaryDTO'
        userAssignee:
          $ref: '#/components/schemas/UserSummaryDTO'
        uuid:
          type: string
          description: UUID of the Activity
      title: ActivityDTO
    ActivityListItemProjection:
      type: object
      properties:
        activityType:
          type: string
          description: Activity Type
          readOnly: true
        assigneeCompanyId:
          type: integer
          format: int64
          description: Assignee Company ID
          readOnly: true
        assigneeCompanyName:
          type: string
          description: Assignee Company Name
          readOnly: true
        assigneeTeamId:
          type: integer
          format: int64
          description: Assignee Team ID
          readOnly: true
        assigneeTeamName:
          type: string
          description: Assignee Team Name
          readOnly: true
        assigneeUserId:
          type: integer
          format: int64
          description: Assignee User ID
          readOnly: true
        assigneeUserUserName:
          type: string
          description: Assignee User Username
          readOnly: true
        bookingId:
          type: integer
          format: int64
          description: Booking ID
          readOnly: true
        bookingReference:
          type: string
          description: Booking Reference
          readOnly: true
        buildingId:
          type: integer
          format: int64
          description: Building ID
          readOnly: true
        buildingName:
          type: string
          description: Building Name
          readOnly: true
        dueDate:
          type: string
          format: date
          description: Due Date
          readOnly: true
        id:
          type: integer
          format: int64
          description: ID
          readOnly: true
        issueId:
          type: integer
          format: int64
          description: Issue ID
          readOnly: true
        scheduledDate:
          type: string
          format: date-time
          description: Scheduled Date
          readOnly: true
        status:
          type: string
          description: Status
          readOnly: true
        subject:
          type: string
          description: Subject
          readOnly: true
        unitId:
          type: integer
          format: int64
          description: Unit ID
          readOnly: true
        unitName:
          type: string
          description: Unit Name
          readOnly: true
      title: ActivityListItemProjection
    ActivityNoteCreateRequest:
      type: object
      properties:
        note:
          type: string
        private:
          type: boolean
      title: ActivityNoteCreateRequest
    ActivityNoteDTO:
      type: object
      properties:
        activity:
          $ref: '#/components/schemas/ActivitySummaryDTO'
        building:
          $ref: '#/components/schemas/BuildingSummaryDTO'
        created:
          type: string
          format: date-time
          description: Creation timestamp of the note
        createdBy:
          $ref: '#/components/schemas/UserSummaryDTO'
        id:
          type: integer
          format: int64
          description: Unique identifier of the activity note
        lastUpdated:
          type: string
          format: date-time
          description: Timestamp of the last update
        note:
          type: string
          description: Content of the note
        noteCategory:
          $ref: '#/components/schemas/NoteCategoryDTO'
        private:
          type: boolean
        updatedBy:
          $ref: '#/components/schemas/UserSummaryDTO'
      title: ActivityNoteDTO
    ActivitySummaryDTO:
      type: object
      properties:
        dueDate:
          type: string
          format: date
          description: Due date of the activity
        id:
          type: integer
          format: int64
          description: Unique identifier of the activity
        scheduledDate:
          type: string
          format: date-time
          description: Scheduled date of the activity
        subject:
          type: string
          description: Subject of the activity
      title: ActivitySummaryDTO
    ActivityTypeDTO:
      type: object
      properties:
        category:
          type: string
          description: Category of the activity type
          enum:
            - CLEANING
            - PPM
            - MAINTENANCE
            - SYSTEM
        created:
          type: string
          format: date-time
        deleted:
          type: boolean
        id:
          type: integer
          format: int64
          description: Unique identifier of the activity type
        lastUpdated:
          type: string
          format: date-time
        links:
          type: array
          items:
            $ref: '#/components/schemas/Link'
        name:
          type: string
          description: Name of the activity type
        systemType:
          type: boolean
          example: false
          description: Indicates if this is a system type
      title: ActivityTypeDTO
    AreaDTO:
      type: object
      properties:
        city:
          $ref: '#/components/schemas/CitySummaryDTO'
        id:
          type: integer
          format: int64
          description: ID of the area
        name:
          type: string
          description: Name of the area
      title: AreaDTO
    AreaListItemProjection:
      type: object
      properties:
        areaName:
          type: string
          description: Name of the area
        cityId:
          type: integer
          format: int64
        cityName:
          type: string
        id:
          type: integer
          format: int64
          description: ID of the area
      title: AreaListItemProjection
    AreaSummaryDTO:
      type: object
      required:
        - id
        - name
      properties:
        id:
          type: integer
          format: int64
          description: Area ID
        name:
          type: string
          description: Area name
      title: AreaSummaryDTO
    AvailabilityIntervalDto:
      type: object
      properties:
        available:
          type: boolean
        endDate:
          type: string
          format: date
        startDate:
          type: string
          format: date
      title: AvailabilityIntervalDto
    BillingFrequencyDTO:
      type: object
      properties:
        code:
          type: string
          example: M
          description: The code of the billing frequency
        id:
          type: integer
          format: int64
          example: 1
          description: The unique identifier of the billing frequency
        name:
          type: string
          example: Monthly
          description: The name of the billing frequency
        systemType:
          type: boolean
          example: true
          description: The system type of the billing frequency
      title: BillingFrequencyDTO
    Booking:
      type: object
      required:
        - billingFinanceAccountId
        - billingFrequencyId
        - bookingContactId
        - bookingFinanceAccountId
        - bookingTypeId
        - channelId
        - roomStays
      properties:
        billingContactId:
          type: integer
          format: int64
          description: >-
            The contact id of the contact to receive emails, if not specified,
            the booking contact id is used
        billingFinanceAccountId:
          type: integer
          format: int64
          description: >-
            The finance account id of the contact or company that is paying for
            the booking
        billingFrequencyId:
          type: integer
          format: int64
          description: The Billing Frequency Id for the booking
        bookingContactId:
          type: integer
          format: int64
          description: The contact id of the contact making the booking
        bookingFinanceAccountId:
          type: integer
          format: int64
          description: >-
            The finance account id of the contact or company that is making the
            booking
        bookingTypeId:
          type: integer
          format: int64
          description: The booking type id for the booking
        channelId:
          type: integer
          format: int64
          description: The id of the channel the booking is created through
        customerReference:
          type: string
          description: >-
            Customer reference for the booking, specific to external system /
            customer
        guarantorContactId:
          type: integer
          format: int64
          description: The contact id of the contact guaranteeing the booking
        notes:
          type: string
          description: Notes to be added to the booking
        referrerId:
          type: integer
          format: int64
          description: The referrer id for the booking
        reserveForMinutes:
          type: integer
          format: int32
          description: >-
            If the booking is created as an enquiry, then if specified the
            availability will be held for the number of minutes specified
        roomStays:
          type: array
          description: List of room stays to be created on the booking
          items:
            $ref: '#/components/schemas/CreateRoomStayDTO'
      title: Booking
      description: Used for the creation of a booking
    BookingDTO:
      type: object
      properties:
        agentCode:
          type: string
          description: The agent code
        behalfOf:
          type: string
          description: Behalf of
        billingAccount:
          $ref: '#/components/schemas/FinanceAccountDTO'
        billingContact:
          $ref: '#/components/schemas/ContactSummaryDTO'
        billingFrequency:
          $ref: '#/components/schemas/BillingFrequencyDTO'
        billingType:
          type: string
          description: The billing type
          enum:
            - ON_ACCOUNT
            - CREDIT_CARD
            - CASH_PAYMENT
            - BANK_PAYMENT
            - VIRTUAL_CARD
        bookableOnline:
          type: boolean
          example: false
          description: Whether it is bookable online
        bookingAccount:
          $ref: '#/components/schemas/FinanceAccountDTO'
        bookingContact:
          $ref: '#/components/schemas/ContactSummaryDTO'
        bookingEnquiryData:
          $ref: '#/components/schemas/BookingEnquiryDataDTO'
        bookingExtrasNet:
          type: number
          description: The booking extras net
        bookingExtrasVat:
          type: number
          description: The booking extras VAT
        bookingNet:
          type: number
          description: The booking net
        bookingReference:
          type: string
          description: The booking reference
        bookingTerms:
          $ref: '#/components/schemas/BookingTermsDTO'
        bookingType:
          $ref: '#/components/schemas/BookingTypeDTO'
        bookingVat:
          type: number
          description: The booking VAT
        budgetPerNight:
          type: number
          description: The budget per night
        channel:
          $ref: '#/components/schemas/ChannelSummaryDTO'
        channelCode:
          type: string
          description: The channel code
        commissionFeeToAgent:
          type: number
          description: The commission fee to agent
        commissionFromNetworkNet:
          type: number
          description: Commission from network net
        commissionFromNetworkVat:
          type: number
          description: Commission from network VAT
        commissionRateToAgent:
          type: number
          description: The commission rate to agent
        commissionToAgentNet:
          type: number
          description: The commission to agent net
        commissionToAgentVat:
          type: number
          description: Commission to agent VAT
        customerReference:
          type: string
          description: The customer reference
        emailTo:
          type: string
          description: Email to
          enum:
            - BOOKING_CONTACT
            - BOOKING_GUESTS
            - BOOKING_CONTACT_AND_GUESTS
        externalId:
          type: integer
          format: int32
          description: The external ID
        guarantor:
          $ref: '#/components/schemas/ContactSummaryDTO'
        id:
          type: integer
          format: int64
          description: The id of the booking
        otaBookingReference:
          type: string
          description: The OTA booking reference
        payOnArrival:
          type: boolean
          example: false
          description: Whether to pay on arrival
        payableOnlineReference:
          type: integer
          format: int64
          description: The payable online reference
        quoteByArea:
          type: boolean
          example: false
          description: Whether to quote by area
        referrer:
          $ref: '#/components/schemas/ReferrerDTO'
        rentalsUnitedCreated:
          type: boolean
          example: false
          description: Whether it is created by rentals united
        requestedLocation:
          type: string
          description: The requested location
        requestedUnitType:
          type: string
          description: The requested unit type
        siteminderCreated:
          type: boolean
          example: false
          description: Whether it is created by siteminder
        webBookingComplete:
          type: boolean
          example: false
          description: Whether the web booking is complete
        webReference:
          type: string
          description: The web reference
      title: BookingDTO
    BookingEnquiryDataDTO:
      type: object
      required:
        - id
      properties:
        basket:
          type: string
          description: Basket
        behalfOf:
          type: string
          description: Behalf Of
        bestOrAllRates:
          type: boolean
          example: false
          description: Best or All Rates
        billingAccountId:
          type: integer
          format: int64
          description: Billing Account ID
        billingFrequency:
          type: integer
          format: int64
          description: Billing Frequency ID
        billingType:
          type: string
          description: Billing Type
        bookingAccountId:
          type: integer
          format: int64
          description: Booking Account ID
        bookingContactId:
          type: integer
          format: int64
          description: Booking Contact ID
        bookingCurrencyId:
          type: integer
          format: int64
          description: Booking Currency ID
        bookingTypeId:
          type: integer
          format: int64
          description: Booking Type ID
        budgetPerNight:
          type: number
          description: Budget Per Night
        channelId:
          type: integer
          format: int64
          description: Channel ID
        commissionRate:
          type: number
          description: Commission Rate
        customerReference:
          type: string
          description: Customer Reference
        endDate:
          type: string
          format: date
          description: End Date
        id:
          type: integer
          format: int64
          description: Booking Enquiry ID
        notes:
          type: string
          description: Notes for the booking enquiry
        promoCodeId:
          type: integer
          format: int64
          description: Promo Code ID
        referrerId:
          type: integer
          format: int64
          description: Referrer ID
        requestedEndDate:
          type: string
          format: date
          description: Requested End Date
        requestedLocation:
          type: string
          description: Requested Location
        requestedStartDate:
          type: string
          format: date
          description: Requested Start Date
        requestedUnitTypes:
          type: string
          description: Requested Unit Types
        selectedFeatureIds:
          type: string
          description: Selected Feature IDs
        selectedLocations:
          type: string
          description: Selected Locations
        selectedRatePlans:
          type: string
          description: Selected Rate Plans
        selectedUnitTypes:
          type: string
          description: Selected Unit Types
        soldOutEnquiry:
          type: boolean
          example: false
          description: Sold Out Enquiry
        startDate:
          type: string
          format: date
          description: Start Date
      title: BookingEnquiryDataDTO
    BookingNoteCreateDTO:
      type: object
      required:
        - note
      properties:
        note:
          type: string
          description: Note
      title: BookingNoteCreateDTO
    BookingNoteDTO:
      type: object
      properties:
        booking:
          $ref: '#/components/schemas/BookingSummaryDTO'
        id:
          type: integer
          format: int64
        note:
          type: string
        noteCategory:
          $ref: '#/components/schemas/NoteCategoryDTO'
        roomStay:
          $ref: '#/components/schemas/RoomStaySummaryDTO'
      title: BookingNoteDTO
    BookingPaymentCreateDTO:
      type: object
      required:
        - amount
        - paymentReference
        - paymentType
      properties:
        amount:
          type: number
          description: The payment amount in the currency of the booking
        cardType:
          type: string
          description: >-
            The card type (if applicable - required if card payment). Should one
            of the following: VISA_CREDIT, VISA_DEBIT, MASTERCARD,
            MASTERCARD_DEBIT, DELTA, MAESTRO, VISA_ELECTRON, AMERICAN_EXPRESS,
            DINERS_CLUB, JCB, PAYPAL
        lastFour:
          type: string
          description: >-
            The last four digits of the card number (if applicable - required if
            card payment)
        paymentReference:
          type: string
          description: The payment reference
        paymentType:
          type: string
          description: The payment type, must be BANK_PAYMENT, CARD_PAYMENT or CASH_PAYMENT
      title: BookingPaymentCreateDTO
    BookingPriceBreakdown:
      type: object
      properties:
        currencyCode:
          type: string
        currencySymbol:
          type: string
        total:
          $ref: '#/components/schemas/GrossNetVat'
        totalDueNow:
          $ref: '#/components/schemas/GrossNetVat'
        totalOutstanding:
          type: number
      title: BookingPriceBreakdown
    BookingRoomStayListItemProjection:
      type: object
      properties:
        billingAccount:
          $ref: '#/components/schemas/FinanceAccountProjection'
        bookingAccount:
          $ref: '#/components/schemas/FinanceAccountProjection'
        bookingContact:
          $ref: '#/components/schemas/ContactProjection'
        bookingId:
          type: integer
          format: int64
          description: The id of the booking
        bookingReference:
          type: string
          description: The reference of the booking
        channelId:
          type: integer
          format: int64
          description: The id of the channel for the booking
        channelName:
          type: string
          description: The name of the channel for the booking
        endDate:
          type: string
          format: date
          description: The end date of the room stay
        netAmount:
          type: number
          description: The net amount of the room stay
        roomStayId:
          type: integer
          format: int64
          description: The id of the room stay
        roomStayStatus:
          type: string
          description: The status of the room stay
        startDate:
          type: string
          format: date
          description: The start date of the room stay
        unit:
          $ref: '#/components/schemas/UnitSummaryProjection'
        vatAmount:
          type: number
          description: The VAT amount of the room stay
      title: BookingRoomStayListItemProjection
    BookingStatusUpdateDTO:
      type: object
      properties:
        statusUpdates:
          type: array
          description: The status updates for the room stays, add one per room stay
          items:
            $ref: '#/components/schemas/RoomStayStatusUpdateDTO'
      title: BookingStatusUpdateDTO
    BookingSummaryDTO:
      type: object
      properties:
        bookingReference:
          type: string
          description: The booking reference number
        id:
          type: integer
          format: int64
          description: The unique identifier of the booking
      title: BookingSummaryDTO
    BookingTermsDTO:
      type: object
      properties:
        depositPercentageOfFirstInvoice:
          type: number
          description: The deposit percentage of the first invoice
        description:
          type: string
          description: The description of the booking terms
        firstInvoiceInvoiceDateOnStartDate:
          type: boolean
          example: false
          description: Indicates if the first invoice date is on the start date
        id:
          type: integer
          format: int64
          description: The unique identifier of the booking terms
        name:
          type: string
          description: The name of the booking terms
        payWhen:
          type: string
          description: The payment terms for the booking
          enum:
            - ON_BOOKING
            - ON_ARRIVAL
            - ON_DEPARTURE
        settlementTerms:
          $ref: '#/components/schemas/SettlementTermsConfigDTO'
      title: BookingTermsDTO
    BookingTypeDTO:
      type: object
      properties:
        billingType:
          type: string
          description: The billing type of the booking
          enum:
            - ON_ACCOUNT
            - CREDIT_CARD
            - CASH_PAYMENT
            - BANK_PAYMENT
            - VIRTUAL_CARD
        description:
          type: string
          description: The description of the booking type
        emailTo:
          type: string
          description: The email recipient of the booking
          enum:
            - BOOKING_CONTACT
            - BOOKING_GUESTS
            - BOOKING_CONTACT_AND_GUESTS
        id:
          type: integer
          format: int64
          description: The unique identifier of the booking type
        name:
          type: string
          description: The name of the booking type
        shortCode:
          type: string
          description: The short code of the booking type
        systemBookingType:
          type: boolean
          example: false
          description: Indicates if it is a system booking type
        systemName:
          type: string
          description: The system name of the booking type
      title: BookingTypeDTO
    BuildingAddressDTO:
      type: object
      properties:
        addressLine1:
          type: string
          description: First line of the address
        addressLine2:
          type: string
          description: Second line of the address
        addressLine3:
          type: string
          description: Third line of the address
        building:
          $ref: '#/components/schemas/BuildingSummaryDTO'
        city:
          type: string
          description: City of the address
        country:
          $ref: '#/components/schemas/CountryDTO'
        id:
          type: integer
          format: int64
          description: Unique identifier of the address
        postCode:
          type: string
          description: Postal code of the address
      title: BuildingAddressDTO
    BuildingDTO:
      type: object
      properties:
        bookingType:
          $ref: '#/components/schemas/BookingTypeDTO'
        buildingAddress:
          $ref: '#/components/schemas/BuildingAddressDTO'
        buildingManagementType:
          type: string
          description: >-
            The type of building management MANAGED or AGENCY. MANAGED by the
            operator, AGENCY by a third party.
          enum:
            - MANAGED
            - AGENCY
        development:
          $ref: '#/components/schemas/DevelopmentSummaryDTO'
        directions:
          type: string
          description: Directions to the building
        directionsLang2:
          type: string
          description: Directions in second language
        directionsLang3:
          type: string
          description: Directions in third language
        directionsLang4:
          type: string
          description: Directions in fourth language
        directionsLang5:
          type: string
          description: Directions in fifth language
        houseRules:
          type: string
          description: House rules of the building
        id:
          type: integer
          format: int64
          description: The unique identifier of the building
        latitude:
          type: number
          description: Latitude coordinate of the building
        longDescription:
          type: string
          description: Long description of the building
        longDescriptionLang2:
          type: string
          description: Long description in second language
        longDescriptionLang3:
          type: string
          description: Long description in third language
        longDescriptionLang4:
          type: string
          description: Long description in fourth language
        longDescriptionLang5:
          type: string
          description: Long description in fifth language
        longitude:
          type: number
          description: Longitude coordinate of the building
        maxStay:
          type: integer
          format: int32
          description: Maximum stay duration in the building
        minStay:
          type: integer
          format: int32
          description: Minimum stay duration in the building
        name:
          type: string
          description: Name of the building
        networkOperator:
          $ref: '#/components/schemas/CompanySummaryDTO'
        saltoSpaceServiceId:
          type: string
          description: Salto space service identifier
        shortDescription:
          type: string
          description: Short description of the building
        shortDescriptionLang2:
          type: string
          description: Short description in second language
        shortDescriptionLang3:
          type: string
          description: Short description in third language
        shortDescriptionLang4:
          type: string
          description: Short description in fourth language
        shortDescriptionLang5:
          type: string
          description: Short description in fifth language
        shortName:
          type: string
          description: Short name of the building
        siteId:
          type: string
          description: Site identifier of the building for access control systems
        thirdPartyUrl:
          type: string
          description: Third party URL associated with the building
        uuid:
          type: string
          description: UUID of the building
      title: BuildingDTO
    BuildingListItemProjection:
      type: object
      properties:
        addressLine1:
          type: string
          description: First line of the building's address
        addressLine2:
          type: string
          description: Second line of the building's address
        areaId:
          type: string
          description: Unique identifier of the area
        areaName:
          type: string
          description: Name of the area
        buildingName:
          type: string
          description: Name of the building
        city:
          type: string
          description: City where the building is located
        developmentId:
          type: string
          description: Unique identifier of the development
        developmentName:
          type: string
          description: Name of the development
        id:
          type: integer
          format: int64
          description: Unique identifier of the building
        postCode:
          type: string
          description: Postal code of the building
      title: BuildingListItemProjection
    BuildingSummaryDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: Unique identifier of the building
        name:
          type: string
          description: Name of the building
      title: BuildingSummaryDTO
    ChannelDTO:
      type: object
      properties:
        autoPayDueInvoices:
          type: boolean
        autoPayDueInvoicesDaysBefore:
          type: integer
          format: int32
        availableToAll:
          type: boolean
        bookingType:
          $ref: '#/components/schemas/BookingTypeDTO'
        channelType:
          type: string
          enum:
            - OTA
            - AGENT
            - GENERAL
            - OWNER
        commissionBasis:
          type: string
          enum:
            - GROSS
            - NET
        commissionInvoiceType:
          type: string
          enum:
            - SALES_CREDIT
            - PURCHASE_INVOICE
            - DO_NOT_GENERATE
        commissionRequired:
          type: boolean
        deductedAtSource:
          type: boolean
        defaultCommissionRate:
          type: number
        id:
          type: integer
          format: int64
        includeCommissionInExtendedInvoiceDescription:
          type: boolean
        includeCommissionInFinancialExport:
          type: boolean
        name:
          type: string
        operator:
          $ref: '#/components/schemas/CompanySummaryDTO'
        systemType:
          type: boolean
        vatIncludedInCommission:
          type: boolean
        vatProfile:
          $ref: '#/components/schemas/VatProfileDTO'
      title: ChannelDTO
    ChannelSummaryDTO:
      type: object
      properties:
        channelType:
          type: string
          enum:
            - OTA
            - AGENT
            - GENERAL
            - OWNER
        id:
          type: integer
          format: int64
          example: 1
          description: Channel ID
        name:
          type: string
          example: Booking.com
          description: Channel Name
      title: ChannelSummaryDTO
    ChargeableExtraDTO:
      type: object
      properties:
        allowDescriptionAmendment:
          type: boolean
          example: true
          description: Flag indicating if description amendment is allowed
        allowNetAmendment:
          type: boolean
          example: true
          description: Flag indicating if net amendment is allowed
        billing_frequency:
          type: string
          example: MONTHLY
          description: Billing frequency of the chargeable extra
          enum:
            - ONE_OFF
            - DAILY
            - WEEKLY
            - MONTHLY
        building:
          $ref: '#/components/schemas/BuildingSummaryDTO'
        description:
          type: string
          example: Extra bed
          description: Description of the chargeable extra
        descriptionLang2:
          type: string
          example: Cama extra
          description: Description in second language
        descriptionLang3:
          type: string
          example: Lit supplémentaire
          description: Description in third language
        descriptionLang4:
          type: string
          example: Letto extra
          description: Description in fourth language
        descriptionLang5:
          type: string
          example: Zusatzbett
          description: Description in fifth language
        id:
          type: integer
          format: int64
          example: 1
          description: Unique identifier for the chargeable extra
        includeAdults:
          type: boolean
          example: true
          description: Flag indicating if adults are included
        includeChildren:
          type: boolean
          example: true
          description: Flag indicating if children are included
        includeInfants:
          type: boolean
          example: true
          description: Flag indicating if infants are included
        includedInRate:
          type: boolean
          example: true
          description: Flag indicating if the chargeable extra is included in the rate
        lengthOfStay:
          type: number
          example: 3
          description: Length of stay for the chargeable extra
        netPrice:
          type: number
          example: 100
          description: Net price of the chargeable extra
        organisationSettings:
          $ref: '#/components/schemas/OrganisationSettingsSummaryDTO'
        perGuestFee:
          type: boolean
          example: true
          description: Flag indicating if the fee is per guest
        petIncluded:
          type: boolean
          example: true
          description: Flag indicating if pets are included
        prepTimeUnit:
          type: string
          example: HOURS
          description: Preparation time unit for the chargeable extra
          enum:
            - MINUTES
            - HOURS
            - DAYS
            - WEEKS
            - MONTHS
        prepTimeValue:
          type: integer
          format: int64
          example: 2
          description: Preparation time value for the chargeable extra
        product:
          $ref: '#/components/schemas/ProductSummaryDTO'
        selectableInIBE:
          type: boolean
          example: true
          description: Flag indicating if selectable in IBE
        unitType:
          $ref: '#/components/schemas/UnitTypeSummaryDTO'
        vatInclusive:
          type: boolean
          example: true
          description: Flag indicating if VAT is inclusive
        vatProfile:
          $ref: '#/components/schemas/VatProfileDTO'
        webCategory:
          $ref: '#/components/schemas/WebCategoryDTO'
        webDescription:
          type: string
          example: Extra bed for children
          description: Web description of the chargeable extra
      title: ChargeableExtraDTO
    ChargeableExtraPaymentDTO:
      type: object
      required:
        - paymentReference
      properties:
        paymentReference:
          type: string
          description: The payment reference for the chargeable extra
      title: ChargeableExtraPaymentDTO
    CityDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
          example: 1
          description: City ID
        name:
          type: string
          example: Birmingham
          description: City name
        region:
          $ref: '#/components/schemas/RegionSummaryDTO'
      title: CityDTO
    CityListItemProjection:
      type: object
      properties:
        cityName:
          type: string
          description: Name of the city
        id:
          type: integer
          format: int64
          description: Unique identifier for the city
        regionId:
          type: integer
          format: int64
        regionName:
          type: string
      title: CityListItemProjection
    CitySummaryDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: ID of the city
        name:
          type: string
          description: Name of the city
      title: CitySummaryDTO
    CompanyAddressDTO:
      type: object
      properties:
        addressLine1:
          type: string
          description: First line of the address
        addressLine2:
          type: string
          description: Second line of the address
        addressLine3:
          type: string
          description: Third line of the address
        city:
          type: string
          description: City of the address
        country:
          $ref: '#/components/schemas/CountryDTO'
        id:
          type: integer
          format: int64
          description: Unique identifier of the address
        nickname:
          type: string
        postCode:
          type: string
          description: Postal code of the address
      title: CompanyAddressDTO
    CompanyDTO:
      type: object
      required:
        - companyName
      properties:
        bankAccountName:
          type: string
          description: The bank account name of the company
        bankAccountNo:
          type: string
          description: The bank account number of the company
        bankBicCode:
          type: string
          description: The bank BIC code of the company
        bankIbanCode:
          type: string
          description: The bank IBAN code of the company
        bankName:
          type: string
          description: The bank name of the company
        bankSortCode:
          type: string
          description: The bank sort code of the company
        billingAddress:
          $ref: '#/components/schemas/CompanyAddressDTO'
        companyFinanceAccount:
          $ref: '#/components/schemas/CompanyFinanceAccountDTO'
        companyName:
          type: string
          description: The name of the company
        companyNumber:
          type: string
          description: The registration number of the company
        consolidatedBilling:
          type: boolean
          example: false
          description: Indicates if the company uses consolidated billing
        creditAccount:
          type: boolean
          example: false
          description: Indicates if the company has a credit account
        creditCheckDate:
          type: string
          format: date
          description: The date of the company's credit check
        creditCheckOk:
          type: boolean
          example: false
          description: Indicates if the company's credit check is okay
        creditLimit:
          type: number
          description: The credit limit of the company
        emailTo:
          type: string
          description: The email to details for the company
          enum:
            - BOOKING_CONTACT
            - BOOKING_GUESTS
            - BOOKING_CONTACT_AND_GUESTS
        hasPublicLiability:
          type: boolean
          example: false
          description: Indicates if the company has public liability
        id:
          type: integer
          format: int64
          description: The unique identifier of the company
          readOnly: true
        industry:
          $ref: '#/components/schemas/IndustryDTO'
        liabilityAmount:
          type: number
          description: The liability amount of the company
        lifecycleStage:
          type: string
          description: The lifecycle stage of the company
          enum:
            - LEAD
            - QUALIFIED
            - DISQUALIFIED
            - OPPORTUNITY
            - CUSTOMER
        linkCode:
          type: string
          description: The link code of the company
        marketSegment:
          $ref: '#/components/schemas/MarketSegmentDTO'
        parentCompany:
          $ref: '#/components/schemas/CompanyDTO'
        paymentTerm:
          type: number
          description: The payment term of the company
        primaryCompanyAddress:
          $ref: '#/components/schemas/CompanyAddressDTO'
        primaryCompanyEmailAddress:
          $ref: '#/components/schemas/CompanyEmailAddressDTO'
        primaryCompanyTelephoneNumber:
          $ref: '#/components/schemas/CompanyTelephoneNumberDTO'
        referrer:
          $ref: '#/components/schemas/ReferrerDTO'
        riskAssessment:
          type: boolean
          example: false
          description: Indicates if the company has a risk assessment
        source:
          type: string
          description: The source of the company
          enum:
            - OFFLINE_SOURCE
            - ONLINE_ENQUIRY_FORM
            - ONLINE_BOOKING
            - SALES_CHANNEL
            - DIRECT_SALE
        status:
          type: string
          description: The status of the company
          enum:
            - ACTIVE
            - INACTIVE
            - ARCHIVED
        type:
          type: string
          description: The type of the company
          enum:
            - CUSTOMER
            - BOOKING_AGENT
            - SUPPLIER
            - NETWORK_PROVIDER
            - LANDLORD
            - LETTING_AGENT
            - MANAGING_AGENT
            - BILLING
            - PARENT
        vatNumber:
          type: string
          description: The VAT number of the company
        vatRegistered:
          type: boolean
          example: false
          description: Indicates if the company is VAT registered
        websiteUrl:
          type: string
          description: The website URL of the company
        wrapInvoicesManually:
          type: boolean
          example: false
          description: Indicates if the company wraps invoices manually
      title: CompanyDTO
    CompanyEmailAddressDTO:
      type: object
      properties:
        email:
          type: string
          example: info@resharmonics.com
          description: Email address
        id:
          type: integer
          format: int64
          example: 1
          description: Unique identifier of the email address
        nickname:
          type: string
          example: Work
          description: Nickname of the email address
        primary:
          type: boolean
          example: true
          description: Primary email address
      title: CompanyEmailAddressDTO
    CompanyFinanceAccountDTO:
      type: object
      properties:
        accountCode:
          type: string
          description: Account code of the finance account
        company:
          $ref: '#/components/schemas/CompanySummaryDTO'
        contact:
          $ref: '#/components/schemas/ContactSummaryDTO'
        exportStatus:
          type: string
          description: Export status of the finance account
          enum:
            - SKIPPED
            - CREATED
            - PENDING
            - SENT
            - EXPORTED
            - FAILED
            - IMPORTED
        exportedDate:
          type: string
          format: date-time
          description: Date when the finance account was exported
        externalId:
          type: string
          description: External identifier of the finance account
        id:
          type: integer
          format: int64
          description: Unique identifier of the finance account
      title: CompanyFinanceAccountDTO
    CompanyListItemProjection:
      type: object
      properties:
        accountCode:
          type: string
          description: Account code of the company
        accountId:
          type: integer
          format: int64
          description: Account ID associated with the company
        addressLine1:
          type: string
          description: First line of the company's address
        addressLine2:
          type: string
          description: Second line of the company's address
        city:
          type: string
          description: City where the company is located
        companyName:
          type: string
          description: Name of the company
        emailAddress:
          type: string
          description: Email address of the company
        id:
          type: integer
          format: int64
          description: ID of the company
        industry:
          type: string
          description: Industry of the company
        lifecycleStage:
          type: string
          description: Lifecycle stage of the company
        marketSegment:
          type: string
          description: Market segment of the company
        postCode:
          type: string
          description: Postal code of the company's address
        referrer:
          type: string
          description: Referrer of the company
        source:
          type: string
          description: Source of the company
        status:
          type: string
          description: Status of the company
        telephoneNumber:
          type: string
          description: Telephone number of the company
      title: CompanyListItemProjection
    CompanyProjection:
      type: object
      properties:
        companyName:
          type: string
          description: Name of the company
        id:
          type: integer
          format: int64
          description: Unique identifier of the company
      title: CompanyProjection
    CompanySummaryDTO:
      type: object
      properties:
        companyName:
          type: string
          description: Name of the company
        id:
          type: integer
          format: int64
          description: Unique identifier of the company
      title: CompanySummaryDTO
    CompanyTelephoneNumberDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: Unique identifier of the company telephone number
        nickname:
          type: string
          description: Nickname for the telephone number
        number:
          type: string
          description: Telephone number
        primary:
          type: boolean
          example: false
          description: Indicates if this is the primary telephone number
      title: CompanyTelephoneNumberDTO
    ContactAddressDTO:
      type: object
      properties:
        addressLine1:
          type: string
          description: First line of the address
        addressLine2:
          type: string
          description: Second line of the address
        addressLine3:
          type: string
          description: Third line of the address
        city:
          type: string
          description: City of the address
        country:
          $ref: '#/components/schemas/CountryDTO'
        id:
          type: integer
          format: int64
          description: Unique identifier of the address
        nickname:
          type: string
          description: Nickname of the contact address
        postCode:
          type: string
          description: Postal code of the address
        primary:
          type: boolean
          example: false
          description: Indicates if this is the primary address
      title: ContactAddressDTO
    ContactDTO:
      type: object
      required:
        - firstName
        - lastName
      properties:
        cognitoId:
          type: string
          description: Cognito ID of the contact
        company:
          $ref: '#/components/schemas/CompanySummaryDTO'
        companyName:
          type: string
          description: Company name associated with the contact
        contactSalesAccount:
          $ref: '#/components/schemas/ContactFinanceAccountDTO'
        creditCheckDate:
          type: string
          format: date
          description: Date of the credit check
        creditCheckOk:
          type: boolean
          example: false
          description: Credit check status of the contact
        dateOfBirth:
          type: string
          format: date
        department:
          type: string
          description: Department of the contact
        firstName:
          type: string
          description: First name of the contact
        gender:
          type: string
          description: Gender of the contact
          enum:
            - MALE
            - FEMALE
            - OTHER
        id:
          type: integer
          format: int64
          description: Unique identifier of the contact
        idCheck:
          type: boolean
          example: false
          description: ID check status of the contact
        identityConfirmedDate:
          type: string
          format: date-time
          description: Date when the identity was confirmed
        identityConfirmedReference:
          type: string
          description: Reference for the identity confirmation
        industry:
          $ref: '#/components/schemas/IndustryDTO'
        jobTitle:
          type: string
          description: Job title of the contact
        keyCardCode:
          type: string
          description: Key card code of the contact
        lastBookingRole:
          type: string
          description: Last booking role of the contact
          enum:
            - NONE
            - BOOKER
            - GUEST
            - GUEST_BOOKER
        lastName:
          type: string
          description: Last name of the contact
        lifecycleStage:
          type: string
          description: Lifecycle stage of the contact
          enum:
            - LEAD
            - QUALIFIED
            - DISQUALIFIED
            - OPPORTUNITY
            - CUSTOMER
        marketSegment:
          $ref: '#/components/schemas/MarketSegmentDTO'
        marketingOptOut:
          type: boolean
          example: false
          description: Marketing opt-out status of the contact
        middleNames:
          type: string
          description: Middle names of the contact
        nationality:
          $ref: '#/components/schemas/NationalityDTO'
        passportNumber:
          type: string
          description: Passport number of the contact
        password:
          type: string
          description: Password of the contact
        preferences:
          type: string
          description: Preferences of the contact
        preferredContactMethod:
          type: string
          description: Preferred contact method of the contact
          enum:
            - TELEPHONE
            - EMAIL
            - MAIL
        primaryContactAddress:
          $ref: '#/components/schemas/ContactAddressDTO'
        primaryContactEmailAddress:
          $ref: '#/components/schemas/ContactEmailAddressDTO'
        primaryContactTelephoneNumber:
          $ref: '#/components/schemas/ContactTelephoneNumberDTO'
        referrer:
          $ref: '#/components/schemas/ReferrerDTO'
        saltoAssignedTagId:
          type: string
          description: Salto assigned tag ID of the contact
        saltoIdentifier:
          type: string
          description: Salto identifier of the contact
        saltoKeysLastUpdated:
          type: string
          format: date-time
          description: Last updated time of Salto keys
        saltoRegistrationStatus:
          type: string
          description: Salto registration status of the contact
          enum:
            - UNKNOWN
            - NOT_INVITED
            - INVITED
            - REGISTERED
        socialSecurityNumber:
          type: string
          description: Social security number of the contact
        source:
          type: string
          description: Source of the contact
          enum:
            - OFFLINE_SOURCE
            - ONLINE_ENQUIRY_FORM
            - ONLINE_BOOKING
            - DIRECT_SALE
            - SALES_CHANNEL
        status:
          type: string
          description: Status of the contact
          enum:
            - ACTIVE
            - INACTIVE
            - BANNED
            - ARCHIVED
            - VIP
            - WAITLIST
            - REMOVED
        title:
          type: string
          description: Title of the contact
          enum:
            - MR
            - MISS
            - MS
            - MRS
        type:
          type: string
          description: Type of the contact
          enum:
            - BOOKER
            - GUEST
        uuid:
          type: string
          description: UUID of the contact
      title: ContactDTO
    ContactEmailAddressDTO:
      type: object
      properties:
        email:
          type: string
          example: info@resharmonics.com
          description: Email address
        id:
          type: integer
          format: int64
          example: 1
          description: Unique identifier of the email address
        nickname:
          type: string
          description: Nickname of the contact
        primary:
          type: boolean
          example: false
          description: Indicates if this is the primary email address
      title: ContactEmailAddressDTO
    ContactFinanceAccountDTO:
      type: object
      required:
        - contact
      properties:
        accountCode:
          type: string
          description: Account code of the finance account
        company:
          $ref: '#/components/schemas/CompanySummaryDTO'
        contact:
          $ref: '#/components/schemas/ContactSummaryDTO'
        exportStatus:
          type: string
          description: Export status of the finance account
          enum:
            - SKIPPED
            - CREATED
            - PENDING
            - SENT
            - EXPORTED
            - FAILED
            - IMPORTED
        exportedDate:
          type: string
          format: date-time
          description: Date when the finance account was exported
        externalId:
          type: string
          description: External identifier of the finance account
        id:
          type: integer
          format: int64
          description: Unique identifier of the finance account
      title: ContactFinanceAccountDTO
    ContactListItemProjection:
      type: object
      properties:
        accountCode:
          type: string
          description: Account code of the contact
        accountId:
          type: string
          description: Account ID of the contact
        addressLine1:
          type: string
          description: Address line 1 of the contact
        addressLine2:
          type: string
          description: Address line 2 of the contact
        city:
          type: string
          description: City of the contact
        companyId:
          type: integer
          format: int64
          description: Company ID of the contact
        companyName:
          type: string
          description: Company name of the contact
        emailAddress:
          type: string
          description: Email address of the contact
        firstName:
          type: string
          description: First name of the contact
        id:
          type: integer
          format: int64
          description: ID of the contact
        industry:
          type: string
          description: Industry of the contact
        lastName:
          type: string
          description: Last name of the contact
        lifecycleStage:
          type: string
          description: Lifecycle stage of the contact
        marketSegment:
          type: string
          description: Market segment of the contact
        postCode:
          type: string
          description: Post code of the contact
        referrer:
          type: string
          description: Referrer of the contact
        source:
          type: string
          description: Source of the contact
        status:
          type: string
          description: Status of the contact
        telephoneNumber:
          type: string
          description: Telephone number of the contact
      title: ContactListItemProjection
    ContactNoteDTO:
      type: object
      properties:
        amendmentReason:
          $ref: '#/components/schemas/ReasonDTO'
        building:
          $ref: '#/components/schemas/BuildingSummaryDTO'
        contact:
          $ref: '#/components/schemas/ContactSummaryDTO'
        id:
          type: integer
          format: int64
          description: Unique identifier of the note
        note:
          type: string
          description: Content of the note
        noteCategory:
          $ref: '#/components/schemas/NoteCategoryDTO'
        private:
          type: boolean
        reason:
          $ref: '#/components/schemas/ReasonDTO'
      title: ContactNoteDTO
    ContactProjection:
      type: object
      properties:
        emailAddress:
          type: string
          description: Email address of the contact
        firstName:
          type: string
          description: First name of the contact
        id:
          type: integer
          format: int64
          description: Unique identifier of the contact
        lastName:
          type: string
          description: Last name of the contact
        telephoneNumber:
          type: string
          description: Telephone number of the contact
      title: ContactProjection
    ContactSummaryDTO:
      type: object
      properties:
        firstName:
          type: string
          description: First name of the contact
        id:
          type: integer
          format: int64
          description: Unique identifier of the contact
        lastName:
          type: string
          description: Last name of the contact
      title: ContactSummaryDTO
    ContactTelephoneNumberDTO:
      type: object
      required:
        - number
      properties:
        id:
          type: integer
          format: int64
        nickname:
          type: string
          description: Nickname of the contact
        number:
          type: string
        primary:
          type: boolean
          example: false
          description: Indicates if this is the primary telephone number
      title: ContactTelephoneNumberDTO
    CostCentreDTO:
      type: object
      properties:
        code:
          type: string
          description: Code of the cost centre
        exportName:
          type: string
          description: Export name of the cost centre
        fullName:
          type: string
        id:
          type: integer
          format: int64
          description: Unique identifier of the cost centre
        name:
          type: string
          description: Name of the cost centre
      title: CostCentreDTO
    CountryDTO:
      type: object
      properties:
        countryCodeAlpha2:
          type: string
          description: Alpha-2 country code
        countryCodeAlpha3:
          type: string
          description: Alpha-3 country code
        countryCodeNumeric:
          type: string
          description: Numeric country code
        id:
          type: integer
          format: int64
          description: Unique identifier of the country
        name:
          type: string
          description: Name of the country
        sortOrder:
          type: integer
          format: int32
          description: Sort order of the country
      title: CountryDTO
    CountryListItemProjection:
      type: object
      properties:
        countryName:
          type: string
          example: United States
          description: Name of the country
        id:
          type: integer
          format: int64
          example: 1
          description: ID of the country
      title: CountryListItemProjection
    CreateRoomStayDTO:
      type: object
      required:
        - endDate
        - inventoryType
        - inventoryTypeId
        - numberOfAdults
        - numberOfChildren
        - numberOfInfants
        - rateId
        - startDate
      properties:
        additionalAccessInformation:
          type: string
          description: Additional access information for the stay
        additionalExtraIds:
          type: array
          description: Additional Extra Ids for the stay
          items:
            type: integer
            format: int64
        endDate:
          type: string
          format: date
          description: End date of the stay
        externalNotes:
          type: string
          description: External notes for the stay
        guestIds:
          type: array
          description: >-
            Guest Ids for the stay, if not specified the booking contact will be
            used
          items:
            type: integer
            format: int64
        inventoryType:
          type: string
          description: Type of inventory for the stay, must be either UNIT or UNIT_TYPE
          enum:
            - UNIT
            - UNIT_TYPE
        inventoryTypeId:
          type: integer
          format: int64
          description: >-
            Inventory Type Id for the stay, if inventory type is UNIT then this
            is the Unit Id, if inventory type is UNIT_TYPE then this is the Unit
            Type Id
        numberOfAdults:
          type: integer
          format: int32
          description: Number of adults for the stay
        numberOfChildren:
          type: integer
          format: int32
          description: Number of children for the stay
        numberOfInfants:
          type: integer
          format: int32
          description: Number of infants for the stay
        opsInformation:
          type: string
          description: Operational information for the stay
        overriddenGross:
          type: number
          description: Overridden gross value for the stay, used to override the rate value
        promotionalCodeCode:
          type: string
          description: Promotional code for the stay
        rateId:
          type: integer
          format: int64
          description: Rate Id for the room stay
        startDate:
          type: string
          format: date
          description: Start date of the stay
      title: CreateRoomStayDTO
    CurrencyDTO:
      type: object
      properties:
        autoUpdate:
          type: boolean
          example: false
          description: Indicates if the currency is auto-updated
        baseRate:
          type: number
          description: Base rate of the currency
        description:
          type: string
          description: Description of the currency
        exchangeRate:
          type: number
          description: Exchange rate of the currency
        htmlSafeSymbol:
          type: string
          description: HTML safe symbol of the currency
        id:
          type: integer
          format: int64
          description: Unique identifier of the currency
        name:
          type: string
          description: Name of the currency
        primaryCurrency:
          type: boolean
          example: false
          description: Indicates if this is the primary currency
        symbol:
          type: string
          description: Symbol of the currency
        unit:
          type: string
          description: Unit of the currency
      title: CurrencyDTO
    CurrencySummaryDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
          example: 1
          description: Unique identifier of the currency
        name:
          type: string
          example: US Dollar
          description: Name of the currency
      title: CurrencySummaryDTO
    DateInterval:
      type: object
      properties:
        dateFrom:
          type: string
          format: date
        dateTo:
          type: string
          format: date
      title: DateInterval
    DevelopmentDTO:
      type: object
      properties:
        area:
          $ref: '#/components/schemas/AreaSummaryDTO'
        description:
          type: string
          example: A luxury residential development with 100 units
          description: Description of the development
        id:
          type: integer
          format: int64
          example: 123456
          description: Unique identifier for the development
        name:
          type: string
          example: The Residences at XYZ
          description: Name of the development
        primaryImageUrl:
          type: string
          example: https://example.com/images/development.jpg
          description: Primary image URL for the development
        shortName:
          type: string
          example: The Residences
          description: Short name for the development
      title: DevelopmentDTO
    DevelopmentListItemProjection:
      type: object
      properties:
        areaId:
          type: string
        areaName:
          type: string
          example: Grand Cayman
          description: Area name of the development entity
        developmentName:
          type: string
          example: The Residences at The Ritz-Carlton, Grand Cayman
          description: Name of the development entity
        id:
          type: integer
          format: int64
          example: 123456
          description: Unique identifier of the development entity
      title: DevelopmentListItemProjection
    DevelopmentSummaryDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
          example: 1
          description: Unique identifier of the Development
        name:
          type: string
          example: The Residences
          description: Name of the Development
      title: DevelopmentSummaryDTO
    ExtraImage:
      type: object
      properties:
        name:
          type: string
        thirdPartyUrl:
          type: string
        type:
          type: string
          enum:
            - GENERAL
        url:
          type: string
      title: ExtraImage
    Extras:
      type: object
      properties:
        building:
          type: string
        compulsory:
          type: boolean
        description:
          type: string
        descriptionTranslations:
          type: array
          items:
            $ref: '#/components/schemas/LocaleTranslation'
        frequency:
          type: string
        gross:
          type: number
        grossNetVat:
          $ref: '#/components/schemas/GrossNetVat'
        id:
          type: integer
          format: int64
        images:
          type: array
          items:
            $ref: '#/components/schemas/ExtraImage'
        lengthOfStay:
          type: number
        net:
          type: number
        price:
          type: number
        priceVatInclusive:
          type: boolean
        unitType:
          type: string
        webCategory:
          type: string
        webDescription:
          type: string
      title: Extras
    FinanceAccountDTO:
      type: object
      properties:
        accountCode:
          type: string
          description: Account code of the finance account
        company:
          $ref: '#/components/schemas/CompanySummaryDTO'
        contact:
          $ref: '#/components/schemas/ContactSummaryDTO'
        exportStatus:
          type: string
          description: Export status of the finance account
          enum:
            - SKIPPED
            - CREATED
            - PENDING
            - SENT
            - EXPORTED
            - FAILED
            - IMPORTED
        exportedDate:
          type: string
          format: date-time
          description: Date when the finance account was exported
        externalId:
          type: string
          description: External identifier of the finance account
        id:
          type: integer
          format: int64
          description: Unique identifier of the finance account
      title: FinanceAccountDTO
    FinanceAccountProjection:
      type: object
      properties:
        accountCode:
          type: string
          description: The code of the account
        company:
          $ref: '#/components/schemas/CompanyProjection'
        contact:
          $ref: '#/components/schemas/ContactProjection'
        id:
          type: integer
          format: int64
          description: The unique identifier of the account
      title: FinanceAccountProjection
    FinancialDTO:
      type: object
      properties:
        amountPaid:
          type: number
          description: Amount paid for the financial record
        baseCurrency:
          $ref: '#/components/schemas/CurrencyDTO'
        baseExchangeRate:
          type: number
          description: Base exchange rate of the financial record
        baseGross:
          type: number
          description: Base gross amount of the financial record
        baseNet:
          type: number
          description: Base net amount of the financial record
        baseVat:
          type: number
          description: Base VAT amount of the financial record
        cardLastFour:
          type: string
          description: Last four digits of the credit card
        costCentre:
          $ref: '#/components/schemas/CostCentreDTO'
        creditCardType:
          type: string
          description: Type of the credit card
          enum:
            - VISA_CREDIT
            - VISA_DEBIT
            - MASTERCARD
            - MASTERCARD_DEBIT
            - DELTA
            - MAESTRO
            - VISA_ELECTRON
            - AMERICAN_EXPRESS
            - DINERS_CLUB
            - JCB
            - PAYPAL
            - VISA
        currency:
          $ref: '#/components/schemas/CurrencyDTO'
        dateCreated:
          type: string
          format: date
          description: Date when the financial record was created
        description:
          type: string
          description: Description of the financial record
        exchangeRate:
          type: number
          description: Exchange rate of the financial record
        exportStatus:
          type: string
          description: Export status of the financial record
          enum:
            - SKIPPED
            - CREATED
            - PENDING
            - SENT
            - EXPORTED
            - FAILED
            - IMPORTED
        exportedDate:
          type: string
          format: date-time
          description: Date when the financial record was exported
        externalId:
          type: string
          description: External identifier of the financial record
        financeAccount:
          $ref: '#/components/schemas/FinanceAccountDTO'
        financialType:
          type: string
          description: Type of the financial record
          enum:
            - SALES_INVOICE
            - SALES_CREDIT
            - SALES_RECEIPT
            - SALES_REFUND
            - SALES_ACCOUNT
            - PURCHASE_INVOICE
            - PURCHASE_CREDIT
            - PURCHASE_RECEIPT
            - PURCHASE_REFUND
            - PURCHASE_ACCOUNT
            - T_SALES_INVOICE
            - T_SALES_CREDIT
            - T_SALES_RECEIPT
            - T_SALES_REFUND
            - T_PURCHASE_INVOICE
            - T_PURCHASE_CREDIT
            - T_PURCHASE_RECEIPT
            - T_PURCHASE_REFUND
            - ACCOUNT_DEBIT
            - T_ACCOUNT_CREDIT
            - BANK_TRANSFER_CREDIT
            - BANK_TRANSFER_DEBIT
        gross:
          type: number
          description: Gross amount of the financial record
        id:
          type: integer
          format: int64
          description: Unique identifier of the financial record
        net:
          type: number
          description: Net amount of the financial record
        nominalCode:
          $ref: '#/components/schemas/NominalCodeDTO'
        organisationSettingsId:
          type: integer
          format: int64
          description: Organisation settings ID associated with the financial record
        paymentReference:
          type: string
          description: Payment reference of the financial record
        paymentType:
          type: string
          description: Payment type of the financial record
          enum:
            - BANK_PAYMENT
            - CARD_PAYMENT
            - CREDIT_CARD_TERMINAL
            - CASH_PAYMENT
            - OFFLINE_PAYMENT
            - ADJUSTMENT
        reportingGross:
          type: number
          description: Reporting gross amount of the financial record
        reportingNet:
          type: number
          description: Reporting net amount of the financial record
        reportingVat:
          type: number
          description: Reporting VAT amount of the financial record
        salesInvoiceItem:
          $ref: '#/components/schemas/SalesInvoiceItemDTO'
        taxCode:
          $ref: '#/components/schemas/TaxCodeDTO'
        taxRate:
          type: number
          description: Tax rate of the financial record
        unallocated:
          type: number
          description: Unallocated amount of the financial record
        vat:
          type: number
          description: VAT amount of the financial record
        xeroIdentifier:
          $ref: '#/components/schemas/XeroExternalIdentifierDTO'
      title: FinancialDTO
    FinancialUpdateDTO:
      type: object
      properties:
        exportedDate:
          type: string
          format: date-time
          example: '2023-10-01T12:00:00'
          description: Date when the financial update was exported
        externalId:
          type: string
          example: ext-12345
          description: External ID of the financial update
      title: FinancialUpdateDTO
    GrossNetVat:
      type: object
      properties:
        gross:
          type: number
        net:
          type: number
        vat:
          type: number
      title: GrossNetVat
    GuestStayDTO:
      type: object
      properties:
        contact:
          $ref: '#/components/schemas/ContactSummaryDTO'
        dateFrom:
          type: string
          format: date
          description: Start date of the guest stay
        dateTo:
          type: string
          format: date
          description: End date of the guest stay
        extensionOf:
          $ref: '#/components/schemas/GuestStayDTO'
        id:
          type: integer
          format: int64
          description: Unique identifier of the guest stay
        roomStay:
          $ref: '#/components/schemas/RoomStaySummaryDTO'
        status:
          type: string
          description: Status of the guest stay
          enum:
            - PENDING
            - CONFIRMED
            - CHECKED_IN
            - CHECKED_OUT
            - CANCELLED
            - LOST
        type:
          type: string
          description: Type of the guest stay
          enum:
            - BUSINESS
            - DIRECT
            - DAYTIME
            - OVERNIGHT
      title: GuestStayDTO
    GuestStayListItemProjection:
      type: object
      properties:
        bookingId:
          type: integer
          format: int64
          description: >-
            The unique identifier of the Booking entity associated with the
            Guest Stay.
        bookingReference:
          type: string
          description: The booking reference associated with the Guest Stay.
        contactId:
          type: integer
          format: int64
          description: The unique identifier of the Contact associated with the Guest Stay.
        dateFrom:
          type: string
          format: date
          description: The start date of the Guest Stay.
        dateTo:
          type: string
          format: date
          description: The end date of the Guest Stay.
        emailAddress:
          type: string
          description: The email address of the guest.
        firstName:
          type: string
          description: The first name of the guest.
        id:
          type: integer
          format: int64
          description: The unique identifier of the Guest Stay entity.
        lastName:
          type: string
          description: The last name of the guest.
        roomStayId:
          type: integer
          format: int64
          description: >-
            The unique identifier of the Room Stay entity associated with the
            Guest Stay.
        status:
          type: string
          description: The status of the Guest Stay.
        unitId:
          type: integer
          format: int64
          description: The unique identifier of the Unit associated with the Guest Stay.
      title: GuestStayListItemProjection
    GuestStaySummaryDTO:
      type: object
      properties:
        contact:
          $ref: '#/components/schemas/ContactSummaryDTO'
        dateFrom:
          type: string
          format: date
          description: The start date of the guest stay
        dateTo:
          type: string
          format: date
          description: The end date of the guest stay
        id:
          type: integer
          format: int64
          description: The unique identifier of the guest stay
      title: GuestStaySummaryDTO
    IndustryDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: Unique identifier of the industry
        name:
          type: string
          description: Name of the industry
      title: IndustryDTO
    Issue:
      type: object
      required:
        - description
        - id
        - issuePriority
        - issueStatus
        - issueType
        - subject
      properties:
        assigneeCompany:
          $ref: '#/components/schemas/CompanySummaryDTO'
        assigneeTeam:
          $ref: '#/components/schemas/TeamSummaryDTO'
        assigneeUser:
          $ref: '#/components/schemas/UserSummaryDTO'
        booking:
          $ref: '#/components/schemas/BookingSummaryDTO'
        building:
          $ref: '#/components/schemas/BuildingSummaryDTO'
        closedBy:
          $ref: '#/components/schemas/UserSummaryDTO'
        closedDate:
          type: string
          format: date-time
          description: Date when the issue was closed
        description:
          type: string
          description: Description of the issue
        elapsedTime:
          type: integer
          format: int64
          description: Elapsed time for the issue
        guestStay:
          $ref: '#/components/schemas/GuestStaySummaryDTO'
        id:
          type: integer
          format: int64
          description: ID of the issue
        issuePriority:
          $ref: '#/components/schemas/IssuePrioritySummaryDTO'
        issueStatus:
          type: string
          description: Status of the issue
          enum:
            - OPEN
            - STARTED
            - RESOLVED
            - CLOSED
        issueType:
          $ref: '#/components/schemas/IssueTypeSummaryDTO'
        private:
          type: boolean
        readStatus:
          type: boolean
          example: false
          description: Read status of the issue
        reporterContact:
          $ref: '#/components/schemas/ContactSummaryDTO'
        reporterUser:
          $ref: '#/components/schemas/UserSummaryDTO'
        resolutionTargetDate:
          type: string
          format: date-time
          description: Target date for resolution
        resolvedBy:
          $ref: '#/components/schemas/UserSummaryDTO'
        resolvedDate:
          type: string
          format: date-time
          description: Date when the issue was resolved
        respondedDate:
          type: string
          format: date-time
          description: Date when the issue was responded to
        responseTargetDate:
          type: string
          format: date-time
          description: Target date for response
        restrictsAvailability:
          type: boolean
          example: false
          description: Indicates if the issue restricts availability
        restrictsAvailabilityFrom:
          type: string
          format: date
          description: Start date of availability restriction
        restrictsAvailabilityTo:
          type: string
          format: date
          description: End date of availability restriction
        startedBy:
          $ref: '#/components/schemas/UserSummaryDTO'
        startedDate:
          type: string
          format: date-time
          description: Date when the issue was started
        subject:
          type: string
          description: Subject of the issue
        timeOfReporting:
          type: string
          format: date-time
          description: Time when the issue was reported
        unit:
          $ref: '#/components/schemas/UnitSummaryDTO'
        uuid:
          type: string
          description: UUID of the issue
      title: Issue
      description: Issue from the PMS
    IssueListProjection:
      type: object
      properties:
        assigneeCompanyId:
          type: integer
          format: int64
          description: The company ID of the assignee
        assigneeTeamId:
          type: integer
          format: int64
          description: The team ID of the assignee
        assigneeUserId:
          type: integer
          format: int64
          description: The user ID of the assignee
        bookingId:
          type: integer
          format: int64
          description: The booking ID associated with the issue
        buildingId:
          type: integer
          format: int64
          description: The building ID associated with the issue
        id:
          type: integer
          format: int64
          description: The unique identifier of the issue
        issueStatus:
          type: string
          description: The status of the issue
        issueTypeId:
          type: integer
          format: int64
          description: The issue type ID
        lastUpdated:
          type: string
          format: date-time
          description: The last time the issue was updated
        resolutionTargetDate:
          type: string
          format: date
          description: The target date for resolving the issue
        responseTargetDate:
          type: string
          format: date
          description: The target date for responding to the issue
        subject:
          type: string
          description: The subject of the issue
        timeOfReporting:
          type: string
          format: date-time
          description: The time when the issue was reported
        unitId:
          type: integer
          format: int64
          description: The unit ID associated with the issue
      title: IssueListProjection
    IssueNote:
      type: object
      required:
        - note
        - noteCategory
      properties:
        apiCreated:
          type: boolean
          example: false
          description: Whether the note was created via the API
        contact:
          $ref: '#/components/schemas/ContactSummaryDTO'
        created:
          type: string
          format: date-time
          description: Timestamp when the note was created
        createdByUser:
          $ref: '#/components/schemas/UserDTO'
        id:
          type: integer
          format: int64
          description: The unique identifier of the note
        issue:
          $ref: '#/components/schemas/Issue'
        lastUpdated:
          type: string
          format: date-time
          description: Timestamp when the note was last updated
        note:
          type: string
          description: Content of the note
        noteCategory:
          $ref: '#/components/schemas/NoteCategoryDTO'
        private:
          type: boolean
        updatedByUser:
          $ref: '#/components/schemas/UserDTO'
      title: IssueNote
      description: Note attached to an Issue
    IssuePriorityDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: Unique identifier of the issue priority
        name:
          type: string
          description: Name of the issue priority
        responseHours:
          type: integer
          format: int32
          description: Response hours for the issue priority
        slaHours:
          type: integer
          format: int32
          description: SLA hours for the issue priority
      title: IssuePriorityDTO
    IssuePrioritySummaryDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: The unique identifier of the issue priority
        name:
          type: string
          description: The name of the issue priority
      title: IssuePrioritySummaryDTO
    IssueTypeDTO:
      type: object
      required:
        - name
      properties:
        assigneeCompany:
          $ref: '#/components/schemas/CompanySummaryDTO'
        assigneeTeam:
          $ref: '#/components/schemas/TeamSummaryDTO'
        assigneeUser:
          $ref: '#/components/schemas/UserSummaryDTO'
        building:
          $ref: '#/components/schemas/BuildingSummaryDTO'
        categoryIcon:
          type: string
          description: Category icon of the issue type
        id:
          type: integer
          format: int64
          description: ID of the issue type
        issuePriority:
          $ref: '#/components/schemas/IssuePrioritySummaryDTO'
        name:
          type: string
          description: Name of the issue type
        typeIcon:
          type: string
          description: Type icon of the issue type
      title: IssueTypeDTO
    IssueTypeSummaryDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
          example: 1
          description: Issue type id
        name:
          type: string
          example: Bug
          description: Issue type name
      title: IssueTypeSummaryDTO
    Link:
      type: object
      properties:
        href:
          type: string
          xml:
            name: href
            attribute: true
            wrapped: false
        rel:
          type: string
          xml:
            name: rel
            attribute: true
            wrapped: false
        templated:
          type: boolean
      title: Link
    LocalTime:
      type: object
      properties:
        hour:
          type: integer
          format: int32
        minute:
          type: integer
          format: int32
        nano:
          type: integer
          format: int32
        second:
          type: integer
          format: int32
      title: LocalTime
    LocaleTranslation:
      type: object
      title: LocaleTranslation
    MarketSegmentDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: Unique identifier of the market segment
        name:
          type: string
          description: Name of the market segment
      title: MarketSegmentDTO
    NationalityDTO:
      type: object
      properties:
        countryCodeAlpha2:
          type: string
          description: Country code in Alpha-2 format
        id:
          type: integer
          format: int64
          description: ID of the nationality
        isoCode:
          type: integer
          format: int64
          description: ISO code of the nationality
        name:
          type: string
          description: Name of the nationality
        sortOrder:
          type: integer
          format: int64
          description: Sort order of the nationality
      title: NationalityDTO
    NominalCodeDTO:
      type: object
      properties:
        accountType:
          type: string
          description: The account type of the nominal code
        code:
          type: string
          description: The code of the nominal code
        currency:
          $ref: '#/components/schemas/CurrencyDTO'
        description:
          type: string
          description: The description of the nominal code
        id:
          type: integer
          format: int64
          description: The unique identifier of the nominal code
        type:
          type: string
          description: The type of the nominal code
          enum:
            - BANK
            - CARD
            - OWNER_LIABILITY
            - PURCHASE
            - SALES
      title: NominalCodeDTO
    NoteCategoryDTO:
      type: object
      properties:
        buildingLimit:
          type: integer
          format: int64
        default:
          type: integer
          format: int32
        defaultCategory:
          type: boolean
          example: false
          description: Indicates if this is the default category
        id:
          type: string
          description: Unique identifier of the note category
        name:
          type: string
          description: Name of the note category
        nameLowercase:
          type: string
      title: NoteCategoryDTO
    OrganisationSettingsSummaryDTO:
      type: object
      properties:
        country:
          $ref: '#/components/schemas/CountryDTO'
        currency:
          $ref: '#/components/schemas/CurrencyDTO'
        id:
          type: integer
          format: int64
          example: 1
          description: The unique identifier of the organisation settings
        name:
          type: string
          example: Resharmonics
          description: The name of the organisation
      title: OrganisationSettingsSummaryDTO
    PageMetadata:
      type: object
      properties:
        number:
          type: integer
          format: int64
          xml:
            name: number
            attribute: true
            wrapped: false
        size:
          type: integer
          format: int64
          xml:
            name: size
            attribute: true
            wrapped: false
        totalElements:
          type: integer
          format: int64
          xml:
            name: totalElements
            attribute: true
            wrapped: false
        totalPages:
          type: integer
          format: int64
          xml:
            name: totalPages
            attribute: true
            wrapped: false
      title: PageMetadata
    ProductSummaryDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
          example: 1
          description: Unique identifier of the product
        name:
          type: string
          example: Product 1
          description: Name of the product
        productCode:
          type: string
          example: PROD-001
          description: Code of the product
      title: ProductSummaryDTO
    PropertyRateAvailabilityDTO:
      type: object
      properties:
        buildingId:
          type: integer
          format: int64
          example: 1
          description: >-
            Building ID, this is the ID of the building where the Unit or Unit
            Type is available
        buildingName:
          type: string
          example: Building 1
          description: >-
            Building name, this is the name of the building where the Unit or
            Unit Type is available
        inventoryType:
          type: string
          example: UNIT
          description: Inventory type, can be UNIT or UNIT_TYPE
          enum:
            - UNIT
            - UNIT_TYPE
        inventoryTypeId:
          type: integer
          format: int64
          example: 1
          description: Inventory type ID, this is the ID of the Unit or Unit Type available
        inventoryTypeName:
          type: string
          example: 1 Bedroom Apartment
          description: >-
            Inventory type name, this is the name of the Unit or Unit Type
            available
        rateAvailabilities:
          type: array
          example: []
          description: List of rate availabilities for the Unit or Unit Type
          items:
            $ref: '#/components/schemas/RateAvailabilityDTO'
      title: PropertyRateAvailabilityDTO
    RateAvailabilityDTO:
      type: object
      properties:
        avgRate:
          type: number
          example: 100
          description: Average rate
        avgTotals:
          $ref: '#/components/schemas/GrossNetVat'
        bookingTerms:
          type: string
          example: Non-refundable
          description: Booking terms
        compulsoryExtras:
          type: array
          description: List of compulsory extras included in the rate
          items:
            $ref: '#/components/schemas/Extras'
        currencyCode:
          type: string
          example: USD
          description: Currency code
        currencySymbol:
          type: string
          example: $
          description: Currency symbol
        description:
          type: string
          example: Summer Special Rate
          description: Description of the rate
        dueNow:
          $ref: '#/components/schemas/GrossNetVat'
        extrasDueNow:
          $ref: '#/components/schemas/GrossNetVat'
        initialDeposit:
          type: number
          example: 50
          description: Initial deposit
        interval:
          $ref: '#/components/schemas/DateInterval'
        nights:
          type: integer
          format: int64
          example: 3
          description: Number of nights
        priceFrom:
          $ref: '#/components/schemas/GrossNetVat'
        priceFromInterval:
          type: number
          example: 300
          description: Price from interval
        primaryCurrencyPriceFrom:
          $ref: '#/components/schemas/GrossNetVat'
        promoAvgRate:
          type: number
          example: 80
          description: Promotional average rate
        promoCode:
          type: string
          example: SUMMER21
          description: Promotional code
        promoPriceFrom:
          $ref: '#/components/schemas/GrossNetVat'
        promoTotals:
          $ref: '#/components/schemas/GrossNetVat'
        rateCode:
          type: string
          example: SUMMER21
          description: Rate code
        rateId:
          type: integer
          format: int64
          example: 1
          description: Rate ID
        ratePlanIdentifier:
          type: string
          example: RP123
          description: Rate plan identifier
        rateType:
          type: string
          description: Type of the rate
          enum:
            - DAILY
            - WEEKLY
            - MONTHLY
        shortName:
          type: string
          example: Summer Rate
          description: Short name of the rate
        tokeniseCard:
          type: boolean
          example: true
          description: Tokenise card
        totalDeposit:
          $ref: '#/components/schemas/GrossNetVat'
        totals:
          $ref: '#/components/schemas/GrossNetVat'
        vatInclusive:
          type: boolean
          example: true
          description: VAT inclusive
        webDescription:
          type: string
          example: Special summer rate with discounts
          description: Web description of the rate
      title: RateAvailabilityDTO
    RateDTO:
      type: object
      properties:
        accommodationProduct:
          $ref: '#/components/schemas/ProductSummaryDTO'
        advancePaymentProduct:
          $ref: '#/components/schemas/ProductSummaryDTO'
        bookingType:
          $ref: '#/components/schemas/BookingTypeDTO'
        closedToArrivalAfter:
          type: integer
          format: int32
          description: Closed to arrival after
        currency:
          $ref: '#/components/schemas/CurrencySummaryDTO'
        depositProduct:
          $ref: '#/components/schemas/ProductSummaryDTO'
        derivedDefaultMinLos:
          type: number
          description: Default minimum length of stay for the derived rate
        derivedRate:
          $ref: '#/components/schemas/RateSummaryDTO'
        derivedRateOption:
          type: string
          description: Option for the derived rate
          enum:
            - FLAT
            - PERCENTAGE
        derivedValue:
          type: number
          description: Value of the derived rate
        endDate:
          type: string
          format: date
          description: End date of the rate
        id:
          type: integer
          format: int64
          description: Unique identifier of the rate
        leadTime:
          type: integer
          format: int32
          description: Lead time for the rate
        name:
          type: string
          description: Name of the rate
        occupancyCount:
          type: integer
          format: int32
          description: Occupancy count for the rate
        rateCode:
          type: string
          description: Code of the rate
        rateNote:
          type: string
          description: Note for the rate
        ratePlan:
          $ref: '#/components/schemas/RatePlanSummaryDTO'
        rateType:
          type: string
          description: Type of the rate
          enum:
            - DAILY
            - WEEKLY
            - MONTHLY
        rates:
          type: array
          description: List of rate segments
          items:
            $ref: '#/components/schemas/RateSegmentDTO'
        shortName:
          type: string
          description: Short name of the rate
        startDate:
          type: string
          format: date
          description: Start date of the rate
      title: RateDTO
    RatePlanSummaryDTO:
      type: object
      properties:
        description:
          type: string
        id:
          type: integer
          format: int64
        title:
          type: string
        vatInclusive:
          type: boolean
        webDescription:
          type: string
      title: RatePlanSummaryDTO
    RateSegmentDTO:
      type: object
      properties:
        amount:
          type: number
          description: Amount for the rate segment
        bookable:
          type: boolean
          example: false
          description: Indicates if the rate segment is bookable
        closedToArrival:
          type: boolean
          example: false
          description: Indicates if the rate segment is closed to arrival
        closedToDeparture:
          type: boolean
          example: false
          description: Indicates if the rate segment is closed to departure
        date:
          type: string
          format: date
          description: Date of the rate segment
        id:
          type: integer
          format: int64
          description: Unique identifier of the rate segment
        minStay:
          type: integer
          format: int32
          description: Minimum stay required for the rate segment
      title: RateSegmentDTO
    RateSegmentSnapshotDTO:
      type: object
      properties:
        amount:
          type: number
          description: Amount
        minStay:
          type: integer
          format: int32
          description: Minimum stay
        startDate:
          type: string
          format: date
          description: Start date
      title: RateSegmentSnapshotDTO
    RateSummaryDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: Unique identifier of the rate
        name:
          type: string
          description: Name of the rate
        rateCode:
          type: string
          description: Code of the rate
        rateType:
          type: string
          description: Type of the rate
          enum:
            - DAILY
            - WEEKLY
            - MONTHLY
      title: RateSummaryDTO
    ReasonDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: Unique identifier of the reason
        reason:
          type: string
          description: Description of the reason
        turnedAway:
          type: boolean
          example: false
          description: Indicates if the reason is for being turned away
        type:
          type: string
          description: Type of the reason
          enum:
            - CANCELLATION
            - AMENDMENT
      title: ReasonDTO
    ReferrerDTO:
      type: object
      properties:
        code:
          type: string
          description: Code of the referrer
        id:
          type: integer
          format: int64
          description: Unique identifier of the referrer
        name:
          type: string
          description: Name of the referrer
      title: ReferrerDTO
    RegionDTO:
      type: object
      properties:
        country:
          $ref: '#/components/schemas/CountryDTO'
        id:
          type: integer
          format: int64
          description: Unique identifier of the region
        name:
          type: string
          description: Name of the region
      title: RegionDTO
    RegionListItemProjection:
      type: object
      properties:
        countryId:
          type: integer
          format: int64
          description: Unique identifier of the country
        countryName:
          type: string
          description: Name of the country
        id:
          type: integer
          format: int64
          description: Unique identifier of the region
        regionName:
          type: string
          description: Name of the region
      title: RegionListItemProjection
    RegionSummaryDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
          example: 1
          description: Region ID
        name:
          type: string
          example: West Midlands
          description: Region name
      title: RegionSummaryDTO
    RoomStayDTO:
      type: object
      properties:
        accommodationProduct:
          $ref: '#/components/schemas/ProductSummaryDTO'
        additionalAccessInformation:
          type: string
          description: Additional access information
        agencyCommission:
          type: number
          description: Agency commission
        baseBuyPrice:
          type: number
          description: Base buy price
        baseClientPrice:
          type: number
          description: Base client price
        baseCurrency:
          $ref: '#/components/schemas/CurrencySummaryDTO'
        baseNetAmount:
          type: number
          description: Base net amount
        baseVatAmount:
          type: number
          description: Base VAT amount
        billingAccountOverride:
          $ref: '#/components/schemas/FinanceAccountDTO'
        bookableOnline:
          type: boolean
          example: false
          description: Indicates if the room stay is bookable online
        booking:
          $ref: '#/components/schemas/BookingSummaryDTO'
        buyCurrency:
          $ref: '#/components/schemas/CurrencySummaryDTO'
        buyPrice:
          type: number
          description: Buy price
        clientPrice:
          type: number
          description: Client price
        confirmedDate:
          type: string
          format: date-time
          description: Confirmed date and time
        contractSignedDate:
          type: string
          format: date-time
          description: Contract signed date and time
        conversionDate:
          type: string
          format: date-time
          description: Conversion date and time
        currency:
          $ref: '#/components/schemas/CurrencySummaryDTO'
        depositAmount:
          type: number
          description: Deposit amount
        discountDailyRate:
          type: number
          description: Discount daily rate
        discountNet:
          type: number
          description: Net discount amount
        discountRate:
          type: number
          description: Discount rate
        earlyCheckIn:
          type: boolean
          example: false
          description: Indicates if early check-in is allowed
        endDate:
          type: string
          format: date
          description: End date of the room stay
        estimatedArrivalTime:
          $ref: '#/components/schemas/LocalTime'
        estimatedDepartureTime:
          $ref: '#/components/schemas/LocalTime'
        expiresAt:
          type: string
          format: date-time
          description: Expiration date and time
        extendUntil:
          type: string
          format: date-time
          description: Extend until date and time
        extensionOf:
          $ref: '#/components/schemas/RoomStaySummaryDTO'
        extensionOfOriginal:
          $ref: '#/components/schemas/RoomStaySummaryDTO'
        externalNotes:
          type: string
          description: External notes for the room stay
        holdUntil:
          type: string
          format: date-time
          description: Hold until date and time
        id:
          type: integer
          format: int64
          description: Unique identifier of the room stay
        identifier:
          type: string
          description: Identifier
        lastStatus:
          type: string
          description: Last status of the room stay
          enum:
            - ENQUIRY
            - QUOTED
            - PENDING
            - MEDIATION_REQUIRED
            - CONFIRMED
            - CHECKED_IN
            - CHECKED_OUT
            - COMPLETE
            - CANCELLED
            - LOST
        lastStatusChangeDate:
          type: string
          format: date-time
          description: Last status change date and time
        lateCheckOut:
          type: boolean
          example: false
          description: Indicates if late check-out is allowed
        lockRoomStay:
          type: boolean
          example: false
          description: Indicates if the room stay is locked
        lostReason:
          $ref: '#/components/schemas/ReasonDTO'
        lostReasonNote:
          type: string
          description: Lost reason note
        netAmount:
          type: number
          description: Net amount
        numberOfAdults:
          type: integer
          format: int32
          description: Number of adults
        numberOfChildren:
          type: integer
          format: int32
          description: Number of children
        numberOfGuests:
          type: integer
          format: int64
          description: Number of guests
        numberOfInfants:
          type: integer
          format: int32
          description: Number of infants
        opsInformation:
          type: string
          description: Operational information
        originalRate:
          type: number
          description: Original rate
        originalUnit:
          $ref: '#/components/schemas/UnitSummaryDTO'
        overnightGuestCount:
          type: integer
          format: int32
          description: Overnight guest count
        promotionalCodeAmount:
          type: number
          description: Promotional code amount
        promotionalCodeCode:
          type: string
          description: Promotional code
        promotionalCodeDescription:
          type: string
          description: Promotional code description
        promotionalCodeType:
          type: string
          description: Promotional code type
          enum:
            - DAILY_PERCENTAGE
        rate:
          $ref: '#/components/schemas/RateSummaryDTO'
        reportingBuyPrice:
          type: number
          description: Reporting buy price
        reportingClientPrice:
          type: number
          description: Reporting client price
        reportingNetAmount:
          type: number
          description: Reporting net amount
        reportingVatAmount:
          type: number
          description: Reporting VAT amount
        roomStayStatus:
          type: string
          description: Status of the room stay
          enum:
            - ENQUIRY
            - QUOTED
            - PENDING
            - MEDIATION_REQUIRED
            - CONFIRMED
            - CHECKED_IN
            - CHECKED_OUT
            - COMPLETE
            - CANCELLED
            - LOST
        splitBooking:
          type: boolean
          example: false
          description: Indicates if the booking is split
        startDate:
          type: string
          format: date
          description: Start date of the room stay
        unit:
          $ref: '#/components/schemas/UnitSummaryDTO'
        unitType:
          $ref: '#/components/schemas/UnitTypeSummaryDTO'
        vatAmount:
          type: number
          description: VAT amount
        vatInclusive:
          type: boolean
          example: false
          description: Indicates if VAT is inclusive
        vatProfile:
          $ref: '#/components/schemas/VatProfileDTO'
      title: RoomStayDTO
    RoomStayExtraDTO:
      type: object
      required:
        - description
      properties:
        createCommission:
          type: boolean
          example: false
          description: Indicates if commission creation is required
        description:
          type: string
          description: Description of the room stay extra
        endDate:
          type: string
          format: date
          description: End date of the room stay extra
        extensionRequired:
          type: boolean
          example: false
          description: Indicates if extension is required
        frequency:
          type: string
          description: Frequency of the chargeable extra
          enum:
            - ONE_OFF
            - DAILY
            - WEEKLY
            - MONTHLY
        id:
          type: integer
          format: int64
          example: 1
          description: The unique identifier of the room stay extra
        lockToStay:
          type: boolean
          example: false
          description: Indicates if the room stay extra is locked to stay
        netPrice:
          type: number
          description: Net price of the room stay extra
        organisationSettings:
          $ref: '#/components/schemas/OrganisationSettingsSummaryDTO'
        product:
          $ref: '#/components/schemas/ProductSummaryDTO'
        startDate:
          type: string
          format: date
          description: Start date of the room stay extra
        status:
          type: string
          description: Status of the room stay extra
          enum:
            - ACTIVE
            - CANCELLING
            - CANCELLED
        vatInclusive:
          type: boolean
          example: false
          description: Indicates if the VAT is inclusive
        vatProfile:
          $ref: '#/components/schemas/VatProfileDTO'
      title: RoomStayExtraDTO
    RoomStayStatusUpdateDTO:
      type: object
      properties:
        roomStayId:
          type: integer
          format: int64
          description: The id of the room stay
        status:
          type: string
          description: >-
            The status of the room stay, must be one of PENDING, CONFIRMED,
            CHECKED_IN, CHECKED_OUT, CANCELLED, LOST
          enum:
            - PENDING
            - CONFIRMED
            - CHECKED_IN
            - CHECKED_OUT
            - CANCELLED
            - LOST
      title: RoomStayStatusUpdateDTO
    RoomStayStatusUpdateResultDTO:
      type: object
      properties:
        errorMessage:
          type: string
          description: The error message if the update failed
        roomStayId:
          type: integer
          format: int64
          description: The id of the room stay
        success:
          type: boolean
          example: false
          description: The success status of the update
      title: RoomStayStatusUpdateResultDTO
    RoomStaySummaryDTO:
      type: object
      properties:
        endDate:
          type: string
          format: date
          description: End date of the room stay
        id:
          type: integer
          format: int64
          description: Unique identifier of the room stay
        netAmount:
          type: number
          description: Net amount for the room stay
        numberOfAdults:
          type: integer
          format: int32
          description: Number of adults in the room stay
        numberOfChildren:
          type: integer
          format: int32
          description: Number of children in the room stay
        numberOfInfants:
          type: integer
          format: int32
          description: Number of infants in the room stay
        roomStayStatus:
          type: string
          description: Status of the room stay
          enum:
            - ENQUIRY
            - QUOTED
            - PENDING
            - MEDIATION_REQUIRED
            - CONFIRMED
            - CHECKED_IN
            - CHECKED_OUT
            - COMPLETE
            - CANCELLED
            - LOST
        startDate:
          type: string
          format: date
          description: Start date of the room stay
        vatAmount:
          type: number
          description: VAT amount for the room stay
      title: RoomStaySummaryDTO
    SalesInvoiceDTO:
      type: object
      required:
        - currency
        - dueDate
        - financeAccount
        - invoiceDate
        - organisationSettings
        - type
      properties:
        addressLine1:
          type: string
          description: Address line 1 of the customer
        addressLine2:
          type: string
          description: Address line 2 of the customer
        addressLine3:
          type: string
          description: Address line 3 of the customer
        baseCurrency:
          $ref: '#/components/schemas/CurrencySummaryDTO'
        baseExchangeRate:
          type: number
          description: Base exchange rate applied to the invoice
        baseGross:
          type: number
          description: Base gross amount of the invoice
        baseNet:
          type: number
          description: Base net amount of the invoice
        baseTax:
          type: number
          description: Base tax amount of the invoice
        city:
          type: string
          description: City of the customer
        companyName:
          type: string
          description: Company name associated with the invoice
        country:
          $ref: '#/components/schemas/CountryDTO'
        currency:
          $ref: '#/components/schemas/CurrencySummaryDTO'
        customerName:
          type: string
          description: Customer name associated with the invoice
        customerReference:
          type: string
          description: Customer reference
        dateSent:
          type: string
          format: date
          description: Date when the invoice was sent
        dueDate:
          type: string
          format: date
          description: Due date of the invoice
        eventBookingId:
          type: integer
          format: int64
          description: Event booking ID associated with the invoice
        exchangeRate:
          type: number
          description: Exchange rate applied to the invoice
        exportStatus:
          type: string
          description: Export status of the invoice
          enum:
            - SKIPPED
            - CREATED
            - PENDING
            - SENT
            - EXPORTED
            - FAILED
            - IMPORTED
        exportedDate:
          type: string
          format: date-time
          description: Date when the invoice was exported
        externalId:
          type: string
          description: External ID of the invoice
        externalIdentifier:
          $ref: '#/components/schemas/XeroExternalIdentifierDTO'
        financeAccount:
          $ref: '#/components/schemas/FinanceAccountDTO'
        gross:
          type: number
          description: Gross amount of the invoice
        id:
          type: integer
          format: int64
          description: Unique identifier of the sales invoice
        invoiceDate:
          type: string
          format: date
          description: Date of the invoice
        issueId:
          type: integer
          format: int64
          description: Issue ID associated with the invoice
        net:
          type: number
          description: Net amount of the invoice
        organisationSettings:
          $ref: '#/components/schemas/OrganisationSettingsSummaryDTO'
        outStanding:
          type: number
          description: Outstanding amount of the invoice
        outStandingNet:
          type: number
          description: Outstanding net amount of the invoice
        outStandingVat:
          type: number
          description: Outstanding VAT amount of the invoice
        payableOnline:
          type: boolean
          example: false
          description: Indicates if the invoice is payable online
        payableOnlineReference:
          type: integer
          format: int64
          description: Reference for online payment
        postCode:
          type: string
          description: Post code of the customer
        referenceNumber:
          type: string
          description: Reference number of the invoice
        reportingGross:
          type: number
          description: Reporting gross amount of the invoice
        reportingNet:
          type: number
          description: Reporting net amount of the invoice
        reportingTax:
          type: number
          description: Reporting tax amount of the invoice
        salesInvoiceNumber:
          type: integer
          format: int64
          description: Sales invoice number
        status:
          type: string
          description: Status of the invoice
          enum:
            - DRAFT
            - VOID
            - POSTED
        tax:
          type: number
          description: Tax amount of the invoice
        type:
          type: string
          description: Type of the sales invoice
          enum:
            - SALES_INVOICE
            - SALES_CREDIT
        uuid:
          type: string
          description: UUID of the invoice
      title: SalesInvoiceDTO
    SalesInvoiceItemDTO:
      type: object
      properties:
        amountPaid:
          type: number
          description: Amount paid
        baseCurrency:
          $ref: '#/components/schemas/CurrencySummaryDTO'
        baseGross:
          type: number
          description: Base gross amount
        baseNet:
          type: number
          description: Base net amount
        baseTax:
          type: number
          description: Base tax amount
        baseUnitPrice:
          type: number
          description: Base unit price
        chargeFrom:
          type: string
          format: date
          description: Charge start date
        chargeTo:
          type: string
          format: date
          description: Charge end date
        comment1:
          type: string
          description: First comment
        comment2:
          type: string
          description: Second comment
        currency:
          $ref: '#/components/schemas/CurrencySummaryDTO'
        description:
          type: string
          description: Description of the sales invoice item
        dueDate:
          type: string
          format: date
          description: Due date
        financeAccount:
          $ref: '#/components/schemas/FinanceAccountDTO'
        gross:
          type: number
          description: Gross amount
        id:
          type: integer
          format: int64
          description: ID of the sales invoice item
        invoiceDate:
          type: string
          format: date
          description: Invoice date
        net:
          type: number
          description: Net amount
        nominalCode:
          $ref: '#/components/schemas/NominalCodeDTO'
        ourReference:
          type: string
          description: Our reference
        product:
          $ref: '#/components/schemas/ProductSummaryDTO'
        quantity:
          type: number
          description: Quantity
        reportingGross:
          type: number
          description: Reporting gross amount
        reportingNet:
          type: number
          description: Reporting net amount
        reportingTax:
          type: number
          description: Reporting tax amount
        reportingUnitPrice:
          type: number
          description: Reporting unit price
        roomStay:
          $ref: '#/components/schemas/RoomStaySummaryDTO'
        salesInvoice:
          $ref: '#/components/schemas/SalesInvoiceSummaryDTO'
        status:
          type: string
          description: Status of the invoice item
          enum:
            - DRAFT
            - VOID
            - POSTED
        tax:
          type: number
          description: Tax amount
        taxCode:
          $ref: '#/components/schemas/TaxCodeDTO'
        taxRate:
          type: number
          description: Tax rate
        type:
          type: string
          description: Type of the invoice
          enum:
            - SALES_INVOICE
            - SALES_CREDIT
        unit:
          $ref: '#/components/schemas/UnitSummaryDTO'
        unitPrice:
          type: number
          description: Unit price
        unitPriceIncludesTax:
          type: boolean
          example: false
          description: Indicates if unit price includes tax
        uuid:
          type: string
          description: UUID of the sales invoice item
      title: SalesInvoiceItemDTO
    SalesInvoiceListItemProjection:
      type: object
      properties:
        dueDate:
          type: string
          format: date
          description: The due date of the invoice
        exportStatus:
          type: string
          description: The status of the invoice export
        exportedDate:
          type: string
          format: date
          description: The exported date of the invoice
        externalId:
          type: string
          description: The external id of the invoice
        financeAccount:
          $ref: '#/components/schemas/FinanceAccountProjection'
        id:
          type: integer
          format: int64
          description: The id of the sales invoice
        invoiceDate:
          type: string
          format: date
          description: The date of the invoice
        invoiceNumber:
          type: integer
          format: int64
          description: The invoice number of the sales invoice
        net:
          type: number
          description: The net value of the invoice
        organisationSettingsId:
          type: integer
          format: int64
          description: The organisation settings id of the invoice
        status:
          type: string
          description: The status of the invoice
        tax:
          type: number
          description: The tax value of the invoice
      title: SalesInvoiceListItemProjection
    SalesInvoiceSummaryDTO:
      type: object
      required:
        - dueDate
        - invoiceDate
        - type
      properties:
        dueDate:
          type: string
          format: date
          example: '2023-10-15'
          description: Due date of the invoice
        id:
          type: integer
          format: int64
          example: 1
          description: The unique identifier of the sales invoice
        invoiceDate:
          type: string
          format: date
          example: '2023-10-01'
          description: Date of the invoice
        salesInvoiceNumber:
          type: integer
          format: int64
          example: 1001
          description: Ordering for the sales ledger
        type:
          type: string
          description: Type of the sales invoice
          enum:
            - SALES_INVOICE
            - SALES_CREDIT
      title: SalesInvoiceSummaryDTO
    SaltoAccessGroupProjection:
      type: object
      properties:
        buildingId:
          type: integer
          format: int64
          description: PMS internal building id
        buildingName:
          type: string
          description: PMS internal building name
        externalIdentifier:
          type: string
          description: Access control system identifier for access group
        id:
          type: integer
          format: int64
          description: Id of access group
        name:
          type: string
          description: Name of access group
      title: SaltoAccessGroupProjection
    SettlementTermDTO:
      type: object
      required:
        - settlementAction
        - settlementTrigger
        - settlementType
      properties:
        considerAllInvoiceLines:
          type: boolean
          example: false
          description: Indicates if all invoice lines should be considered
        id:
          type: integer
          format: int64
          example: 1
          description: The unique identifier of the settlement term
        includeOutstandingInvoices:
          type: boolean
          example: false
          description: Indicates if outstanding invoices should be included
        payInAdvance:
          type: boolean
          example: false
          description: Indicates if payment is in advance
        settlementAction:
          type: string
          description: Primary action of the settlement term
          enum:
            - CHARGE_STORED_CARD
            - GO_CARDLESS
            - STRIPE_BACS_DIRECT_DEBIT
            - CREATE_MOCK_RECEIPT
            - NONE
        settlementAction2:
          type: string
          description: Secondary action of the settlement term
          enum:
            - CHARGE_STORED_CARD
            - GO_CARDLESS
            - STRIPE_BACS_DIRECT_DEBIT
            - CREATE_MOCK_RECEIPT
            - NONE
        settlementOffsetDays:
          type: integer
          format: int64
          description: Offset days for the settlement term
        settlementOffsetHours:
          type: integer
          format: int64
          description: Offset hours for the settlement term
        settlementTrigger:
          type: string
          description: Trigger for the settlement term
          enum:
            - TIME_OF_BOOKING
            - ARRIVAL
            - DEPARTURE
            - INVOICE_DUE_DATE
            - NA
        settlementType:
          type: string
          description: Type of the settlement term
          enum:
            - AUTOMATIC
            - MANUAL
        settlementValueAccommodation:
          type: number
          description: Settlement value for accommodation
        settlementValueDeposit:
          type: number
          description: Settlement value for deposit
        settlementValueExtras:
          type: number
          description: Settlement value for extras
        tokeniseCard:
          type: boolean
          example: false
          description: Indicates if the card should be tokenized
      title: SettlementTermDTO
    SettlementTermsConfigDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: The unique identifier of the settlement terms configuration
        initialSettlementTerm:
          $ref: '#/components/schemas/SettlementTermDTO'
        name:
          type: string
          description: The name of the settlement terms configuration
        ongoingSettlementTerm:
          $ref: '#/components/schemas/SettlementTermDTO'
      title: SettlementTermsConfigDTO
    Sort:
      type: object
      title: Sort
    StatusUpdateDTO:
      type: object
      required:
        - status
      properties:
        status:
          type: string
          example: ACTIVE
          description: The new status to be applied to the entity
      title: StatusUpdateDTO
    TagDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: The id of the tag
        name:
          type: string
          description: The name of the tag
        sortOrder:
          type: integer
          format: int32
          description: The sort order of the tag
        tagType:
          $ref: '#/components/schemas/TagTypeDTO'
      title: TagDTO
    TagTypeDTO:
      type: object
      properties:
        category:
          type: string
          description: The category of the tag type
          enum:
            - ACTIVITIES
            - BOOKING
            - CRM_COMPANY
            - CRM_CONTACT
            - ISSUES
            - GLOBAL
            - PROPERTY_UNITS
            - WORKSHEETS
            - ROOM_STAY
        description:
          type: string
          description: The description of the tag type
        id:
          type: integer
          format: int64
          description: The id of the tag type
        name:
          type: string
          description: The name of the tag type
      title: TagTypeDTO
    TaxCodeDTO:
      type: object
      required:
        - code
        - name
        - rate
        - type
      properties:
        code:
          type: string
          description: Code of the tax code
        exportName:
          type: string
          description: Export name of the tax code
        id:
          type: integer
          format: int64
          example: 1
          description: The unique identifier of the tax code
        name:
          type: string
          description: Name of the tax code
        rate:
          type: number
          description: Rate of the tax code
        type:
          type: string
          description: Type of the tax code
          enum:
            - SALES
            - PURCHASE
        xeroTaxType:
          type: string
          description: Xero tax type of the tax code
      title: TaxCodeDTO
    TeamDTO:
      type: object
      required:
        - emailAddress
        - id
        - teamName
        - type
      properties:
        emailAddress:
          type: string
          description: Email address
        id:
          type: integer
          format: int64
          description: Team ID
        teamName:
          type: string
          description: Team name
        type:
          type: string
          description: Team type
          enum:
            - DEFAULT
            - HOUSEKEEPING
      title: TeamDTO
    TeamListItemProjection:
      type: object
      properties:
        id:
          type: integer
          format: int64
          example: 1
          description: Team ID
        teamName:
          type: string
          example: Team A
          description: Team Name
      title: TeamListItemProjection
    TeamSummaryDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: The unique identifier of the team
        teamName:
          type: string
          description: The name of the team
      title: TeamSummaryDTO
    UnitAccessGroupDTO:
      type: object
      required:
        - accessGroup
        - unit
      properties:
        accessGroup:
          $ref: '#/components/schemas/Access_Group_DTO'
        id:
          type: integer
          format: int64
          description: Unique identifier of the Unit Access Group
        unit:
          $ref: '#/components/schemas/UnitSummaryDTO'
      title: UnitAccessGroupDTO
    UnitAccessGroupProjection:
      type: object
      properties:
        accessGroupId:
          type: integer
          format: int64
          description: ID of the Access Group
        accessGroupName:
          type: string
          description: Name of the Access Group
        id:
          type: integer
          format: int64
          description: ID of the Unit Access Group
        unitId:
          type: integer
          format: int64
          description: ID of the Unit
        unitName:
          type: string
          description: Name of the Unit
      title: UnitAccessGroupProjection
    UnitAddressDTO:
      type: object
      properties:
        addressLine1:
          type: string
          description: First line of the address
        addressLine2:
          type: string
          description: Second line of the address
        addressLine3:
          type: string
          description: Third line of the address
        city:
          type: string
          description: City of the address
        country:
          $ref: '#/components/schemas/CountryDTO'
        id:
          type: integer
          format: int64
          description: Unique identifier of the address
        postCode:
          type: string
          description: Postal code of the address
        unit:
          $ref: '#/components/schemas/UnitDTO'
      title: UnitAddressDTO
    UnitDTO:
      type: object
      properties:
        addedOn:
          type: string
          format: date
          description: Date when the unit was added
        apartmentThumbnailUrl:
          type: string
          description: Thumbnail URL of the apartment
        bookable:
          type: boolean
          example: false
          description: Indicates if the unit is bookable
        cleanStatus:
          type: string
          description: Clean status of the unit
          enum:
            - CLEAN
            - DIRTY
            - INSPECTED
        costCentre:
          type: string
          description: Cost centre of the unit
        directions:
          type: string
          description: Directions to the unit
        directionsLang2:
          type: string
          description: Directions to the unit in second language
        directionsLang3:
          type: string
          description: Directions to the unit in third language
        directionsLang4:
          type: string
          description: Directions to the unit in fourth language
        directionsLang5:
          type: string
          description: Directions to the unit in fifth language
        externalId:
          type: integer
          format: int64
          description: External identifier of the unit
        floor:
          type: integer
          format: int32
          description: Floor number of the unit
        floorSpace:
          type: integer
          format: int32
          description: Floor space of the unit
        id:
          type: integer
          format: int64
          description: Unique identifier of the unit
        identifier:
          type: string
          description: Identifier of the unit
        inactive:
          type: boolean
          example: false
          description: Indicates if the unit is inactive
        lastCleaned:
          type: string
          format: date-time
          description: Date and time when the unit was last cleaned
        lastInspected:
          type: string
          format: date-time
          description: Date and time when the unit was last inspected
        name:
          type: string
          description: Name of the unit
        occupancyFrom:
          type: string
          format: date
          description: Date from which the unit is occupied
        occupancyTo:
          type: string
          format: date
          description: Date until which the unit is occupied
        occupied:
          type: boolean
          example: false
          description: Indicates if the unit is occupied
        organisationId:
          type: integer
          format: int64
          description: Organisation ID of the unit
        pricePerExtraGuest:
          type: number
          description: Price per extra guest for the unit
        primaryLockIdentifier:
          type: string
          description: Primary lock identifier of the unit
        publish:
          type: boolean
          example: false
          description: Indicates if the unit is published
        removedOn:
          type: string
          format: date
          description: Date when the unit was removed
        sellableFrom:
          type: string
          format: date
          description: Date from which the unit is sellable
        sellableTo:
          type: string
          format: date
          description: Date until which the unit is sellable
        shortDescription:
          type: string
          description: Short description of the unit
        shortDescriptionLang2:
          type: string
          description: Short description of the unit in second language
        shortDescriptionLang3:
          type: string
          description: Short description of the unit in third language
        shortDescriptionLang4:
          type: string
          description: Short description of the unit in fourth language
        shortDescriptionLang5:
          type: string
          description: Short description of the unit in fifth language
        sortOrder:
          type: integer
          format: int32
          description: Sort order of the unit
        standardOccupancy:
          type: integer
          format: int32
          description: Standard occupancy of the unit
        thirdPartyUrl:
          type: string
          description: Third party URL of the unit
        unitAddress:
          $ref: '#/components/schemas/UnitAddressDTO'
        unitCostCentre:
          $ref: '#/components/schemas/CostCentreDTO'
        unitType:
          $ref: '#/components/schemas/UnitTypeSummaryDTO'
      title: UnitDTO
    UnitListItemProjection:
      type: object
      properties:
        addressLine1:
          type: string
          description: First line of the address
        addressLine2:
          type: string
          description: Second line of the address
        bookable:
          type: boolean
          example: false
          description: Whether the unit is bookable
        buildingName:
          type: string
          description: Name of the building
        city:
          type: string
          description: City of the unit
        id:
          type: integer
          format: int64
          description: ID of the unit
        postCode:
          type: string
          description: Postcode of the unit
        unitName:
          type: string
          description: Name of the unit
        unitTypeName:
          type: string
          description: Type name of the unit
      title: UnitListItemProjection
    UnitSummaryDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
          example: 1
          description: Unique identifier of the unit
        name:
          type: string
          example: Apartment 101
          description: Name of the unit
      title: UnitSummaryDTO
    UnitSummaryProjection:
      type: object
      properties:
        buildingName:
          type: string
          description: Unit Type ID
        id:
          type: integer
          format: int64
          description: Unit ID
        name:
          type: string
          description: Unit Name
      title: UnitSummaryProjection
    UnitTypeDTO:
      type: object
      properties:
        building:
          $ref: '#/components/schemas/BuildingSummaryDTO'
        floorSpaceMax:
          type: integer
          format: int32
          description: Maximum floor space of the unit type
        floorSpaceMin:
          type: integer
          format: int32
          description: Minimum floor space of the unit type
        id:
          type: integer
          format: int64
          description: Unique identifier of the unit type
        longDescription:
          type: string
          description: Long description of the unit type
        longDescriptionLang2:
          type: string
          description: Long description in second language
        longDescriptionLang3:
          type: string
          description: Long description in third language
        longDescriptionLang4:
          type: string
          description: Long description in fourth language
        longDescriptionLang5:
          type: string
          description: Long description in fifth language
        maxInternetBookingLimit:
          type: integer
          format: int64
          description: Maximum internet booking limit for the unit type
        maxOccupancy:
          type: integer
          format: int32
          description: Maximum occupancy for the unit type
        maxStay:
          type: integer
          format: int32
          description: Maximum stay duration for the unit type
        minStay:
          type: integer
          format: int32
          description: Minimum stay duration for the unit type
        name:
          type: string
          description: Name of the unit type
        networkUnitOwner:
          $ref: '#/components/schemas/CompanyDTO'
        numberOfBedrooms:
          type: integer
          format: int32
          description: Number of bedrooms in the unit type
        shortDescription:
          type: string
          description: Short description of the unit type
        shortDescriptionLang2:
          type: string
          description: Short description in second language
        shortDescriptionLang3:
          type: string
          description: Short description in third language
        shortDescriptionLang4:
          type: string
          description: Short description in fourth language
        shortDescriptionLang5:
          type: string
          description: Short description in fifth language
        sortOrder:
          type: integer
          format: int32
          description: Sort order of the unit type
        type:
          type: string
          description: Type of the unit
          enum:
            - STUDIO
            - ONE_BEDROOM
            - TWO_BEDROOM
            - THREE_BEDROOM
            - FOUR_BEDROOM
            - FIVE_BEDROOM
            - SIX_BEDROOM
            - TWIN_ROOM
            - COSY
            - STANDARD
            - COMFY
            - BIG
            - DOUBLE_ROOM
            - TWODIO
            - COSY_STUDIO
            - CLASSIC_STUDIO
            - CLASSIC_PLUS_STUDIO
            - PREMIUM_STUDIO
            - ACCESSIBLE_STUDIO
            - OFFICE
            - PARKING_SPACE
            - MEETING_ROOM
            - COMMUNAL_AREA
            - RETAIL_SPACE
            - SHUFFLE
            - STORAGE_SPACE
            - STORAGE_SPACE_TWO
            - STORAGE_SPACE_THREE
            - STORAGE_SPACE_FOUR
            - STORAGE_SPACE_FIVE
            - STORAGE_SPACE_SIX
        unitTypeCode:
          type: string
      title: UnitTypeDTO
    UnitTypeListItemProjection:
      type: object
      properties:
        buildingId:
          type: integer
          format: int64
          description: ID of the Building
        buildingName:
          type: string
          description: Name of the Building
        developmentId:
          type: integer
          format: int64
          description: ID of the Development
        developmentName:
          type: string
          description: Name of the Development
        id:
          type: integer
          format: int64
          description: ID of the Unit Type
        unitTypeName:
          type: string
          description: Name of the Unit Type
      title: UnitTypeListItemProjection
    UnitTypeSummaryDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
          example: 1
          description: Unique identifier of the unit type
        name:
          type: string
          example: Studio Apartment
          description: Name of the unit type
      title: UnitTypeSummaryDTO
    UserDTO:
      type: object
      properties:
        emailAddress:
          type: string
          description: The email address of the user
        enabled:
          type: boolean
          example: false
          description: Indicates if the user is enabled
        firstName:
          type: string
          description: The first name of the user
        id:
          type: integer
          format: int64
          description: The unique identifier of the user
        jobTitle:
          type: string
          description: The job title of the user
        lastName:
          type: string
          description: The last name of the user
        team:
          $ref: '#/components/schemas/TeamSummaryDTO'
        telephoneNumber:
          type: string
          description: The telephone number of the user
        username:
          type: string
          description: The username of the user
      title: UserDTO
    UserListItemProjection:
      type: object
      properties:
        firstName:
          type: string
          description: The first name of the user
        id:
          type: integer
          format: int64
          description: The unique identifier of the user
        lastName:
          type: string
          description: The last name of the user
        userName:
          type: string
          description: The username of the user
      title: UserListItemProjection
    UserSummaryDTO:
      type: object
      properties:
        firstName:
          type: string
          description: The first name of the user
        id:
          type: integer
          format: int64
          description: The unique identifier of the user
        lastName:
          type: string
          description: The last name of the user
        username:
          type: string
          description: The username of the user
      title: UserSummaryDTO
    VatProfileDTO:
      type: object
      properties:
        description:
          type: string
          description: The description of the VAT profile
        id:
          type: integer
          format: int64
          description: The unique identifier of the VAT profile
        name:
          type: string
          description: The name of the VAT profile
        primaryProfile:
          type: boolean
          example: false
          description: Indicates if this is the primary profile
        systemProfile:
          type: boolean
          example: false
          description: Indicates if this is a system profile
      title: VatProfileDTO
    WebCategoryDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
          example: 1
          description: The unique identifier of the category
        name:
          type: string
          example: Web Development
          description: The name of the category
      title: WebCategoryDTO
    XeroExternalIdentifierDTO:
      type: object
      required:
        - externalId
        - id
      properties:
        exportStatus:
          type: string
          description: Export status
          enum:
            - CREATED
            - EXPORTED
            - FAILED
            - IMPORTED
            - PENDING
            - SENT
            - SKIPPED
        exportedDate:
          type: string
          format: date-time
          description: Exported date
        externalId:
          type: string
          description: External identifier
        id:
          type: integer
          format: int64
          description: Identifier
        organisationSettings:
          $ref: '#/components/schemas/OrganisationSettingsSummaryDTO'
      title: XeroExternalIdentifierDTO
    Access_Group_DTO:
      type: object
      required:
        - building
        - externalIdentifier
        - name
      properties:
        building:
          $ref: '#/components/schemas/BuildingSummaryDTO'
        externalIdentifier:
          type: string
          description: External Identifier of Access Group
        id:
          type: integer
          format: int64
          description: Id of Access Group
        name:
          type: string
          description: Name of Access Group
      title: Access Group DTO
    PagedResources_Resource_ActivityListItemProjection_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_ActivityListItemProjection_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        page:
          $ref: '#/components/schemas/PageMetadata'
      title: PagedResources«Resource«ActivityListItemProjection»»
    PagedResources_Resource_AreaListItemProjection_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_AreaListItemProjection_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        page:
          $ref: '#/components/schemas/PageMetadata'
      title: PagedResources«Resource«AreaListItemProjection»»
    PagedResources_Resource_BookingRoomStayListItemProjection_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_BookingRoomStayListItemProjection_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        page:
          $ref: '#/components/schemas/PageMetadata'
      title: PagedResources«Resource«BookingRoomStayListItemProjection»»
    PagedResources_Resource_BuildingListItemProjection_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_BuildingListItemProjection_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        page:
          $ref: '#/components/schemas/PageMetadata'
      title: PagedResources«Resource«BuildingListItemProjection»»
    PagedResources_Resource_ChargeableExtraDTO_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_ChargeableExtraDTO_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        page:
          $ref: '#/components/schemas/PageMetadata'
      title: PagedResources«Resource«ChargeableExtraDTO»»
    PagedResources_Resource_CityListItemProjection_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_CityListItemProjection_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        page:
          $ref: '#/components/schemas/PageMetadata'
      title: PagedResources«Resource«CityListItemProjection»»
    PagedResources_Resource_CompanyListItemProjection_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_CompanyListItemProjection_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        page:
          $ref: '#/components/schemas/PageMetadata'
      title: PagedResources«Resource«CompanyListItemProjection»»
    PagedResources_Resource_ContactListItemProjection_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_ContactListItemProjection_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        page:
          $ref: '#/components/schemas/PageMetadata'
      title: PagedResources«Resource«ContactListItemProjection»»
    PagedResources_Resource_CountryListItemProjection_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_CountryListItemProjection_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        page:
          $ref: '#/components/schemas/PageMetadata'
      title: PagedResources«Resource«CountryListItemProjection»»
    PagedResources_Resource_DevelopmentListItemProjection_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_DevelopmentListItemProjection_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        page:
          $ref: '#/components/schemas/PageMetadata'
      title: PagedResources«Resource«DevelopmentListItemProjection»»
    PagedResources_Resource_GuestStayListItemProjection_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_GuestStayListItemProjection_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        page:
          $ref: '#/components/schemas/PageMetadata'
      title: PagedResources«Resource«GuestStayListItemProjection»»
    PagedResources_Resource_IssueListProjection_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_IssueListProjection_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        page:
          $ref: '#/components/schemas/PageMetadata'
      title: PagedResources«Resource«IssueListProjection»»
    PagedResources_Resource_RateDTO_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_RateDTO_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        page:
          $ref: '#/components/schemas/PageMetadata'
      title: PagedResources«Resource«RateDTO»»
    PagedResources_Resource_RegionListItemProjection_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_RegionListItemProjection_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        page:
          $ref: '#/components/schemas/PageMetadata'
      title: PagedResources«Resource«RegionListItemProjection»»
    PagedResources_Resource_SalesInvoiceListItemProjection_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_SalesInvoiceListItemProjection_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        page:
          $ref: '#/components/schemas/PageMetadata'
      title: PagedResources«Resource«SalesInvoiceListItemProjection»»
    PagedResources_Resource_SaltoAccessGroupProjection_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_SaltoAccessGroupProjection_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        page:
          $ref: '#/components/schemas/PageMetadata'
      title: PagedResources«Resource«SaltoAccessGroupProjection»»
    PagedResources_Resource_TeamListItemProjection_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_TeamListItemProjection_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        page:
          $ref: '#/components/schemas/PageMetadata'
      title: PagedResources«Resource«TeamListItemProjection»»
    PagedResources_Resource_UnitAccessGroupProjection_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_UnitAccessGroupProjection_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        page:
          $ref: '#/components/schemas/PageMetadata'
      title: PagedResources«Resource«UnitAccessGroupProjection»»
    PagedResources_Resource_UnitListItemProjection_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_UnitListItemProjection_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        page:
          $ref: '#/components/schemas/PageMetadata'
      title: PagedResources«Resource«UnitListItemProjection»»
    PagedResources_Resource_UnitTypeListItemProjection_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_UnitTypeListItemProjection_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        page:
          $ref: '#/components/schemas/PageMetadata'
      title: PagedResources«Resource«UnitTypeListItemProjection»»
    PagedResources_Resource_UserListItemProjection_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_UserListItemProjection_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        page:
          $ref: '#/components/schemas/PageMetadata'
      title: PagedResources«Resource«UserListItemProjection»»
    Page_Resource_ChannelDTO_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_ChannelDTO_'
        first:
          type: boolean
        last:
          type: boolean
        number:
          type: integer
          format: int32
        numberOfElements:
          type: integer
          format: int32
        size:
          type: integer
          format: int32
        sort:
          $ref: '#/components/schemas/Sort'
        totalElements:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int32
      title: Page«Resource«ChannelDTO»»
    Resources_ContactNoteDTO_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/ContactNoteDTO'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resources«ContactNoteDTO»
    Resources_FinancialDTO_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/FinancialDTO'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resources«FinancialDTO»
    Resources_RateSegmentSnapshotDTO_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/RateSegmentSnapshotDTO'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resources«RateSegmentSnapshotDTO»
    Resources_Resource_ActivityDTO_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_ActivityDTO_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resources«Resource«ActivityDTO»»
    Resources_Resource_ActivityNoteDTO_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_ActivityNoteDTO_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resources«Resource«ActivityNoteDTO»»
    Resources_Resource_AvailabilityIntervalDto_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_AvailabilityIntervalDto_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resources«Resource«AvailabilityIntervalDto»»
    Resources_Resource_BillingFrequencyDTO_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_BillingFrequencyDTO_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resources«Resource«BillingFrequencyDTO»»
    Resources_Resource_BookingNoteDTO_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_BookingNoteDTO_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resources«Resource«BookingNoteDTO»»
    Resources_Resource_BookingTypeDTO_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_BookingTypeDTO_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resources«Resource«BookingTypeDTO»»
    Resources_Resource_ChargeableExtraDTO_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_ChargeableExtraDTO_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resources«Resource«ChargeableExtraDTO»»
    Resources_Resource_GuestStayDTO_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_GuestStayDTO_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resources«Resource«GuestStayDTO»»
    Resources_Resource_IndustryDTO_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_IndustryDTO_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resources«Resource«IndustryDTO»»
    Resources_Resource_IssueNote_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_IssueNote_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resources«Resource«IssueNote»»
    Resources_Resource_IssuePriorityDTO_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_IssuePriorityDTO_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resources«Resource«IssuePriorityDTO»»
    Resources_Resource_IssueTypeDTO_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_IssueTypeDTO_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resources«Resource«IssueTypeDTO»»
    Resources_Resource_MarketSegmentDTO_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_MarketSegmentDTO_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resources«Resource«MarketSegmentDTO»»
    Resources_Resource_NationalityDTO_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_NationalityDTO_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resources«Resource«NationalityDTO»»
    Resources_Resource_PropertyRateAvailabilityDTO_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_PropertyRateAvailabilityDTO_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resources«Resource«PropertyRateAvailabilityDTO»»
    Resources_Resource_ReferrerDTO_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_ReferrerDTO_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resources«Resource«ReferrerDTO»»
    Resources_Resource_RoomStayExtraDTO_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_RoomStayExtraDTO_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resources«Resource«RoomStayExtraDTO»»
    Resources_Resource_RoomStayStatusUpdateResultDTO_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_RoomStayStatusUpdateResultDTO_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resources«Resource«RoomStayStatusUpdateResultDTO»»
    Resources_Resource_SalesInvoiceItemDTO_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_SalesInvoiceItemDTO_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resources«Resource«SalesInvoiceItemDTO»»
    Resources_Resource_TagDTO_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_TagDTO_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resources«Resource«TagDTO»»
    Resources_Resource_UnitAccessGroupDTO_:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/Resource_UnitAccessGroupDTO_'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resources«Resource«UnitAccessGroupDTO»»
    Resources_string_:
      type: object
      properties:
        content:
          type: array
          items:
            type: string
            enum:
              - OPEN
              - STARTED
              - RESOLVED
              - CLOSED
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resources«string»
    Resource_Access_Group_DTO_:
      type: object
      required:
        - building
        - externalIdentifier
        - name
      properties:
        building:
          $ref: '#/components/schemas/BuildingSummaryDTO'
        externalIdentifier:
          type: string
          description: External Identifier of Access Group
        id:
          type: integer
          format: int64
          description: Id of Access Group
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        name:
          type: string
          description: Name of Access Group
      title: Resource«Access Group DTO»
    Resource_ActivityDTO_:
      type: object
      properties:
        activityTemplateId:
          type: integer
          format: int64
          description: Activity template ID
        activityType:
          $ref: '#/components/schemas/ActivityTypeDTO'
        booking:
          $ref: '#/components/schemas/BookingSummaryDTO'
        building:
          $ref: '#/components/schemas/BuildingSummaryDTO'
        chargeableExtraId:
          type: integer
          format: int64
          description: Chargeable extra ID
        checklistRequired:
          type: boolean
          example: false
          description: Whether a checklist is required for the Activity
        closedByUser:
          $ref: '#/components/schemas/UserSummaryDTO'
        closedDate:
          type: string
          format: date-time
          description: Closed date of the Activity
        closedLocation:
          type: string
          description: Closed location of the Activity
        companyAssignee:
          $ref: '#/components/schemas/CompanySummaryDTO'
        completedLocation:
          type: string
          description: Completed location of the Activity
        consumableItemType:
          type: string
          description: Consumable item type of the Activity
          enum:
            - LAUNDRY
        contactId:
          $ref: '#/components/schemas/ContactSummaryDTO'
        content:
          type: string
          description: Content of the Activity
        dueDate:
          type: string
          format: date
          description: Due date of the Activity
        duration:
          type: integer
          format: int32
          description: Duration of the Activity
        elapsedTime:
          type: integer
          format: int64
          description: Elapsed time of the Activity
        generated:
          type: boolean
          example: false
          description: Whether the Activity is generated
        guestStayId:
          $ref: '#/components/schemas/GuestStaySummaryDTO'
        id:
          type: integer
          format: int64
          description: ID of the Activity
        issue:
          $ref: '#/components/schemas/Issue'
        keyLocationId:
          type: integer
          format: int64
          description: Key location ID of the Activity
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        originalScheduledDate:
          type: string
          format: date-time
          description: Original scheduled date of the Activity
        ppmId:
          type: integer
          format: int64
          description: PPM ID of the Activity
        priority:
          type: string
          description: Priority of the Activity
          enum:
            - ONE
            - TWO
            - THREE
            - FOUR
            - FIVE
        resolvedByUser:
          $ref: '#/components/schemas/UserSummaryDTO'
        resolvedDate:
          type: string
          format: date-time
          description: Resolved date of the Activity
        restrictsAvailability:
          type: boolean
          example: false
          description: Whether the Activity restricts availability
        roomStay:
          $ref: '#/components/schemas/RoomStaySummaryDTO'
        roomStayExtraId:
          type: integer
          format: int64
          description: Room stay extra ID
        scheduledDate:
          type: string
          format: date-time
          description: Scheduled date of the Activity
        startedByUser:
          $ref: '#/components/schemas/UserSummaryDTO'
        startedDate:
          type: string
          format: date-time
          description: Started date of the Activity
        startedLocation:
          type: string
          description: Started location of the Activity
        status:
          type: string
          description: Status of the Activity
          enum:
            - OPEN
            - STARTED
            - RESOLVED
            - CLOSED
        subject:
          type: string
          description: Subject of the Activity
        teamAssignee:
          $ref: '#/components/schemas/TeamDTO'
        tracksUnitAmendments:
          type: boolean
          example: false
          description: Whether the Activity tracks unit amendments
        unit:
          $ref: '#/components/schemas/UnitSummaryDTO'
        unitType:
          $ref: '#/components/schemas/UnitTypeSummaryDTO'
        userAssignee:
          $ref: '#/components/schemas/UserSummaryDTO'
        uuid:
          type: string
          description: UUID of the Activity
      title: Resource«ActivityDTO»
    Resource_ActivityListItemProjection_:
      type: object
      properties:
        activityType:
          type: string
          description: Activity Type
          readOnly: true
        assigneeCompanyId:
          type: integer
          format: int64
          description: Assignee Company ID
          readOnly: true
        assigneeCompanyName:
          type: string
          description: Assignee Company Name
          readOnly: true
        assigneeTeamId:
          type: integer
          format: int64
          description: Assignee Team ID
          readOnly: true
        assigneeTeamName:
          type: string
          description: Assignee Team Name
          readOnly: true
        assigneeUserId:
          type: integer
          format: int64
          description: Assignee User ID
          readOnly: true
        assigneeUserUserName:
          type: string
          description: Assignee User Username
          readOnly: true
        bookingId:
          type: integer
          format: int64
          description: Booking ID
          readOnly: true
        bookingReference:
          type: string
          description: Booking Reference
          readOnly: true
        buildingId:
          type: integer
          format: int64
          description: Building ID
          readOnly: true
        buildingName:
          type: string
          description: Building Name
          readOnly: true
        dueDate:
          type: string
          format: date
          description: Due Date
          readOnly: true
        id:
          type: integer
          format: int64
          description: ID
          readOnly: true
        issueId:
          type: integer
          format: int64
          description: Issue ID
          readOnly: true
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        scheduledDate:
          type: string
          format: date-time
          description: Scheduled Date
          readOnly: true
        status:
          type: string
          description: Status
          readOnly: true
        subject:
          type: string
          description: Subject
          readOnly: true
        unitId:
          type: integer
          format: int64
          description: Unit ID
          readOnly: true
        unitName:
          type: string
          description: Unit Name
          readOnly: true
      title: Resource«ActivityListItemProjection»
    Resource_ActivityNoteDTO_:
      type: object
      properties:
        activity:
          $ref: '#/components/schemas/ActivitySummaryDTO'
        building:
          $ref: '#/components/schemas/BuildingSummaryDTO'
        created:
          type: string
          format: date-time
          description: Creation timestamp of the note
        createdBy:
          $ref: '#/components/schemas/UserSummaryDTO'
        id:
          type: integer
          format: int64
          description: Unique identifier of the activity note
        lastUpdated:
          type: string
          format: date-time
          description: Timestamp of the last update
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        note:
          type: string
          description: Content of the note
        noteCategory:
          $ref: '#/components/schemas/NoteCategoryDTO'
        private:
          type: boolean
        updatedBy:
          $ref: '#/components/schemas/UserSummaryDTO'
      title: Resource«ActivityNoteDTO»
    Resource_AreaDTO_:
      type: object
      properties:
        city:
          $ref: '#/components/schemas/CitySummaryDTO'
        id:
          type: integer
          format: int64
          description: ID of the area
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        name:
          type: string
          description: Name of the area
      title: Resource«AreaDTO»
    Resource_AreaListItemProjection_:
      type: object
      properties:
        areaName:
          type: string
          description: Name of the area
        cityId:
          type: integer
          format: int64
        cityName:
          type: string
        id:
          type: integer
          format: int64
          description: ID of the area
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resource«AreaListItemProjection»
    Resource_AvailabilityIntervalDto_:
      type: object
      properties:
        available:
          type: boolean
        endDate:
          type: string
          format: date
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        startDate:
          type: string
          format: date
      title: Resource«AvailabilityIntervalDto»
    Resource_BillingFrequencyDTO_:
      type: object
      properties:
        code:
          type: string
          example: M
          description: The code of the billing frequency
        id:
          type: integer
          format: int64
          example: 1
          description: The unique identifier of the billing frequency
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        name:
          type: string
          example: Monthly
          description: The name of the billing frequency
        systemType:
          type: boolean
          example: true
          description: The system type of the billing frequency
      title: Resource«BillingFrequencyDTO»
    Resource_BookingDTO_:
      type: object
      properties:
        agentCode:
          type: string
          description: The agent code
        behalfOf:
          type: string
          description: Behalf of
        billingAccount:
          $ref: '#/components/schemas/FinanceAccountDTO'
        billingContact:
          $ref: '#/components/schemas/ContactSummaryDTO'
        billingFrequency:
          $ref: '#/components/schemas/BillingFrequencyDTO'
        billingType:
          type: string
          description: The billing type
          enum:
            - ON_ACCOUNT
            - CREDIT_CARD
            - CASH_PAYMENT
            - BANK_PAYMENT
            - VIRTUAL_CARD
        bookableOnline:
          type: boolean
          example: false
          description: Whether it is bookable online
        bookingAccount:
          $ref: '#/components/schemas/FinanceAccountDTO'
        bookingContact:
          $ref: '#/components/schemas/ContactSummaryDTO'
        bookingEnquiryData:
          $ref: '#/components/schemas/BookingEnquiryDataDTO'
        bookingExtrasNet:
          type: number
          description: The booking extras net
        bookingExtrasVat:
          type: number
          description: The booking extras VAT
        bookingNet:
          type: number
          description: The booking net
        bookingReference:
          type: string
          description: The booking reference
        bookingTerms:
          $ref: '#/components/schemas/BookingTermsDTO'
        bookingType:
          $ref: '#/components/schemas/BookingTypeDTO'
        bookingVat:
          type: number
          description: The booking VAT
        budgetPerNight:
          type: number
          description: The budget per night
        channel:
          $ref: '#/components/schemas/ChannelSummaryDTO'
        channelCode:
          type: string
          description: The channel code
        commissionFeeToAgent:
          type: number
          description: The commission fee to agent
        commissionFromNetworkNet:
          type: number
          description: Commission from network net
        commissionFromNetworkVat:
          type: number
          description: Commission from network VAT
        commissionRateToAgent:
          type: number
          description: The commission rate to agent
        commissionToAgentNet:
          type: number
          description: The commission to agent net
        commissionToAgentVat:
          type: number
          description: Commission to agent VAT
        customerReference:
          type: string
          description: The customer reference
        emailTo:
          type: string
          description: Email to
          enum:
            - BOOKING_CONTACT
            - BOOKING_GUESTS
            - BOOKING_CONTACT_AND_GUESTS
        externalId:
          type: integer
          format: int32
          description: The external ID
        guarantor:
          $ref: '#/components/schemas/ContactSummaryDTO'
        id:
          type: integer
          format: int64
          description: The id of the booking
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        otaBookingReference:
          type: string
          description: The OTA booking reference
        payOnArrival:
          type: boolean
          example: false
          description: Whether to pay on arrival
        payableOnlineReference:
          type: integer
          format: int64
          description: The payable online reference
        quoteByArea:
          type: boolean
          example: false
          description: Whether to quote by area
        referrer:
          $ref: '#/components/schemas/ReferrerDTO'
        rentalsUnitedCreated:
          type: boolean
          example: false
          description: Whether it is created by rentals united
        requestedLocation:
          type: string
          description: The requested location
        requestedUnitType:
          type: string
          description: The requested unit type
        siteminderCreated:
          type: boolean
          example: false
          description: Whether it is created by siteminder
        webBookingComplete:
          type: boolean
          example: false
          description: Whether the web booking is complete
        webReference:
          type: string
          description: The web reference
      title: Resource«BookingDTO»
    Resource_BookingNoteDTO_:
      type: object
      properties:
        booking:
          $ref: '#/components/schemas/BookingSummaryDTO'
        id:
          type: integer
          format: int64
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        note:
          type: string
        noteCategory:
          $ref: '#/components/schemas/NoteCategoryDTO'
        roomStay:
          $ref: '#/components/schemas/RoomStaySummaryDTO'
      title: Resource«BookingNoteDTO»
    Resource_BookingPriceBreakdown_:
      type: object
      properties:
        currencyCode:
          type: string
        currencySymbol:
          type: string
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        total:
          $ref: '#/components/schemas/GrossNetVat'
        totalDueNow:
          $ref: '#/components/schemas/GrossNetVat'
        totalOutstanding:
          type: number
      title: Resource«BookingPriceBreakdown»
    Resource_BookingRoomStayListItemProjection_:
      type: object
      properties:
        billingAccount:
          $ref: '#/components/schemas/FinanceAccountProjection'
        bookingAccount:
          $ref: '#/components/schemas/FinanceAccountProjection'
        bookingContact:
          $ref: '#/components/schemas/ContactProjection'
        bookingId:
          type: integer
          format: int64
          description: The id of the booking
        bookingReference:
          type: string
          description: The reference of the booking
        channelId:
          type: integer
          format: int64
          description: The id of the channel for the booking
        channelName:
          type: string
          description: The name of the channel for the booking
        endDate:
          type: string
          format: date
          description: The end date of the room stay
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        netAmount:
          type: number
          description: The net amount of the room stay
        roomStayId:
          type: integer
          format: int64
          description: The id of the room stay
        roomStayStatus:
          type: string
          description: The status of the room stay
        startDate:
          type: string
          format: date
          description: The start date of the room stay
        unit:
          $ref: '#/components/schemas/UnitSummaryProjection'
        vatAmount:
          type: number
          description: The VAT amount of the room stay
      title: Resource«BookingRoomStayListItemProjection»
    Resource_BookingTypeDTO_:
      type: object
      properties:
        billingType:
          type: string
          description: The billing type of the booking
          enum:
            - ON_ACCOUNT
            - CREDIT_CARD
            - CASH_PAYMENT
            - BANK_PAYMENT
            - VIRTUAL_CARD
        description:
          type: string
          description: The description of the booking type
        emailTo:
          type: string
          description: The email recipient of the booking
          enum:
            - BOOKING_CONTACT
            - BOOKING_GUESTS
            - BOOKING_CONTACT_AND_GUESTS
        id:
          type: integer
          format: int64
          description: The unique identifier of the booking type
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        name:
          type: string
          description: The name of the booking type
        shortCode:
          type: string
          description: The short code of the booking type
        systemBookingType:
          type: boolean
          example: false
          description: Indicates if it is a system booking type
        systemName:
          type: string
          description: The system name of the booking type
      title: Resource«BookingTypeDTO»
    Resource_BuildingDTO_:
      type: object
      properties:
        bookingType:
          $ref: '#/components/schemas/BookingTypeDTO'
        buildingAddress:
          $ref: '#/components/schemas/BuildingAddressDTO'
        buildingManagementType:
          type: string
          description: >-
            The type of building management MANAGED or AGENCY. MANAGED by the
            operator, AGENCY by a third party.
          enum:
            - MANAGED
            - AGENCY
        development:
          $ref: '#/components/schemas/DevelopmentSummaryDTO'
        directions:
          type: string
          description: Directions to the building
        directionsLang2:
          type: string
          description: Directions in second language
        directionsLang3:
          type: string
          description: Directions in third language
        directionsLang4:
          type: string
          description: Directions in fourth language
        directionsLang5:
          type: string
          description: Directions in fifth language
        houseRules:
          type: string
          description: House rules of the building
        id:
          type: integer
          format: int64
          description: The unique identifier of the building
        latitude:
          type: number
          description: Latitude coordinate of the building
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        longDescription:
          type: string
          description: Long description of the building
        longDescriptionLang2:
          type: string
          description: Long description in second language
        longDescriptionLang3:
          type: string
          description: Long description in third language
        longDescriptionLang4:
          type: string
          description: Long description in fourth language
        longDescriptionLang5:
          type: string
          description: Long description in fifth language
        longitude:
          type: number
          description: Longitude coordinate of the building
        maxStay:
          type: integer
          format: int32
          description: Maximum stay duration in the building
        minStay:
          type: integer
          format: int32
          description: Minimum stay duration in the building
        name:
          type: string
          description: Name of the building
        networkOperator:
          $ref: '#/components/schemas/CompanySummaryDTO'
        saltoSpaceServiceId:
          type: string
          description: Salto space service identifier
        shortDescription:
          type: string
          description: Short description of the building
        shortDescriptionLang2:
          type: string
          description: Short description in second language
        shortDescriptionLang3:
          type: string
          description: Short description in third language
        shortDescriptionLang4:
          type: string
          description: Short description in fourth language
        shortDescriptionLang5:
          type: string
          description: Short description in fifth language
        shortName:
          type: string
          description: Short name of the building
        siteId:
          type: string
          description: Site identifier of the building for access control systems
        thirdPartyUrl:
          type: string
          description: Third party URL associated with the building
        uuid:
          type: string
          description: UUID of the building
      title: Resource«BuildingDTO»
    Resource_BuildingListItemProjection_:
      type: object
      properties:
        addressLine1:
          type: string
          description: First line of the building's address
        addressLine2:
          type: string
          description: Second line of the building's address
        areaId:
          type: string
          description: Unique identifier of the area
        areaName:
          type: string
          description: Name of the area
        buildingName:
          type: string
          description: Name of the building
        city:
          type: string
          description: City where the building is located
        developmentId:
          type: string
          description: Unique identifier of the development
        developmentName:
          type: string
          description: Name of the development
        id:
          type: integer
          format: int64
          description: Unique identifier of the building
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        postCode:
          type: string
          description: Postal code of the building
      title: Resource«BuildingListItemProjection»
    Resource_ChannelDTO_:
      type: object
      properties:
        autoPayDueInvoices:
          type: boolean
        autoPayDueInvoicesDaysBefore:
          type: integer
          format: int32
        availableToAll:
          type: boolean
        bookingType:
          $ref: '#/components/schemas/BookingTypeDTO'
        channelType:
          type: string
          enum:
            - OTA
            - AGENT
            - GENERAL
            - OWNER
        commissionBasis:
          type: string
          enum:
            - GROSS
            - NET
        commissionInvoiceType:
          type: string
          enum:
            - SALES_CREDIT
            - PURCHASE_INVOICE
            - DO_NOT_GENERATE
        commissionRequired:
          type: boolean
        deductedAtSource:
          type: boolean
        defaultCommissionRate:
          type: number
        id:
          type: integer
          format: int64
        includeCommissionInExtendedInvoiceDescription:
          type: boolean
        includeCommissionInFinancialExport:
          type: boolean
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        name:
          type: string
        operator:
          $ref: '#/components/schemas/CompanySummaryDTO'
        systemType:
          type: boolean
        vatIncludedInCommission:
          type: boolean
        vatProfile:
          $ref: '#/components/schemas/VatProfileDTO'
      title: Resource«ChannelDTO»
    Resource_ChargeableExtraDTO_:
      type: object
      properties:
        allowDescriptionAmendment:
          type: boolean
          example: true
          description: Flag indicating if description amendment is allowed
        allowNetAmendment:
          type: boolean
          example: true
          description: Flag indicating if net amendment is allowed
        billing_frequency:
          type: string
          example: MONTHLY
          description: Billing frequency of the chargeable extra
          enum:
            - ONE_OFF
            - DAILY
            - WEEKLY
            - MONTHLY
        building:
          $ref: '#/components/schemas/BuildingSummaryDTO'
        description:
          type: string
          example: Extra bed
          description: Description of the chargeable extra
        descriptionLang2:
          type: string
          example: Cama extra
          description: Description in second language
        descriptionLang3:
          type: string
          example: Lit supplémentaire
          description: Description in third language
        descriptionLang4:
          type: string
          example: Letto extra
          description: Description in fourth language
        descriptionLang5:
          type: string
          example: Zusatzbett
          description: Description in fifth language
        id:
          type: integer
          format: int64
          example: 1
          description: Unique identifier for the chargeable extra
        includeAdults:
          type: boolean
          example: true
          description: Flag indicating if adults are included
        includeChildren:
          type: boolean
          example: true
          description: Flag indicating if children are included
        includeInfants:
          type: boolean
          example: true
          description: Flag indicating if infants are included
        includedInRate:
          type: boolean
          example: true
          description: Flag indicating if the chargeable extra is included in the rate
        lengthOfStay:
          type: number
          example: 3
          description: Length of stay for the chargeable extra
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        netPrice:
          type: number
          example: 100
          description: Net price of the chargeable extra
        organisationSettings:
          $ref: '#/components/schemas/OrganisationSettingsSummaryDTO'
        perGuestFee:
          type: boolean
          example: true
          description: Flag indicating if the fee is per guest
        petIncluded:
          type: boolean
          example: true
          description: Flag indicating if pets are included
        prepTimeUnit:
          type: string
          example: HOURS
          description: Preparation time unit for the chargeable extra
          enum:
            - MINUTES
            - HOURS
            - DAYS
            - WEEKS
            - MONTHS
        prepTimeValue:
          type: integer
          format: int64
          example: 2
          description: Preparation time value for the chargeable extra
        product:
          $ref: '#/components/schemas/ProductSummaryDTO'
        selectableInIBE:
          type: boolean
          example: true
          description: Flag indicating if selectable in IBE
        unitType:
          $ref: '#/components/schemas/UnitTypeSummaryDTO'
        vatInclusive:
          type: boolean
          example: true
          description: Flag indicating if VAT is inclusive
        vatProfile:
          $ref: '#/components/schemas/VatProfileDTO'
        webCategory:
          $ref: '#/components/schemas/WebCategoryDTO'
        webDescription:
          type: string
          example: Extra bed for children
          description: Web description of the chargeable extra
      title: Resource«ChargeableExtraDTO»
    Resource_CityDTO_:
      type: object
      properties:
        id:
          type: integer
          format: int64
          example: 1
          description: City ID
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        name:
          type: string
          example: Birmingham
          description: City name
        region:
          $ref: '#/components/schemas/RegionSummaryDTO'
      title: Resource«CityDTO»
    Resource_CityListItemProjection_:
      type: object
      properties:
        cityName:
          type: string
          description: Name of the city
        id:
          type: integer
          format: int64
          description: Unique identifier for the city
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        regionId:
          type: integer
          format: int64
        regionName:
          type: string
      title: Resource«CityListItemProjection»
    Resource_CompanyDTO_:
      type: object
      required:
        - companyName
      properties:
        bankAccountName:
          type: string
          description: The bank account name of the company
        bankAccountNo:
          type: string
          description: The bank account number of the company
        bankBicCode:
          type: string
          description: The bank BIC code of the company
        bankIbanCode:
          type: string
          description: The bank IBAN code of the company
        bankName:
          type: string
          description: The bank name of the company
        bankSortCode:
          type: string
          description: The bank sort code of the company
        billingAddress:
          $ref: '#/components/schemas/CompanyAddressDTO'
        companyFinanceAccount:
          $ref: '#/components/schemas/CompanyFinanceAccountDTO'
        companyName:
          type: string
          description: The name of the company
        companyNumber:
          type: string
          description: The registration number of the company
        consolidatedBilling:
          type: boolean
          example: false
          description: Indicates if the company uses consolidated billing
        creditAccount:
          type: boolean
          example: false
          description: Indicates if the company has a credit account
        creditCheckDate:
          type: string
          format: date
          description: The date of the company's credit check
        creditCheckOk:
          type: boolean
          example: false
          description: Indicates if the company's credit check is okay
        creditLimit:
          type: number
          description: The credit limit of the company
        emailTo:
          type: string
          description: The email to details for the company
          enum:
            - BOOKING_CONTACT
            - BOOKING_GUESTS
            - BOOKING_CONTACT_AND_GUESTS
        hasPublicLiability:
          type: boolean
          example: false
          description: Indicates if the company has public liability
        id:
          type: integer
          format: int64
          description: The unique identifier of the company
          readOnly: true
        industry:
          $ref: '#/components/schemas/IndustryDTO'
        liabilityAmount:
          type: number
          description: The liability amount of the company
        lifecycleStage:
          type: string
          description: The lifecycle stage of the company
          enum:
            - LEAD
            - QUALIFIED
            - DISQUALIFIED
            - OPPORTUNITY
            - CUSTOMER
        linkCode:
          type: string
          description: The link code of the company
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        marketSegment:
          $ref: '#/components/schemas/MarketSegmentDTO'
        parentCompany:
          $ref: '#/components/schemas/CompanyDTO'
        paymentTerm:
          type: number
          description: The payment term of the company
        primaryCompanyAddress:
          $ref: '#/components/schemas/CompanyAddressDTO'
        primaryCompanyEmailAddress:
          $ref: '#/components/schemas/CompanyEmailAddressDTO'
        primaryCompanyTelephoneNumber:
          $ref: '#/components/schemas/CompanyTelephoneNumberDTO'
        referrer:
          $ref: '#/components/schemas/ReferrerDTO'
        riskAssessment:
          type: boolean
          example: false
          description: Indicates if the company has a risk assessment
        source:
          type: string
          description: The source of the company
          enum:
            - OFFLINE_SOURCE
            - ONLINE_ENQUIRY_FORM
            - ONLINE_BOOKING
            - SALES_CHANNEL
            - DIRECT_SALE
        status:
          type: string
          description: The status of the company
          enum:
            - ACTIVE
            - INACTIVE
            - ARCHIVED
        type:
          type: string
          description: The type of the company
          enum:
            - CUSTOMER
            - BOOKING_AGENT
            - SUPPLIER
            - NETWORK_PROVIDER
            - LANDLORD
            - LETTING_AGENT
            - MANAGING_AGENT
            - BILLING
            - PARENT
        vatNumber:
          type: string
          description: The VAT number of the company
        vatRegistered:
          type: boolean
          example: false
          description: Indicates if the company is VAT registered
        websiteUrl:
          type: string
          description: The website URL of the company
        wrapInvoicesManually:
          type: boolean
          example: false
          description: Indicates if the company wraps invoices manually
      title: Resource«CompanyDTO»
    Resource_CompanyListItemProjection_:
      type: object
      properties:
        accountCode:
          type: string
          description: Account code of the company
        accountId:
          type: integer
          format: int64
          description: Account ID associated with the company
        addressLine1:
          type: string
          description: First line of the company's address
        addressLine2:
          type: string
          description: Second line of the company's address
        city:
          type: string
          description: City where the company is located
        companyName:
          type: string
          description: Name of the company
        emailAddress:
          type: string
          description: Email address of the company
        id:
          type: integer
          format: int64
          description: ID of the company
        industry:
          type: string
          description: Industry of the company
        lifecycleStage:
          type: string
          description: Lifecycle stage of the company
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        marketSegment:
          type: string
          description: Market segment of the company
        postCode:
          type: string
          description: Postal code of the company's address
        referrer:
          type: string
          description: Referrer of the company
        source:
          type: string
          description: Source of the company
        status:
          type: string
          description: Status of the company
        telephoneNumber:
          type: string
          description: Telephone number of the company
      title: Resource«CompanyListItemProjection»
    Resource_ContactDTO_:
      type: object
      required:
        - firstName
        - lastName
      properties:
        cognitoId:
          type: string
          description: Cognito ID of the contact
        company:
          $ref: '#/components/schemas/CompanySummaryDTO'
        companyName:
          type: string
          description: Company name associated with the contact
        contactSalesAccount:
          $ref: '#/components/schemas/ContactFinanceAccountDTO'
        creditCheckDate:
          type: string
          format: date
          description: Date of the credit check
        creditCheckOk:
          type: boolean
          example: false
          description: Credit check status of the contact
        dateOfBirth:
          type: string
          format: date
        department:
          type: string
          description: Department of the contact
        firstName:
          type: string
          description: First name of the contact
        gender:
          type: string
          description: Gender of the contact
          enum:
            - MALE
            - FEMALE
            - OTHER
        id:
          type: integer
          format: int64
          description: Unique identifier of the contact
        idCheck:
          type: boolean
          example: false
          description: ID check status of the contact
        identityConfirmedDate:
          type: string
          format: date-time
          description: Date when the identity was confirmed
        identityConfirmedReference:
          type: string
          description: Reference for the identity confirmation
        industry:
          $ref: '#/components/schemas/IndustryDTO'
        jobTitle:
          type: string
          description: Job title of the contact
        keyCardCode:
          type: string
          description: Key card code of the contact
        lastBookingRole:
          type: string
          description: Last booking role of the contact
          enum:
            - NONE
            - BOOKER
            - GUEST
            - GUEST_BOOKER
        lastName:
          type: string
          description: Last name of the contact
        lifecycleStage:
          type: string
          description: Lifecycle stage of the contact
          enum:
            - LEAD
            - QUALIFIED
            - DISQUALIFIED
            - OPPORTUNITY
            - CUSTOMER
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        marketSegment:
          $ref: '#/components/schemas/MarketSegmentDTO'
        marketingOptOut:
          type: boolean
          example: false
          description: Marketing opt-out status of the contact
        middleNames:
          type: string
          description: Middle names of the contact
        nationality:
          $ref: '#/components/schemas/NationalityDTO'
        passportNumber:
          type: string
          description: Passport number of the contact
        password:
          type: string
          description: Password of the contact
        preferences:
          type: string
          description: Preferences of the contact
        preferredContactMethod:
          type: string
          description: Preferred contact method of the contact
          enum:
            - TELEPHONE
            - EMAIL
            - MAIL
        primaryContactAddress:
          $ref: '#/components/schemas/ContactAddressDTO'
        primaryContactEmailAddress:
          $ref: '#/components/schemas/ContactEmailAddressDTO'
        primaryContactTelephoneNumber:
          $ref: '#/components/schemas/ContactTelephoneNumberDTO'
        referrer:
          $ref: '#/components/schemas/ReferrerDTO'
        saltoAssignedTagId:
          type: string
          description: Salto assigned tag ID of the contact
        saltoIdentifier:
          type: string
          description: Salto identifier of the contact
        saltoKeysLastUpdated:
          type: string
          format: date-time
          description: Last updated time of Salto keys
        saltoRegistrationStatus:
          type: string
          description: Salto registration status of the contact
          enum:
            - UNKNOWN
            - NOT_INVITED
            - INVITED
            - REGISTERED
        socialSecurityNumber:
          type: string
          description: Social security number of the contact
        source:
          type: string
          description: Source of the contact
          enum:
            - OFFLINE_SOURCE
            - ONLINE_ENQUIRY_FORM
            - ONLINE_BOOKING
            - DIRECT_SALE
            - SALES_CHANNEL
        status:
          type: string
          description: Status of the contact
          enum:
            - ACTIVE
            - INACTIVE
            - BANNED
            - ARCHIVED
            - VIP
            - WAITLIST
            - REMOVED
        title:
          type: string
          description: Title of the contact
          enum:
            - MR
            - MISS
            - MS
            - MRS
        type:
          type: string
          description: Type of the contact
          enum:
            - BOOKER
            - GUEST
        uuid:
          type: string
          description: UUID of the contact
      title: Resource«ContactDTO»
    Resource_ContactListItemProjection_:
      type: object
      properties:
        accountCode:
          type: string
          description: Account code of the contact
        accountId:
          type: string
          description: Account ID of the contact
        addressLine1:
          type: string
          description: Address line 1 of the contact
        addressLine2:
          type: string
          description: Address line 2 of the contact
        city:
          type: string
          description: City of the contact
        companyId:
          type: integer
          format: int64
          description: Company ID of the contact
        companyName:
          type: string
          description: Company name of the contact
        emailAddress:
          type: string
          description: Email address of the contact
        firstName:
          type: string
          description: First name of the contact
        id:
          type: integer
          format: int64
          description: ID of the contact
        industry:
          type: string
          description: Industry of the contact
        lastName:
          type: string
          description: Last name of the contact
        lifecycleStage:
          type: string
          description: Lifecycle stage of the contact
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        marketSegment:
          type: string
          description: Market segment of the contact
        postCode:
          type: string
          description: Post code of the contact
        referrer:
          type: string
          description: Referrer of the contact
        source:
          type: string
          description: Source of the contact
        status:
          type: string
          description: Status of the contact
        telephoneNumber:
          type: string
          description: Telephone number of the contact
      title: Resource«ContactListItemProjection»
    Resource_CountryDTO_:
      type: object
      properties:
        countryCodeAlpha2:
          type: string
          description: Alpha-2 country code
        countryCodeAlpha3:
          type: string
          description: Alpha-3 country code
        countryCodeNumeric:
          type: string
          description: Numeric country code
        id:
          type: integer
          format: int64
          description: Unique identifier of the country
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        name:
          type: string
          description: Name of the country
        sortOrder:
          type: integer
          format: int32
          description: Sort order of the country
      title: Resource«CountryDTO»
    Resource_CountryListItemProjection_:
      type: object
      properties:
        countryName:
          type: string
          example: United States
          description: Name of the country
        id:
          type: integer
          format: int64
          example: 1
          description: ID of the country
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resource«CountryListItemProjection»
    Resource_DevelopmentDTO_:
      type: object
      properties:
        area:
          $ref: '#/components/schemas/AreaSummaryDTO'
        description:
          type: string
          example: A luxury residential development with 100 units
          description: Description of the development
        id:
          type: integer
          format: int64
          example: 123456
          description: Unique identifier for the development
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        name:
          type: string
          example: The Residences at XYZ
          description: Name of the development
        primaryImageUrl:
          type: string
          example: https://example.com/images/development.jpg
          description: Primary image URL for the development
        shortName:
          type: string
          example: The Residences
          description: Short name for the development
      title: Resource«DevelopmentDTO»
    Resource_DevelopmentListItemProjection_:
      type: object
      properties:
        areaId:
          type: string
        areaName:
          type: string
          example: Grand Cayman
          description: Area name of the development entity
        developmentName:
          type: string
          example: The Residences at The Ritz-Carlton, Grand Cayman
          description: Name of the development entity
        id:
          type: integer
          format: int64
          example: 123456
          description: Unique identifier of the development entity
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
      title: Resource«DevelopmentListItemProjection»
    Resource_FinancialDTO_:
      type: object
      properties:
        amountPaid:
          type: number
          description: Amount paid for the financial record
        baseCurrency:
          $ref: '#/components/schemas/CurrencyDTO'
        baseExchangeRate:
          type: number
          description: Base exchange rate of the financial record
        baseGross:
          type: number
          description: Base gross amount of the financial record
        baseNet:
          type: number
          description: Base net amount of the financial record
        baseVat:
          type: number
          description: Base VAT amount of the financial record
        cardLastFour:
          type: string
          description: Last four digits of the credit card
        costCentre:
          $ref: '#/components/schemas/CostCentreDTO'
        creditCardType:
          type: string
          description: Type of the credit card
          enum:
            - VISA_CREDIT
            - VISA_DEBIT
            - MASTERCARD
            - MASTERCARD_DEBIT
            - DELTA
            - MAESTRO
            - VISA_ELECTRON
            - AMERICAN_EXPRESS
            - DINERS_CLUB
            - JCB
            - PAYPAL
            - VISA
        currency:
          $ref: '#/components/schemas/CurrencyDTO'
        dateCreated:
          type: string
          format: date
          description: Date when the financial record was created
        description:
          type: string
          description: Description of the financial record
        exchangeRate:
          type: number
          description: Exchange rate of the financial record
        exportStatus:
          type: string
          description: Export status of the financial record
          enum:
            - SKIPPED
            - CREATED
            - PENDING
            - SENT
            - EXPORTED
            - FAILED
            - IMPORTED
        exportedDate:
          type: string
          format: date-time
          description: Date when the financial record was exported
        externalId:
          type: string
          description: External identifier of the financial record
        financeAccount:
          $ref: '#/components/schemas/FinanceAccountDTO'
        financialType:
          type: string
          description: Type of the financial record
          enum:
            - SALES_INVOICE
            - SALES_CREDIT
            - SALES_RECEIPT
            - SALES_REFUND
            - SALES_ACCOUNT
            - PURCHASE_INVOICE
            - PURCHASE_CREDIT
            - PURCHASE_RECEIPT
            - PURCHASE_REFUND
            - PURCHASE_ACCOUNT
            - T_SALES_INVOICE
            - T_SALES_CREDIT
            - T_SALES_RECEIPT
            - T_SALES_REFUND
            - T_PURCHASE_INVOICE
            - T_PURCHASE_CREDIT
            - T_PURCHASE_RECEIPT
            - T_PURCHASE_REFUND
            - ACCOUNT_DEBIT
            - T_ACCOUNT_CREDIT
            - BANK_TRANSFER_CREDIT
            - BANK_TRANSFER_DEBIT
        gross:
          type: number
          description: Gross amount of the financial record
        id:
          type: integer
          format: int64
          description: Unique identifier of the financial record
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        net:
          type: number
          description: Net amount of the financial record
        nominalCode:
          $ref: '#/components/schemas/NominalCodeDTO'
        organisationSettingsId:
          type: integer
          format: int64
          description: Organisation settings ID associated with the financial record
        paymentReference:
          type: string
          description: Payment reference of the financial record
        paymentType:
          type: string
          description: Payment type of the financial record
          enum:
            - BANK_PAYMENT
            - CARD_PAYMENT
            - CREDIT_CARD_TERMINAL
            - CASH_PAYMENT
            - OFFLINE_PAYMENT
            - ADJUSTMENT
        reportingGross:
          type: number
          description: Reporting gross amount of the financial record
        reportingNet:
          type: number
          description: Reporting net amount of the financial record
        reportingVat:
          type: number
          description: Reporting VAT amount of the financial record
        salesInvoiceItem:
          $ref: '#/components/schemas/SalesInvoiceItemDTO'
        taxCode:
          $ref: '#/components/schemas/TaxCodeDTO'
        taxRate:
          type: number
          description: Tax rate of the financial record
        unallocated:
          type: number
          description: Unallocated amount of the financial record
        vat:
          type: number
          description: VAT amount of the financial record
        xeroIdentifier:
          $ref: '#/components/schemas/XeroExternalIdentifierDTO'
      title: Resource«FinancialDTO»
    Resource_GuestStayDTO_:
      type: object
      properties:
        contact:
          $ref: '#/components/schemas/ContactSummaryDTO'
        dateFrom:
          type: string
          format: date
          description: Start date of the guest stay
        dateTo:
          type: string
          format: date
          description: End date of the guest stay
        extensionOf:
          $ref: '#/components/schemas/GuestStayDTO'
        id:
          type: integer
          format: int64
          description: Unique identifier of the guest stay
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        roomStay:
          $ref: '#/components/schemas/RoomStaySummaryDTO'
        status:
          type: string
          description: Status of the guest stay
          enum:
            - PENDING
            - CONFIRMED
            - CHECKED_IN
            - CHECKED_OUT
            - CANCELLED
            - LOST
        type:
          type: string
          description: Type of the guest stay
          enum:
            - BUSINESS
            - DIRECT
            - DAYTIME
            - OVERNIGHT
      title: Resource«GuestStayDTO»
    Resource_GuestStayListItemProjection_:
      type: object
      properties:
        bookingId:
          type: integer
          format: int64
          description: >-
            The unique identifier of the Booking entity associated with the
            Guest Stay.
        bookingReference:
          type: string
          description: The booking reference associated with the Guest Stay.
        contactId:
          type: integer
          format: int64
          description: The unique identifier of the Contact associated with the Guest Stay.
        dateFrom:
          type: string
          format: date
          description: The start date of the Guest Stay.
        dateTo:
          type: string
          format: date
          description: The end date of the Guest Stay.
        emailAddress:
          type: string
          description: The email address of the guest.
        firstName:
          type: string
          description: The first name of the guest.
        id:
          type: integer
          format: int64
          description: The unique identifier of the Guest Stay entity.
        lastName:
          type: string
          description: The last name of the guest.
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        roomStayId:
          type: integer
          format: int64
          description: >-
            The unique identifier of the Room Stay entity associated with the
            Guest Stay.
        status:
          type: string
          description: The status of the Guest Stay.
        unitId:
          type: integer
          format: int64
          description: The unique identifier of the Unit associated with the Guest Stay.
      title: Resource«GuestStayListItemProjection»
    Resource_IndustryDTO_:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: Unique identifier of the industry
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        name:
          type: string
          description: Name of the industry
      title: Resource«IndustryDTO»
    Resource_IssueListProjection_:
      type: object
      properties:
        assigneeCompanyId:
          type: integer
          format: int64
          description: The company ID of the assignee
        assigneeTeamId:
          type: integer
          format: int64
          description: The team ID of the assignee
        assigneeUserId:
          type: integer
          format: int64
          description: The user ID of the assignee
        bookingId:
          type: integer
          format: int64
          description: The booking ID associated with the issue
        buildingId:
          type: integer
          format: int64
          description: The building ID associated with the issue
        id:
          type: integer
          format: int64
          description: The unique identifier of the issue
        issueStatus:
          type: string
          description: The status of the issue
        issueTypeId:
          type: integer
          format: int64
          description: The issue type ID
        lastUpdated:
          type: string
          format: date-time
          description: The last time the issue was updated
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        resolutionTargetDate:
          type: string
          format: date
          description: The target date for resolving the issue
        responseTargetDate:
          type: string
          format: date
          description: The target date for responding to the issue
        subject:
          type: string
          description: The subject of the issue
        timeOfReporting:
          type: string
          format: date-time
          description: The time when the issue was reported
        unitId:
          type: integer
          format: int64
          description: The unit ID associated with the issue
      title: Resource«IssueListProjection»
    Resource_IssueNote_:
      type: object
      required:
        - note
        - noteCategory
      properties:
        apiCreated:
          type: boolean
          example: false
          description: Whether the note was created via the API
        contact:
          $ref: '#/components/schemas/ContactSummaryDTO'
        created:
          type: string
          format: date-time
          description: Timestamp when the note was created
        createdByUser:
          $ref: '#/components/schemas/UserDTO'
        id:
          type: integer
          format: int64
          description: The unique identifier of the note
        issue:
          $ref: '#/components/schemas/Issue'
        lastUpdated:
          type: string
          format: date-time
          description: Timestamp when the note was last updated
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        note:
          type: string
          description: Content of the note
        noteCategory:
          $ref: '#/components/schemas/NoteCategoryDTO'
        private:
          type: boolean
        updatedByUser:
          $ref: '#/components/schemas/UserDTO'
      title: Resource«IssueNote»
    Resource_IssuePriorityDTO_:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: Unique identifier of the issue priority
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        name:
          type: string
          description: Name of the issue priority
        responseHours:
          type: integer
          format: int32
          description: Response hours for the issue priority
        slaHours:
          type: integer
          format: int32
          description: SLA hours for the issue priority
      title: Resource«IssuePriorityDTO»
    Resource_IssueTypeDTO_:
      type: object
      required:
        - name
      properties:
        assigneeCompany:
          $ref: '#/components/schemas/CompanySummaryDTO'
        assigneeTeam:
          $ref: '#/components/schemas/TeamSummaryDTO'
        assigneeUser:
          $ref: '#/components/schemas/UserSummaryDTO'
        building:
          $ref: '#/components/schemas/BuildingSummaryDTO'
        categoryIcon:
          type: string
          description: Category icon of the issue type
        id:
          type: integer
          format: int64
          description: ID of the issue type
        issuePriority:
          $ref: '#/components/schemas/IssuePrioritySummaryDTO'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        name:
          type: string
          description: Name of the issue type
        typeIcon:
          type: string
          description: Type icon of the issue type
      title: Resource«IssueTypeDTO»
    Resource_Issue_:
      type: object
      required:
        - description
        - id
        - issuePriority
        - issueStatus
        - issueType
        - subject
      properties:
        assigneeCompany:
          $ref: '#/components/schemas/CompanySummaryDTO'
        assigneeTeam:
          $ref: '#/components/schemas/TeamSummaryDTO'
        assigneeUser:
          $ref: '#/components/schemas/UserSummaryDTO'
        booking:
          $ref: '#/components/schemas/BookingSummaryDTO'
        building:
          $ref: '#/components/schemas/BuildingSummaryDTO'
        closedBy:
          $ref: '#/components/schemas/UserSummaryDTO'
        closedDate:
          type: string
          format: date-time
          description: Date when the issue was closed
        description:
          type: string
          description: Description of the issue
        elapsedTime:
          type: integer
          format: int64
          description: Elapsed time for the issue
        guestStay:
          $ref: '#/components/schemas/GuestStaySummaryDTO'
        id:
          type: integer
          format: int64
          description: ID of the issue
        issuePriority:
          $ref: '#/components/schemas/IssuePrioritySummaryDTO'
        issueStatus:
          type: string
          description: Status of the issue
          enum:
            - OPEN
            - STARTED
            - RESOLVED
            - CLOSED
        issueType:
          $ref: '#/components/schemas/IssueTypeSummaryDTO'
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        private:
          type: boolean
        readStatus:
          type: boolean
          example: false
          description: Read status of the issue
        reporterContact:
          $ref: '#/components/schemas/ContactSummaryDTO'
        reporterUser:
          $ref: '#/components/schemas/UserSummaryDTO'
        resolutionTargetDate:
          type: string
          format: date-time
          description: Target date for resolution
        resolvedBy:
          $ref: '#/components/schemas/UserSummaryDTO'
        resolvedDate:
          type: string
          format: date-time
          description: Date when the issue was resolved
        respondedDate:
          type: string
          format: date-time
          description: Date when the issue was responded to
        responseTargetDate:
          type: string
          format: date-time
          description: Target date for response
        restrictsAvailability:
          type: boolean
          example: false
          description: Indicates if the issue restricts availability
        restrictsAvailabilityFrom:
          type: string
          format: date
          description: Start date of availability restriction
        restrictsAvailabilityTo:
          type: string
          format: date
          description: End date of availability restriction
        startedBy:
          $ref: '#/components/schemas/UserSummaryDTO'
        startedDate:
          type: string
          format: date-time
          description: Date when the issue was started
        subject:
          type: string
          description: Subject of the issue
        timeOfReporting:
          type: string
          format: date-time
          description: Time when the issue was reported
        unit:
          $ref: '#/components/schemas/UnitSummaryDTO'
        uuid:
          type: string
          description: UUID of the issue
      title: Resource«Issue»
    Resource_MarketSegmentDTO_:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: Unique identifier of the market segment
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        name:
          type: string
          description: Name of the market segment
      title: Resource«MarketSegmentDTO»
    Resource_NationalityDTO_:
      type: object
      properties:
        countryCodeAlpha2:
          type: string
          description: Country code in Alpha-2 format
        id:
          type: integer
          format: int64
          description: ID of the nationality
        isoCode:
          type: integer
          format: int64
          description: ISO code of the nationality
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        name:
          type: string
          description: Name of the nationality
        sortOrder:
          type: integer
          format: int64
          description: Sort order of the nationality
      title: Resource«NationalityDTO»
    Resource_PropertyRateAvailabilityDTO_:
      type: object
      properties:
        buildingId:
          type: integer
          format: int64
          example: 1
          description: >-
            Building ID, this is the ID of the building where the Unit or Unit
            Type is available
        buildingName:
          type: string
          example: Building 1
          description: >-
            Building name, this is the name of the building where the Unit or
            Unit Type is available
        inventoryType:
          type: string
          example: UNIT
          description: Inventory type, can be UNIT or UNIT_TYPE
          enum:
            - UNIT
            - UNIT_TYPE
        inventoryTypeId:
          type: integer
          format: int64
          example: 1
          description: Inventory type ID, this is the ID of the Unit or Unit Type available
        inventoryTypeName:
          type: string
          example: 1 Bedroom Apartment
          description: >-
            Inventory type name, this is the name of the Unit or Unit Type
            available
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        rateAvailabilities:
          type: array
          example: []
          description: List of rate availabilities for the Unit or Unit Type
          items:
            $ref: '#/components/schemas/RateAvailabilityDTO'
      title: Resource«PropertyRateAvailabilityDTO»
    Resource_RateDTO_:
      type: object
      properties:
        accommodationProduct:
          $ref: '#/components/schemas/ProductSummaryDTO'
        advancePaymentProduct:
          $ref: '#/components/schemas/ProductSummaryDTO'
        bookingType:
          $ref: '#/components/schemas/BookingTypeDTO'
        closedToArrivalAfter:
          type: integer
          format: int32
          description: Closed to arrival after
        currency:
          $ref: '#/components/schemas/CurrencySummaryDTO'
        depositProduct:
          $ref: '#/components/schemas/ProductSummaryDTO'
        derivedDefaultMinLos:
          type: number
          description: Default minimum length of stay for the derived rate
        derivedRate:
          $ref: '#/components/schemas/RateSummaryDTO'
        derivedRateOption:
          type: string
          description: Option for the derived rate
          enum:
            - FLAT
            - PERCENTAGE
        derivedValue:
          type: number
          description: Value of the derived rate
        endDate:
          type: string
          format: date
          description: End date of the rate
        id:
          type: integer
          format: int64
          description: Unique identifier of the rate
        leadTime:
          type: integer
          format: int32
          description: Lead time for the rate
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        name:
          type: string
          description: Name of the rate
        occupancyCount:
          type: integer
          format: int32
          description: Occupancy count for the rate
        rateCode:
          type: string
          description: Code of the rate
        rateNote:
          type: string
          description: Note for the rate
        ratePlan:
          $ref: '#/components/schemas/RatePlanSummaryDTO'
        rateType:
          type: string
          description: Type of the rate
          enum:
            - DAILY
            - WEEKLY
            - MONTHLY
        rates:
          type: array
          description: List of rate segments
          items:
            $ref: '#/components/schemas/RateSegmentDTO'
        shortName:
          type: string
          description: Short name of the rate
        startDate:
          type: string
          format: date
          description: Start date of the rate
      title: Resource«RateDTO»
    Resource_ReferrerDTO_:
      type: object
      properties:
        code:
          type: string
          description: Code of the referrer
        id:
          type: integer
          format: int64
          description: Unique identifier of the referrer
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        name:
          type: string
          description: Name of the referrer
      title: Resource«ReferrerDTO»
    Resource_RegionDTO_:
      type: object
      properties:
        country:
          $ref: '#/components/schemas/CountryDTO'
        id:
          type: integer
          format: int64
          description: Unique identifier of the region
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        name:
          type: string
          description: Name of the region
      title: Resource«RegionDTO»
    Resource_RegionListItemProjection_:
      type: object
      properties:
        countryId:
          type: integer
          format: int64
          description: Unique identifier of the country
        countryName:
          type: string
          description: Name of the country
        id:
          type: integer
          format: int64
          description: Unique identifier of the region
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        regionName:
          type: string
          description: Name of the region
      title: Resource«RegionListItemProjection»
    Resource_RoomStayDTO_:
      type: object
      properties:
        accommodationProduct:
          $ref: '#/components/schemas/ProductSummaryDTO'
        additionalAccessInformation:
          type: string
          description: Additional access information
        agencyCommission:
          type: number
          description: Agency commission
        baseBuyPrice:
          type: number
          description: Base buy price
        baseClientPrice:
          type: number
          description: Base client price
        baseCurrency:
          $ref: '#/components/schemas/CurrencySummaryDTO'
        baseNetAmount:
          type: number
          description: Base net amount
        baseVatAmount:
          type: number
          description: Base VAT amount
        billingAccountOverride:
          $ref: '#/components/schemas/FinanceAccountDTO'
        bookableOnline:
          type: boolean
          example: false
          description: Indicates if the room stay is bookable online
        booking:
          $ref: '#/components/schemas/BookingSummaryDTO'
        buyCurrency:
          $ref: '#/components/schemas/CurrencySummaryDTO'
        buyPrice:
          type: number
          description: Buy price
        clientPrice:
          type: number
          description: Client price
        confirmedDate:
          type: string
          format: date-time
          description: Confirmed date and time
        contractSignedDate:
          type: string
          format: date-time
          description: Contract signed date and time
        conversionDate:
          type: string
          format: date-time
          description: Conversion date and time
        currency:
          $ref: '#/components/schemas/CurrencySummaryDTO'
        depositAmount:
          type: number
          description: Deposit amount
        discountDailyRate:
          type: number
          description: Discount daily rate
        discountNet:
          type: number
          description: Net discount amount
        discountRate:
          type: number
          description: Discount rate
        earlyCheckIn:
          type: boolean
          example: false
          description: Indicates if early check-in is allowed
        endDate:
          type: string
          format: date
          description: End date of the room stay
        estimatedArrivalTime:
          $ref: '#/components/schemas/LocalTime'
        estimatedDepartureTime:
          $ref: '#/components/schemas/LocalTime'
        expiresAt:
          type: string
          format: date-time
          description: Expiration date and time
        extendUntil:
          type: string
          format: date-time
          description: Extend until date and time
        extensionOf:
          $ref: '#/components/schemas/RoomStaySummaryDTO'
        extensionOfOriginal:
          $ref: '#/components/schemas/RoomStaySummaryDTO'
        externalNotes:
          type: string
          description: External notes for the room stay
        holdUntil:
          type: string
          format: date-time
          description: Hold until date and time
        id:
          type: integer
          format: int64
          description: Unique identifier of the room stay
        identifier:
          type: string
          description: Identifier
        lastStatus:
          type: string
          description: Last status of the room stay
          enum:
            - ENQUIRY
            - QUOTED
            - PENDING
            - MEDIATION_REQUIRED
            - CONFIRMED
            - CHECKED_IN
            - CHECKED_OUT
            - COMPLETE
            - CANCELLED
            - LOST
        lastStatusChangeDate:
          type: string
          format: date-time
          description: Last status change date and time
        lateCheckOut:
          type: boolean
          example: false
          description: Indicates if late check-out is allowed
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        lockRoomStay:
          type: boolean
          example: false
          description: Indicates if the room stay is locked
        lostReason:
          $ref: '#/components/schemas/ReasonDTO'
        lostReasonNote:
          type: string
          description: Lost reason note
        netAmount:
          type: number
          description: Net amount
        numberOfAdults:
          type: integer
          format: int32
          description: Number of adults
        numberOfChildren:
          type: integer
          format: int32
          description: Number of children
        numberOfGuests:
          type: integer
          format: int64
          description: Number of guests
        numberOfInfants:
          type: integer
          format: int32
          description: Number of infants
        opsInformation:
          type: string
          description: Operational information
        originalRate:
          type: number
          description: Original rate
        originalUnit:
          $ref: '#/components/schemas/UnitSummaryDTO'
        overnightGuestCount:
          type: integer
          format: int32
          description: Overnight guest count
        promotionalCodeAmount:
          type: number
          description: Promotional code amount
        promotionalCodeCode:
          type: string
          description: Promotional code
        promotionalCodeDescription:
          type: string
          description: Promotional code description
        promotionalCodeType:
          type: string
          description: Promotional code type
          enum:
            - DAILY_PERCENTAGE
        rate:
          $ref: '#/components/schemas/RateSummaryDTO'
        reportingBuyPrice:
          type: number
          description: Reporting buy price
        reportingClientPrice:
          type: number
          description: Reporting client price
        reportingNetAmount:
          type: number
          description: Reporting net amount
        reportingVatAmount:
          type: number
          description: Reporting VAT amount
        roomStayStatus:
          type: string
          description: Status of the room stay
          enum:
            - ENQUIRY
            - QUOTED
            - PENDING
            - MEDIATION_REQUIRED
            - CONFIRMED
            - CHECKED_IN
            - CHECKED_OUT
            - COMPLETE
            - CANCELLED
            - LOST
        splitBooking:
          type: boolean
          example: false
          description: Indicates if the booking is split
        startDate:
          type: string
          format: date
          description: Start date of the room stay
        unit:
          $ref: '#/components/schemas/UnitSummaryDTO'
        unitType:
          $ref: '#/components/schemas/UnitTypeSummaryDTO'
        vatAmount:
          type: number
          description: VAT amount
        vatInclusive:
          type: boolean
          example: false
          description: Indicates if VAT is inclusive
        vatProfile:
          $ref: '#/components/schemas/VatProfileDTO'
      title: Resource«RoomStayDTO»
    Resource_RoomStayExtraDTO_:
      type: object
      required:
        - description
      properties:
        createCommission:
          type: boolean
          example: false
          description: Indicates if commission creation is required
        description:
          type: string
          description: Description of the room stay extra
        endDate:
          type: string
          format: date
          description: End date of the room stay extra
        extensionRequired:
          type: boolean
          example: false
          description: Indicates if extension is required
        frequency:
          type: string
          description: Frequency of the chargeable extra
          enum:
            - ONE_OFF
            - DAILY
            - WEEKLY
            - MONTHLY
        id:
          type: integer
          format: int64
          example: 1
          description: The unique identifier of the room stay extra
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        lockToStay:
          type: boolean
          example: false
          description: Indicates if the room stay extra is locked to stay
        netPrice:
          type: number
          description: Net price of the room stay extra
        organisationSettings:
          $ref: '#/components/schemas/OrganisationSettingsSummaryDTO'
        product:
          $ref: '#/components/schemas/ProductSummaryDTO'
        startDate:
          type: string
          format: date
          description: Start date of the room stay extra
        status:
          type: string
          description: Status of the room stay extra
          enum:
            - ACTIVE
            - CANCELLING
            - CANCELLED
        vatInclusive:
          type: boolean
          example: false
          description: Indicates if the VAT is inclusive
        vatProfile:
          $ref: '#/components/schemas/VatProfileDTO'
      title: Resource«RoomStayExtraDTO»
    Resource_RoomStayStatusUpdateResultDTO_:
      type: object
      properties:
        errorMessage:
          type: string
          description: The error message if the update failed
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        roomStayId:
          type: integer
          format: int64
          description: The id of the room stay
        success:
          type: boolean
          example: false
          description: The success status of the update
      title: Resource«RoomStayStatusUpdateResultDTO»
    Resource_SalesInvoiceDTO_:
      type: object
      required:
        - currency
        - dueDate
        - financeAccount
        - invoiceDate
        - organisationSettings
        - type
      properties:
        addressLine1:
          type: string
          description: Address line 1 of the customer
        addressLine2:
          type: string
          description: Address line 2 of the customer
        addressLine3:
          type: string
          description: Address line 3 of the customer
        baseCurrency:
          $ref: '#/components/schemas/CurrencySummaryDTO'
        baseExchangeRate:
          type: number
          description: Base exchange rate applied to the invoice
        baseGross:
          type: number
          description: Base gross amount of the invoice
        baseNet:
          type: number
          description: Base net amount of the invoice
        baseTax:
          type: number
          description: Base tax amount of the invoice
        city:
          type: string
          description: City of the customer
        companyName:
          type: string
          description: Company name associated with the invoice
        country:
          $ref: '#/components/schemas/CountryDTO'
        currency:
          $ref: '#/components/schemas/CurrencySummaryDTO'
        customerName:
          type: string
          description: Customer name associated with the invoice
        customerReference:
          type: string
          description: Customer reference
        dateSent:
          type: string
          format: date
          description: Date when the invoice was sent
        dueDate:
          type: string
          format: date
          description: Due date of the invoice
        eventBookingId:
          type: integer
          format: int64
          description: Event booking ID associated with the invoice
        exchangeRate:
          type: number
          description: Exchange rate applied to the invoice
        exportStatus:
          type: string
          description: Export status of the invoice
          enum:
            - SKIPPED
            - CREATED
            - PENDING
            - SENT
            - EXPORTED
            - FAILED
            - IMPORTED
        exportedDate:
          type: string
          format: date-time
          description: Date when the invoice was exported
        externalId:
          type: string
          description: External ID of the invoice
        externalIdentifier:
          $ref: '#/components/schemas/XeroExternalIdentifierDTO'
        financeAccount:
          $ref: '#/components/schemas/FinanceAccountDTO'
        gross:
          type: number
          description: Gross amount of the invoice
        id:
          type: integer
          format: int64
          description: Unique identifier of the sales invoice
        invoiceDate:
          type: string
          format: date
          description: Date of the invoice
        issueId:
          type: integer
          format: int64
          description: Issue ID associated with the invoice
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        net:
          type: number
          description: Net amount of the invoice
        organisationSettings:
          $ref: '#/components/schemas/OrganisationSettingsSummaryDTO'
        outStanding:
          type: number
          description: Outstanding amount of the invoice
        outStandingNet:
          type: number
          description: Outstanding net amount of the invoice
        outStandingVat:
          type: number
          description: Outstanding VAT amount of the invoice
        payableOnline:
          type: boolean
          example: false
          description: Indicates if the invoice is payable online
        payableOnlineReference:
          type: integer
          format: int64
          description: Reference for online payment
        postCode:
          type: string
          description: Post code of the customer
        referenceNumber:
          type: string
          description: Reference number of the invoice
        reportingGross:
          type: number
          description: Reporting gross amount of the invoice
        reportingNet:
          type: number
          description: Reporting net amount of the invoice
        reportingTax:
          type: number
          description: Reporting tax amount of the invoice
        salesInvoiceNumber:
          type: integer
          format: int64
          description: Sales invoice number
        status:
          type: string
          description: Status of the invoice
          enum:
            - DRAFT
            - VOID
            - POSTED
        tax:
          type: number
          description: Tax amount of the invoice
        type:
          type: string
          description: Type of the sales invoice
          enum:
            - SALES_INVOICE
            - SALES_CREDIT
        uuid:
          type: string
          description: UUID of the invoice
      title: Resource«SalesInvoiceDTO»
    Resource_SalesInvoiceItemDTO_:
      type: object
      properties:
        amountPaid:
          type: number
          description: Amount paid
        baseCurrency:
          $ref: '#/components/schemas/CurrencySummaryDTO'
        baseGross:
          type: number
          description: Base gross amount
        baseNet:
          type: number
          description: Base net amount
        baseTax:
          type: number
          description: Base tax amount
        baseUnitPrice:
          type: number
          description: Base unit price
        chargeFrom:
          type: string
          format: date
          description: Charge start date
        chargeTo:
          type: string
          format: date
          description: Charge end date
        comment1:
          type: string
          description: First comment
        comment2:
          type: string
          description: Second comment
        currency:
          $ref: '#/components/schemas/CurrencySummaryDTO'
        description:
          type: string
          description: Description of the sales invoice item
        dueDate:
          type: string
          format: date
          description: Due date
        financeAccount:
          $ref: '#/components/schemas/FinanceAccountDTO'
        gross:
          type: number
          description: Gross amount
        id:
          type: integer
          format: int64
          description: ID of the sales invoice item
        invoiceDate:
          type: string
          format: date
          description: Invoice date
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        net:
          type: number
          description: Net amount
        nominalCode:
          $ref: '#/components/schemas/NominalCodeDTO'
        ourReference:
          type: string
          description: Our reference
        product:
          $ref: '#/components/schemas/ProductSummaryDTO'
        quantity:
          type: number
          description: Quantity
        reportingGross:
          type: number
          description: Reporting gross amount
        reportingNet:
          type: number
          description: Reporting net amount
        reportingTax:
          type: number
          description: Reporting tax amount
        reportingUnitPrice:
          type: number
          description: Reporting unit price
        roomStay:
          $ref: '#/components/schemas/RoomStaySummaryDTO'
        salesInvoice:
          $ref: '#/components/schemas/SalesInvoiceSummaryDTO'
        status:
          type: string
          description: Status of the invoice item
          enum:
            - DRAFT
            - VOID
            - POSTED
        tax:
          type: number
          description: Tax amount
        taxCode:
          $ref: '#/components/schemas/TaxCodeDTO'
        taxRate:
          type: number
          description: Tax rate
        type:
          type: string
          description: Type of the invoice
          enum:
            - SALES_INVOICE
            - SALES_CREDIT
        unit:
          $ref: '#/components/schemas/UnitSummaryDTO'
        unitPrice:
          type: number
          description: Unit price
        unitPriceIncludesTax:
          type: boolean
          example: false
          description: Indicates if unit price includes tax
        uuid:
          type: string
          description: UUID of the sales invoice item
      title: Resource«SalesInvoiceItemDTO»
    Resource_SalesInvoiceListItemProjection_:
      type: object
      properties:
        dueDate:
          type: string
          format: date
          description: The due date of the invoice
        exportStatus:
          type: string
          description: The status of the invoice export
        exportedDate:
          type: string
          format: date
          description: The exported date of the invoice
        externalId:
          type: string
          description: The external id of the invoice
        financeAccount:
          $ref: '#/components/schemas/FinanceAccountProjection'
        id:
          type: integer
          format: int64
          description: The id of the sales invoice
        invoiceDate:
          type: string
          format: date
          description: The date of the invoice
        invoiceNumber:
          type: integer
          format: int64
          description: The invoice number of the sales invoice
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        net:
          type: number
          description: The net value of the invoice
        organisationSettingsId:
          type: integer
          format: int64
          description: The organisation settings id of the invoice
        status:
          type: string
          description: The status of the invoice
        tax:
          type: number
          description: The tax value of the invoice
      title: Resource«SalesInvoiceListItemProjection»
    Resource_SaltoAccessGroupProjection_:
      type: object
      properties:
        buildingId:
          type: integer
          format: int64
          description: PMS internal building id
        buildingName:
          type: string
          description: PMS internal building name
        externalIdentifier:
          type: string
          description: Access control system identifier for access group
        id:
          type: integer
          format: int64
          description: Id of access group
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        name:
          type: string
          description: Name of access group
      title: Resource«SaltoAccessGroupProjection»
    Resource_TagDTO_:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: The id of the tag
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        name:
          type: string
          description: The name of the tag
        sortOrder:
          type: integer
          format: int32
          description: The sort order of the tag
        tagType:
          $ref: '#/components/schemas/TagTypeDTO'
      title: Resource«TagDTO»
    Resource_TeamDTO_:
      type: object
      required:
        - emailAddress
        - id
        - teamName
        - type
      properties:
        emailAddress:
          type: string
          description: Email address
        id:
          type: integer
          format: int64
          description: Team ID
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        teamName:
          type: string
          description: Team name
        type:
          type: string
          description: Team type
          enum:
            - DEFAULT
            - HOUSEKEEPING
      title: Resource«TeamDTO»
    Resource_TeamListItemProjection_:
      type: object
      properties:
        id:
          type: integer
          format: int64
          example: 1
          description: Team ID
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        teamName:
          type: string
          example: Team A
          description: Team Name
      title: Resource«TeamListItemProjection»
    Resource_UnitAccessGroupDTO_:
      type: object
      required:
        - accessGroup
        - unit
      properties:
        accessGroup:
          $ref: '#/components/schemas/Access_Group_DTO'
        id:
          type: integer
          format: int64
          description: Unique identifier of the Unit Access Group
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        unit:
          $ref: '#/components/schemas/UnitSummaryDTO'
      title: Resource«UnitAccessGroupDTO»
    Resource_UnitAccessGroupProjection_:
      type: object
      properties:
        accessGroupId:
          type: integer
          format: int64
          description: ID of the Access Group
        accessGroupName:
          type: string
          description: Name of the Access Group
        id:
          type: integer
          format: int64
          description: ID of the Unit Access Group
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        unitId:
          type: integer
          format: int64
          description: ID of the Unit
        unitName:
          type: string
          description: Name of the Unit
      title: Resource«UnitAccessGroupProjection»
    Resource_UnitDTO_:
      type: object
      properties:
        addedOn:
          type: string
          format: date
          description: Date when the unit was added
        apartmentThumbnailUrl:
          type: string
          description: Thumbnail URL of the apartment
        bookable:
          type: boolean
          example: false
          description: Indicates if the unit is bookable
        cleanStatus:
          type: string
          description: Clean status of the unit
          enum:
            - CLEAN
            - DIRTY
            - INSPECTED
        costCentre:
          type: string
          description: Cost centre of the unit
        directions:
          type: string
          description: Directions to the unit
        directionsLang2:
          type: string
          description: Directions to the unit in second language
        directionsLang3:
          type: string
          description: Directions to the unit in third language
        directionsLang4:
          type: string
          description: Directions to the unit in fourth language
        directionsLang5:
          type: string
          description: Directions to the unit in fifth language
        externalId:
          type: integer
          format: int64
          description: External identifier of the unit
        floor:
          type: integer
          format: int32
          description: Floor number of the unit
        floorSpace:
          type: integer
          format: int32
          description: Floor space of the unit
        id:
          type: integer
          format: int64
          description: Unique identifier of the unit
        identifier:
          type: string
          description: Identifier of the unit
        inactive:
          type: boolean
          example: false
          description: Indicates if the unit is inactive
        lastCleaned:
          type: string
          format: date-time
          description: Date and time when the unit was last cleaned
        lastInspected:
          type: string
          format: date-time
          description: Date and time when the unit was last inspected
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        name:
          type: string
          description: Name of the unit
        occupancyFrom:
          type: string
          format: date
          description: Date from which the unit is occupied
        occupancyTo:
          type: string
          format: date
          description: Date until which the unit is occupied
        occupied:
          type: boolean
          example: false
          description: Indicates if the unit is occupied
        organisationId:
          type: integer
          format: int64
          description: Organisation ID of the unit
        pricePerExtraGuest:
          type: number
          description: Price per extra guest for the unit
        primaryLockIdentifier:
          type: string
          description: Primary lock identifier of the unit
        publish:
          type: boolean
          example: false
          description: Indicates if the unit is published
        removedOn:
          type: string
          format: date
          description: Date when the unit was removed
        sellableFrom:
          type: string
          format: date
          description: Date from which the unit is sellable
        sellableTo:
          type: string
          format: date
          description: Date until which the unit is sellable
        shortDescription:
          type: string
          description: Short description of the unit
        shortDescriptionLang2:
          type: string
          description: Short description of the unit in second language
        shortDescriptionLang3:
          type: string
          description: Short description of the unit in third language
        shortDescriptionLang4:
          type: string
          description: Short description of the unit in fourth language
        shortDescriptionLang5:
          type: string
          description: Short description of the unit in fifth language
        sortOrder:
          type: integer
          format: int32
          description: Sort order of the unit
        standardOccupancy:
          type: integer
          format: int32
          description: Standard occupancy of the unit
        thirdPartyUrl:
          type: string
          description: Third party URL of the unit
        unitAddress:
          $ref: '#/components/schemas/UnitAddressDTO'
        unitCostCentre:
          $ref: '#/components/schemas/CostCentreDTO'
        unitType:
          $ref: '#/components/schemas/UnitTypeSummaryDTO'
      title: Resource«UnitDTO»
    Resource_UnitListItemProjection_:
      type: object
      properties:
        addressLine1:
          type: string
          description: First line of the address
        addressLine2:
          type: string
          description: Second line of the address
        bookable:
          type: boolean
          example: false
          description: Whether the unit is bookable
        buildingName:
          type: string
          description: Name of the building
        city:
          type: string
          description: City of the unit
        id:
          type: integer
          format: int64
          description: ID of the unit
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        postCode:
          type: string
          description: Postcode of the unit
        unitName:
          type: string
          description: Name of the unit
        unitTypeName:
          type: string
          description: Type name of the unit
      title: Resource«UnitListItemProjection»
    Resource_UnitTypeDTO_:
      type: object
      properties:
        building:
          $ref: '#/components/schemas/BuildingSummaryDTO'
        floorSpaceMax:
          type: integer
          format: int32
          description: Maximum floor space of the unit type
        floorSpaceMin:
          type: integer
          format: int32
          description: Minimum floor space of the unit type
        id:
          type: integer
          format: int64
          description: Unique identifier of the unit type
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        longDescription:
          type: string
          description: Long description of the unit type
        longDescriptionLang2:
          type: string
          description: Long description in second language
        longDescriptionLang3:
          type: string
          description: Long description in third language
        longDescriptionLang4:
          type: string
          description: Long description in fourth language
        longDescriptionLang5:
          type: string
          description: Long description in fifth language
        maxInternetBookingLimit:
          type: integer
          format: int64
          description: Maximum internet booking limit for the unit type
        maxOccupancy:
          type: integer
          format: int32
          description: Maximum occupancy for the unit type
        maxStay:
          type: integer
          format: int32
          description: Maximum stay duration for the unit type
        minStay:
          type: integer
          format: int32
          description: Minimum stay duration for the unit type
        name:
          type: string
          description: Name of the unit type
        networkUnitOwner:
          $ref: '#/components/schemas/CompanyDTO'
        numberOfBedrooms:
          type: integer
          format: int32
          description: Number of bedrooms in the unit type
        shortDescription:
          type: string
          description: Short description of the unit type
        shortDescriptionLang2:
          type: string
          description: Short description in second language
        shortDescriptionLang3:
          type: string
          description: Short description in third language
        shortDescriptionLang4:
          type: string
          description: Short description in fourth language
        shortDescriptionLang5:
          type: string
          description: Short description in fifth language
        sortOrder:
          type: integer
          format: int32
          description: Sort order of the unit type
        type:
          type: string
          description: Type of the unit
          enum:
            - STUDIO
            - ONE_BEDROOM
            - TWO_BEDROOM
            - THREE_BEDROOM
            - FOUR_BEDROOM
            - FIVE_BEDROOM
            - SIX_BEDROOM
            - TWIN_ROOM
            - COSY
            - STANDARD
            - COMFY
            - BIG
            - DOUBLE_ROOM
            - TWODIO
            - COSY_STUDIO
            - CLASSIC_STUDIO
            - CLASSIC_PLUS_STUDIO
            - PREMIUM_STUDIO
            - ACCESSIBLE_STUDIO
            - OFFICE
            - PARKING_SPACE
            - MEETING_ROOM
            - COMMUNAL_AREA
            - RETAIL_SPACE
            - SHUFFLE
            - STORAGE_SPACE
            - STORAGE_SPACE_TWO
            - STORAGE_SPACE_THREE
            - STORAGE_SPACE_FOUR
            - STORAGE_SPACE_FIVE
            - STORAGE_SPACE_SIX
        unitTypeCode:
          type: string
      title: Resource«UnitTypeDTO»
    Resource_UnitTypeListItemProjection_:
      type: object
      properties:
        buildingId:
          type: integer
          format: int64
          description: ID of the Building
        buildingName:
          type: string
          description: Name of the Building
        developmentId:
          type: integer
          format: int64
          description: ID of the Development
        developmentName:
          type: string
          description: Name of the Development
        id:
          type: integer
          format: int64
          description: ID of the Unit Type
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        unitTypeName:
          type: string
          description: Name of the Unit Type
      title: Resource«UnitTypeListItemProjection»
    Resource_UserDTO_:
      type: object
      properties:
        emailAddress:
          type: string
          description: The email address of the user
        enabled:
          type: boolean
          example: false
          description: Indicates if the user is enabled
        firstName:
          type: string
          description: The first name of the user
        id:
          type: integer
          format: int64
          description: The unique identifier of the user
        jobTitle:
          type: string
          description: The job title of the user
        lastName:
          type: string
          description: The last name of the user
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        team:
          $ref: '#/components/schemas/TeamSummaryDTO'
        telephoneNumber:
          type: string
          description: The telephone number of the user
        username:
          type: string
          description: The username of the user
      title: Resource«UserDTO»
    Resource_UserListItemProjection_:
      type: object
      properties:
        firstName:
          type: string
          description: The first name of the user
        id:
          type: integer
          format: int64
          description: The unique identifier of the user
        lastName:
          type: string
          description: The last name of the user
        links:
          type: array
          xml:
            name: link
            namespace: http://www.w3.org/2005/Atom
            attribute: false
            wrapped: false
          items:
            $ref: '#/components/schemas/Link'
        userName:
          type: string
          description: The username of the user
      title: Resource«UserListItemProjection»
