---
openapi: 3.0.1
info:
  title: Comeen Workplace API V2beta
  version: v2beta
  description: This is a beta API and is subject to breaking changes
components:
  securitySchemes:
    comeenOauth:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://accounts.comeen.io/oauth/authorize
          tokenUrl: https://api.comeen.io/oauth/token
          scopes:
            admins:read: Permission admins:read
            admins:write: Permission admins:write
            api_keys:read: Permission api_keys:read
            api_keys:write: Permission api_keys:write
            settings:read: Permission settings:read
            settings:write: Permission settings:write
            integration_grants:read: Permission integration_grants:read
            integration_grants:write: Permission integration_grants:write
            buildings:read: Permission buildings:read
            buildings:write: Permission buildings:write
            floors:read: Permission floors:read
            floors:write: Permission floors:write
            areas:read: Permission areas:read
            areas:write: Permission areas:write
            users:read: Permission users:read
            users:write: Permission users:write
            usergroups:read: Permission usergroups:read
            usergroups:write: Permission usergroups:write
            usergroupmemberships:read: Permission usergroupmemberships:read
            usergroupmemberships:write: Permission usergroupmemberships:write
            departments:read: Permission departments:read
            departments:write: Permission departments:write
            people:read: Permission people:read
            people:write: Permission people:write
            teams:read: Permission teams:read
            teams:write: Permission teams:write
            companies:read: Permission companies:read
            companies:write: Permission companies:write
            notifications:read: Permission notifications:read
            notifications:write: Permission notifications:write
            notification_settings:read: Permission notification_settings:read
            notification_settings:write: Permission notification_settings:write
            spaces:read: Permission spaces:read
            spaces:write: Permission spaces:write
            space_settings:read: Permission space_settings:read
            space_settings:write: Permission space_settings:write
            calendars:read: Permission calendars:read
            calendars:write: Permission calendars:write
            appointments:read: Permission appointments:read
            appointments:write: Permission appointments:write
            guests:read: Permission guests:read
            guests:write: Permission guests:write
            invitations:read: Permission invitations:read
            invitations:write: Permission invitations:write
            kiosks:read: Permission kiosks:read
            kiosks:write: Permission kiosks:write
            kiosk_themes:read: Permission kiosk_themes:read
            kiosk_themes:write: Permission kiosk_themes:write
            kiosk_profiles:read: Permission kiosk_profiles:read
            kiosk_profiles:write: Permission kiosk_profiles:write
            visits:read: Permission visits:read
            visits:write: Permission visits:write
            visitors:read: Permission visitors:read
            visitors:write: Permission visitors:write
            badges:read: Permission badges:read
            badges:write: Permission badges:write
            visitor_trigger_rules:read: Permission visitor_trigger_rules:read
            visitor_trigger_rules:write: Permission visitor_trigger_rules:write
            workactivities:read: Permission workactivities:read
            workactivities:write: Permission workactivities:write
            presences:read: Permission presences:read
            presences:write: Permission presences:write
            desks:read: Permission desks:read
            desks:write: Permission desks:write
            bookabletypes:read: Permission bookabletypes:read
            bookabletypes:write: Permission bookabletypes:write
            bookables:read: Permission bookables:read
            bookables:write: Permission bookables:write
            seat_release_policies:read: Permission seat_release_policies:read
            seat_release_policies:write: Permission seat_release_policies:write
            presence_rules:read: Permission presence_rules:read
            presence_rules:write: Permission presence_rules:write
            meeting_rooms:read: Permission meeting_rooms:read
            meeting_rooms:write: Permission meeting_rooms:write
            meeting_room_bookings:read: Permission meeting_room_bookings:read
            meeting_room_bookings:write: Permission meeting_room_bookings:write
            room_release_policies:read: Permission room_release_policies:read
            room_release_policies:write: Permission room_release_policies:write
            room_dashboards:read: Permission room_dashboards:read
            room_dashboards:write: Permission room_dashboards:write
            room_dashboard_ip_rules:read: Permission room_dashboard_ip_rules:read
            room_dashboard_ip_rules:write: Permission room_dashboard_ip_rules:write
            announcements:read: Permission announcements:read
            announcements:write: Permission announcements:write
            facilities_services:read: Permission facilities_services:read
            facilities_services:write: Permission facilities_services:write
            bookable_resources:read: Permission bookable_resources:read
            bookable_resources:write: Permission bookable_resources:write
  schemas:
    Area:
      type: object
      required:
      - id
      - created_at
      - updated_at
      - name
      - floor
      - shape
      - center
      - capacity
      - threshold
      - flex_office
      - url
      properties:
        id:
          type: integer
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        name:
          type: string
        floor:
          "$ref": "#/components/schemas/FloorEmbedded"
        shape:
          type: array
          nullable: true
          items:
            type: object
            properties:
              x:
                type: integer
              "y":
                type: integer
          minItems: 3
        center:
          type: object
          nullable: true
          properties:
            x:
              type: integer
            "y":
              type: integer
        capacity:
          type: integer
        threshold:
          type: integer
        flex_office:
          type: boolean
          nullable: true
          description: A null value means we should check the floor flex_office
        url:
          type: string
          format: uri
    Areas:
      type: object
      required:
      - areas
      properties:
        areas:
          type: array
          items:
            "$ref": "#/components/schemas/Area"
    CreateArea:
      type: object
      properties:
        name:
          type: string
        capacity:
          type: integer
        threshold:
          type: integer
        flex_office:
          type: boolean
    AreaWithPresenceDetails:
      type: object
      required:
      - id
      - created_at
      - updated_at
      - name
      - floor
      - shape
      - center
      - capacity
      - threshold
      - flex_office
      - url
      - capacity_limit
      - capacity_reached_for_today
      - capacity_gauge_for_today
      - count_checked_in_today
      - count_expected_presences_today
      properties:
        id:
          type: integer
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        name:
          type: string
        floor:
          "$ref": "#/components/schemas/FloorEmbedded"
        shape:
          type: array
          nullable: true
          items:
            type: object
            properties:
              x:
                type: integer
              "y":
                type: integer
          minItems: 3
        center:
          type: object
          nullable: true
          properties:
            x:
              type: integer
            "y":
              type: integer
        capacity:
          type: integer
        threshold:
          type: integer
        flex_office:
          type: boolean
          nullable: true
          description: A null value means we should check the floor flex_office
        url:
          type: string
          format: uri
        capacity_limit:
          type: number
        capacity_reached_for_today:
          type: boolean
        capacity_gauge_for_today:
          type: number
        count_checked_in_today:
          type: integer
        count_expected_presences_today:
          type: integer
    UpdateArea:
      type: object
      properties:
        name:
          type: string
        capacity:
          type: integer
        threshold:
          type: integer
        flex_office:
          type: boolean
        shape:
          type: array
          nullable: true
          items:
            type: object
            properties:
              x:
                type: integer
              "y":
                type: integer
          minItems: 3
    AreaEmbedded:
      type: object
      required:
      - id
      - name
      properties:
        id:
          type: integer
        name:
          type: string
    SyncBuilding:
      type: object
      properties:
        id:
          type: integer
          nullable: true
          description: |
            The integer is present if the building is already synchronised on the server

            It is null if it's a new building that would need to be created.
        type:
          type: string
        provider_id:
          type: string
        sync_grant_id:
          type: integer
        name:
          type: string
        address:
          type: string
          nullable: true
        zipcode:
          type: string
          nullable: true
        city:
          type: string
          nullable: true
        state_region:
          type: string
          nullable: true
        country:
          type: string
          nullable: true
    BuildingEmbedded:
      type: object
      required:
      - id
      - name
      properties:
        id:
          type: integer
        name:
          type: string
    AdminAccessibleBuilding:
      type: object
      required:
      - id
      - name
      - address
      - zipcode
      - city
      - state_region
      - country
      - space
      - logo_url
      - url
      properties:
        id:
          type: integer
        name:
          type: string
        address:
          type: string
          nullable: true
        zipcode:
          type: string
          nullable: true
        city:
          type: string
          nullable: true
        state_region:
          type: string
          nullable: true
        country:
          type: string
          nullable: true
        space:
          "$ref": "#/components/schemas/SpaceEmbedded"
        logo_url:
          type: string
          format: uri
          nullable: true
        url:
          type: string
          format: uri
    AdminAccessibleBuildings:
      type: object
      required:
      - buildings
      properties:
        buildings:
          type: array
          items:
            "$ref": "#/components/schemas/AdminAccessibleBuilding"
    DeskFeatureEmbedded:
      type: object
      required:
      - id
      - name
      - key
      properties:
        id:
          type: integer
        name:
          type: string
        key:
          type: string
    DeskFeature:
      type: object
      required:
      - id
      - uuid
      - name
      - key
      - created_at
      - updated_at
      properties:
        id:
          type: integer
        uuid:
          type: string
          format: uuid
          nullable: true
        name:
          type: string
        key:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    CreateDesk:
      type: object
      properties:
        name:
          type: string
        sync_id:
          type: string
          nullable: true
        floor_id:
          type: integer
        area_id:
          type: integer
          nullable: true
        person_id:
          type: integer
          nullable: true
        available_to_booking:
          type: boolean
    AvailableDesks:
      type: object
      required:
      - every_day
      properties:
        every_day:
          type: array
          items:
            "$ref": "#/components/schemas/Desk"
    UpdateDesk:
      type: object
      properties:
        name:
          type: string
        sync_id:
          type: string
          nullable: true
        floor_id:
          type: integer
        area_id:
          type: integer
          nullable: true
        person_id:
          type: integer
          nullable: true
        available_to_booking:
          type: boolean
        coordinates:
          type: object
          required:
          - x
          - "y"
          properties:
            x:
              type: integer
            "y":
              type: integer
    DeskOccupancies:
      type: object
      required:
      - occupancies
      properties:
        occupancies:
          type: array
          items:
            "$ref": "#/components/schemas/DeskOccupancy"
    Desks:
      type: object
      required:
      - desks
      - pagination
      properties:
        desks:
          type: array
          items:
            "$ref": "#/components/schemas/Desk"
        pagination:
          "$ref": "#/components/schemas/Pagination"
    DeskOccupancy:
      type: object
      required:
      - start_datetime
      - end_datetime
      - person
      - state
      properties:
        start_datetime:
          type: string
          format: date-time
        end_datetime:
          type: string
          format: date-time
        person:
          "$ref": "#/components/schemas/UserEmbedded"
        state:
          "$ref": "#/components/schemas/PresenceState"
    Desk:
      type: object
      required:
      - id
      - uuid
      - name
      - coordinates
      - created_at
      - updated_at
      - available_to_booking
      - sync_id
      - building
      - floor
      - area
      - assigned_person
      - url
      - equipment
      properties:
        id:
          type: integer
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        uuid:
          type: string
          format: uuid
        name:
          type: string
        sync_id:
          type: string
          nullable: true
        coordinates:
          type: object
          required:
          - x
          - "y"
          properties:
            x:
              type: integer
            "y":
              type: integer
        available_to_booking:
          type: boolean
        url:
          type: string
          format: uid
        building:
          "$ref": "#/components/schemas/BuildingEmbedded"
        floor:
          "$ref": "#/components/schemas/FloorEmbedded"
        area:
          nullable: true
          allOf:
          - "$ref": "#/components/schemas/AreaEmbedded"
        assigned_person:
          nullable: true
          allOf:
          - "$ref": "#/components/schemas/UserEmbedded"
        equipment:
          type: array
          items:
            "$ref": "#/components/schemas/DeskFeatureEmbedded"
    DeskSchedule:
      type: object
      required:
      - uuid
      - name
      - sync_id
      - coordinates
      - available_to_booking
      - area
      - assigned_person
      - equipment
      - schedule
      properties:
        uuid:
          type: string
          format: uuid
        name:
          type: string
        sync_id:
          type: string
          nullable: true
        coordinates:
          type: object
          required:
          - x
          - "y"
          properties:
            x:
              type: integer
            "y":
              type: integer
        available_to_booking:
          type: boolean
        area:
          nullable: true
          allOf:
          - "$ref": "#/components/schemas/AreaEmbedded"
        assigned_person:
          nullable: true
          allOf:
          - "$ref": "#/components/schemas/UserEmbedded"
        equipment:
          type: array
          items:
            "$ref": "#/components/schemas/DeskFeatureEmbedded"
        schedule:
          type: array
          items:
            "$ref": "#/components/schemas/EmbeddedPresence"
    AllDeskSchedule:
      type: object
      required:
      - desks
      - start_datetime
      - end_datetime
      properties:
        desks:
          type: array
          items:
            "$ref": "#/components/schemas/DeskSchedule"
        start_datetime:
          type: string
          format: date-time
        end_datetime:
          type: string
          format: date-time
    CreateFacilitiesCategory:
      type: object
      required:
      - name
      properties:
        name:
          type: string
    FacilitiesCategory:
      type: object
      required:
      - id
      - name
      properties:
        id:
          type: integer
        name:
          type: string
    FacilitiesServiceLanguage:
      type: string
      enum:
      - en
      - fr
      - es
    FacilitiesServices:
      type: object
      required:
      - services
      properties:
        services:
          type: array
          items:
            type: object
            required:
            - id
            - name
            - updated_at
            - items_count
            properties:
              id:
                type: integer
              name:
                type: string
              updated_at:
                type: string
                format: date-time
              items_count:
                type: integer
    CreateFacilitiesService:
      type: object
      required:
      - form_type
      - name
      - price_currency
      - language
      properties:
        form_type:
          "$ref": "#/components/schemas/FacilitiesServiceFormType"
        name:
          type: string
        description:
          type: string
        price_currency:
          "$ref": "#/components/schemas/FacilitiesServiceCurrency"
        language:
          "$ref": "#/components/schemas/FacilitiesServiceLanguage"
    FacilitiesService:
      type: object
      required:
      - id
      - form_type
      - name
      - description
      - price_currency
      - language
      - created_at
      - updated_at
      - items_count
      properties:
        id:
          type: integer
        form_type:
          "$ref": "#/components/schemas/FacilitiesServiceFormType"
        name:
          type: string
        description:
          type: string
        price_currency:
          "$ref": "#/components/schemas/FacilitiesServiceCurrency"
        language:
          "$ref": "#/components/schemas/FacilitiesServiceLanguage"
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        items_count:
          type: integer
    FacilitiesServiceFormType:
      type: string
      enum:
      - quantity
      - single_choice
      - multiple_choice
    FacilitiesServiceCurrency:
      type: string
      enum:
      - USD
      - EUR
      - JPY
      - GBP
      - CNY
    AdminAccessibleFloors:
      type: object
      required:
      - floors
      - pagination
      properties:
        floors:
          type: array
          items:
            "$ref": "#/components/schemas/AdminAccessibleFloor"
        pagination:
          "$ref": "#/components/schemas/Pagination"
    FloorEmbedded:
      type: object
      required:
      - id
      - name
      properties:
        id:
          type: integer
        name:
          type: string
    AdminAccessibleFloor:
      type: object
      required:
      - id
      - name
      - building
      - areas
      - floorplan_url
      - url
      properties:
        id:
          type: integer
        name:
          type: string
        building:
          "$ref": "#/components/schemas/BuildingEmbedded"
        areas:
          type: array
          items:
            "$ref": "#/components/schemas/AreaEmbedded"
        floorplan_url:
          type: string
          format: uri
          nullable: true
        url:
          type: string
          format: uri
    CreateIntegrationGrant:
      type: object
      required:
      - provider
      - domain
      - variant
      properties:
        name:
          type: string
        provider:
          type: string
        domain:
          type: string
        variant:
          type: string
        config:
          type: object
          properties:
            code:
              type: string
            redirect_uri:
              type: string
            scope:
              type: string
            tenant:
              type: string
            account_id:
              type: string
            account_name:
              type: string
    IntegrationGrantWithExtras:
      type: object
      required:
      - name
      - provider
      - domain
      - variant
      - id
      - created_at
      - updated_at
      - expired_at
      - url
      - multiple_grants_allowed
      - grantor
      - owner
      - synchronised_resources_count
      - buildings_count
      - meeting_rooms_count
      - user_groups_count
      - working_location_user_groups_count
      - working_location_calendars_count
      properties:
        name:
          type: string
        provider:
          type: string
        domain:
          type: string
        variant:
          type: string
        id:
          type: integer
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        expired_at:
          type: string
          format: date-time
          nullable: true
        url:
          type: string
          format: uri
        multiple_grants_allowed:
          type: boolean
        grantor:
          "$ref": "#/components/schemas/UserEmbedded"
        owner:
          oneOf:
          - "$ref": "#/components/schemas/UserEmbedded"
          - "$ref": "#/components/schemas/SpaceEmbedded"
        synchronised_resources_count:
          type: integer
          description: |
            Number of resources that were created thanks to this grant (or one that it
            replaced) and that would end up unable to be synced if the grant is destroyed.

            It does not include working location resources, as simply re-adding a grant would
            re-enable the synchronisation

            If positive and the multiple_grants_allowed is true, deleting the grant might not
            be possible
        buildings_count:
          type: integer
        meeting_rooms_count:
          type: integer
        user_groups_count:
          type: integer
        working_location_user_groups_count:
          type: integer
          description: 'Number of groups that provide this grant to their users for
            working location sync

            '
        working_location_calendars_count:
          type: integer
          description: |
            Number of calendars that might be synced using this grant. For space grant, this
            number is indicative, as the calendars can actually use another similar grant
            instead
    UpdateIntegrationGrant:
      type: object
      required:
      - name
      properties:
        name:
          type: string
    MeetingRoomsMigration:
      type: object
      required:
      - google
      - microsoft
      properties:
        google:
          "$ref": "#/components/schemas/ProviderMeetingRoomsMigration"
        microsoft:
          "$ref": "#/components/schemas/ProviderMeetingRoomsMigration"
    IntegrationGrants:
      type: object
      required:
      - integrations
      properties:
        integrations:
          type: array
          items:
            "$ref": "#/components/schemas/IntegrationGrant"
    ProviderMeetingRoomsMigration:
      type: object
      nullable: true
      required: []
      properties:
        calendar_grant:
          type: boolean
        host_sync_grant:
          type: boolean
        without_sync_grant:
          type: array
          items:
            "$ref": "#/components/schemas/MeetingRoomEmbedded"
        with_building_sync_grant:
          type: array
          items:
            "$ref": "#/components/schemas/MeetingRoomEmbedded"
    IntegrationGrant:
      type: object
      required:
      - name
      - provider
      - domain
      - variant
      - id
      - created_at
      - updated_at
      - expired_at
      - url
      - multiple_grants_allowed
      - grantor
      - owner
      properties:
        name:
          type: string
        provider:
          type: string
        domain:
          type: string
        variant:
          type: string
        id:
          type: integer
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        expired_at:
          type: string
          format: date-time
          nullable: true
        url:
          type: string
          format: uri
        multiple_grants_allowed:
          type: boolean
        grantor:
          "$ref": "#/components/schemas/UserEmbedded"
        owner:
          oneOf:
          - "$ref": "#/components/schemas/UserEmbedded"
          - "$ref": "#/components/schemas/SpaceEmbedded"
    MeetingRoomBookingRuleSet:
      type: object
      required:
      - horizon_enabled
      - horizon
      - access_rules_enabled
      - everyone_allowed
      - allowed_users
      - allowed_user_groups
      properties:
        horizon_enabled:
          type: boolean
        horizon:
          type: integer
        access_rules_enabled:
          type: boolean
        everyone_allowed:
          type: boolean
        allowed_users:
          type: array
          items:
            "$ref": "#/components/schemas/UserEmbedded"
          description: Users explicitely allowed. Meaningless without access_rules_enabled
        allowed_user_groups:
          type: array
          items:
            "$ref": "#/components/schemas/UserGroupEmbedded"
          description: User groups explicitely allowed. Meaningless without access_rules_enabled
    MeetingRoomBookingRuleSetUpdate:
      type: object
      description: No value is required
      properties:
        horizon_enabled:
          type: boolean
        horizon:
          type: integer
        access_rules_enabled:
          type: boolean
        everyone_allowed:
          type: boolean
        allowed_user_ids:
          type: array
          items:
            type: integer
        allowed_user_group_ids:
          type: array
          items:
            type: integer
    Equipment:
      type: object
      required:
      - id
      - name
      - technical_name
      properties:
        icon:
          type: string
          nullable: true
        id:
          type: integer
        name:
          type: string
          minLength: 3
        technical_name:
          type: string
          minLength: 3
    EquipmentList:
      type: object
      required:
      - items
      properties:
        items:
          type: array
          items:
            "$ref": "#/components/schemas/Equipment"
    CreateEquipment:
      type: object
      required:
      - name
      - technical_name
      properties:
        icon:
          type: string
          nullable: true
        name:
          type: string
          minLength: 3
        technical_name:
          type: string
          minLength: 3
    UpdateEquipmentList:
      type: object
      required:
      - items
      properties:
        items:
          type: array
          items:
            type: integer
    AdminAccessibleMeetingRoom:
      type: object
      required:
      - id
      - provider_id
      - type
      - name
      - synced
      - floor_number
      - capacity
      - url
      - space
      properties:
        id:
          type: integer
        provider_id:
          type: string
        type:
          type: string
          nullable: true
        name:
          type: string
        synced:
          type: boolean
        floor_number:
          type: string
          nullable: true
        capacity:
          type: integer
          nullable: true
        url:
          type: string
          format: uri
        space:
          "$ref": "#/components/schemas/SpaceEmbedded"
        building:
          "$ref": "#/components/schemas/BuildingEmbedded"
        floor:
          "$ref": "#/components/schemas/FloorEmbedded"
    SyncMeetingRoom:
      type: object
      properties:
        id:
          type: integer
          nullable: true
          description: |
            The integer is present if the meeting room is already synchronised on the server

            It is null if it's a new meeting room that would need to be created.
        type:
          type: string
        provider_id:
          type: string
        sync_grant_id:
          type: integer
        name:
          type: string
        original_name:
          type: string
        display_name:
          type: string
        floor_number:
          type: string
        capacity:
          type: integer
        calendar:
          type: object
          required:
          - provider_id
          properties:
            provider_id:
              type: string
        building:
          type: object
          required:
          - provider_id
          properties:
            id:
              type: integer
              nullable: true
            name:
              type: string
              nullable: true
            provider_id:
              type: string
    MeetingRoomEmbedded:
      type: object
      required:
      - id
      - name
      properties:
        id:
          type: integer
        name:
          type: string
    AdminAccessibleMeetingRooms:
      type: object
      required:
      - meeting_rooms
      properties:
        meeting_rooms:
          type: array
          items:
            "$ref": "#/components/schemas/AdminAccessibleMeetingRoom"
    Occupancies:
      type: array
      items:
        type: object
        required:
        - date
        - occupancies
        - visitors
        properties:
          date:
            type: string
            format: date
          occupancies:
            type: object
            properties:
              checked_in:
                type: integer
              expected:
                type: integer
              remaining_seats:
                type: integer
              gauges:
                type: object
                properties:
                  global:
                    type: number
                  checked_in:
                    type: number
                  expected:
                    type: number
          visitors:
            type: object
            properties:
              checked_in:
                type: integer
              expected:
                type: integer
    Pagination:
      type: object
      required:
      - current
      - per_page
      - pages
      - count
      properties:
        current:
          type: integer
          minimum: 1
        previous:
          type: integer
          minimum: 1
        next:
          type: integer
          minimum: 2
        per_page:
          type: integer
          minimum: 1
        pages:
          type: integer
          minimum: 1
        count:
          type: integer
          minimum: 0
    PresenceState:
      type: string
      enum:
      - pending
      - coming
      - ongoing
      - finished
      - canceled
      - autoreleased
    EmbeddedPresence:
      type: object
      required:
      - uuid
      - state
      - start_datetime
      - end_datetime
      - person
      properties:
        uuid:
          type: string
          format: uuid
        state:
          "$ref": "#/components/schemas/PresenceState"
        start_datetime:
          type: string
          format: date-time
        end_datetime:
          type: string
          format: date-time
        is_private:
          type: boolean
          default: false
        person:
          oneOf:
          - "$ref": "#/components/schemas/UserProfile"
          - type: 'null'
    SpaceEmbedded:
      type: object
      required:
      - uuid
      - subdomain
      - name
      properties:
        uuid:
          type: string
          format: uuid
        subdomain:
          type: string
        name:
          type: string
    SyncBuildings:
      type: object
      required:
      - buildings
      properties:
        buildings:
          type: array
          items:
            "$ref": "#/components/schemas/SyncBuilding"
    SyncMeetingRooms:
      type: object
      required:
      - meeting_rooms
      properties:
        meeting_rooms:
          type: array
          items:
            "$ref": "#/components/schemas/SyncMeetingRoom"
    SyncUserGroups:
      type: object
      required:
      - user_groups
      properties:
        user_groups:
          type: array
          items:
            "$ref": "#/components/schemas/SyncUserGroup"
    SyncGrants:
      type: object
      required:
      - integrations
      properties:
        integrations:
          type: array
          items:
            "$ref": "#/components/schemas/IntegrationGrant"
    AdminAccessibleUserGroups:
      type: object
      required:
      - user_groups
      properties:
        user_groups:
          type: array
          items:
            "$ref": "#/components/schemas/AdminAccessibleUserGroup"
    SyncUserGroup:
      type: object
      properties:
        id:
          type: integer
          nullable: true
          description: |
            The integer is present if the user group is already synchronised on the server

            It is null if it's a new user group that would need to be created.
        type:
          type: string
        provider_id:
          type: string
        sync_grant_id:
          type: integer
        name:
          type: string
    AdminAccessibleUserGroup:
      type: object
      required:
      - id
      - type
      - name
      - synced
      - roles
      - members_count
      - space
      - url
      properties:
        id:
          type: integer
        type:
          type: string
          nullable: true
        name:
          type: string
        synced:
          type: boolean
        roles:
          "$ref": "#/components/schemas/Roles"
        members_count:
          type: integer
        space:
          "$ref": "#/components/schemas/SpaceEmbedded"
        url:
          type: string
          format: uri
    UserGroupEmbedded:
      type: object
      required:
      - id
      - name
      properties:
        id:
          type: integer
        name:
          type: string
    Roles:
      type: array
      items:
        "$ref": "#/components/schemas/Role"
    Role:
      type: string
      enum:
      - admin
      - analytics_observer
      - announcer
      - building_admin
      - building_reader
      - desk
      - desk_booker
      - host
      - manager
      - meeting_room_admin
      - meeting_room_booker
      - meeting_room_reader
      - owner
      - service_admin
      - space_admin
      - space_owner
      - user
      - user_admin
      - visitor_admin
      - visitor_reader
    UserRole:
      type: object
      properties:
        is_from_user:
          type: boolean
        name:
          "$ref": "#/components/schemas/Role"
        overridden_by:
          type: array
          items:
            "$ref": "#/components/schemas/UserGroupEmbedded"
    UserRoles:
      type: array
      items:
        "$ref": "#/components/schemas/UserRole"
    UserProfile:
      type: object
      required:
      - id
      - email
      - full_name
      - first_name
      - last_name
      - avatar
      properties:
        id:
          type: integer
        email:
          type: string
          format: email
        full_name:
          type: string
        first_name:
          type: string
        last_name:
          type: string
        avatar:
          type: string
          format: uri
          nullable: true
    UserEmbedded:
      type: object
      required:
      - id
      - email
      - full_name
      properties:
        id:
          type: integer
        email:
          type: string
          format: email
        full_name:
          type: string
    FeatureFlags:
      type: object
      required:
      - flags
      properties:
        flags:
          type: object
          additionalProperties:
            type: boolean
          description: Feature flags for the user, with keys as flag names
    SpaceWorkActivitySettings:
      type: object
      required:
      - visibility
      properties:
        visibility:
          type: string
          enum:
          - public
          - manager_only
tags:
- name: Experimental
  description: Those endpoints are experimental and are subject to breaking changes
paths:
  "/api/v2beta/spaces/{space_id}/floors/{floor_id}/areas":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    - name: floor_id
      in: path
      description: Parent Floor id
      required: true
      schema:
        type: integer
    get:
      summary: List Areas for a Floor
      tags:
      - Areas
      - Floors
      security:
      - comeenOauth:
        - buildings:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                areas:
                - id: 13
                  name: Marketing
                  created_at: '2026-06-22T09:29:24.950Z'
                  updated_at: '2026-06-22T09:29:24.950Z'
                  shape:
                  center:
                  flex_office:
                  capacity: 15
                  threshold: 100
                  floor:
                    id: 145
                    name: Personal & Household Goods
                  url: http://www.example.com/api/v2beta/spaces/fe712d8a-3553-47d0-b037-65aecda333d6/areas/13
              schema:
                "$ref": "#/components/schemas/Areas"
    post:
      summary: Create an Area in a Floor
      tags:
      - Areas
      security:
      - comeenOauth:
        - buildings:write
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/AreaWithPresenceDetails"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                area:
                  "$ref": "#/components/schemas/CreateArea"
        required: true
  "/api/v2beta/spaces/{space_id}/areas/{id}":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    - name: id
      in: path
      description: Area id
      required: true
      schema:
        type: integer
    get:
      summary: Show Area details
      tags:
      - Areas
      security:
      - comeenOauth:
        - buildings:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 15
                name: Administration
                created_at: '2026-06-22T09:29:25.128Z'
                updated_at: '2026-06-22T09:29:25.128Z'
                shape:
                center:
                flex_office:
                capacity: 15
                threshold: 100
                floor:
                  id: 147
                  name: Health Care
                url: http://www.example.com/api/v2beta/spaces/05a8eff1-df5c-45d2-a3aa-e2c54bc831d7/areas/15
                capacity_limit: 15.0
                capacity_gauge_for_today: 0.0
                count_checked_in_today: 0
                count_expected_presences_today: 0
                capacity_reached_for_today: false
              schema:
                "$ref": "#/components/schemas/AreaWithPresenceDetails"
    put:
      summary: Update Area details
      tags:
      - Areas
      security:
      - comeenOauth:
        - buildings:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                area:
                  "$ref": "#/components/schemas/UpdateArea"
        required: true
    patch:
      summary: Update Area details
      tags:
      - Areas
      security:
      - comeenOauth:
        - buildings:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                area:
                  "$ref": "#/components/schemas/UpdateArea"
        required: true
    delete:
      summary: Delete Area
      tags:
      - Areas
      security:
      - comeenOauth:
        - buildings:write
      responses:
        '204':
          description: successful
  "/api/v2beta/spaces/{space_id}/buildings/admin_accessible":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: Get admin accessible buildings
      tags:
      - Buildings
      security:
      - comeenOauth:
        - buildings:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                buildings:
                - id: 303
                  name: Park Heights
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space:
                    uuid: 1be31c3a-b0ac-4b95-bcb0-2adb3ac950de
                    subdomain: koch-beatty-852
                    name: Koch-Beatty
                  url: http://www.example.com/api/v2beta/spaces/1be31c3a-b0ac-4b95-bcb0-2adb3ac950de/buildings/303.json
                  logo_url:
                - id: 304
                  name: Royal Oaks
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space:
                    uuid: 1be31c3a-b0ac-4b95-bcb0-2adb3ac950de
                    subdomain: koch-beatty-852
                    name: Koch-Beatty
                  url: http://www.example.com/api/v2beta/spaces/1be31c3a-b0ac-4b95-bcb0-2adb3ac950de/buildings/304.json
                  logo_url:
                - id: 305
                  name: Park Oaks
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space:
                    uuid: 1be31c3a-b0ac-4b95-bcb0-2adb3ac950de
                    subdomain: koch-beatty-852
                    name: Koch-Beatty
                  url: http://www.example.com/api/v2beta/spaces/1be31c3a-b0ac-4b95-bcb0-2adb3ac950de/buildings/305.json
                  logo_url:
              schema:
                "$ref": "#/components/schemas/AdminAccessibleBuildings"
  "/api/v2beta/spaces/{space_id}/desks/available":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: Available desks for a Space
      tags:
      - Spaces
      - Desks
      security:
      - comeenOauth:
        - desks:read
      parameters:
      - name: start_datetime
        in: query
        schema:
          type: string
          format: date-time
        description: Start bound for Desk availability period. Inclusive.
      - name: end_datetime
        in: query
        schema:
          type: string
          format: date-time
        description: End bound for Desk availability period. Exclusive.
      - name: building_id
        in: query
        schema:
          type: integer
        description: Building to check available Desks in.
      - name: floor_id
        in: query
        schema:
          type: integer
        description: Floor to check available Desks in.
      - name: area_id
        in: query
        schema:
          type: integer
        description: Area to check available Desks in.
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                every_day: []
              schema:
                "$ref": "#/components/schemas/AvailableDesks"
  "/api/v2beta/spaces/{space_id}/desks/{id}":
    parameters:
    - name: id
      in: path
      schema:
        type: string
        format: uuid
      description: Desk uuid
      required: true
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: Show desk details
      tags:
      - Desks
      security:
      - comeenOauth:
        - desks:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 15
                uuid: 64eb5521-5e1f-484a-8275-2326ee230477
                name: Insurance-66
                coordinates:
                  x: -1
                  "y": -1
                created_at: '2026-06-22T09:29:25.974Z'
                updated_at: '2026-06-22T09:29:25.974Z'
                available_to_booking: false
                sync_id:
                building:
                  id: 313
                  name: University Gardens
                floor:
                  id: 155
                  name: Insurance
                area:
                assigned_person:
                equipment: []
                url: http://www.example.com/api/v2beta/spaces/c02134a4-85dc-4b16-91c5-0e5b10f55870/desks/15.json
              schema:
                "$ref": "#/components/schemas/Desk"
    put:
      summary: Update desk details
      tags:
      - Desks
      security:
      - comeenOauth:
        - desks:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                desk:
                  "$ref": "#/components/schemas/UpdateDesk"
    patch:
      summary: Update desk details
      tags:
      - Desks
      security:
      - comeenOauth:
        - desks:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                desk:
                  "$ref": "#/components/schemas/UpdateDesk"
  "/api/v2beta/spaces/{space_id}/desks/{id}/occupancies":
    parameters:
    - name: id
      in: path
      schema:
        type: string
        format: uuid
      description: Desk uuid
      required: true
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: Show desk occupancies
      tags:
      - Desks
      security:
      - comeenOauth:
        - desks:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                occupancies: []
              schema:
                "$ref": "#/components/schemas/DeskOccupancies"
  "/api/v2beta/spaces/{space_id}/floors/{floor_id}/desks":
    parameters:
    - name: floor_id
      in: path
      description: Floor id
      required: true
      schema:
        type: integer
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    post:
      summary: Create floor desk
      tags:
      - Desks
      security:
      - comeenOauth:
        - desks:write
      parameters: []
      responses:
        '201':
          description: created
          content:
            application/json:
              example:
                id: 21
                uuid: 42c828a0-6c93-4fa5-8d6d-5a146d568eb6
                name: Media-72
                coordinates:
                  x: -1
                  "y": -1
                created_at: '2026-06-22T09:29:26.494Z'
                updated_at: '2026-06-22T09:29:26.494Z'
                available_to_booking: false
                sync_id:
                building:
                  id: 319
                  name: Willow Court
                floor:
                  id: 161
                  name: Media
                area:
                assigned_person:
                equipment: []
                url: http://www.example.com/api/v2beta/spaces/1151bfef-37f7-4975-b36e-3a3af52ef5f8/desks/21.json
              schema:
                "$ref": "#/components/schemas/Desk"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                desk:
                  "$ref": "#/components/schemas/CreateDesk"
    get:
      summary: List Floor Desks
      tags:
      - Desks
      security:
      - comeenOauth:
        - desks:read
      parameters:
      - name: page
        in: query
        required: false
        schema:
          type: integer
          default: 1
        description: Page number
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                desks: []
                pagination:
                  current: 1
                  per_page: 24
                  pages: 1
                  count: 0
              schema:
                "$ref": "#/components/schemas/Desks"
  "/api/v2beta/spaces/{space_id}/buildings/{building_id}/desks":
    parameters:
    - name: building_id
      in: path
      description: Building id
      required: true
      schema:
        type: integer
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: List Building Desks
      tags:
      - Desks
      security:
      - comeenOauth:
        - desks:read
      parameters:
      - name: page
        in: query
        required: false
        schema:
          type: integer
          default: 1
        description: Page number
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                desks: []
                pagination:
                  current: 1
                  per_page: 24
                  pages: 1
                  count: 0
              schema:
                "$ref": "#/components/schemas/Desks"
  "/api/v2beta/spaces/{space_id}/floors/{floor_id}/desks/schedule":
    parameters:
    - name: floor_id
      in: path
      description: Floor id
      required: true
      schema:
        type: integer
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: List Floor Desks schedule
      tags:
      - Desks
      - Presences
      security:
      - comeenOauth:
        - presences:read
      deprecated: true
      description: |
        Use v2 endpoint instead:
        - /api/v2/spaces/{space_id}/floors/{floor_id}/desks/schedule
      parameters:
      - name: start_datetime
        in: query
        schema:
          type: string
          format: date-time
        description: Start bound for Desk schedule period. Inclusive.
      - name: end_datetime
        in: query
        schema:
          type: string
          format: date-time
        description: End bound for Desk schedule period. Exclusive.
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                desks:
                - uuid: 5439cc55-45b2-41e4-8ba9-a5dcf6ced1aa
                  name: Food & Beverage-73
                  sync_id:
                  coordinates:
                    x: -1
                    "y": -1
                  available_to_booking: true
                  area:
                  assigned_person:
                  equipment: []
                  schedule:
                  - uuid: aeda1fc2-5668-424e-826f-91c14a8d93e2
                    state: pending
                    start_datetime: '2026-06-23T00:00:00.000Z'
                    end_datetime: '2026-06-23T23:59:59.000Z'
                    person:
                      id: 695
                      full_name: Melvin Conroy
                      first_name: Melvin
                      last_name: Conroy
                      email: conroy.melvin@example.org
                      avatar:
                    is_private: false
                - uuid: 696cc9e1-7816-4416-8877-2d2f405d4a43
                  name: Food & Beverage-74
                  sync_id:
                  coordinates:
                    x: -1
                    "y": -1
                  available_to_booking: true
                  area:
                  assigned_person:
                  equipment: []
                  schedule:
                  - uuid: '018883da-360a-4050-a9a0-43354d8a12e3'
                    state: coming
                    start_datetime: '2026-06-25T00:00:00.000Z'
                    end_datetime: '2026-06-25T23:59:59.000Z'
                    person:
                      id: 696
                      full_name: Denny Hauck
                      first_name: Denny
                      last_name: Hauck
                      email: hauck-denny@example.org
                      avatar:
                    is_private: false
                - uuid: 867bd474-f48f-4cf9-a01c-17eb9208d6a5
                  name: Food & Beverage-75
                  sync_id:
                  coordinates:
                    x: -1
                    "y": -1
                  available_to_booking: true
                  area:
                  assigned_person:
                  equipment: []
                  schedule:
                  - uuid: 77a3cc6b-e854-4ac1-a4b2-8e7cab5d14ee
                    state: pending
                    start_datetime: '2026-06-25T00:00:00.000Z'
                    end_datetime: '2026-06-25T23:59:59.000Z'
                    person:
                      id: 697
                      full_name: Ron Herzog
                      first_name: Ron
                      last_name: Herzog
                      email: ron_herzog@example.org
                      avatar:
                    is_private: false
                - uuid: 7ff4bbd6-a625-4ef7-a08e-b8945f14e5a8
                  name: Food & Beverage-76
                  sync_id:
                  coordinates:
                    x: -1
                    "y": -1
                  available_to_booking: true
                  area:
                  assigned_person:
                  equipment: []
                  schedule:
                  - uuid: ee3b5043-9c37-45bf-94f9-9fed53796b2f
                    state: coming
                    start_datetime: '2026-06-25T00:00:00.000Z'
                    end_datetime: '2026-06-25T23:59:59.000Z'
                    person:
                      id: 698
                      full_name: Mazie Marvin
                      first_name: Mazie
                      last_name: Marvin
                      email: marvin_mazie@example.org
                      avatar:
                    is_private: false
                - uuid: 05d870dc-d7d4-4906-9184-6366a6bfe121
                  name: Food & Beverage-77
                  sync_id:
                  coordinates:
                    x: -1
                    "y": -1
                  available_to_booking: true
                  area:
                  assigned_person:
                  equipment: []
                  schedule:
                  - uuid: 8be12076-bde4-4be8-980a-2d195634c881
                    state: coming
                    start_datetime: '2026-06-26T00:00:00.000Z'
                    end_datetime: '2026-06-26T23:59:59.000Z'
                    person:
                      id: 699
                      full_name: Ismael Johnson
                      first_name: Ismael
                      last_name: Johnson
                      email: johnson_ismael@example.org
                      avatar:
                    is_private: false
                start_datetime: '2026-06-17T09:29:27Z'
                end_datetime: '2026-06-27T09:29:27Z'
              schema:
                "$ref": "#/components/schemas/AllDeskSchedule"
  "/api/v2beta/spaces/{space_id}/facilities/services/{service_id}/categories":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    - name: service_id
      in: path
      description: Service id
      required: true
      schema:
        type: integer
    post:
      summary: Create Category on the Service
      tags:
      - Facilities
      - Categories
      security:
      - comeenOauth:
        - facilities_services:write
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                id: 1
                name: Snacks
              schema:
                "$ref": "#/components/schemas/FacilitiesCategory"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - category
              properties:
                category:
                  "$ref": "#/components/schemas/CreateFacilitiesCategory"
        required: true
  "/api/v2beta/spaces/{space_id}/facilities/categories/{category_id}":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    - name: category_id
      in: path
      description: Category id
      required: true
      schema:
        type: integer
    delete:
      summary: Delete the category
      tags:
      - Facilities
      - Categories
      security:
      - comeenOauth:
        - facilities_services:write
      responses:
        '204':
          description: successful
  "/api/v2beta/spaces/{space_id}/facilities/services":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: List Facilities Services of the Space
      tags:
      - Facilities
      - Services
      security:
      - comeenOauth:
        - facilities_services:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                services:
                - id: 3
                  name: Books
                  updated_at: '2026-06-22T09:29:27.278Z'
                  items_count: 4
              schema:
                "$ref": "#/components/schemas/FacilitiesServices"
    post:
      summary: Create a Facilities Service on the Space
      tags:
      - Facilities
      - Services
      security:
      - comeenOauth:
        - facilities_services:write
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                id: 4
                form_type: quantity
                name: Catering
                description: Drinks and snacks
                price_currency: EUR
                language: en
                created_at: '2026-06-22T09:29:27.412Z'
                updated_at: '2026-06-22T09:29:27.412Z'
                items_count: 0
              schema:
                "$ref": "#/components/schemas/FacilitiesService"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - service
              properties:
                service:
                  "$ref": "#/components/schemas/CreateFacilitiesService"
        required: true
  "/api/v2beta/spaces/{space_id}/facilities/services/{service_id}":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    - name: service_id
      in: path
      description: Service id
      required: true
      schema:
        type: integer
    get:
      summary: Show the Service
      tags:
      - Facilities
      - Services
      security:
      - comeenOauth:
        - facilities_services:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 5
                form_type: quantity
                name: Computers
                description: Nesciunt enim accusantium. Consequatur vel perferendis.
                  Omnis quam et.
                price_currency: CNY
                language: en
                created_at: '2026-06-22T09:29:27.433Z'
                updated_at: '2026-06-22T09:29:27.433Z'
                items_count: 3
              schema:
                "$ref": "#/components/schemas/FacilitiesService"
    delete:
      summary: Delete the Service
      tags:
      - Facilities
      - Services
      security:
      - comeenOauth:
        - facilities_services:write
      responses:
        '204':
          description: successful
  "/api/v2beta/spaces/{space_id}/buildings/{building_id}/floors/admin_accessible":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    - name: building_id
      in: path
      description: Building id
      required: true
      schema:
        type: integer
    get:
      summary: Get admin accessible floors
      tags:
      - Floors
      security:
      - comeenOauth:
        - buildings:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                floors:
                - id: 164
                  name: Real Estate
                  building:
                    id: 323
                    name: Willow Gardens
                  areas:
                  - id: 21
                    name: Administration
                  floorplan_url: http://www.example.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBbU1CIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--48802f75a7025a0a8e9c549a308c6cc4fe3be07f/blank.png
                  url: http://www.example.com/api/v2beta/spaces/77240cd6-624b-4816-94ca-ab12e8dba5eb/floors/164.json
                - id: 165
                  name: Chemicals
                  building:
                    id: 323
                    name: Willow Gardens
                  areas: []
                  floorplan_url: http://www.example.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBbVFCIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--e179d953dfe80a79c7b864e48b596b3e0cc523fa/blank.png
                  url: http://www.example.com/api/v2beta/spaces/77240cd6-624b-4816-94ca-ab12e8dba5eb/floors/165.json
                - id: 166
                  name: Travel & Leisure
                  building:
                    id: 323
                    name: Willow Gardens
                  areas: []
                  floorplan_url: http://www.example.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBbVVCIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--d94a1ab60e7153700bf5d1288b034b65004fea7f/blank.png
                  url: http://www.example.com/api/v2beta/spaces/77240cd6-624b-4816-94ca-ab12e8dba5eb/floors/166.json
                pagination:
                  current: 1
                  per_page: 24
                  pages: 1
                  count: 3
              schema:
                "$ref": "#/components/schemas/AdminAccessibleFloors"
  "/api/v2beta/users/{user_id}/integration_grants":
    parameters:
    - name: user_id
      in: path
      description: User id
      required: true
      schema:
        type: integer
    get:
      summary: List IntegrationGrants for a User
      tags:
      - IntegrationGrants
      - Users
      security:
      - comeenOauth:
        - integration_grants:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                integrations:
                - id: 86
                  provider: google
                  domain: own_calendar
                  variant: default
                  name: ''
                  created_at: '2026-06-22T09:29:27.931Z'
                  updated_at: '2026-06-22T09:29:27.931Z'
                  expired_at:
                  multiple_grants_allowed: false
                  owner:
                    id: 709
                    email: vaughn_gerlach@example.org
                    full_name: Vaughn Gerlach
                  grantor:
                    id: 709
                    email: vaughn_gerlach@example.org
                    full_name: Vaughn Gerlach
                  url: http://www.example.com/api/v2beta/integration_grants/86.json
              schema:
                "$ref": "#/components/schemas/IntegrationGrants"
    post:
      summary: Create IntegrationGrant for a User
      tags:
      - IntegrationGrants
      - Users
      security:
      - comeenOauth:
        - integration_grants:write
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                id: 88
                provider: microsoft
                domain: teams
                variant: default
                name: ''
                created_at: '2026-06-22T09:29:28.022Z'
                updated_at: '2026-06-22T09:29:28.022Z'
                expired_at:
                multiple_grants_allowed: false
                owner:
                  id: 710
                  email: will.anderson@example.org
                  full_name: Will Anderson
                grantor:
                  id: 710
                  email: will.anderson@example.org
                  full_name: Will Anderson
                url: http://www.example.com/api/v2beta/integration_grants/88.json
                synchronised_resources_count: 0
                buildings_count: 0
                meeting_rooms_count: 0
                user_groups_count: 0
                working_location_user_groups_count: 0
                working_location_calendars_count: 0
              schema:
                "$ref": "#/components/schemas/IntegrationGrantWithExtras"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                integration_grant:
                  "$ref": "#/components/schemas/CreateIntegrationGrant"
  "/api/v2beta/integration_grants/{id}":
    parameters:
    - name: id
      in: path
      description: IntegrationGrant id
      required: true
      schema:
        type: integer
    get:
      summary: Show IntegrationGrant details
      tags:
      - IntegrationGrants
      security:
      - comeenOauth:
        - integration_grants:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 89
                provider: microsoft
                domain: own_calendar
                variant: default
                name: ''
                created_at: '2026-06-22T09:29:28.075Z'
                updated_at: '2026-06-22T09:29:28.075Z'
                expired_at:
                multiple_grants_allowed: false
                owner:
                  id: 711
                  email: tromp-temeka@example.org
                  full_name: Temeka Tromp
                grantor:
                  id: 711
                  email: tromp-temeka@example.org
                  full_name: Temeka Tromp
                url: http://www.example.com/api/v2beta/integration_grants/89.json
                synchronised_resources_count: 0
                buildings_count: 0
                meeting_rooms_count: 0
                user_groups_count: 0
                working_location_user_groups_count: 0
                working_location_calendars_count: 0
              schema:
                "$ref": "#/components/schemas/IntegrationGrantWithExtras"
    put:
      summary: Udate IntegrationGrant details
      tags:
      - IntegrationGrants
      security:
      - comeenOauth:
        - integration_grants:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                integration_grant:
                  "$ref": "#/components/schemas/UpdateIntegrationGrant"
    patch:
      summary: Udate IntegrationGrant details
      tags:
      - IntegrationGrants
      security:
      - comeenOauth:
        - integration_grants:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                integration_grant:
                  "$ref": "#/components/schemas/UpdateIntegrationGrant"
    delete:
      summary: Destroy IntegrationGrant
      tags:
      - IntegrationGrants
      security:
      - comeenOauth:
        - integration_grants:write
      responses:
        '204':
          description: successful
  "/api/v2beta/integration_grants/{id}/replace_by/{replace_by_id}":
    parameters:
    - name: id
      in: path
      description: Id of the IntegrationGrant to replace
      required: true
      schema:
        type: integer
    - name: replace_by_id
      in: path
      description: Id of the IntegrationGrant to use instead
      required: true
      schema:
        type: integer
    post:
      summary: Replace a grant by another
      tags:
      - IntegrationGrants
      security:
      - comeenOauth:
        - integration_grants:write
      responses:
        '204':
          description: successful
  "/api/v2beta/spaces/{space_id}/integration_grants":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: List IntegrationGrants for a Space
      tags:
      - IntegrationGrants
      security:
      - comeenOauth:
        - integration_grants:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                integrations:
                - id: 95
                  provider: crestron
                  domain: desk_q
                  variant: default
                  name: ''
                  created_at: '2026-06-22T09:29:28.527Z'
                  updated_at: '2026-06-22T09:29:28.527Z'
                  expired_at:
                  multiple_grants_allowed: false
                  owner:
                    uuid: 9d7b4ea4-1a08-4fe6-8dec-a455817da393
                    subdomain: feeney-reichert-893
                    name: Feeney-Reichert
                  grantor:
                    id: 719
                    email: joel_osinski@example.org
                    full_name: Joel Osinski
                  url: http://www.example.com/api/v2beta/integration_grants/95.json
              schema:
                "$ref": "#/components/schemas/IntegrationGrants"
    post:
      summary: Create IntegrationGrant for a Space
      tags:
      - IntegrationGrants
      - Spaces
      security:
      - comeenOauth:
        - integration_grants:write
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                id: 97
                provider: crestron
                domain: desk_q
                variant: default
                name: ''
                created_at: '2026-06-22T09:29:28.628Z'
                updated_at: '2026-06-22T09:29:28.628Z'
                expired_at:
                multiple_grants_allowed: false
                owner:
                  uuid: 3f6ff36b-3e09-40b1-b80e-9fafda31e47c
                  subdomain: ortiz-jakubowski-894
                  name: Ortiz-Jakubowski
                grantor:
                  id: 720
                  email: anjanette.mraz@example.org
                  full_name: Anjanette Mraz
                url: http://www.example.com/api/v2beta/integration_grants/97.json
                synchronised_resources_count: 0
                buildings_count: 0
                meeting_rooms_count: 0
                user_groups_count: 0
                working_location_user_groups_count: 0
                working_location_calendars_count: 0
              schema:
                "$ref": "#/components/schemas/IntegrationGrantWithExtras"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                integration_grant:
                  "$ref": "#/components/schemas/CreateIntegrationGrant"
  "/api/v2beta/spaces/{space_id}/integration_grants/meeting_rooms_migration":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: Get information about meeting rooms that need to be migrated to the
        new grant
      tags:
      - IntegrationGrants
      security:
      - comeenOauth:
        - integration_grants:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                google:
                microsoft:
              schema:
                "$ref": "#/components/schemas/MeetingRoomsMigration"
    post:
      summary: Migrate meeting rooms to the given grant
      tags:
      - IntegrationGrants
      security:
      - comeenOauth:
        - integration_grants:read
        - integration_grants:write
      parameters: []
      responses:
        '202':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - grant_id
              properties:
                grant_id:
                  type: integer
  "/api/v2beta/spaces/{space_id}/integration_grants/admin_accessible":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: Get admin accessible IntegrationGrants
      tags:
      - IntegrationGrants
      security:
      - comeenOauth:
        - integration_grants:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                integrations:
                - id: 101
                  provider: crestron
                  domain: desk_q
                  variant: default
                  name: ''
                  created_at: '2026-06-22T09:29:28.917Z'
                  updated_at: '2026-06-22T09:29:28.917Z'
                  expired_at:
                  multiple_grants_allowed: false
                  owner:
                    uuid: eed9a37b-2fb4-4b38-a347-4424fe49c064
                    subdomain: considine-mccullough-897
                    name: Considine-McCullough
                  grantor:
                    id: 727
                    full_name: Elza Kohler
                    email: elza_kohler@example.org
                  url: http://www.example.com/api/v2beta/integration_grants/101.json
                - id: 102
                  provider: microsoft
                  domain: meeting_rooms
                  variant: application
                  name: ''
                  created_at: '2026-06-22T09:29:28.943Z'
                  updated_at: '2026-06-22T09:29:28.943Z'
                  expired_at:
                  multiple_grants_allowed: false
                  owner:
                    uuid: eed9a37b-2fb4-4b38-a347-4424fe49c064
                    subdomain: considine-mccullough-897
                    name: Considine-McCullough
                  grantor:
                    id: 728
                    full_name: Jaunita Moore
                    email: moore-jaunita@example.org
                  url: http://www.example.com/api/v2beta/integration_grants/102.json
                - id: 103
                  provider: slack
                  domain: app
                  variant: default
                  name: ''
                  created_at: '2026-06-22T09:29:28.974Z'
                  updated_at: '2026-06-22T09:29:28.974Z'
                  expired_at:
                  multiple_grants_allowed: false
                  owner:
                    uuid: eed9a37b-2fb4-4b38-a347-4424fe49c064
                    subdomain: considine-mccullough-897
                    name: Considine-McCullough
                  grantor:
                    id: 729
                    full_name: Victor Wuckert
                    email: victor_wuckert@example.org
                  url: http://www.example.com/api/v2beta/integration_grants/103.json
              schema:
                "$ref": "#/components/schemas/IntegrationGrants"
  "/api/v2beta/spaces/{space_id}/meeting_room_booking_rule_set":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space UUID
      required: true
    get:
      summary: Get the space's meeting room booking rules
      tags:
      - Meeting room booking rules
      security:
      - comeenOauth:
        - meeting_rooms:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                horizon_enabled: false
                horizon: 31556952
                access_rules_enabled: false
                everyone_allowed: true
                allowed_users: []
                allowed_user_groups: []
              schema:
                "$ref": "#/components/schemas/MeetingRoomBookingRuleSet"
    patch:
      summary: Update the space's meeting room booking rules
      tags:
      - Meeting room booking rules
      security:
      - comeenOauth:
        - meeting_rooms:write
      description: |
        Update the rule set using PATCH semantic.

        If present, allowed_user_ids or allowed_user_group_ids will replace all the values
        initially present in the rule set
      parameters: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                horizon_enabled: false
                horizon: 31556952
                access_rules_enabled: false
                everyone_allowed: true
                allowed_users: []
                allowed_user_groups: []
              schema:
                "$ref": "#/components/schemas/MeetingRoomBookingRuleSet"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/MeetingRoomBookingRuleSetUpdate"
  "/api/v2beta/spaces/{space_id}/buildings/{id}/meeting_room_booking_rule_set":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space UUID
      required: true
    - name: id
      in: path
      schema:
        type: integer
      description: Building ID
      required: true
    get:
      summary: Get the building's meeting room booking rules
      tags:
      - Meeting room booking rules
      security:
      - comeenOauth:
        - meeting_rooms:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                horizon_enabled: false
                horizon: 31556952
                access_rules_enabled: false
                everyone_allowed: true
                allowed_users: []
                allowed_user_groups: []
              schema:
                "$ref": "#/components/schemas/MeetingRoomBookingRuleSet"
    patch:
      summary: Update the building's meeting room booking rules
      tags:
      - Meeting room booking rules
      security:
      - comeenOauth:
        - meeting_rooms:write
      description: |
        Update the rule set using PATCH semantic.

        If present, allowed_user_ids or allowed_user_group_ids will replace all the values
        initially present in the rule set
      parameters: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                horizon_enabled: false
                horizon: 31556952
                access_rules_enabled: false
                everyone_allowed: true
                allowed_users: []
                allowed_user_groups: []
              schema:
                "$ref": "#/components/schemas/MeetingRoomBookingRuleSet"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/MeetingRoomBookingRuleSetUpdate"
  "/api/v2beta/spaces/{space_id}/meeting_rooms/{id}/meeting_room_booking_rule_set":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space UUID
      required: true
    - name: id
      in: path
      schema:
        type: integer
      description: Meeting_room ID
      required: true
    get:
      summary: Get the meeting_room's meeting room booking rules
      tags:
      - Meeting room booking rules
      security:
      - comeenOauth:
        - meeting_rooms:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                horizon_enabled: false
                horizon: 31556952
                access_rules_enabled: false
                everyone_allowed: true
                allowed_users: []
                allowed_user_groups: []
              schema:
                "$ref": "#/components/schemas/MeetingRoomBookingRuleSet"
    patch:
      summary: Update the meeting_room's meeting room booking rules
      tags:
      - Meeting room booking rules
      security:
      - comeenOauth:
        - meeting_rooms:write
      description: |
        Update the rule set using PATCH semantic.

        If present, allowed_user_ids or allowed_user_group_ids will replace all the values
        initially present in the rule set
      parameters: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                horizon_enabled: false
                horizon: 31556952
                access_rules_enabled: false
                everyone_allowed: true
                allowed_users: []
                allowed_user_groups: []
              schema:
                "$ref": "#/components/schemas/MeetingRoomBookingRuleSet"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/MeetingRoomBookingRuleSetUpdate"
  "/api/v2beta/spaces/{space_id}/user_groups/{id}/meeting_room_booking_rule_set":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space UUID
      required: true
    - name: id
      in: path
      schema:
        type: integer
      description: User_group ID
      required: true
    get:
      summary: Get the user_group's meeting room booking rules
      tags:
      - Meeting room booking rules
      security:
      - comeenOauth:
        - meeting_rooms:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                horizon_enabled: false
                horizon: 31556952
                access_rules_enabled: false
                everyone_allowed: true
                allowed_users: []
                allowed_user_groups: []
              schema:
                "$ref": "#/components/schemas/MeetingRoomBookingRuleSet"
    patch:
      summary: Update the user_group's meeting room booking rules
      tags:
      - Meeting room booking rules
      security:
      - comeenOauth:
        - meeting_rooms:write
      description: |
        Update the rule set using PATCH semantic.

        If present, allowed_user_ids or allowed_user_group_ids will replace all the values
        initially present in the rule set
      parameters: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                horizon_enabled: false
                horizon: 31556952
                access_rules_enabled: false
                everyone_allowed: true
                allowed_users: []
                allowed_user_groups: []
              schema:
                "$ref": "#/components/schemas/MeetingRoomBookingRuleSet"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/MeetingRoomBookingRuleSetUpdate"
  "/api/v2beta/spaces/{space_id}/meeting_room_equipment":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: Get all meeting room equipment for a space
      tags:
      - MeetingRooms
      - Equipment
      security:
      - comeenOauth:
        - meeting_rooms:read
      responses:
        '200':
          description: success
          content:
            application/json:
              example:
                items:
                - icon:
                  id: 2
                  name: ached Air purifier
                  technical_name: ached_air_purifier
                - icon: ":battery:"
                  id: 1
                  name: immolated Icebox
                  technical_name: immolated_icebox
                - icon: ":running:"
                  id: 4
                  name: ordered Can opener
                  technical_name: ordered_can_opener
                - icon:
                  id: 5
                  name: slid Combo washer dryer
                  technical_name: slid_combo_washer_dryer
                - icon:
                  id: 3
                  name: whipped Attic fan
                  technical_name: whipped_attic_fan
              schema:
                "$ref": "#/components/schemas/EquipmentList"
    post:
      summary: Create a meeting room equipment for a space
      tags:
      - MeetingRooms
      - Equipment
      security:
      - comeenOauth:
        - meeting_rooms:create
      parameters: []
      responses:
        '201':
          description: success
          content:
            application/json:
              example:
                icon: foo_icon
                id: 11
                name: foo
                technical_name: f_o_o
              schema:
                "$ref": "#/components/schemas/Equipment"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/CreateEquipment"
        required: true
  "/api/v2beta/spaces/{space_id}/meeting_room_equipment/{id}":
    delete:
      summary: Delete a meeting room equipment for a space
      tags:
      - MeetingRooms
      - Equipment
      security:
      - comeenOauth:
        - meeting_rooms:write
      parameters:
      - name: space_id
        in: path
        schema:
          type: string
          format: uuid
        description: Space uuid
        required: true
      - name: id
        in: path
        schema:
          type: number
        description: Equipment Item ID
        required: true
      responses:
        '204':
          description: success
    put:
      summary: Update a meeting room equipment item for a space
      tags:
      - MeetingRooms
      - Equipment
      security:
      - comeenOauth:
        - meeting_rooms:write
      parameters:
      - name: space_id
        in: path
        schema:
          type: string
          format: uuid
        description: Space uuid
        required: true
      - name: id
        in: path
        schema:
          type: number
        description: Equipment Item ID
        required: true
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/Equipment"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/Equipment"
        required: true
    patch:
      summary: Update a meeting room equipment item for a space
      tags:
      - MeetingRooms
      - Equipment
      security:
      - comeenOauth:
        - meeting_rooms:write
      parameters:
      - name: space_id
        in: path
        schema:
          type: string
          format: uuid
        description: Space uuid
        required: true
      - name: id
        in: path
        schema:
          type: number
        description: Equipment Item ID
        required: true
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/Equipment"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/Equipment"
        required: true
  "/api/v2beta/spaces/{space_id}/meeting_rooms/{meeting_room_id}/equipment":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    - name: meeting_room_id
      in: path
      schema:
        type: number
      description: Meeting Room ID
      required: true
    get:
      summary: Get equipment items assigned to a meeting room, for a space
      tags:
      - MeetingRooms
      - Equipment
      security:
      - comeenOauth:
        - meeting_rooms:read
      responses:
        '200':
          description: success
          content:
            application/json:
              example:
                items:
                - icon:
                  id: 47
                  name: sat Solar water heater
                  technical_name: sat_solar_water_heater
                - icon:
                  id: 45
                  name: terminated HVAC
                  technical_name: terminated_hvac
                - icon:
                  id: 46
                  name: triumphed Appliance plug
                  technical_name: triumphed_appliance_plug
              schema:
                "$ref": "#/components/schemas/EquipmentList"
    put:
      summary: Update the list of assigned equipment items for a meeting room, for
        a space
      tags:
      - MeetingRooms
      - Equipment
      security:
      - comeenOauth:
        - meeting_rooms:write
      parameters:
      - name: space_id
        in: path
        schema:
          type: string
          format: uuid
        description: Space uuid
        required: true
      - name: meeting_room_id
        in: path
        schema:
          type: number
        description: Meeting Room ID
        required: true
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/EquipmentList"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/UpdateEquipmentList"
        required: true
    patch:
      summary: Update the list of assigned equipment items for a meeting room, for
        a space
      tags:
      - MeetingRooms
      - Equipment
      security:
      - comeenOauth:
        - meeting_rooms:write
      parameters:
      - name: space_id
        in: path
        schema:
          type: string
          format: uuid
        description: Space uuid
        required: true
      - name: meeting_room_id
        in: path
        schema:
          type: number
        description: Meeting Room ID
        required: true
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/EquipmentList"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/UpdateEquipmentList"
        required: true
  "/api/v2beta/spaces/{space_id}/meeting_rooms/admin_accessible":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: Get admin accessible meeting_rooms
      tags:
      - MeetingRooms
      security:
      - comeenOauth:
        - meeting_rooms:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                meeting_rooms:
                - id: 105
                  provider_id: rFn2N1BVEQzMAcNB
                  type:
                  name: Autumn Crossing
                  floor_number:
                  capacity: 3
                  synced: false
                  space:
                    uuid: ab908ed1-5e6a-463e-a866-275a7d507d9b
                    subdomain: collier-ratke-943
                    name: Collier-Ratke
                  building:
                    id: 347
                    name: Autumn Creek
                  floor:
                    id: 181
                    name: Food & Beverage
                  url: http://www.example.com/api/v2beta/spaces/ab908ed1-5e6a-463e-a866-275a7d507d9b/meeting_rooms/105.json
                - id: 103
                  provider_id: rmZdqFhoT41hkupU
                  type:
                  name: Royal Heights
                  floor_number:
                  capacity: 5
                  synced: false
                  space:
                    uuid: ab908ed1-5e6a-463e-a866-275a7d507d9b
                    subdomain: collier-ratke-943
                    name: Collier-Ratke
                  url: http://www.example.com/api/v2beta/spaces/ab908ed1-5e6a-463e-a866-275a7d507d9b/meeting_rooms/103.json
                - id: 104
                  provider_id: TWNisEdBm3WzFM8E
                  type:
                  name: Summer Village
                  floor_number:
                  capacity: 5
                  synced: false
                  space:
                    uuid: ab908ed1-5e6a-463e-a866-275a7d507d9b
                    subdomain: collier-ratke-943
                    name: Collier-Ratke
                  url: http://www.example.com/api/v2beta/spaces/ab908ed1-5e6a-463e-a866-275a7d507d9b/meeting_rooms/104.json
              schema:
                "$ref": "#/components/schemas/AdminAccessibleMeetingRooms"
  "/api/v2beta/spaces/{space_id}/buildings/{building_id}/occupancies":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    - name: building_id
      in: path
      description: Building id
      required: true
      schema:
        type: integer
    get:
      summary: Building occupancies stats
      tags:
      - Buildings
      - Occupancies
      security:
      - comeenOauth:
        - buildings:read
      parameters:
      - name: start_date
        in: query
        required: false
        schema:
          type: string
          format: date
        description: Start bound for the occupancies data
      - name: end_date
        in: query
        required: false
        schema:
          type: string
          format: date
        description: End bound for the occupancies data
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
              - date: '2026-06-01'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-02'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-03'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-04'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-05'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-06'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-07'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-08'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-09'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-10'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-11'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-12'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-13'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-14'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-15'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-16'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-17'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-18'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-19'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-20'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-21'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-22'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-23'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-24'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-25'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-26'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-27'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-28'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-29'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-30'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              schema:
                "$ref": "#/components/schemas/Occupancies"
  "/api/v2beta/spaces/{space_id}/floors/{floor_id}/occupancies":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    - name: floor_id
      in: path
      description: Floor id
      required: true
      schema:
        type: integer
    get:
      summary: Floor occupancies stats
      tags:
      - Floors
      - Occupancies
      security:
      - comeenOauth:
        - buildings:read
      parameters:
      - name: start_date
        in: query
        required: false
        schema:
          type: string
          format: date
        description: Start bound for the occupancies data
      - name: end_date
        in: query
        required: false
        schema:
          type: string
          format: date
        description: End bound for the occupancies data
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
              - date: '2026-06-01'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-02'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-03'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-04'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-05'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-06'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-07'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-08'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-09'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-10'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-11'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-12'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-13'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-14'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-15'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-16'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-17'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-18'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-19'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-20'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-21'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-22'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-23'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-24'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-25'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-26'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-27'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-28'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-29'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-30'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              schema:
                "$ref": "#/components/schemas/Occupancies"
  "/api/v2beta/spaces/{space_id}/areas/{area_id}/occupancies":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    - name: area_id
      in: path
      description: Area id
      required: true
      schema:
        type: integer
    get:
      summary: Area occupancies stats
      tags:
      - Areas
      - Occupancies
      security:
      - comeenOauth:
        - buildings:read
      parameters:
      - name: start_date
        in: query
        required: false
        schema:
          type: string
          format: date
        description: Start bound for the occupancies data
      - name: end_date
        in: query
        required: false
        schema:
          type: string
          format: date
        description: End bound for the occupancies data
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
              - date: '2026-06-01'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-02'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-03'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-04'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-05'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-06'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-07'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-08'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-09'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-10'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-11'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-12'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-13'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-14'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-15'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-16'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-17'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-18'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-19'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-20'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-21'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-22'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-23'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-24'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-25'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-26'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-27'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-28'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-29'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              - date: '2026-06-30'
                occupancies:
                  checked_in: 0
                  expected: 0
                  gauges:
                    global: 0.0
                    checked_in: 0.0
                    expected: 0.0
                  remaining_seats: 0
                visitors:
                  checked_in: 0
                  expected: 0
              schema:
                "$ref": "#/components/schemas/Occupancies"
  "/api/v2beta/spaces/{space_id}/buildings/sync_grants":
    parameters:
    - name: space_id
      in: path
      description: Space uuid
      required: true
      schema:
        type: integer
    get:
      summary: List accessible sync grants for Buildings
      tags:
      - IntegrationGrants
      - SyncGrants
      - Buildings
      security:
      - comeenOauth:
        - integration_grants:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                integrations:
                - id: 157
                  provider: google
                  domain: buildings
                  variant: default
                  name: ''
                  created_at: '2026-06-22T09:29:33.902Z'
                  updated_at: '2026-06-22T09:29:33.902Z'
                  expired_at:
                  multiple_grants_allowed: false
                  owner:
                    uuid: 76a7f181-9a67-4faf-ada8-f4441d1696e4
                    subdomain: kuhic-hartmann-977
                    name: Kuhic-Hartmann
                  grantor:
                    id: 790
                    email: mabel-batz@example.org
                    full_name: Mabel Batz
                  url: http://www.example.com/api/v2beta/integration_grants/157.json
                - id: 158
                  provider: microsoft
                  domain: buildings
                  variant: default
                  name: ''
                  created_at: '2026-06-22T09:29:33.908Z'
                  updated_at: '2026-06-22T09:29:33.908Z'
                  expired_at:
                  multiple_grants_allowed: false
                  owner:
                    uuid: 76a7f181-9a67-4faf-ada8-f4441d1696e4
                    subdomain: kuhic-hartmann-977
                    name: Kuhic-Hartmann
                  grantor:
                    id: 790
                    email: mabel-batz@example.org
                    full_name: Mabel Batz
                  url: http://www.example.com/api/v2beta/integration_grants/158.json
              schema:
                "$ref": "#/components/schemas/SyncGrants"
  "/api/v2beta/spaces/{space_id}/meeting_rooms/sync_grants":
    parameters:
    - name: space_id
      in: path
      description: Space uuid
      required: true
      schema:
        type: integer
    get:
      summary: List accessible sync grants for Meeting Rooms
      tags:
      - IntegrationGrants
      - SyncGrants
      - Meeting Rooms
      security:
      - comeenOauth:
        - integration_grants:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                integrations:
                - id: 165
                  provider: google
                  domain: buildings
                  variant: default
                  name: ''
                  created_at: '2026-06-22T09:29:34.014Z'
                  updated_at: '2026-06-22T09:29:34.014Z'
                  expired_at:
                  multiple_grants_allowed: false
                  owner:
                    uuid: 014f1e17-cf3d-472d-951e-d9b20f3ec53f
                    subdomain: koch-mcclure-and-yost-978
                    name: Koch, McClure and Yost
                  grantor:
                    id: 791
                    email: valene_abshire@example.org
                    full_name: Valene Abshire
                  url: http://www.example.com/api/v2beta/integration_grants/165.json
                - id: 167
                  provider: google
                  domain: meeting_rooms
                  variant: default
                  name: ''
                  created_at: '2026-06-22T09:29:34.027Z'
                  updated_at: '2026-06-22T09:29:34.027Z'
                  expired_at:
                  multiple_grants_allowed: false
                  owner:
                    uuid: 014f1e17-cf3d-472d-951e-d9b20f3ec53f
                    subdomain: koch-mcclure-and-yost-978
                    name: Koch, McClure and Yost
                  grantor:
                    id: 791
                    email: valene_abshire@example.org
                    full_name: Valene Abshire
                  url: http://www.example.com/api/v2beta/integration_grants/167.json
                - id: 166
                  provider: microsoft
                  domain: buildings
                  variant: default
                  name: ''
                  created_at: '2026-06-22T09:29:34.021Z'
                  updated_at: '2026-06-22T09:29:34.021Z'
                  expired_at:
                  multiple_grants_allowed: false
                  owner:
                    uuid: 014f1e17-cf3d-472d-951e-d9b20f3ec53f
                    subdomain: koch-mcclure-and-yost-978
                    name: Koch, McClure and Yost
                  grantor:
                    id: 791
                    email: valene_abshire@example.org
                    full_name: Valene Abshire
                  url: http://www.example.com/api/v2beta/integration_grants/166.json
                - id: 168
                  provider: microsoft
                  domain: meeting_rooms
                  variant: default
                  name: ''
                  created_at: '2026-06-22T09:29:34.034Z'
                  updated_at: '2026-06-22T09:29:34.034Z'
                  expired_at:
                  multiple_grants_allowed: false
                  owner:
                    uuid: 014f1e17-cf3d-472d-951e-d9b20f3ec53f
                    subdomain: koch-mcclure-and-yost-978
                    name: Koch, McClure and Yost
                  grantor:
                    id: 791
                    email: valene_abshire@example.org
                    full_name: Valene Abshire
                  url: http://www.example.com/api/v2beta/integration_grants/168.json
              schema:
                "$ref": "#/components/schemas/SyncGrants"
  "/api/v2beta/spaces/{space_id}/meeting_room_buildings/sync_grants":
    parameters:
    - name: space_id
      in: path
      description: Space uuid
      required: true
      schema:
        type: integer
    get:
      summary: List accessible sync grants for Meeting Room Buildings
      tags:
      - IntegrationGrants
      - SyncGrants
      security:
      - comeenOauth:
        - integration_grants:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                integrations:
                - id: 173
                  provider: google
                  domain: buildings
                  variant: default
                  name: ''
                  created_at: '2026-06-22T09:29:34.131Z'
                  updated_at: '2026-06-22T09:29:34.131Z'
                  expired_at:
                  multiple_grants_allowed: false
                  owner:
                    uuid: 584c7e56-bced-4e53-ab3d-afd2c3b0adc1
                    subdomain: abshire-fay-and-kessler-979
                    name: Abshire, Fay and Kessler
                  grantor:
                    id: 792
                    email: von_ron@example.org
                    full_name: Ron Von
                  url: http://www.example.com/api/v2beta/integration_grants/173.json
                - id: 175
                  provider: google
                  domain: meeting_rooms
                  variant: default
                  name: ''
                  created_at: '2026-06-22T09:29:34.143Z'
                  updated_at: '2026-06-22T09:29:34.143Z'
                  expired_at:
                  multiple_grants_allowed: false
                  owner:
                    uuid: 584c7e56-bced-4e53-ab3d-afd2c3b0adc1
                    subdomain: abshire-fay-and-kessler-979
                    name: Abshire, Fay and Kessler
                  grantor:
                    id: 792
                    email: von_ron@example.org
                    full_name: Ron Von
                  url: http://www.example.com/api/v2beta/integration_grants/175.json
                - id: 174
                  provider: microsoft
                  domain: buildings
                  variant: default
                  name: ''
                  created_at: '2026-06-22T09:29:34.137Z'
                  updated_at: '2026-06-22T09:29:34.137Z'
                  expired_at:
                  multiple_grants_allowed: false
                  owner:
                    uuid: 584c7e56-bced-4e53-ab3d-afd2c3b0adc1
                    subdomain: abshire-fay-and-kessler-979
                    name: Abshire, Fay and Kessler
                  grantor:
                    id: 792
                    email: von_ron@example.org
                    full_name: Ron Von
                  url: http://www.example.com/api/v2beta/integration_grants/174.json
                - id: 176
                  provider: microsoft
                  domain: meeting_rooms
                  variant: default
                  name: ''
                  created_at: '2026-06-22T09:29:34.150Z'
                  updated_at: '2026-06-22T09:29:34.150Z'
                  expired_at:
                  multiple_grants_allowed: false
                  owner:
                    uuid: 584c7e56-bced-4e53-ab3d-afd2c3b0adc1
                    subdomain: abshire-fay-and-kessler-979
                    name: Abshire, Fay and Kessler
                  grantor:
                    id: 792
                    email: von_ron@example.org
                    full_name: Ron Von
                  url: http://www.example.com/api/v2beta/integration_grants/176.json
              schema:
                "$ref": "#/components/schemas/SyncGrants"
  "/api/v2beta/spaces/{space_id}/user_groups/sync_grants":
    parameters:
    - name: space_id
      in: path
      description: Space uuid
      required: true
      schema:
        type: integer
    get:
      summary: List accessible sync grants for User Groups
      tags:
      - IntegrationGrants
      - SyncGrants
      - User Groups
      security:
      - comeenOauth:
        - integration_grants:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                integrations:
                - id: 180
                  provider: google
                  domain: users
                  variant: default
                  name: ''
                  created_at: '2026-06-22T09:29:34.238Z'
                  updated_at: '2026-06-22T09:29:34.238Z'
                  expired_at:
                  multiple_grants_allowed: false
                  owner:
                    uuid: 35dcb119-1a91-427d-bbd5-4e7005c8b8f0
                    subdomain: conroy-herman-980
                    name: Conroy-Herman
                  grantor:
                    id: 793
                    email: lakin-minnie@example.org
                    full_name: Minnie Lakin
                  url: http://www.example.com/api/v2beta/integration_grants/180.json
              schema:
                "$ref": "#/components/schemas/SyncGrants"
  "/api/v2beta/spaces/{space_id}/working_location/sync_grants":
    parameters:
    - name: space_id
      in: path
      description: Space uuid
      required: true
      schema:
        type: integer
    get:
      summary: List accessible sync grants for Working Locations
      tags:
      - IntegrationGrants
      - SyncGrants
      security:
      - comeenOauth:
        - integration_grants:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                integrations:
                - id: 187
                  provider: google
                  domain: working_location
                  variant: default
                  name: ''
                  created_at: '2026-06-22T09:29:34.348Z'
                  updated_at: '2026-06-22T09:29:34.348Z'
                  expired_at:
                  multiple_grants_allowed: false
                  owner:
                    uuid: 4bba36ae-d63a-4b1c-afb2-6ef7e489af87
                    subdomain: larson-casper-and-goyette-981
                    name: Larson, Casper and Goyette
                  grantor:
                    id: 794
                    email: zulauf-shonna@example.org
                    full_name: Shonna Zulauf
                  url: http://www.example.com/api/v2beta/integration_grants/187.json
              schema:
                "$ref": "#/components/schemas/SyncGrants"
  "/api/v2beta/buildings/sync_grants/{id}/fetch_resources":
    parameters:
    - name: id
      in: path
      description: Sync grant id
      required: true
      schema:
        type: integer
    get:
      summary: List buildings for grant
      tags:
      - Buildings
      - SyncGrants
      security:
      - comeenOauth:
        - integration_grants:read
        - buildings:write
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                buildings:
                - type: Google::Building
                  provider_id: Bordeaux
                  sync_grant_id: 194
                  id:
                  name: Bordeaux
                  address: 88 Cours de Verdun
                  zipcode: '33000'
                  city: Bordeaux
                  state_region:
                  country: FR
                - type: Google::Building
                  provider_id: NYC---HQ
                  sync_grant_id: 194
                  id:
                  name: NYC - HQ
                  address: 20 West 34th Street
                  zipcode: '10118'
                  city: New York
                  state_region: NY
                  country: US
                - type: Google::Building
                  provider_id: strasbourg
                  sync_grant_id: 194
                  id:
                  name: Strasbourg
                  address: ''
                  zipcode: ''
                  city: ''
                  state_region: ''
                  country: ''
              schema:
                "$ref": "#/components/schemas/SyncBuildings"
  "/api/v2beta/meeting_room_buildings/sync_grants/{id}/fetch_resources":
    parameters:
    - name: id
      in: path
      description: Sync grant id
      required: true
      schema:
        type: integer
    get:
      summary: List meeting room buildings for grant
      tags:
      - Meeting Rooms
      - Buildings
      - SyncGrants
      security:
      - comeenOauth:
        - integration_grants:read
        - buildings:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                buildings:
                - type: Google::Building
                  provider_id: Bordeaux
                  sync_grant_id: 195
                  id:
                  name: Bordeaux
                  address: 88 Cours de Verdun
                  zipcode: '33000'
                  city: Bordeaux
                  state_region:
                  country: FR
                - type: Google::Building
                  provider_id: NYC---HQ
                  sync_grant_id: 195
                  id:
                  name: NYC - HQ
                  address: 20 West 34th Street
                  zipcode: '10118'
                  city: New York
                  state_region: NY
                  country: US
                - type: Google::Building
                  provider_id: strasbourg
                  sync_grant_id: 195
                  id:
                  name: Strasbourg
                  address: ''
                  zipcode: ''
                  city: ''
                  state_region: ''
                  country: ''
              schema:
                "$ref": "#/components/schemas/SyncBuildings"
  "/api/v2beta/meeting_rooms/sync_grants/{id}/fetch_resources":
    parameters:
    - name: id
      in: path
      description: Sync grant id
      required: true
      schema:
        type: integer
    - name: building_id
      in: query
      required: false
      schema:
        type: string
      description: Restrict resulsts to the given building, identified by its provider_id
    get:
      summary: List meeting_rooms for grant
      tags:
      - Meeting Rooms
      - SyncGrants
      security:
      - comeenOauth:
        - integration_grants:read
        - meeting_rooms:write
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                meeting_rooms:
                - id:
                  type: Google::MeetingRoom
                  provider_id: '1039506483'
                  sync_grant_id: 196
                  name: Glacier Gateway
                  original_name: Glacier Gateway
                  display_name: ''
                  floor_number: '2'
                  capacity: 4
                  building:
                    id:
                    name: Bordeaux
                    provider_id: Bordeaux
                  calendar:
                    provider_id: jsfdhjsfdhk23895ethgijdhjikh789@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '13795064490'
                  sync_grant_id: 196
                  name: Ocean Oasis
                  original_name: Ocean Oasis
                  display_name: ''
                  floor_number: '1'
                  capacity: 4
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_188ci6gu2bsqiihunc3idvhlea1ga@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '14190510801'
                  sync_grant_id: 196
                  name: Himalaya Hub
                  original_name: Himalaya Hub
                  display_name: ''
                  floor_number: '1'
                  capacity: 4
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_1889ithbpcq62gmbg8nd6cd3bp4ne@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '16588117419'
                  sync_grant_id: 196
                  name: Tokyo Tower
                  original_name: Tokyo Tower
                  display_name: ''
                  floor_number: '1'
                  capacity: 2
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_188429nm8j56chg1gvoo7ma1o6lpa@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '1894165268'
                  sync_grant_id: 196
                  name: Orion Office
                  original_name: Orion Office
                  display_name: ''
                  floor_number: '3'
                  capacity: 4
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_1884t9jh4s9jmgtvnkj9sc6493g3s@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '20185657722'
                  sync_grant_id: 196
                  name: Lovelace Lounge
                  original_name: Lovelace Lounge
                  display_name: ''
                  floor_number: '1'
                  capacity: 2
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_188b2dd6chs9ih1mm3qgmejipab8g@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '20597447907'
                  sync_grant_id: 196
                  name: Atlantis Area
                  original_name: Atlantis Area
                  display_name: ''
                  floor_number: '2'
                  capacity: 4
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_18853un4hspheh50lql5kuo41pbeo@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '22095064474'
                  sync_grant_id: 196
                  name: Forest Forum
                  original_name: Forest Forum
                  display_name: ''
                  floor_number: '1'
                  capacity: 4
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_1882gqguo0fiiigki6g190i02jlhk@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '2531740574'
                  sync_grant_id: 196
                  name: Galaxy Gathering
                  original_name: Galaxy Gathering
                  display_name: ''
                  floor_number: '2'
                  capacity: 8
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_188fd9lutu1u8ioiheh0lhm0tv6ha@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '3188811770'
                  sync_grant_id: 196
                  name: Sydney Suite
                  original_name: Sydney Suite
                  display_name: ''
                  floor_number: '1'
                  capacity: 4
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_1881vth8i5la6i0ghc24tu2mpajfm@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '32788117282'
                  sync_grant_id: 196
                  name: Paris Parlor
                  original_name: Paris Parlor
                  display_name: ''
                  floor_number: '1'
                  capacity: 2
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_1882nsi4afahshmuhjea6qi9jpa30@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '3328565720'
                  sync_grant_id: 196
                  name: Archimedes Arena
                  original_name: Archimedes Arena
                  display_name: ''
                  floor_number: '1'
                  capacity: 2
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_188cj43jo4hhaii2kfi5060skjqh0@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '33299697250'
                  sync_grant_id: 196
                  name: Shangri-La Suite
                  original_name: Shangri-La Suite
                  display_name: ''
                  floor_number: '2'
                  capacity: 6
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_188aa0iiuh33oj2llr35mugp8fu68@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '3404165854'
                  sync_grant_id: 196
                  name: Mercury Meeting
                  original_name: Mercury Meeting
                  display_name: ''
                  floor_number: '3'
                  capacity: 4
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_1888ejrcf1qvghtuju18n5o7eamta@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '3418565751'
                  sync_grant_id: 196
                  name: Galileo Galley
                  original_name: Galileo Galley
                  display_name: ''
                  floor_number: '1'
                  capacity: 2
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_18827fuv03usohkvk7rnnfc8trs8k@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '3692926904'
                  sync_grant_id: 196
                  name: Aurora Avenue
                  original_name: Aurora Avenue
                  display_name: ''
                  floor_number: '1'
                  capacity: 4
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_188a3d8e1t64ogi8hb25nhtfu0a9i@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '39299697628'
                  sync_grant_id: 196
                  name: Camelot Corner
                  original_name: Camelot Corner
                  display_name: ''
                  floor_number: '2'
                  capacity: 6
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_1887i2brlgpkgj5pjl270qr1i00bu@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '43188117892'
                  sync_grant_id: 196
                  name: Manhattan Meeting
                  original_name: Manhattan Meeting
                  display_name: ''
                  floor_number: '1'
                  capacity: 4
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_1881d6k29ndrkgfgnl07akche91ie@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '43292926990'
                  sync_grant_id: 196
                  name: Everest Enclosure
                  original_name: Everest Enclosure
                  display_name: ''
                  floor_number: '1'
                  capacity: 4
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_188akrrg3u3j8if4nh32lm95gehq8@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '4461739177'
                  sync_grant_id: 196
                  name: Mars Mansion
                  original_name: Mars Mansion
                  display_name: ''
                  floor_number: '2'
                  capacity: 8
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_18807euvbatcuhgvls7ak9do9v0qa@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '45892926917'
                  sync_grant_id: 196
                  name: Pacific Place
                  original_name: Pacific Place
                  display_name: ''
                  floor_number: '1'
                  capacity: 4
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_18837fn9eq30kho1n79q63koc0c9s@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '47792926481'
                  sync_grant_id: 196
                  name: Amazon Room
                  original_name: Amazon Room
                  display_name: ''
                  floor_number: '1'
                  capacity: 4
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_1885af8ai5i1gh80nk9efpj1ji89i@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '50483145692'
                  sync_grant_id: 196
                  name: Franklin Hall
                  original_name: Franklin Hall
                  display_name: ''
                  floor_number: '1'
                  capacity: 2
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_1883i6pp2a36kgs8mv2pf3laab9gi@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '508856559'
                  sync_grant_id: 196
                  name: Wright Wing
                  original_name: Wright Wing
                  display_name: ''
                  floor_number: '1'
                  capacity: 2
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_188a7kdd5ts7egqdn49ilv13isqt2@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '5249744756'
                  sync_grant_id: 196
                  name: Valhalla Venue
                  original_name: Valhalla Venue
                  display_name: ''
                  floor_number: '2'
                  capacity: 4
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_1881tf462dc1uhugkoacc1ia4u404@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '53699697657'
                  sync_grant_id: 196
                  name: Nirvana Niche
                  original_name: Nirvana Niche
                  display_name: ''
                  floor_number: '2'
                  capacity: 6
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_18858iusmmmv2i6jieai050b6bl4q@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '55695064192'
                  sync_grant_id: 196
                  name: Canyon Chamber
                  original_name: Canyon Chamber
                  display_name: ''
                  floor_number: '2'
                  capacity: 4
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_188734nvfg7vkghdir6vmqm0g9mnc@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '55797447513'
                  sync_grant_id: 196
                  name: Olympus Office
                  original_name: Olympus Office
                  display_name: ''
                  floor_number: '2'
                  capacity: 4
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_1888l3okumuuohremop8bia7sh636@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '5641740700'
                  sync_grant_id: 196
                  name: Apollo Area
                  original_name: Apollo Area
                  display_name: ''
                  floor_number: '2'
                  capacity: 6
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_188efskrnkht6hmuk1jco1ggb5hfs@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '5711739705'
                  sync_grant_id: 196
                  name: Jupiter Junction
                  original_name: Jupiter Junction
                  display_name: ''
                  floor_number: '3'
                  capacity: 8
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_18814qqeo0kscjttnuah9tdmec4q6@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '58399697179'
                  sync_grant_id: 196
                  name: Avalon Atrium
                  original_name: Avalon Atrium
                  display_name: ''
                  floor_number: '2'
                  capacity: 6
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_1882bvlv5kpbigf5i7g06n4jdkv5k@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '609831456'
                  sync_grant_id: 196
                  name: Edison Room
                  original_name: Edison Room
                  display_name: ''
                  floor_number: '1'
                  capacity: 2
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_188fhc2q5hva2jlnh3r17tv3drnlk@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '61197447479'
                  sync_grant_id: 196
                  name: Midgard Meeting
                  original_name: Midgard Meeting
                  display_name: ''
                  floor_number: '2'
                  capacity: 4
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_188dsclct2ahii4pm9217qpm8jk70@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '63988117617'
                  sync_grant_id: 196
                  name: Venice View
                  original_name: Venice View
                  display_name: ''
                  floor_number: '1'
                  capacity: 4
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_188ekk8gritjgiiohcusb0l63ggdm@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '6514165927'
                  sync_grant_id: 196
                  name: Venus Vault
                  original_name: Venus Vault
                  display_name: ''
                  floor_number: '3'
                  capacity: 4
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_1889p7jgdts3ug6flnceeeodandp4@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '69890510424'
                  sync_grant_id: 196
                  name: Sahara Space
                  original_name: Sahara Space
                  display_name: ''
                  floor_number: '1'
                  capacity: 4
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_188f2a2tnk7legg1i1uj1fk1oigjg@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '76083145852'
                  sync_grant_id: 196
                  name: Curie Chamber
                  original_name: Curie Chamber
                  display_name: ''
                  floor_number: '1'
                  capacity: 2
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_188epjrlpu904iqdkudn81hviiip4@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '76499697910'
                  sync_grant_id: 196
                  name: El Dorado Estate
                  original_name: El Dorado Estate
                  display_name: ''
                  floor_number: '2'
                  capacity: 6
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_188237lna11s4gt0j8cmrvo6i6uko@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '77685657616'
                  sync_grant_id: 196
                  name: Newton Nook
                  original_name: Newton Nook
                  display_name: ''
                  floor_number: '1'
                  capacity: 2
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_1880blhtg080mi15lrbeph3aq30di@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '7892926154'
                  sync_grant_id: 196
                  name: Sahara Spot
                  original_name: Sahara Spot
                  display_name: ''
                  floor_number: '1'
                  capacity: 4
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_18832nmnhf4uig1jjig8msl79cvae@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '8231739298'
                  sync_grant_id: 196
                  name: Saturn Suite
                  original_name: Saturn Suite
                  display_name: ''
                  floor_number: '3'
                  capacity: 8
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_1882u7q430laegthgsc2v2h9bps2g@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '8390510797'
                  sync_grant_id: 196
                  name: Cairo Corner
                  original_name: Cairo Corner
                  display_name: ''
                  floor_number: '1'
                  capacity: 4
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_188asv0gjo4rihkikaijh3au4c3ig@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '85590510956'
                  sync_grant_id: 196
                  name: Nile Niche
                  original_name: Nile Niche
                  display_name: ''
                  floor_number: '1'
                  capacity: 4
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_1886iujujl5rciu6h8jap1uqqr7mm@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '8614165740'
                  sync_grant_id: 196
                  name: Comet Corner
                  original_name: Comet Corner
                  display_name: ''
                  floor_number: '3'
                  capacity: 8
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_188597hk7lkioib6l8bijn3r29u24@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '87483145201'
                  sync_grant_id: 196
                  name: Da Vinci Vault
                  original_name: Da Vinci Vault
                  display_name: ''
                  floor_number: '1'
                  capacity: 2
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_1889sg669krg8ipvmr8geog11sjga@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '9084165872'
                  sync_grant_id: 196
                  name: Nebula Nook
                  original_name: Nebula Nook
                  display_name: ''
                  floor_number: '3'
                  capacity: 8
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_188de39b454jghtlilt9b2kkekhae@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '92283145159'
                  sync_grant_id: 196
                  name: Tesla Coil
                  original_name: Tesla Coil
                  display_name: ''
                  floor_number: '1'
                  capacity: 2
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_188euq0ic8dq6h0diomdpciudklr6@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '92289041831'
                  sync_grant_id: 196
                  name: Creative room
                  original_name: Creative room
                  display_name: ''
                  floor_number: '3'
                  capacity: 4
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_1885lrp97652qig4mpknb3ebb3vd8@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '9609506477'
                  sync_grant_id: 196
                  name: Coral Cove
                  original_name: Coral Cove
                  display_name: ''
                  floor_number: '1'
                  capacity: 4
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_1887sns6p24t2gt9kujsfoqv1vi7s@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '96297447218'
                  sync_grant_id: 196
                  name: Asgard Assembly
                  original_name: Asgard Assembly
                  display_name: ''
                  floor_number: '2'
                  capacity: 6
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_188683jd9igdgjf5gvnrsv5sie08g@resource.calendar.google.com
                - id:
                  type: Google::MeetingRoom
                  provider_id: '98690510566'
                  sync_grant_id: 196
                  name: Amazon Annex
                  original_name: Amazon Annex
                  display_name: ''
                  floor_number: '1'
                  capacity: 4
                  building:
                    id:
                    name: NYC---HQ
                    provider_id: NYC---HQ
                  calendar:
                    provider_id: c_1886cvt80cp4kgukn55uis0o711t0@resource.calendar.google.com
              schema:
                "$ref": "#/components/schemas/SyncMeetingRooms"
  "/api/v2beta/user_groups/sync_grants/{id}/fetch_resources":
    parameters:
    - name: id
      in: path
      description: Sync grant id
      required: true
      schema:
        type: integer
    - name: search
      in: query
      required: false
      schema:
        type: string
      description: Restrict results to those including the given search in their name
    get:
      summary: List user groups for grant
      tags:
      - User Groups
      - SyncGrants
      security:
      - comeenOauth:
        - integration_grants:read
        - user_groups:write
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                user_groups:
                - type: Google::UserGroup
                  provider_id: 02y3w2473owp5gw
                  sync_grant_id: 197
                  id:
                  name: Foo
                - type: Google::UserGroup
                  provider_id: '0279ka65295sfkd'
                  sync_grant_id: 197
                  id:
                  name: Group Test 1058
              schema:
                "$ref": "#/components/schemas/SyncUserGroups"
  "/api/v2beta/spaces/{space_id}/user_groups/admin_accessible":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: Get admin accessible user_groups
      tags:
      - UserGroups
      security:
      - comeenOauth:
        - usergroups:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                user_groups:
                - id: 26
                  type:
                  name: Banking
                  roles: []
                  members_count: 1
                  synced: false
                  space:
                    uuid: 3e982376-b838-4180-9987-f0397500d05e
                    subdomain: stoltenberg-greenholt-and-gleason-986
                    name: Stoltenberg, Greenholt and Gleason
                  url: http://www.example.com/api/v2beta/spaces/3e982376-b838-4180-9987-f0397500d05e/user_groups/26.json
                - id: 27
                  type:
                  name: Mining
                  roles: []
                  members_count: 0
                  synced: false
                  space:
                    uuid: 3e982376-b838-4180-9987-f0397500d05e
                    subdomain: stoltenberg-greenholt-and-gleason-986
                    name: Stoltenberg, Greenholt and Gleason
                  url: http://www.example.com/api/v2beta/spaces/3e982376-b838-4180-9987-f0397500d05e/user_groups/27.json
                - id: 28
                  type:
                  name: Design
                  roles: []
                  members_count: 0
                  synced: false
                  space:
                    uuid: 3e982376-b838-4180-9987-f0397500d05e
                    subdomain: stoltenberg-greenholt-and-gleason-986
                    name: Stoltenberg, Greenholt and Gleason
                  url: http://www.example.com/api/v2beta/spaces/3e982376-b838-4180-9987-f0397500d05e/user_groups/28.json
              schema:
                "$ref": "#/components/schemas/AdminAccessibleUserGroups"
  "/api/v2beta/users/{id}/roles":
    parameters:
    - name: id
      in: path
      description: User ID
      required: true
      schema:
        type: integer
    get:
      summary: User Roles
      tags:
      - Roles
      - Users
      - User Groups
      security:
      - comeenOauth:
        - users:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
              - is_from_user: true
                name: host
                overridden_by: []
              - is_from_user: true
                name: desk_booker
                overridden_by: []
              - is_from_user: true
                name: building_reader
                overridden_by:
                - id: 35
                  name: Design
                - id: 36
                  name: Accounting
              - is_from_user: false
                name: building_admin
                overridden_by:
                - id: 35
                  name: Design
              schema:
                "$ref": "#/components/schemas/UserRoles"
  "/api/v2beta/spaces/{space_id}/users/{id}/feature_flags":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space Uuid
      required: true
    - name: id
      in: path
      description: User ID
      required: true
      schema:
        type: integer
    get:
      summary: User feature flags
      tags:
      - Users
      security:
      - comeenOauth:
        - users:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                flags:
                  rocket_engine: true
                  reinforced_airframe: false
                  flight_computer: true
              schema:
                "$ref": "#/components/schemas/FeatureFlags"
  "/api/v2beta/spaces/{space_id}/users/me/feature_flags":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space Uuid
      required: true
    get:
      summary: Current User feature flags
      tags:
      - Users
      security:
      - comeenOauth:
        - profile
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                flags:
                  rocket_engine: true
                  reinforced_airframe: false
                  flight_computer: true
              schema:
                "$ref": "#/components/schemas/FeatureFlags"
  "/api/v2beta/spaces/{space_id}/work_activity_settings":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space UUID
      required: true
    get:
      summary: List the settings
      tags:
      - Work Activity
      - Settings
      security:
      - comeenOauth:
        - settings:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                visibility: public
              schema:
                "$ref": "#/components/schemas/SpaceWorkActivitySettings"
    put:
      summary: Update the settings
      tags:
      - Work Activity
      - Settings
      security:
      - comeenOauth:
        - settings:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/SpaceWorkActivitySettings"
        description: Settings to update
    patch:
      summary: Update the settings
      tags:
      - Work Activity
      - Settings
      security:
      - comeenOauth:
        - settings:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/SpaceWorkActivitySettings"
        description: Settings to update
servers:
- url: "/"
