---
openapi: 3.0.1
info:
  title: Comeen Workplace API V1
  version: v1
components:
  schemas:
    update_integration_grant:
      type: object
      required:
      - name
      properties:
        name:
          type: string
    create_integration_grant:
      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
    meeting_room_deprecated_microsoft_create_params:
      type: object
      properties:
        name:
          type: string
        original_name:
          type: string
        display_name:
          type: string
        capacity:
          type: integer
        building_id:
          type: integer
        floor_number:
          type: string
        floor_id:
          type: integer
        shape:
          type: array
          items:
            type: object
            properties:
              x:
                type: integer
              "y":
                type: integer
          minItems: 3
        sync_grant_id:
          type: integer
        type:
          type: string
        email:
          type: string
          format: email
        provider_id:
          type: string
    meeting_room_update_params:
      type: object
      properties:
        name:
          type: string
        original_name:
          type: string
        display_name:
          type: string
        capacity:
          type: integer
        building_id:
          type: integer
        floor_number:
          type: string
        floor_id:
          type: integer
        shape:
          type: array
          items:
            type: object
            properties:
              x:
                type: integer
              "y":
                type: integer
          minItems: 3
        sync_grant_id:
          type: integer
    meeting_room_create_params:
      type: object
      properties:
        name:
          type: string
        original_name:
          type: string
        display_name:
          type: string
        capacity:
          type: integer
        building_id:
          type: integer
        floor_number:
          type: string
        floor_id:
          type: integer
        shape:
          type: array
          items:
            type: object
            properties:
              x:
                type: integer
              "y":
                type: integer
          minItems: 3
        sync_grant_id:
          type: integer
        type:
          type: string
        provider_id:
          type: string
        calendar:
          type: object
          properties:
            provider_id:
              type: string
    meeting_room_deprecated_google_create_params:
      type: object
      properties:
        name:
          type: string
        original_name:
          type: string
        display_name:
          type: string
        capacity:
          type: integer
        building_id:
          type: integer
        floor_number:
          type: string
        floor_id:
          type: integer
        shape:
          type: array
          items:
            type: object
            properties:
              x:
                type: integer
              "y":
                type: integer
          minItems: 3
        sync_grant_id:
          type: integer
        type:
          type: string
        provider_id:
          type: string
        google_calendar_attributes:
          type: object
          properties:
            provider_id:
              type: string
    provider_domain:
      oneOf:
      - type: boolean
        description: Always false
      - type: object
        properties:
          id:
            type: integer
          name:
            type: string
          expired:
            type: boolean
          grantor_id:
            type: integer
          credentials:
            type: string
            description: App-specific way to identify the grant
            nullable: true
          expired_at:
            type: string
            format: date-time
            nullable: true
    user_provider_domains:
      type: object
      required:
      - google
      - microsoft
      properties:
        google:
          type: object
          required:
          - own_calendar
          - working_location
          - chat
          properties:
            own_calendar:
              "$ref": "#/components/schemas/provider_domain"
            working_location:
              "$ref": "#/components/schemas/provider_domain"
            chat:
              "$ref": "#/components/schemas/provider_domain"
        microsoft:
          type: object
          required:
          - own_calendar
          - teams
          properties:
            own_calendar:
              "$ref": "#/components/schemas/provider_domain"
            teams:
              "$ref": "#/components/schemas/provider_domain"
    space_provider_domains:
      type: object
      required:
      - google
      - microsoft
      - slack
      - crestron
      properties:
        google:
          type: object
          required:
          - buildings
          - meeting_rooms
          - meeting_rooms_auto_release
          - users
          - cloud_identity_users
          - calendar
          - working_location
          - room_meetings
          properties:
            buildings:
              "$ref": "#/components/schemas/provider_domain"
            meeting_rooms:
              "$ref": "#/components/schemas/provider_domain"
            meeting_rooms_auto_release:
              "$ref": "#/components/schemas/provider_domain"
            users:
              "$ref": "#/components/schemas/provider_domain"
            cloud_identity_users:
              "$ref": "#/components/schemas/provider_domain"
            calendar:
              "$ref": "#/components/schemas/provider_domain"
            working_location:
              "$ref": "#/components/schemas/provider_domain"
            room_meetings:
              "$ref": "#/components/schemas/provider_domain"
        microsoft:
          type: object
          required:
          - buildings
          - meeting_rooms
          - users
          - calendar
          - room_auto_checkin
          properties:
            buildings:
              "$ref": "#/components/schemas/provider_domain"
            meeting_rooms:
              "$ref": "#/components/schemas/provider_domain"
            users:
              "$ref": "#/components/schemas/provider_domain"
            calendar:
              "$ref": "#/components/schemas/provider_domain"
            room_auto_checkin:
              "$ref": "#/components/schemas/provider_domain"
        slack:
          type: object
          required:
          - app
          properties:
            app:
              "$ref": "#/components/schemas/provider_domain"
        crestron:
          type: object
          required:
          - desk_q
          properties:
            desk_q:
              "$ref": "#/components/schemas/provider_domain"
    room_policy:
      type: object
      required:
      - auto_reminder
      - reminder_before
      - reminder_before_checkin
      - reminder_after
      - reminder_after_checkin
      - auto_release
      - auto_release_after
      - max_recurrent_failures
      - autorelease_adds_failures
      - manual_release_adds_failures
      - morning_recap_notification
      - morning_recap_hour
      - morning_recap_checkin
      - url
      properties:
        id:
          type: integer
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        url:
          type: string
          format: uri
        auto_reminder:
          type: boolean
        reminder_before:
          type: integer
          multipleOf: 5
          minimum: 5
          description: ''
        reminder_before_checkin:
          type: boolean
          description: Indicates if the before reminder notification can checkin the
            room
        reminder_after:
          type: integer
          multipleOf: 5
          minimum: 5
        reminder_after_checkin:
          type: boolean
          description: Indicates if the before reminder notification can checkin the
            room
        auto_release:
          type: boolean
        auto_release_after:
          type: integer
          multipleOf: 5
          minimum: 5
        max_recurrent_failures:
          type: integer
          minimum: 0
        autorelease_adds_failures:
          type: boolean
        manual_release_adds_failures:
          type: boolean
        morning_recap_notification:
          type: boolean
        morning_recap_hour:
          type: integer
          minimum: 0
          maximum: 23
        morning_recap_checkin:
          type: boolean
          description: Indicates if the morning recap notification can checkin the
            room
    room_policy_params:
      type: object
      properties:
        auto_reminder:
          type: boolean
        reminder_before:
          type: integer
          multipleOf: 5
          minimum: 5
          description: ''
        reminder_before_checkin:
          type: boolean
          description: Indicates if the before reminder notification can checkin the
            room
        reminder_after:
          type: integer
          multipleOf: 5
          minimum: 5
        reminder_after_checkin:
          type: boolean
          description: Indicates if the before reminder notification can checkin the
            room
        auto_release:
          type: boolean
        auto_release_after:
          type: integer
          multipleOf: 5
          minimum: 5
        max_recurrent_failures:
          type: integer
          minimum: 0
        autorelease_adds_failures:
          type: boolean
        manual_release_adds_failures:
          type: boolean
        morning_recap_notification:
          type: boolean
        morning_recap_hour:
          type: integer
          minimum: 0
          maximum: 23
        morning_recap_checkin:
          type: boolean
          description: Indicates if the morning recap notification can checkin the
            room
    user_groups:
      type: array
      items:
        "$ref": "#/components/schemas/user_group"
    user_group:
      type: object
      properties:
        id:
          type: integer
        space_id:
          type: integer
        created_at:
          type: string
        updated_at:
          type: string
        name:
          type: string
        watch:
          type: boolean
        enable_chat_agent:
          type: boolean
        roles:
          type: array
          items:
            type: string
            enum:
            - space_owner
            - space_admin
            - building_admin
            - host
            - desk_booker
            - manager
            - announcer
            - user_admin
            - building_reader
            - meeting_room_admin
            - meeting_room_reader
            - visitor_admin
            - visitor_reader
            - analytics_observer
            - meeting_room_booker
            - service_admin
        sync_grant_id:
          type: integer
          nullable: true
        working_location_sync_grant_id:
          type: integer
          nullable: true
        members_count:
          type: integer
    create_user_group:
      type: object
      properties:
        name:
          type: string
        watch:
          type: boolean
        enable_chat_agent:
          type: boolean
        roles:
          type: array
          items:
            type: string
            enum:
            - space_owner
            - space_admin
            - building_admin
            - host
            - desk_booker
            - manager
            - announcer
            - user_admin
            - building_reader
            - meeting_room_admin
            - meeting_room_reader
            - visitor_admin
            - visitor_reader
            - analytics_observer
            - meeting_room_booker
            - service_admin
        sync_grant_id:
          type: integer
          nullable: true
        working_location_sync_grant_id:
          type: integer
          nullable: true
        member_ids:
          type: array
          items:
            type: integer
        type:
          type: string
        provider_id:
          type: string
    update_user_group:
      type: object
      properties:
        name:
          type: string
        watch:
          type: boolean
        enable_chat_agent:
          type: boolean
        roles:
          type: array
          items:
            type: string
            enum:
            - space_owner
            - space_admin
            - building_admin
            - host
            - desk_booker
            - manager
            - announcer
            - user_admin
            - building_reader
            - meeting_room_admin
            - meeting_room_reader
            - visitor_admin
            - visitor_reader
            - analytics_observer
            - meeting_room_booker
            - service_admin
        sync_grant_id:
          type: integer
          nullable: true
        working_location_sync_grant_id:
          type: integer
          nullable: true
        member_ids:
          type: array
          items:
            type: integer
        new_member_id:
          type: integer
        remove_member_id:
          type: integer
    new_space_user:
      type: object
      properties:
        area_id:
          type: integer
        building_id:
          type: integer
        department_ids:
          type: array
          items:
            type: integer
        email:
          type: string
          format: email
        first_name:
          type: string
        floor_id:
          type: integer
        last_name:
          type: string
        locale:
          type: string
        manager_id:
          type: integer
        phone:
          type: string
        roles:
          type: array
          items:
            "$ref": "#/components/schemas/user_role"
    user_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
      - space_admin
      - space_owner
      - user
      - user_admin
      - visitor_admin
      - visitor_reader
    user:
      type: object
      required:
      - id
      - first_name
      - full_name
      - email
      properties:
        id:
          type: integer
        avatar:
          type: string
          nullable: true
        confirmed_at:
          type: string
          format: datetime
          nullable: true
        created_at:
          type: string
          format: datetime
        departments:
          type: array
          items:
            type: string
        discarded_at:
          type: string
          format: datetime
          nullable: true
        email:
          type: string
          format: email
        first_name:
          type: string
        full_name:
          type: string
        last_name:
          type: string
          nullable: true
        locale:
          type: string
          nullable: true
        manager_id:
          type: integer
          nullable: true
        phone:
          type: string
          nullable: true
        recurring_presences:
          type: string
          nullable: true
        roles:
          type: array
          items:
            "$ref": "#/components/schemas/user_role"
        space:
          "$ref": "#/components/schemas/space"
        team:
          type: integer
        timezone:
          type: string
          nullable: true
        updated_at:
          type: string
          format: datetime
        url:
          type: string
    pagination:
      type: object
      properties:
        current:
          type: integer
        previous:
          type: string
          nullable: true
        next:
          type: string
          nullable: true
        per_page:
          type: integer
        pages:
          type: integer
        count:
          type: integer
    space_users:
      type: object
      properties:
        pagination:
          "$ref": "#/components/schemas/pagination"
        users:
          type: array
          items:
            "$ref": "#/components/schemas/user"
    user_location:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
    current_user:
      type: object
      required:
      - id
      - first_name
      - full_name
      - email
      properties:
        id:
          type: integer
        avatar:
          type: string
          nullable: true
        confirmed_at:
          type: string
          format: datetime
          nullable: true
        created_at:
          type: string
          format: datetime
        departments:
          type: array
          items:
            type: string
        discarded_at:
          type: string
          format: datetime
          nullable: true
        email:
          type: string
          format: email
        first_name:
          type: string
        full_name:
          type: string
        last_name:
          type: string
          nullable: true
        locale:
          type: string
          nullable: true
        manager_id:
          type: integer
          nullable: true
        phone:
          type: string
          nullable: true
        provider_domains:
          "$ref": "#/components/schemas/user_provider_domains"
        recurring_presences:
          type: string
          nullable: true
        roles:
          type: array
          items:
            "$ref": "#/components/schemas/user_role"
        space:
          "$ref": "#/components/schemas/space"
        team:
          type: integer
        timezone:
          type: string
          nullable: true
        updated_at:
          type: string
          format: datetime
        url:
          type: string
    space:
      type: object
      properties:
        name:
          type: string
        subdomain:
          type: string
        uuid:
          type: string
    update_user:
      type: object
      properties:
        email:
          type: string
          format: email
        first_name:
          type: string
        last_name:
          type: string
        phone:
          type: string
        building_id:
          type: integer
        floor_id:
          type: integer
        area_id:
          type: integer
        department_ids:
          type: array
          items:
            type: integer
        manager_id:
          type: integer
        locale:
          type: string
        timezone:
          type: string
        recurring_presences:
          type: string
        roles:
          type: array
          items:
            "$ref": "#/components/schemas/user_role"
        password:
          type: string
  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
paths:
  "/api/v1/spaces/{space_id}/announcements":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: List Announcements for a Space
      tags:
      - Announcements
      - Spaces
      security:
      - comeenOauth:
        - announcements:read
      parameters:
      - name: start_date
        in: query
        schema:
          type: string
          format: date
        description: Start date for Announcements fetching. Matches against Announcement
          start_datetime & end_datetime. This params or communication_start_date must
          be included if end_date is set.
      - name: communication_start_date
        in: query
        schema:
          type: string
          format: date
        description: Communication start date for Announcements fetching. Matches
          against Announcement communication_start_datetime & end_datetime. This params
          or start_date must be included if end_date is set.
      - name: end_date
        in: query
        schema:
          type: string
          format: date
        description: End date for Announcements fetching. Matches against Announcement
          start_datetime & end_datetime. Must be included if start_date or communication_start_date
          parameter is set.
      - name: mycomeen_enabled
        in: query
        schema:
          type: boolean
        description: Will return only Announcement with mycomeen_enabled set to true
      - name: for_user
        in: query
        schema:
          type: integer
        description: User id for Announcements fetching. Will return only Announcements
          affecting the User with the passed id.
      responses:
        '200':
          description: successful with mycomeen_enabled filter
          content:
            application/json:
              example:
              - id: 13
                space:
                  id: 7
                  name: Nicolas, Gibson and Gislason
                  subdomain: nicolas-gibson-and-gislason-7
                  created_at: '2026-06-22T09:28:08.000Z'
                  updated_at: '2026-06-22T09:28:08.000Z'
                  uuid: 4290a132-96ae-4ba8-8478-94e698f1f3c8
                  mapwize_key:
                  provider_mask: 1
                  legacy_mode: true
                  discarded_at:
                  service_account_configuration:
                  logins_mask: 15
                  weeks_in_advance: 2
                  enable_recurring_presences: true
                  enable_favorite_location: true
                  enable_notifications_channel_choice: false
                  provider_organisation_id:
                  enable_map_booking: true
                  onboarding_completed_at:
                  enable_chat_agent: false
                  meeting_room_booking_rule_set_id:
                  work_activity_visibility: public
                title: Test Announcement title
                message: Announcement test text
                start_datetime: '2026-07-05T00:00:00.000Z'
                end_datetime: '2026-07-09T00:00:00.000Z'
                communication_start_datetime: '2026-07-06T00:00:00.000Z'
                send_after_initial_batch: false
                enabled: true
                presence_building_id:
                presence_floor_id:
                presence_area_id:
                favorite_building_id: 8
                favorite_floor_id:
                favorite_area_id:
                notification_enabled: true
                mycomeen_enabled: true
                user_groups: []
                url: http://www.example.com/api/v1/announcements/13.json
        '422':
          description: passing only end_date
    post:
      summary: Create Announcement for a Space
      tags:
      - Announcements
      - Spaces
      security:
      - comeenOauth:
        - announcements:write
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                id: 15
                space_id: 8
                title: Test Announcement title
                message: Announcement test text
                start_datetime: '2026-06-22T11:28:08.000Z'
                end_datetime: '2026-06-22T12:28:08.000Z'
                communication_start_datetime: '2026-06-22T11:28:08.000Z'
                send_after_initial_batch: false
                enabled: true
                presence_building_id:
                presence_floor_id:
                presence_area_id:
                favorite_building_id:
                favorite_floor_id:
                favorite_area_id:
                created_at: '2026-06-22T09:28:09.031Z'
                updated_at: '2026-06-22T09:28:09.031Z'
                notification_enabled: true
                mycomeen_enabled: true
                announcer_id:
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                announcement:
                  type: object
                  properties:
                    title:
                      type: string
                    message:
                      type: string
                    start_datetime:
                      type: string
                      format: date-time
                    end_datetime:
                      type: string
                      format: date-time
                    communication_start_datetime:
                      type: string
                      format: date-time
                    send_after_initial_batch:
                      type: boolean
                    enabled:
                      type: boolean
                    presence_building_id:
                      type: integer
                    presence_floor_id:
                      type: integer
                    presence_area_id:
                      type: integer
                    favorite_building_id:
                      type: integer
                    favorite_floor_id:
                      type: integer
                    favorite_area_id:
                      type: integer
                    notification_enabled:
                      type: boolean
                    mycomeen_enabled:
                      type: boolean
                    user_group_ids:
                      type: array
                      items:
                        type: integer
        required: true
  "/api/v1/spaces/{space_id}/announcements/affected":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: Get affected Users count for Announcement filters on a Space
      tags:
      - Announcements
      - Spaces
      security:
      - comeenOauth:
        - announcements:read
      parameters:
      - name: announcement
        in: query
        required: true
        schema:
          type: object
          properties:
            title:
              type: string
            message:
              type: string
            start_datetime:
              type: string
              format: date-time
            end_datetime:
              type: string
              format: date-time
            communication_start_datetime:
              type: string
              format: date-time
            send_after_initial_batch:
              type: boolean
            enabled:
              type: boolean
            presence_building_id:
              type: integer
            presence_floor_id:
              type: integer
            presence_area_id:
              type: integer
            favorite_building_id:
              type: integer
            favorite_floor_id:
              type: integer
            favorite_area_id:
              type: integer
            notification_enabled:
              type: boolean
            mycomeen_enabled:
              type: boolean
            user_group_ids:
              type: array
              items:
                type: integer
          style: deepObject
          explode: true
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                criteria:
                  start_datetime: '2026-07-02T00:00:00.000Z'
                  end_datetime: '2026-07-07T00:00:00.000Z'
                  favorite_building_id: 9
                  user_group_ids: []
                affected:
                  count: 1
  "/api/v1/announcements/{id}/affected":
    parameters:
    - name: id
      in: path
      description: Announcement id
      required: true
      schema:
        type: integer
    get:
      summary: Get affected Users count for an Announcement
      tags:
      - Announcements
      security:
      - comeenOauth:
        - announcements:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                criteria:
                  start_datetime: '2026-07-06T00:00:00.000Z'
                  end_datetime: '2026-07-07T00:00:00.000Z'
                  favorite_building_id: 10
                  user_group_ids: []
                affected:
                  count: 0
  "/api/v1/announcements/{id}":
    parameters:
    - name: id
      in: path
      description: Announcement id
      required: true
      schema:
        type: integer
    get:
      summary: Show Announcement details
      tags:
      - Announcements
      - Spaces
      security:
      - comeenOauth:
        - announcements:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 18
                space:
                  id: 13
                  name: Steuber and Sons
                  subdomain: steuber-and-sons-13
                  created_at: '2026-06-22T09:28:09.000Z'
                  updated_at: '2026-06-22T09:28:09.000Z'
                  uuid: 4d18f0d5-c82b-411c-8425-5007d55fe462
                  mapwize_key:
                  provider_mask: 1
                  legacy_mode: true
                  discarded_at:
                  service_account_configuration:
                  logins_mask: 15
                  weeks_in_advance: 2
                  enable_recurring_presences: true
                  enable_favorite_location: true
                  enable_notifications_channel_choice: false
                  provider_organisation_id:
                  enable_map_booking: true
                  onboarding_completed_at:
                  enable_chat_agent: false
                  meeting_room_booking_rule_set_id:
                  work_activity_visibility: public
                title: Test Announcement title
                message: Announcement test text
                start_datetime: '2026-07-08T00:00:00.000Z'
                end_datetime: '2026-07-09T00:00:00.000Z'
                communication_start_datetime: '2026-07-09T00:00:00.000Z'
                send_after_initial_batch: false
                enabled: true
                presence_building_id:
                presence_floor_id:
                presence_area_id:
                favorite_building_id: 11
                favorite_floor_id:
                favorite_area_id:
                notification_enabled: true
                mycomeen_enabled: true
                user_groups: []
                url: http://www.example.com/api/v1/announcements/18.json
    patch:
      summary: Update Announcement
      tags:
      - Announcements
      security:
      - comeenOauth:
        - announcements:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                announcement:
                  type: object
                  properties:
                    title:
                      type: string
                    message:
                      type: string
                    start_datetime:
                      type: string
                      format: date-time
                    end_datetime:
                      type: string
                      format: date-time
                    communication_start_datetime:
                      type: string
                      format: date-time
                    send_after_initial_batch:
                      type: boolean
                    enabled:
                      type: boolean
                    presence_building_id:
                      type: integer
                    presence_floor_id:
                      type: integer
                    presence_area_id:
                      type: integer
                    favorite_building_id:
                      type: integer
                    favorite_floor_id:
                      type: integer
                    favorite_area_id:
                      type: integer
                    notification_enabled:
                      type: boolean
                    mycomeen_enabled:
                      type: boolean
                    user_group_ids:
                      type: array
                      items:
                        type: integer
        required: true
    put:
      summary: update announcement
      tags:
      - Announcements
      security:
      - comeenOauth:
        - announcements:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                announcement:
                  type: object
                  properties:
                    title:
                      type: string
                    message:
                      type: string
                    start_datetime:
                      type: string
                      format: date-time
                    end_datetime:
                      type: string
                      format: date-time
                    communication_start_datetime:
                      type: string
                      format: date-time
                    send_after_initial_batch:
                      type: boolean
                    enabled:
                      type: boolean
                    presence_building_id:
                      type: integer
                    presence_floor_id:
                      type: integer
                    presence_area_id:
                      type: integer
                    favorite_building_id:
                      type: integer
                    favorite_floor_id:
                      type: integer
                    favorite_area_id:
                      type: integer
                    notification_enabled:
                      type: boolean
                    mycomeen_enabled:
                      type: boolean
                    user_group_ids:
                      type: array
                      items:
                        type: integer
        required: true
    delete:
      summary: Delete an Announcement
      tags:
      - Announcements
      security:
      - comeenOauth:
        - announcements:write
      responses:
        '204':
          description: successful
  "/api/v1/appointments/find_by_guest_email":
    get:
      summary: Find Appointment by Guest email
      tags:
      - Appointments
      - Guests
      - Client-credentials compatible
      security:
      - comeenOauth:
        - appointments:read
      parameters:
      - name: guest[email]
        in: query
        description: Guest email
        schema:
          type: string
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 1
                topic: optimize robust experiences
                start_datetime: '2026-06-26T12:00:00.000Z'
                end_datetime: '2026-06-26T12:45:00.000Z'
                meeting_location: Paradise Creek
                organizer:
                  id: 19
                  first_name: Hugh
                  last_name: Goodwin
                  full_name: Hugh Goodwin
                  email: goodwin.hugh@example.org
                  phone: 1-407-978-1729
                  created_at: '2026-06-22T09:28:09.000Z'
                  updated_at: '2026-06-22T09:28:09.000Z'
                  url: http://www.example.com/api/v1/users/19.json
                created_at: '2026-06-22T09:28:09.000Z'
                updated_at: '2026-06-22T09:28:09.000Z'
                company:
                meeting_rooms: []
                attendees:
                - id: 20
                  first_name: Jordon
                  last_name: Doyle
                  full_name: Jordon Doyle
                  email: doyle-jordon@example.org
                  phone: 1-248-222-8946
                  created_at: '2026-06-22T09:28:09.000Z'
                  updated_at: '2026-06-22T09:28:09.000Z'
                  url: http://www.example.com/api/v1/guests/20.json
                url: http://www.example.com/api/v1/appointments/1.json
  "/api/v1/spaces/{space_id}/appointments/find_by_provider_id":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: Find an Appointment by provider id in a Space
      deprecated: Do not use this. Use Google::Appointment#show or Microsoft::Appointment#show
        instead.
      description: Do not use this. Use Google::Appointment#show or Microsoft::Appointment#show
        instead.
      tags:
      - Appointments
      - Spaces
      security:
      - comeenOauth:
        - appointments:read
      parameters:
      - name: id
        in: query
        description: Appointment provider id
        schema:
          type: string
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 3
                topic: reintermediate next-generation functionalities
                start_datetime: '2026-06-25T12:00:00.000Z'
                end_datetime: '2026-06-25T12:05:00.000Z'
                meeting_location: Autumn Gardens
                organizer:
                  id: 23
                  first_name: Reginald
                  last_name: Batz
                  full_name: Reginald Batz
                  email: batz-reginald@example.org
                  phone:
                  created_at: '2026-06-22T09:28:09.000Z'
                  updated_at: '2026-06-22T09:28:09.000Z'
                  url: http://www.example.com/api/v1/users/23.json
                created_at: '2026-06-22T09:28:09.000Z'
                updated_at: '2026-06-22T09:28:09.000Z'
                company:
                meeting_rooms: []
                attendees: []
                url: http://www.example.com/api/v1/appointments/3.json
  "/api/v1/spaces/{space_id}/appointments":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: List Appointments for a Space
      tags:
      - Appointments
      - Spaces
      security:
      - comeenOauth:
        - appointments:read
      parameters:
      - name: start_date
        in: query
        schema:
          type: string
          format: date-time
          default: current date
        description: Start date filter. Inclusive.
        required: false
      - name: end_date
        in: query
        schema:
          type: string
          format: date-time
          default: current date
        description: End date filter. Inclusive.
        required: false
      - name: room_booking_state[]
        in: query
        schema:
          type: array
          explode: true
          style: form
          items:
            type: string
            enum:
            - booked
            - canceled
            - checked_in
            - checked_out
            - auto_released
            - released
            - proactively_released
        description: Meeting room booking state filter
        required: false
      - name: room_checkin_source[]
        in: query
        schema:
          type: array
          explode: true
          style: form
          items:
            type: string
            enum:
            - api.room_booking_screen
            - google-meet-hardware.auto_checkin
            - facebook.workplace
            - google-chat
            - teams
            - slack.app
        description: Meeting room checkin source filter
        required: false
      - name: room_booking_source[]
        in: query
        schema:
          type: array
          explode: true
          style: form
          items:
            type: string
            enum:
            - api.room_booking_screen
            - api.calendar_sync
        description: Meeting room booking source filter
        required: false
      - name: recurrence
        in: query
        schema:
          type: string
          enum:
          - any
          - none
          - recurring
          - daily
          - weekly
          - monthly
          default: any
        description: Recurrence type filter
        required: false
      - name: creator_email
        in: query
        schema:
          type: string
          format: email
        description: Appointment creator email filter
        required: false
      - name: organizer_email
        in: query
        schema:
          type: string
          format: email
        description: Appointment organizer email filter
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                appointments:
                - id: 4
                  topic: enable ubiquitous solutions
                  start_datetime: '2026-06-22T09:28:09.000Z'
                  end_datetime: '2026-06-22T10:28:09.000Z'
                  meeting_location: Park Gardens
                  organizer:
                    id: 25
                    first_name: Cherri
                    last_name: Crooks
                    full_name: Cherri Crooks
                    email: crooks-cherri@example.org
                    phone:
                    created_at: '2026-06-22T09:28:09.000Z'
                    updated_at: '2026-06-22T09:28:09.000Z'
                    url: http://www.example.com/api/v1/users/25.json
                  created_at: '2026-06-22T09:28:10.000Z'
                  updated_at: '2026-06-22T09:28:10.000Z'
                  company:
                  recurring_appointment:
                    id: 1
                    topic: enable ubiquitous solutions
                    created_at: '2026-06-22T09:28:09.965Z'
                    updated_at: '2026-06-22T09:28:09.965Z'
                  meeting_rooms:
                  - id: 1
                    name: Pine Acres
                    provider_id: 2yQAAe72dDg49p7v
                    building_id: 16
                    space_id: 20
                    capacity: 3
                    created_at: '2026-06-22T09:28:09.000Z'
                    updated_at: '2026-06-22T09:28:09.000Z'
                    state: booked
                    booking:
                      id: 1
                      booking_source: api.calendar_sync
                      before_reminder_at:
                      before_reminder_sent_at:
                      start_reminder_at:
                      start_reminder_sent_at:
                      auto_release_at:
                      autoreleased_at:
                      morning_recap_notification_at:
                      morning_recap_notification_sent_at:
                      booked_at:
                      checked_in_at:
                      checked_out_at:
                      canceled_at:
                      released_at:
                      auto_released_at:
                  attendees: []
                  url: http://www.example.com/api/v1/appointments/4.json
                pagination:
                  current: 1
                  previous:
                  next:
                  per_page: 50
                  pages: 1
                  count: 1
    post:
      summary: Create an Appointment for a Space
      tags:
      - Appointments
      - Spaces
      - Client-credentials compatible
      security:
      - comeenOauth:
        - appointments:write
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                id: 12
                topic: engage strategic interfaces
                meeting_location: Park Court
                start_datetime: '2026-06-23T12:00:00.000Z'
                end_datetime: '2026-06-23T12:30:00.000Z'
                created_at: '2026-06-22T09:28:10.000Z'
                updated_at: '2026-06-22T09:28:10.000Z'
                uuid: da6d9c16-c274-4606-86fb-ee12a949eb09
                space_id: 32
                provider_id:
                organizer_id: 37
                kiosk_id:
                expecting_visitors: false
                checked_in: false
                released_meeting_room_id:
                provider_recurrent_id:
                calendar_id:
                google_meet_space:
                google_workspace_event_watcher:
                recurring_appointment_id:
                creator_id:
                original_start_datetime:
                original_end_datetime:
                microsoft_teams_join_url:
                microsoft_graph_event_watcher:
                cross_calendar_id:
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                appointment:
                  type: object
                  properties:
                    topic:
                      type: string
                    start_datetime:
                      type: string
                      format: date-time
                    end_datetime:
                      type: string
                      format: date-time
                    expecting_visitors:
                      type: boolean
                    organizer_id:
                      type: integer
                    meeting_room_id:
                      type: integer
                    kiosk_id:
                      type: integer
                    attendee_ids:
                      type: array
                      items:
                        type: integer
                    provider_id:
                      type: string
        required: true
  "/api/v1/appointments/{id}":
    parameters:
    - name: id
      in: path
      description: id
      required: true
      schema:
        type: integer
    get:
      summary: show appointment
      tags:
      - Appointments
      security:
      - comeenOauth:
        - appointments:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 14
                topic: disintermediate visionary technologies
                start_datetime: '2026-06-25T12:00:00.000Z'
                end_datetime: '2026-06-25T12:10:00.000Z'
                meeting_location: Willow Pointe
                organizer:
                  id: 39
                  first_name: Julio
                  last_name: Flatley
                  full_name: Julio Flatley
                  email: julio_flatley@example.org
                  phone: 934-560-2739
                  created_at: '2026-06-22T09:28:10.000Z'
                  updated_at: '2026-06-22T09:28:10.000Z'
                  url: http://www.example.com/api/v1/users/39.json
                created_at: '2026-06-22T09:28:10.000Z'
                updated_at: '2026-06-22T09:28:10.000Z'
                company:
                meeting_rooms: []
                attendees: []
                url: http://www.example.com/api/v1/appointments/14.json
    patch:
      summary: Update an Appointment
      tags:
      - Appointments
      - Client-credentials compatible
      security:
      - comeenOauth:
        - appointments:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                appointment:
                  type: object
                  properties:
                    topic:
                      type: string
                    start_datetime:
                      type: string
                      format: date-time
                    end_datetime:
                      type: string
                      format: date-time
                    expecting_visitors:
                      type: boolean
                    organizer_id:
                      type: integer
                    meeting_room_id:
                      type: integer
                    kiosk_id:
                      type: integer
                    attendee_ids:
                      type: array
                      items:
                        type: integer
                    provider_id:
                      type: string
        required: true
    put:
      summary: Update an Appointment
      tags:
      - Appointments
      security:
      - comeenOauth:
        - appointments:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                appointment:
                  type: object
                  properties:
                    topic:
                      type: string
                    start_datetime:
                      type: string
                      format: date-time
                    end_datetime:
                      type: string
                      format: date-time
                    expecting_visitors:
                      type: boolean
                    organizer_id:
                      type: integer
                    meeting_room_id:
                      type: integer
                    kiosk_id:
                      type: integer
                    attendee_ids:
                      type: array
                      items:
                        type: integer
                    provider_id:
                      type: string
        required: true
    delete:
      summary: Delete an Appointment
      tags:
      - Appointments
      security:
      - comeenOauth:
        - appointments:write
      responses:
        '204':
          description: successful
  "/api/v1/guests/{guest_id}/appointments":
    parameters:
    - name: guest_id
      in: path
      description: Guest id
      required: true
      schema:
        type: integer
    get:
      summary: List Appointments for a Guest
      deprecated: Collecting all appointments from a Guest is deprecated.
      description: Collecting all appointments from a Guest is deprecated.
      tags:
      - Appointments
      - Guests
      security:
      - comeenOauth:
        - appointments:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                appointments: []
                pagination:
                  current: 1
                  previous:
                  next: 2
                  per_page: 50
                  pages: 0
                  count: 0
  "/api/v1/areas/{id}/occupancy":
    parameters:
    - name: id
      in: path
      description: Area id
      required: true
      schema:
        type: integer
    get:
      summary: Area occupancy stats
      tags:
      - Areas
      - Occupancy
      security:
      - comeenOauth:
        - buildings:read
      parameters:
      - name: start_date
        in: query
        schema:
          type: string
          format: date
        description: End bound for occupancy data fetching
        example: '2022-10-21'
      - name: end_date
        in: query
        schema:
          type: string
          format: date
        description: End bound for occupancy data fetching
        example: '2022-10-21'
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                occupancy:
                  '2026-06-17':
                    date: '2026-06-17'
                    occupancy:
                      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
                  '2026-06-18':
                    date: '2026-06-18'
                    occupancy:
                      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
                  '2026-06-19':
                    date: '2026-06-19'
                    occupancy:
                      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
                  '2026-06-20':
                    date: '2026-06-20'
                    occupancy:
                      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
                  '2026-06-21':
                    date: '2026-06-21'
                    occupancy:
                      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
                  '2026-06-22':
                    date: '2026-06-22'
                    occupancy:
                      checked_in: 1
                      expected: 0
                      gauges:
                        global: 6.666666666666667
                        checked_in: 6.666666666666667
                        expected: 0.0
                      remaining_seats: 14
                    visitors:
                      checked_in: 0
                      expected: 0
                  '2026-06-23':
                    date: '2026-06-23'
                    occupancy:
                      checked_in: 0
                      expected: 5
                      gauges:
                        global: 33.333333333333336
                        checked_in: 0.0
                        expected: 33.333333333333336
                      remaining_seats: 10
                    visitors:
                      checked_in: 0
                      expected: 0
                  '2026-06-24':
                    date: '2026-06-24'
                    occupancy:
                      checked_in: 0
                      expected: 1
                      gauges:
                        global: 6.666666666666667
                        checked_in: 0.0
                        expected: 6.666666666666667
                      remaining_seats: 14
                    visitors:
                      checked_in: 0
                      expected: 0
                  '2026-06-25':
                    date: '2026-06-25'
                    occupancy:
                      checked_in: 0
                      expected: 1
                      gauges:
                        global: 6.666666666666667
                        checked_in: 0.0
                        expected: 6.666666666666667
                      remaining_seats: 14
                    visitors:
                      checked_in: 0
                      expected: 0
                  '2026-06-26':
                    date: '2026-06-26'
                    occupancy:
                      checked_in: 0
                      expected: 2
                      gauges:
                        global: 13.333333333333334
                        checked_in: 0.0
                        expected: 13.333333333333334
                      remaining_seats: 13
                    visitors:
                      checked_in: 0
                      expected: 0
                  '2026-06-27':
                    date: '2026-06-27'
                    occupancy:
                      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
  "/api/v1/floors/{floor_id}/areas":
    parameters:
    - 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:
              - id: 2
                name: Healthcare
                floor_id: 8
                created_at: '2026-06-22T09:28:12.688Z'
                updated_at: '2026-06-22T09:28:12.688Z'
                x:
                "y":
                width:
                height:
                capacity: 15
                threshold: 100
                flex_office:
                capacity_limit: 15.0
                capacity_reached_for_today?: false
                capacity_gauge_for_today: 0.0
                count_checked_in_today: 0
                count_expected_presences_today: 0
                capacity_reached_for_today: false
                url: http://www.example.com/api/v1/areas/2.json
    post:
      summary: Create an Area in a Floor
      tags:
      - Areas
      security:
      - comeenOauth:
        - buildings:write
      parameters: []
      responses:
        '201':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                area:
                  type: object
                  properties:
                    name:
                      type: string
                    x:
                      type: integer
                    "y":
                      type: integer
                    width:
                      type: integer
                    height:
                      type: integer
                    capacity:
                      type: integer
                    threshold:
                      type: integer
                    flex_office:
                      type: boolean
        required: true
  "/api/v1/areas/{id}":
    parameters:
    - 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: 4
                name: Legal
                floor_id: 10
                created_at: '2026-06-22T09:28:12.827Z'
                updated_at: '2026-06-22T09:28:12.827Z'
                x:
                "y":
                width:
                height:
                capacity: 15
                threshold: 100
                flex_office:
                capacity_limit: 15.0
                capacity_reached_for_today?: false
                capacity_gauge_for_today: 0.0
                count_checked_in_today: 0
                count_expected_presences_today: 0
                capacity_reached_for_today: false
                url: http://www.example.com/api/v1/areas/4.json
              schema:
                type: object
                properties:
                  id:
                    type: integer
                  name:
                    type: string
                  floor_id:
                    type: integer
                  created_at:
                    type: string
                    format: date-time
                  updated_at:
                    type: string
                    format: date-time
                  capacity:
                    type: integer
                    nullable: true
                  x:
                    type: integer
                    nullable: true
                  "y":
                    type: integer
                    nullable: true
                  width:
                    type: integer
                    nullable: true
                  height:
                    type: integer
                    nullable: true
                  threshold:
                    type: integer
                  flex_office:
                    type: boolean
                    nullable: true
                    description: A null value means we should check the floor flex_office
                  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
                  url:
                    type: string
                    format: uri
    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:
                  type: object
                  properties:
                    name:
                      type: string
                    x:
                      type: integer
                    "y":
                      type: integer
                    width:
                      type: integer
                    height:
                      type: integer
                    capacity:
                      type: integer
                    threshold:
                      type: integer
                    flex_office:
                      type: boolean
        required: true
    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:
                  type: object
                  properties:
                    name:
                      type: string
                    x:
                      type: integer
                    "y":
                      type: integer
                    width:
                      type: integer
                    height:
                      type: integer
                    capacity:
                      type: integer
                    threshold:
                      type: integer
                    flex_office:
                      type: boolean
        required: true
    delete:
      summary: Delete Area
      tags:
      - Areas
      security:
      - comeenOauth:
        - buildings:write
      responses:
        '204':
          description: successful
  "/api/v1/spaces/{space_id}/badges":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    post:
      summary: Create Badge for a Space
      tags:
      - Badges
      - Client-credentials compatible
      security:
      - comeenOauth:
        - badges:write
      parameters: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                uuid: 6f4516d8-bb51-424b-88b7-9564dad86e01
                validity: '2026-06-26T13:45:00.000Z'
                created_at: '2026-06-22T09:28:13.000Z'
                updated_at: '2026-06-22T09:28:13.000Z'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                person_id:
                  type: integer
                appointment_id:
                  type: integer
                badge_type:
                  type: string
                  enum:
                  - print
                  - std
                badge:
                  type: object
                  properties:
                    person_id:
                      type: integer
                      required: true
                    appointment_id:
                      type: integer
                      required: false
                    badge_type:
                      type: string
                      enum:
                      - print
                      - std
        required: true
  "/api/v1/badges/{id}":
    parameters:
    - name: id
      in: path
      schema:
        type: string
        format: uuid
      description: Badge uuid
      required: true
    get:
      summary: Show badge details
      tags:
      - Badges
      security:
      - comeenOauth:
        - badges:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 3
                uuid: 15377391-e437-47bb-851f-1890a5c9e6e8
                validity: '2026-06-22T14:28:13.000Z'
                person_id: 80
                type:
                created_at: '2026-06-22T09:28:13.000Z'
                updated_at: '2026-06-22T09:28:13.000Z'
                visitor_id:
                appointment_id: 26
  "/api/v1/qr/visits/{qr}":
    parameters:
    - name: qr
      in: path
      description: QR code value for Building
      required: true
      schema:
        type: string
    - name: visit[state]
      in: query
      required: true
      schema:
        type: array
        explode: true
        style: deepObject
    get:
      summary: Building Visits via QR code
      tags:
      - Buildings
      - Visits
      security:
      - comeenOauth:
        - visits:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example: []
  "/api/v1/buildings/{id}/occupancy":
    parameters:
    - name: id
      in: path
      description: Building id
      required: true
      schema:
        type: integer
    get:
      summary: Building occupancy stats
      tags:
      - Buildings
      - Occupancy
      security:
      - comeenOauth:
        - buildings:read
      parameters:
      - name: start_date
        in: query
        schema:
          type: string
          format: date
        description: End bound for occupancy data fetching
        example: '2022-10-21'
      - name: end_date
        in: query
        schema:
          type: string
          format: date
        description: End bound for occupancy data fetching
        example: '2022-10-21'
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                occupancy:
                  '2026-06-17':
                    date: '2026-06-17'
                    occupancy:
                      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
                  '2026-06-18':
                    date: '2026-06-18'
                    occupancy:
                      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
                  '2026-06-19':
                    date: '2026-06-19'
                    occupancy:
                      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
                  '2026-06-20':
                    date: '2026-06-20'
                    occupancy:
                      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
                  '2026-06-21':
                    date: '2026-06-21'
                    occupancy:
                      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
                  '2026-06-22':
                    date: '2026-06-22'
                    occupancy:
                      checked_in: 2
                      expected: 0
                      gauges:
                        global: 13.333333333333334
                        checked_in: 13.333333333333334
                        expected: 0.0
                      remaining_seats: 13
                    visitors:
                      checked_in: 0
                      expected: 0
                  '2026-06-23':
                    date: '2026-06-23'
                    occupancy:
                      checked_in: 0
                      expected: 3
                      gauges:
                        global: 20.0
                        checked_in: 0.0
                        expected: 20.0
                      remaining_seats: 12
                    visitors:
                      checked_in: 0
                      expected: 0
                  '2026-06-24':
                    date: '2026-06-24'
                    occupancy:
                      checked_in: 0
                      expected: 3
                      gauges:
                        global: 20.0
                        checked_in: 0.0
                        expected: 20.0
                      remaining_seats: 12
                    visitors:
                      checked_in: 0
                      expected: 0
                  '2026-06-25':
                    date: '2026-06-25'
                    occupancy:
                      checked_in: 0
                      expected: 2
                      gauges:
                        global: 13.333333333333334
                        checked_in: 0.0
                        expected: 13.333333333333334
                      remaining_seats: 13
                    visitors:
                      checked_in: 0
                      expected: 0
                  '2026-06-26':
                    date: '2026-06-26'
                    occupancy:
                      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
                  '2026-06-27':
                    date: '2026-06-27'
                    occupancy:
                      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
  "/api/v1/buildings/{id}/sync_desks":
    parameters:
    - name: id
      in: path
      description: Building id
      required: true
      schema:
        type: integer
    get:
      summary: Check Desks to sync for a Building
      tags:
      - Buildings
      - Desks
      security:
      - comeenOauth:
        - desks:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
              - floor_id: 14
                desks:
                - desk_id:
                  desk_sync_id: B1F2D1
                  desk_name: Desk-F2-1
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D2
                  desk_name: Desk-F2-2
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D3
                  desk_name: Desk-F2-3
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D4
                  desk_name: Desk-F2-4
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D5
                  desk_name: Desk-F2-5
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D6
                  desk_name: Desk-F2-6
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D7
                  desk_name: Desk-F2-7
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D8
                  desk_name: Desk-F2-8
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D9
                  desk_name: Desk-F2-9
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D10
                  desk_name: Desk-F2-10
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D11
                  desk_name: Desk-F2-11
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D12
                  desk_name: Desk-F2-12
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D13
                  desk_name: Desk-F2-13
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D14
                  desk_name: Desk-F2-14
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D15
                  desk_name: Desk-F2-15
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D16
                  desk_name: Desk-F2-16
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D17
                  desk_name: Desk-F2-17
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D18
                  desk_name: Desk-F2-18
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D19
                  desk_name: Desk-F2-19
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D20
                  desk_name: Desk-F2-20
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D21
                  desk_name: Desk-F2-21
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D22
                  desk_name: Desk-F2-22
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D23
                  desk_name: Desk-F2-23
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D24
                  desk_name: Desk-F2-24
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D25
                  desk_name: Desk-F2-25
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D26
                  desk_name: Desk-F2-26
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D27
                  desk_name: Desk-F2-27
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D28
                  desk_name: Desk-F2-28
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D29
                  desk_name: Desk-F2-29
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D30
                  desk_name: Desk-F2-30
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D31
                  desk_name: Desk-F2-31
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D32
                  desk_name: Desk-F2-32
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
                - desk_id:
                  desk_sync_id: B1F2D33
                  desk_name: Desk-F2-33
                  desk_available: true
                  features_ids: []
                  person_id:
                  person_name:
                  person_email:
                  status: added
  "/api/v1/buildings/{id}/do_sync_desks":
    parameters:
    - name: id
      in: path
      description: Building id
      required: true
      schema:
        type: integer
    post:
      summary: Apply pending Desks sync changes in a Building
      tags:
      - Buildings
      - Desks
      security:
      - comeenOauth:
        - desks:write
      responses:
        '204':
          description: successful
  "/api/v1/spaces/{space_id}/buildings":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: List Buildings for a Space
      tags:
      - Buildings
      - Spaces
      - Client-credentials compatible
      security:
      - comeenOauth:
        - buildings:read
      parameters:
      - name: include_desks
        in: query
        description: Whether to include Building Floors Desks in response
        schema:
          type: boolean
      - name: start_datetime
        in: query
        schema:
          type: string
          format: date-time
        description: Start bound for occupancy stats fetching. Also causes unavailable
          Buildings during this period to be hidden. Only valid when both start_datetime
          and end_datetime are set.
        example: '2022-10-21T17:17:17Z'
      - name: end_datetime
        in: query
        schema:
          type: string
          format: date-time
        description: End bound for occupancy stats fetching. Also causes unavailable
          Buildings during this period to be hidden. Only valid when both start_datetime
          and end_datetime are set.
        example: '2022-10-21T17:17:17Z'
      - name: occupancy
        in: query
        description: Whether to include Building occupancy stats in response. Only
          valid when both start_datetime and end_datetime are set.
        schema:
          type: boolean
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
              - id: 41
                name: Summer Place
                address:
                zipcode: ''
                city:
                state_region:
                country:
                space_id: 80
                created_at: '2026-06-22T09:28:16.000Z'
                updated_at: '2026-06-22T09:28:16.000Z'
                mapwize_alias:
                enforce_security: false
                security_rules: ''
                desk_instructions:
                current_visitors_qrcode: lolmdr
                type:
                provider_id:
                sync_grant_id:
                capacity: 15
                threshold: 100
                flex_office: false
                desks_spreadsheet_url: https://docs.google.com/spreadsheets/d/1BXh69RkIrSzb4twP4Bsw0DUoqaWPHy0cYvsnK3duQuU/edit?gid=1304794209#gid=1304794209
                kiosk_profile_id:
                kiosk_theme_id:
                floors: []
                desk_features: []
                logo_url:
                uses_mapwize: false
                uses_guests_qr: true
                url: http://www.example.com/api/v1/buildings/41.json
                occupancy:
                  occupancy:
                  - checked_in: 0
                    expected: 0
                    gauges:
                      global: 0.0
                      checked_in: 0.0
                      expected: 0.0
                    remaining_seats: 0
                  floors: {}
    post:
      summary: Create a Building in a Space
      tags:
      - Buildings
      - Spaces
      security:
      - comeenOauth:
        - buildings:write
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                id: 43
                name: Autumn Oaks
                address:
                zipcode: ''
                city:
                state_region:
                country:
                space_id: 82
                created_at: '2026-06-22T09:28:16.000Z'
                updated_at: '2026-06-22T09:28:16.000Z'
                mapwize_alias:
                enforce_security: false
                security_rules: ''
                current_visitors_qrcode:
                provider_id:
                desk_instructions:
                capacity:
                threshold: 100
                desks_spreadsheet_url:
                flex_office: false
                kiosk_theme_id:
                kiosk_profile_id:
                sync_grant_id:
                meeting_room_booking_rule_set_id:
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                building:
                  type: object
                  properties:
                    name:
                      type: string
                    address:
                      type: string
                    zipcode:
                      type: string
                    city:
                      type: string
                    state_region:
                      type: string
                    country:
                      type: string
                    logo:
                      type: string
                      format: binary
                      nullable: true
                    enforce_security:
                      type: boolean
                    security_rules:
                      type: string
                    desk_instructions:
                      type: string
                    desks_spreadsheet_url:
                      type: string
                    capacity:
                      type: integer
                    threshold:
                      type: integer
                    flex_office:
                      type: boolean
                    kiosk_theme_id:
                      type: integer
                    kiosk_profile_id:
                      type: integer
                    sync_grant_id:
                      type: integer
                    type:
                      type: string
                    provider_id:
                      type: string
  "/api/v1/buildings/{id}":
    parameters:
    - name: id
      in: path
      description: Building id
      required: true
      schema:
        type: integer
    get:
      summary: Show Building details
      tags:
      - Buildings
      security:
      - comeenOauth:
        - buildings:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 44
                name: Park Crossing
                address:
                zipcode: ''
                city:
                state_region:
                country:
                space_id: 83
                created_at: '2026-06-22T09:28:16.000Z'
                updated_at: '2026-06-22T09:28:16.000Z'
                mapwize_alias:
                enforce_security: false
                security_rules: ''
                desk_instructions:
                current_visitors_qrcode: lolmdr
                type:
                provider_id:
                sync_grant_id:
                capacity: 15
                threshold: 100
                flex_office: false
                desks_spreadsheet_url: https://docs.google.com/spreadsheets/d/1BXh69RkIrSzb4twP4Bsw0DUoqaWPHy0cYvsnK3duQuU/edit?gid=1304794209#gid=1304794209
                kiosk_profile_id:
                kiosk_theme_id:
                floors: []
                logo_url:
                uses_mapwize: false
                uses_guests_qr: true
                url: http://www.example.com/api/v1/buildings/44.json
    put:
      summary: Update Building details
      tags:
      - Buildings
      security:
      - comeenOauth:
        - buildings:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                building:
                  type: object
                  properties:
                    name:
                      type: string
                    address:
                      type: string
                    zipcode:
                      type: string
                    city:
                      type: string
                    state_region:
                      type: string
                    country:
                      type: string
                    logo:
                      type: string
                      format: binary
                      nullable: true
                    enforce_security:
                      type: boolean
                    security_rules:
                      type: string
                    desk_instructions:
                      type: string
                    desks_spreadsheet_url:
                      type: string
                    capacity:
                      type: integer
                    threshold:
                      type: integer
                    flex_office:
                      type: boolean
                    kiosk_theme_id:
                      type: integer
                    kiosk_profile_id:
                      type: integer
                    sync_grant_id:
                      type: integer
    patch:
      summary: Update Building details
      tags:
      - Buildings
      security:
      - comeenOauth:
        - buildings:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                building:
                  type: object
                  properties:
                    name:
                      type: string
                    address:
                      type: string
                    zipcode:
                      type: string
                    city:
                      type: string
                    state_region:
                      type: string
                    country:
                      type: string
                    logo:
                      type: string
                      format: binary
                      nullable: true
                    enforce_security:
                      type: boolean
                    security_rules:
                      type: string
                    desk_instructions:
                      type: string
                    desks_spreadsheet_url:
                      type: string
                    capacity:
                      type: integer
                    threshold:
                      type: integer
                    flex_office:
                      type: boolean
                    kiosk_theme_id:
                      type: integer
                    kiosk_profile_id:
                      type: integer
                    sync_grant_id:
                      type: integer
    delete:
      summary: Delete Building and child resources
      tags:
      - Buildings
      security:
      - comeenOauth:
        - buildings:write
      responses:
        '204':
          description: successful
  "/api/v1/spaces/{space_id}/bulk/guests":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: space_id
      required: true
    post:
      summary: Bulk create guests
      tags:
      - Guests
      security:
      - comeenOauth:
        - guests:write
      description: Will create guests if they don't exist and return the new and existing
        guests.
      parameters: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
              - id:
                email:
                first_name:
                last_name:
                full_name: ''
                phone:
                created_at:
                updated_at:
                url: http://www.example.com/api/v1/guests.json
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                guests:
                  type: array
                  items:
                    type: object
                    properties:
                      email:
                        type: string
                        required: true
                        format: email
                      first_name:
                        type: string
                        required: false
                      last_name:
                        type: string
                        required: false
                      phone:
                        type: string
                        required: false
  "/api/v1/spaces/{space_id}/bulk/work_activities":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    post:
      summary: Bulk create Work Activities
      tags:
      - Bulk
      - Work Activities
      security:
      - comeenOauth:
        - workactivities:write
      parameters: []
      responses:
        '200':
          description: creating activities with presences & desk booking, group desk
            bookings
          content:
            application/json:
              example:
                work_activities:
                - id: 39
                  period: all_day
                  work_activity: on_site
                  uuid: d77d1125-eaba-4c27-9257-fb3d5693b76a
                  state: coming
                  space_id: 99
                  created_at: '2026-06-22T09:28:18.710Z'
                  updated_at: '2026-06-22T09:28:18.710Z'
                  location: Royal Place - Chemicals - Marketing
                  start_datetime: '2026-06-22T00:00:00'
                  end_datetime: '2026-06-22T23:59:59'
                  person:
                    id: 125
                    first_name: Kyle
                    last_name: Langosh
                    full_name: Kyle Langosh
                    email: kyle-langosh@example.org
                    building_id:
                    floor_id:
                    area_id:
                    manager_id:
                    space_id: 99
                    timezone: Europe/Paris
                    locale: en
                    avatar:
                    roles:
                    - owner
                  building:
                    id: 55
                    name: Royal Place
                    address:
                    zipcode: ''
                    city:
                    state_region:
                    country:
                    space_id: 99
                    created_at: '2026-06-22T09:28:18.000Z'
                    updated_at: '2026-06-22T09:28:18.000Z'
                    mapwize_alias:
                    enforce_security: false
                    security_rules: ''
                    current_visitors_qrcode:
                    provider_id:
                    desk_instructions:
                    capacity:
                    threshold: 100
                    desks_spreadsheet_url:
                    flex_office: false
                    kiosk_theme_id:
                    kiosk_profile_id:
                    sync_grant_id:
                    meeting_room_booking_rule_set_id:
                  floor:
                    id: 20
                    number: 1
                    building_id: 55
                    created_at: '2026-06-22T09:28:18.641Z'
                    updated_at: '2026-06-22T09:28:18.641Z'
                    name: Chemicals
                    desk_instructions:
                    capacity:
                    threshold: 100
                    flex_office:
                  area:
                    id: 12
                    name: Marketing
                    floor_id: 20
                    x:
                    "y":
                    width:
                    height:
                    capacity: 1
                    shape:
                    - x: 0
                      "y": 0
                    - x: 0
                      "y": 100
                    - x: 100
                      "y": 100
                    - x: 100
                      "y": 0
                    center_y: 50
                    center_x: 50
                    threshold: 100
                    created_at: '2026-06-22T09:28:18.644Z'
                    updated_at: '2026-06-22T09:28:18.644Z'
                    flex_office:
                  desk:
                    id: 42
                    uuid: 6195c946-cd00-4b5e-b084-6ff6e0763659
                    name: Chemicals-9
                    x: 1
                    "y": 1
                    available_to_booking: true
                    floor_id: 20
                    area_id: 12
                    created_at: '2026-06-22T09:28:18.646Z'
                    updated_at: '2026-06-22T09:28:18.646Z'
                    sync_id:
                    person_id:
                    equipments: []
                  bookable_items: []
                  url: http://www.example.com/api/v1/presences/37.json
                  time_zone: Europe/Paris
                - id: 40
                  period: all_day
                  work_activity: on_site
                  uuid: 17720072-c6eb-4c11-a36f-47b0a254de05
                  state: coming
                  space_id: 99
                  created_at: '2026-06-22T09:28:18.733Z'
                  updated_at: '2026-06-22T09:28:18.733Z'
                  location: Royal Place - Chemicals - Marketing
                  start_datetime: '2026-06-22T00:00:00'
                  end_datetime: '2026-06-22T23:59:59'
                  person:
                    id: 126
                    first_name: Halina
                    last_name: Gutkowski
                    full_name: Halina Gutkowski
                    email: gutkowski-halina@example.org
                    building_id:
                    floor_id:
                    area_id:
                    manager_id:
                    space_id: 99
                    timezone: Europe/Paris
                    locale: en
                    avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBVQT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--ded0bac0db9a9349467f258046f0c899048b0aee/blank.png
                    roles:
                    - desk
                  building:
                    id: 55
                    name: Royal Place
                    address:
                    zipcode: ''
                    city:
                    state_region:
                    country:
                    space_id: 99
                    created_at: '2026-06-22T09:28:18.000Z'
                    updated_at: '2026-06-22T09:28:18.000Z'
                    mapwize_alias:
                    enforce_security: false
                    security_rules: ''
                    current_visitors_qrcode:
                    provider_id:
                    desk_instructions:
                    capacity:
                    threshold: 100
                    desks_spreadsheet_url:
                    flex_office: false
                    kiosk_theme_id:
                    kiosk_profile_id:
                    sync_grant_id:
                    meeting_room_booking_rule_set_id:
                  floor:
                    id: 20
                    number: 1
                    building_id: 55
                    created_at: '2026-06-22T09:28:18.641Z'
                    updated_at: '2026-06-22T09:28:18.641Z'
                    name: Chemicals
                    desk_instructions:
                    capacity:
                    threshold: 100
                    flex_office:
                  area:
                    id: 12
                    name: Marketing
                    floor_id: 20
                    x:
                    "y":
                    width:
                    height:
                    capacity: 1
                    shape:
                    - x: 0
                      "y": 0
                    - x: 0
                      "y": 100
                    - x: 100
                      "y": 100
                    - x: 100
                      "y": 0
                    center_y: 50
                    center_x: 50
                    threshold: 100
                    created_at: '2026-06-22T09:28:18.644Z'
                    updated_at: '2026-06-22T09:28:18.644Z'
                    flex_office:
                  desk:
                    id: 43
                    uuid: 36b655d5-37e0-4cfa-b747-7ac1240bb4d6
                    name: Chemicals-10
                    x: 1
                    "y": 1
                    available_to_booking: true
                    floor_id: 20
                    area_id: 12
                    created_at: '2026-06-22T09:28:18.648Z'
                    updated_at: '2026-06-22T09:28:18.648Z'
                    sync_id:
                    person_id:
                    equipments: []
                  bookable_items: []
                  url: http://www.example.com/api/v1/presences/38.json
                  time_zone: Europe/Paris
        '400':
          description: creating only activities, invalid state parameter
          content:
            application/json:
              example:
                errors:
                - State is not included in the list
        '422':
          description: creating activities with presences & desk_bookings, not enough
            desks
          content:
            application/json:
              example:
                errors:
                - No desk matching those criteria on 2026-06-22 has been found.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                work_activities:
                  type: array
                  items:
                    type: object
                    properties:
                      work_activity:
                        type: object
                        properties:
                          start_datetime:
                            type: string
                            format: date-time
                          end_datetime:
                            type: string
                            format: date-time
                          state:
                            type: string
                            enum:
                            - on_site
                            - off_site
                            - remote
                          person_id:
                            type: integer
                      presence:
                        type: object
                        properties:
                          building_id:
                            type: integer
                            required: true
                          floor_id:
                            type: integer
                            required: false
                          area_id:
                            type: integer
                            required: false
                      desk_booking:
                        type: object
                        properties:
                          desk_uuid:
                            type: string
                            format: uuid
                          next_to_presence_uuid:
                            type: string
                            format: uuid
                          equipments:
                            type: array
                            items:
                              type: integer
                      extras_booking:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                            qty:
                              type: integer
                group_bookings:
                  type: boolean
                  default: false
                  description: Whether to group bookings together. Groups around the
                    first booking in the set.
                notify:
                  type: boolean
                  default: false
                message:
                  type: string
    put:
      summary: Bulk update Work Activities
      tags:
      - Bulk
      - Work Activities
      security:
      - comeenOauth:
        - workactivities:write
      parameters: []
      responses:
        '204':
          description: update activities and notify
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                work_activities:
                  type: array
                  items:
                    type: object
                    properties:
                      work_activity:
                        type: object
                        properties:
                          id:
                            type: integer
                            required: true
                          start_datetime:
                            type: string
                            format: date-time
                          end_datetime:
                            type: string
                            format: date-time
                          state:
                            type: string
                            enum:
                            - on_site
                            - off_site
                            - remote
                          person_id:
                            type: integer
                      presence:
                        type: object
                        properties:
                          building_id:
                            type: integer
                            required: true
                          floor_id:
                            type: integer
                            required: false
                          area_id:
                            type: integer
                            required: false
                      desk_booking:
                        type: object
                        properties:
                          desk_uuid:
                            type: string
                            format: uuid
                          next_to_presence_uuid:
                            type: string
                            format: uuid
                          equipments:
                            type: array
                            items:
                              type: integer
                      extras_booking:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                            qty:
                              type: integer
                notify:
                  type: boolean
                  default: false
                message:
                  type: string
  "/api/v1/spaces/{space_id}/bulk/work_activities/destroy":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    post:
      summary: Bulk destroy Work Activities
      tags:
      - Bulk
      - Work Activities
      security:
      - comeenOauth:
        - workactivities:write
      parameters: []
      responses:
        '204':
          description: delete activities and notify
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                work_activities:
                  type: array
                  items:
                    type: object
                    properties:
                      work_activity:
                        type: object
                        properties:
                          id:
                            type: integer
                notify:
                  type: boolean
                  default: false
                message:
                  type: string
                  default: ''
  "/api/v1/calendars/{id}/owner":
    parameters:
    - name: id
      in: path
      description: Calendar ID, UUID or provider_id
      required: true
      schema:
        type: integer
    get:
      summary: Show calendar owner
      description: Display the calendar owner
      tags:
      - Calendars
      security:
      - comeenOauth:
        - meeting_rooms:read
      responses:
        '200':
          description: successfull
  "/api/v1/me":
    get:
      summary: me current_user
      tags:
      - Buildings
      - User
      - Visits
      security:
      - comeenOauth:
        - profile
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 146
                email: lynch-hunter@example.org
                first_name: Hunter
                last_name: Lynch
                full_name: Hunter Lynch
                phone:
                timezone: Europe/Paris
                created_at: '2026-06-22T09:28:20.000Z'
                updated_at: '2026-06-22T09:28:20.000Z'
                confirmed_at: '2026-06-22T09:28:20.000Z'
                discarded_at:
                locale: en
                manager_id:
                chat_agent_enabled: false
                recurring_presences:
                space:
                  name: Pollich, Runolfsson and Wiza
                  uuid: 9be103ac-c901-430e-8406-a3877ce30413
                  subdomain: pollich-runolfsson-and-wiza-121
                departments: []
                team: 140
                avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBWdz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--1554772f34eeb1c0fb24b3507a427243518aa8ce/blank.png
                url: http://www.example.com/api/v1/users/146.json
                roles:
                - owner
                provider_domains:
                  google:
                    own_calendar: false
                    working_location: false
                    chat:
                      id: 1
                      grantor_id: 146
                      name: ''
                      credentials: application/
                      expired: false
                  microsoft:
                    own_calendar: false
                    teams:
                      id: 2
                      grantor_id: 146
                      name: ''
                      credentials: application/
                      expired: false
              schema:
                "$ref": "#/components/schemas/current_user"
  "/api/v1/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_date
        in: query
        schema:
          type: string
          format: date
        description: Start bound for Desk availability period. Inclusive.
      - name: end_date
        in: query
        schema:
          type: string
          format: date
        description: End bound for Desk availability period. Inclusive.
      - 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: []
  "/api/v1/desks/{id}":
    parameters:
    - name: id
      in: path
      description: id
      required: true
      schema:
        type: string
    put:
      summary: Update desk
      tags:
      - Desks
      security:
      - comeenOauth:
        - desks:write
      parameters: []
      responses:
        '204':
          description: success
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                sync_id:
                  type: string
                floor_id:
                  type: integer
                area_id:
                  type: integer
                person_id:
                  type: integer
                available_to_booking:
                  type: boolean
                x:
                  type: integer
                "y":
                  type: integer
  "/api/v1/buildings/{building_id}/desks":
    parameters:
    - name: building_id
      in: path
      description: Building id
      required: true
      schema:
        type: integer
    get:
      summary: List building Desks
      tags:
      - Desks
      security:
      - comeenOauth:
        - desks:read
      parameters:
      - name: page
        in: query
        required: false
        default: 1
        schema:
          type: integer
        description: Page number
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                desks:
                - id: 49
                  uuid: 3bf64ad8-af7c-4ef9-8e30-e63ab53421af
                  name: Chemicals-16
                  floor_id: 25
                  area_id:
                  created_at: '2026-06-22T09:28:20.460Z'
                  updated_at: '2026-06-22T09:28:20.460Z'
                  available_to_booking: false
                  sync_id:
                  position:
                    x:
                    "y":
                  building:
                    name: Royal Heights
                    id: 65
                  floor:
                    name: Chemicals
                    id: 25
                  equipments: []
                  url: http://www.example.com/api/v1/desks/49.json
                - id: 50
                  uuid: 28c1bdae-6f80-45db-b17a-825d7cff57aa
                  name: Chemicals-17
                  floor_id: 25
                  area_id:
                  created_at: '2026-06-22T09:28:20.462Z'
                  updated_at: '2026-06-22T09:28:20.462Z'
                  available_to_booking: false
                  sync_id:
                  position:
                    x:
                    "y":
                  building:
                    name: Royal Heights
                    id: 65
                  floor:
                    name: Chemicals
                    id: 25
                  equipments: []
                  url: http://www.example.com/api/v1/desks/50.json
                - id: 51
                  uuid: 98535c6f-8cc2-4b67-9e0e-a94f6104b52d
                  name: Chemicals-18
                  floor_id: 25
                  area_id:
                  created_at: '2026-06-22T09:28:20.464Z'
                  updated_at: '2026-06-22T09:28:20.464Z'
                  available_to_booking: false
                  sync_id:
                  position:
                    x:
                    "y":
                  building:
                    name: Royal Heights
                    id: 65
                  floor:
                    name: Chemicals
                    id: 25
                  equipments: []
                  url: http://www.example.com/api/v1/desks/51.json
                pagination:
                  current: 1
                  previous:
                  next:
                  per_page: 24
                  pages: 1
                  count: 3
  "/api/v1/floors/{floor_id}/desks":
    parameters:
    - name: floor_id
      in: path
      description: Floor id
      required: true
      schema:
        type: integer
    get:
      summary: List floor Desks
      tags:
      - Desks
      security:
      - comeenOauth:
        - desks:read
      parameters:
      - name: page
        in: query
        required: false
        default: 1
        schema:
          type: integer
        description: Page number
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                desks:
                - id: 52
                  uuid: 0524cff3-7563-4615-b56d-e353be1b57a0
                  name: Oil & Gas-19
                  floor_id: 26
                  area_id:
                  created_at: '2026-06-22T09:28:20.526Z'
                  updated_at: '2026-06-22T09:28:20.526Z'
                  available_to_booking: false
                  sync_id:
                  position:
                    x:
                    "y":
                  building:
                    name: University Gardens
                    id: 66
                  floor:
                    name: Oil & Gas
                    id: 26
                  equipments: []
                  url: http://www.example.com/api/v1/desks/52.json
                - id: 53
                  uuid: 7646dbf6-a0f4-4892-9751-4a54339de0fb
                  name: Oil & Gas-20
                  floor_id: 26
                  area_id:
                  created_at: '2026-06-22T09:28:20.528Z'
                  updated_at: '2026-06-22T09:28:20.528Z'
                  available_to_booking: false
                  sync_id:
                  position:
                    x:
                    "y":
                  building:
                    name: University Gardens
                    id: 66
                  floor:
                    name: Oil & Gas
                    id: 26
                  equipments: []
                  url: http://www.example.com/api/v1/desks/53.json
                - id: 54
                  uuid: 2bdd27d7-8a4a-4148-ae6f-f00c6f294d81
                  name: Oil & Gas-21
                  floor_id: 26
                  area_id:
                  created_at: '2026-06-22T09:28:20.530Z'
                  updated_at: '2026-06-22T09:28:20.530Z'
                  available_to_booking: false
                  sync_id:
                  position:
                    x:
                    "y":
                  building:
                    name: University Gardens
                    id: 66
                  floor:
                    name: Oil & Gas
                    id: 26
                  equipments: []
                  url: http://www.example.com/api/v1/desks/54.json
                pagination:
                  current: 1
                  previous:
                  next:
                  per_page: 24
                  pages: 1
                  count: 3
  "/api/v1/spaces/{space_id}/export/visits":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: Export Visits for a Space
      tags:
      - Export
      - Visits
      - Kiosks
      security:
      - comeenOauth:
        - visits:read
      parameters:
      - name: building_id
        in: query
        required: false
        description: Filter kiosks by building id
        schema:
          type: integer
      - name: start_date
        in: query
        schema:
          type: string
          format: date
        required: true
        description: Start date for visits export
      - name: end_date
        in: query
        schema:
          type: string
          format: date
        required: true
        description: End date for visits export
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                analytics:
                - kiosk:
                    id: 4
                    name: Personal & Household Goods
                  visits:
                  - date: '2026-06-15'
                    count: 1
                  - date: '2026-06-16'
                    count: 2
                  - date: '2026-06-17'
                    count: 0
                  - date: '2026-06-18'
                    count: 1
                  - date: '2026-06-19'
                    count: 0
                  - date: '2026-06-20'
                    count: 0
                  - date: '2026-06-21'
                    count: 0
                  - date: '2026-06-22'
                    count: 1
                - kiosk:
                    id: 5
                    name: Oil & Gas
                  visits:
                  - date: '2026-06-15'
                    count: 0
                  - date: '2026-06-16'
                    count: 0
                  - date: '2026-06-17'
                    count: 0
                  - date: '2026-06-18'
                    count: 0
                  - date: '2026-06-19'
                    count: 0
                  - date: '2026-06-20'
                    count: 0
                  - date: '2026-06-21'
                    count: 0
                  - date: '2026-06-22'
                    count: 0
                - kiosk:
                    id: 6
                    name: Media
                  visits:
                  - date: '2026-06-15'
                    count: 0
                  - date: '2026-06-16'
                    count: 0
                  - date: '2026-06-17'
                    count: 0
                  - date: '2026-06-18'
                    count: 0
                  - date: '2026-06-19'
                    count: 0
                  - date: '2026-06-20'
                    count: 0
                  - date: '2026-06-21'
                    count: 0
                  - date: '2026-06-22'
                    count: 0
  "/api/v1/floors/{id}/move_up":
    parameters:
    - name: id
      in: path
      description: Floor id
      required: true
      schema:
        type: integer
    post:
      summary: Move Floor up in Building
      tags:
      - Floors
      security:
      - comeenOauth:
        - buildings:write
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                id: 27
                number: 1
                building_id: 70
                created_at: '2026-06-22T09:28:20.853Z'
                updated_at: '2026-06-22T09:28:20.853Z'
                name: Utilities
                desk_instructions:
                capacity: 15
                threshold: 100
                flex_office:
  "/api/v1/floors/{id}/move_down":
    parameters:
    - name: id
      in: path
      description: Floor id
      required: true
      schema:
        type: integer
    post:
      summary: Move Floor down in Building
      tags:
      - Floors
      security:
      - comeenOauth:
        - buildings:write
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                id: 28
                number: 1
                building_id: 71
                created_at: '2026-06-22T09:28:20.911Z'
                updated_at: '2026-06-22T09:28:20.911Z'
                name: Real Estate
                desk_instructions:
                capacity: 15
                threshold: 100
                flex_office:
  "/api/v1/floors/{id}/occupancy":
    parameters:
    - name: id
      in: path
      description: Floor id
      required: true
      schema:
        type: integer
    get:
      summary: Floor occupancy stats
      tags:
      - Floors
      - Occupancy
      security:
      - comeenOauth:
        - buildings:read
      parameters:
      - name: start_date
        in: query
        schema:
          type: string
          format: date
        description: End bound for occupancy data fetching
        example: '2022-10-21'
      - name: end_date
        in: query
        schema:
          type: string
          format: date
        description: End bound for occupancy data fetching
        example: '2022-10-21'
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                occupancy:
                  '2026-06-17':
                    date: '2026-06-17'
                    occupancy:
                      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
                  '2026-06-18':
                    date: '2026-06-18'
                    occupancy:
                      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
                  '2026-06-19':
                    date: '2026-06-19'
                    occupancy:
                      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
                  '2026-06-20':
                    date: '2026-06-20'
                    occupancy:
                      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
                  '2026-06-21':
                    date: '2026-06-21'
                    occupancy:
                      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
                  '2026-06-22':
                    date: '2026-06-22'
                    occupancy:
                      checked_in: 5
                      expected: 0
                      gauges:
                        global: 33.333333333333336
                        checked_in: 33.333333333333336
                        expected: 0.0
                      remaining_seats: 10
                    visitors:
                      checked_in: 0
                      expected: 0
                  '2026-06-23':
                    date: '2026-06-23'
                    occupancy:
                      checked_in: 0
                      expected: 2
                      gauges:
                        global: 13.333333333333334
                        checked_in: 0.0
                        expected: 13.333333333333334
                      remaining_seats: 13
                    visitors:
                      checked_in: 0
                      expected: 0
                  '2026-06-24':
                    date: '2026-06-24'
                    occupancy:
                      checked_in: 0
                      expected: 1
                      gauges:
                        global: 6.666666666666667
                        checked_in: 0.0
                        expected: 6.666666666666667
                      remaining_seats: 14
                    visitors:
                      checked_in: 0
                      expected: 0
                  '2026-06-25':
                    date: '2026-06-25'
                    occupancy:
                      checked_in: 0
                      expected: 2
                      gauges:
                        global: 13.333333333333334
                        checked_in: 0.0
                        expected: 13.333333333333334
                      remaining_seats: 13
                    visitors:
                      checked_in: 0
                      expected: 0
                  '2026-06-26':
                    date: '2026-06-26'
                    occupancy:
                      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
                  '2026-06-27':
                    date: '2026-06-27'
                    occupancy:
                      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
  "/api/v1/floors/{id}/schedule":
    parameters:
    - name: id
      in: path
      description: Floor id
      required: true
      schema:
        type: integer
    - name: start_date
      in: query
      schema:
        type: string
        format: date-time
      description: Start bound for Presences fetching
      example: '2022-10-21T17:17:17Z'
    - name: end_date
      in: query
      schema:
        type: string
        format: date-time
      description: End bound for Presences fetching
      example: '2022-10-21T17:17:17Z'
    get:
      summary: Get Presences for a Floor
      tags:
      - Floors
      security:
      - comeenOauth:
        - presences:read
      responses:
        '200':
          description: returns all Presences of the floor even for non-admins
          content:
            application/json:
              example:
                '2026-06-22':
                - id: 181
                  email: goyette_ayako@example.org
                  first_name: Ayako
                  last_name: Goyette
                  full_name: Ayako Goyette
                  phone:
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:28:22.000Z'
                  updated_at: '2026-06-22T09:28:22.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id:
                  avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBiQT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--ce39cad909a1e88f3d2fabb8eaf711573751a918/blank.png
                  url: http://www.example.com/api/v1/users/181.json
                  roles: []
                  state: ongoing
                  presence:
                    uuid: e0f5fcaa-1888-473b-97dd-490f2a9bb51c
                    state: ongoing
                    space_id: 145
                    created_at: '2026-06-22T09:28:22.636Z'
                    updated_at: '2026-06-22T09:28:22.636Z'
                    location: Autumn Creek - Industrial Goods & Services
                    id: 72
                    start_datetime: '2026-06-22T00:00:00'
                    end_datetime: '2026-06-22T23:59:59'
                    person:
                      id: 181
                      first_name: Ayako
                      last_name: Goyette
                      full_name: Ayako Goyette
                      email: goyette_ayako@example.org
                      building_id:
                      floor_id:
                      area_id:
                      manager_id:
                      space_id: 145
                      timezone: Europe/Paris
                      locale: en
                      avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBiQT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--ce39cad909a1e88f3d2fabb8eaf711573751a918/blank.png
                      roles: []
                    building:
                      id: 74
                      name: Autumn Creek
                      address:
                      zipcode: ''
                      city:
                      state_region:
                      country:
                      space_id: 142
                      created_at: '2026-06-22T09:28:22.000Z'
                      updated_at: '2026-06-22T09:28:22.000Z'
                      mapwize_alias:
                      enforce_security: false
                      security_rules: ''
                      current_visitors_qrcode:
                      provider_id:
                      desk_instructions:
                      capacity: 25
                      threshold: 100
                      desks_spreadsheet_url:
                      flex_office: false
                      kiosk_theme_id:
                      kiosk_profile_id:
                      sync_grant_id:
                      meeting_room_booking_rule_set_id:
                    floor:
                      id: 31
                      number: 1
                      building_id: 74
                      created_at: '2026-06-22T09:28:22.455Z'
                      updated_at: '2026-06-22T09:28:22.455Z'
                      name: Industrial Goods & Services
                      desk_instructions:
                      capacity: 15
                      threshold: 100
                      flex_office:
                    area:
                    period: all_day
                    bookable_items: []
                    url: http://www.example.com/api/v1/presences/67.json
                - id: 184
                  email: louanne.howell@example.org
                  first_name: Louanne
                  last_name: Howell
                  full_name: Louanne Howell
                  phone:
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:28:22.000Z'
                  updated_at: '2026-06-22T09:28:22.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id:
                  avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBiZz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--3a79e8d00a75045ece875e1dba15410fc9271b72/blank.png
                  url: http://www.example.com/api/v1/users/184.json
                  roles: []
                  state: ongoing
                  presence:
                    uuid: 35695f39-2edd-4ae4-92bb-10f679ac37c1
                    state: ongoing
                    space_id: 148
                    created_at: '2026-06-22T09:28:22.839Z'
                    updated_at: '2026-06-22T09:28:22.839Z'
                    location: Autumn Creek - Industrial Goods & Services
                    id: 75
                    start_datetime: '2026-06-22T00:00:00'
                    end_datetime: '2026-06-22T12:00:00'
                    person:
                      id: 184
                      first_name: Louanne
                      last_name: Howell
                      full_name: Louanne Howell
                      email: louanne.howell@example.org
                      building_id:
                      floor_id:
                      area_id:
                      manager_id:
                      space_id: 148
                      timezone: Europe/Paris
                      locale: en
                      avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBiZz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--3a79e8d00a75045ece875e1dba15410fc9271b72/blank.png
                      roles: []
                    building:
                      id: 74
                      name: Autumn Creek
                      address:
                      zipcode: ''
                      city:
                      state_region:
                      country:
                      space_id: 142
                      created_at: '2026-06-22T09:28:22.000Z'
                      updated_at: '2026-06-22T09:28:22.000Z'
                      mapwize_alias:
                      enforce_security: false
                      security_rules: ''
                      current_visitors_qrcode:
                      provider_id:
                      desk_instructions:
                      capacity: 25
                      threshold: 100
                      desks_spreadsheet_url:
                      flex_office: false
                      kiosk_theme_id:
                      kiosk_profile_id:
                      sync_grant_id:
                      meeting_room_booking_rule_set_id:
                    floor:
                      id: 31
                      number: 1
                      building_id: 74
                      created_at: '2026-06-22T09:28:22.455Z'
                      updated_at: '2026-06-22T09:28:22.455Z'
                      name: Industrial Goods & Services
                      desk_instructions:
                      capacity: 15
                      threshold: 100
                      flex_office:
                    area:
                    period: morning
                    bookable_items: []
                    url: http://www.example.com/api/v1/presences/70.json
                '2026-06-23':
                - id: 180
                  email: devon-kovacek@example.org
                  first_name: Devon
                  last_name: Kovacek
                  full_name: Devon Kovacek
                  phone:
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:28:22.000Z'
                  updated_at: '2026-06-22T09:28:22.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id:
                  avatar:
                  url: http://www.example.com/api/v1/users/180.json
                  roles: []
                  state: pending
                  presence:
                    uuid: a686fe34-fc63-4c5c-ab8f-9844e5e58ab9
                    state: pending
                    space_id: 144
                    created_at: '2026-06-22T09:28:22.575Z'
                    updated_at: '2026-06-22T09:28:22.575Z'
                    location: Autumn Creek - Industrial Goods & Services
                    id: 71
                    start_datetime: '2026-06-23T00:00:00'
                    end_datetime: '2026-06-23T12:00:00'
                    person:
                      id: 180
                      first_name: Devon
                      last_name: Kovacek
                      full_name: Devon Kovacek
                      email: devon-kovacek@example.org
                      building_id:
                      floor_id:
                      area_id:
                      manager_id:
                      space_id: 144
                      timezone: Europe/Paris
                      locale: en
                      avatar:
                      roles: []
                    building:
                      id: 74
                      name: Autumn Creek
                      address:
                      zipcode: ''
                      city:
                      state_region:
                      country:
                      space_id: 142
                      created_at: '2026-06-22T09:28:22.000Z'
                      updated_at: '2026-06-22T09:28:22.000Z'
                      mapwize_alias:
                      enforce_security: false
                      security_rules: ''
                      current_visitors_qrcode:
                      provider_id:
                      desk_instructions:
                      capacity: 25
                      threshold: 100
                      desks_spreadsheet_url:
                      flex_office: false
                      kiosk_theme_id:
                      kiosk_profile_id:
                      sync_grant_id:
                      meeting_room_booking_rule_set_id:
                    floor:
                      id: 31
                      number: 1
                      building_id: 74
                      created_at: '2026-06-22T09:28:22.455Z'
                      updated_at: '2026-06-22T09:28:22.455Z'
                      name: Industrial Goods & Services
                      desk_instructions:
                      capacity: 15
                      threshold: 100
                      flex_office:
                    area:
                    period: morning
                    bookable_items: []
                    url: http://www.example.com/api/v1/presences/66.json
                '2026-06-24':
                - id: 182
                  email: hank.schmeler@example.org
                  first_name: Hank
                  last_name: Schmeler
                  full_name: Hank Schmeler
                  phone:
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:28:22.000Z'
                  updated_at: '2026-06-22T09:28:22.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id:
                  avatar:
                  url: http://www.example.com/api/v1/users/182.json
                  roles: []
                  state: pending
                  presence:
                    uuid: 0ac4bda3-c276-472e-827c-6e436b93b0ad
                    state: pending
                    space_id: 146
                    created_at: '2026-06-22T09:28:22.704Z'
                    updated_at: '2026-06-22T09:28:22.704Z'
                    location: Autumn Creek - Industrial Goods & Services
                    id: 73
                    start_datetime: '2026-06-24T00:00:00'
                    end_datetime: '2026-06-24T23:59:59'
                    person:
                      id: 182
                      first_name: Hank
                      last_name: Schmeler
                      full_name: Hank Schmeler
                      email: hank.schmeler@example.org
                      building_id:
                      floor_id:
                      area_id:
                      manager_id:
                      space_id: 146
                      timezone: Europe/Paris
                      locale: en
                      avatar:
                      roles: []
                    building:
                      id: 74
                      name: Autumn Creek
                      address:
                      zipcode: ''
                      city:
                      state_region:
                      country:
                      space_id: 142
                      created_at: '2026-06-22T09:28:22.000Z'
                      updated_at: '2026-06-22T09:28:22.000Z'
                      mapwize_alias:
                      enforce_security: false
                      security_rules: ''
                      current_visitors_qrcode:
                      provider_id:
                      desk_instructions:
                      capacity: 25
                      threshold: 100
                      desks_spreadsheet_url:
                      flex_office: false
                      kiosk_theme_id:
                      kiosk_profile_id:
                      sync_grant_id:
                      meeting_room_booking_rule_set_id:
                    floor:
                      id: 31
                      number: 1
                      building_id: 74
                      created_at: '2026-06-22T09:28:22.455Z'
                      updated_at: '2026-06-22T09:28:22.455Z'
                      name: Industrial Goods & Services
                      desk_instructions:
                      capacity: 15
                      threshold: 100
                      flex_office:
                    area:
                    period: all_day
                    bookable_items: []
                    url: http://www.example.com/api/v1/presences/68.json
                - id: 186
                  email: kreiger_alysia@example.org
                  first_name: Alysia
                  last_name: Kreiger
                  full_name: Alysia Kreiger
                  phone:
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:28:22.000Z'
                  updated_at: '2026-06-22T09:28:22.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id:
                  avatar:
                  url: http://www.example.com/api/v1/users/186.json
                  roles: []
                  state: pending
                  presence:
                    uuid: 92800365-0d47-434f-b5d5-a189203c2ca3
                    state: pending
                    space_id: 150
                    created_at: '2026-06-22T09:28:22.969Z'
                    updated_at: '2026-06-22T09:28:22.969Z'
                    location: Autumn Creek - Industrial Goods & Services
                    id: 77
                    start_datetime: '2026-06-24T00:00:00'
                    end_datetime: '2026-06-24T23:59:59'
                    person:
                      id: 186
                      first_name: Alysia
                      last_name: Kreiger
                      full_name: Alysia Kreiger
                      email: kreiger_alysia@example.org
                      building_id:
                      floor_id:
                      area_id:
                      manager_id:
                      space_id: 150
                      timezone: Europe/Paris
                      locale: en
                      avatar:
                      roles: []
                    building:
                      id: 74
                      name: Autumn Creek
                      address:
                      zipcode: ''
                      city:
                      state_region:
                      country:
                      space_id: 142
                      created_at: '2026-06-22T09:28:22.000Z'
                      updated_at: '2026-06-22T09:28:22.000Z'
                      mapwize_alias:
                      enforce_security: false
                      security_rules: ''
                      current_visitors_qrcode:
                      provider_id:
                      desk_instructions:
                      capacity: 25
                      threshold: 100
                      desks_spreadsheet_url:
                      flex_office: false
                      kiosk_theme_id:
                      kiosk_profile_id:
                      sync_grant_id:
                      meeting_room_booking_rule_set_id:
                    floor:
                      id: 31
                      number: 1
                      building_id: 74
                      created_at: '2026-06-22T09:28:22.455Z'
                      updated_at: '2026-06-22T09:28:22.455Z'
                      name: Industrial Goods & Services
                      desk_instructions:
                      capacity: 15
                      threshold: 100
                      flex_office:
                    area:
                    period: all_day
                    bookable_items: []
                    url: http://www.example.com/api/v1/presences/72.json
                '2026-06-25':
                - id: 187
                  email: feil_chanelle@example.org
                  first_name: Chanelle
                  last_name: Feil
                  full_name: Chanelle Feil
                  phone:
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:28:22.000Z'
                  updated_at: '2026-06-22T09:28:22.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id:
                  avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBjQT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--d8faf40368b10d013f60af96e60a20d0f1d82e33/blank.png
                  url: http://www.example.com/api/v1/users/187.json
                  roles: []
                  state: pending
                  presence:
                    uuid: 7d705c33-43a8-4596-90ec-e19f796faaba
                    state: pending
                    space_id: 151
                    created_at: '2026-06-22T09:28:23.034Z'
                    updated_at: '2026-06-22T09:28:23.034Z'
                    location: Autumn Creek - Industrial Goods & Services
                    id: 78
                    start_datetime: '2026-06-25T00:00:00'
                    end_datetime: '2026-06-25T12:00:00'
                    person:
                      id: 187
                      first_name: Chanelle
                      last_name: Feil
                      full_name: Chanelle Feil
                      email: feil_chanelle@example.org
                      building_id:
                      floor_id:
                      area_id:
                      manager_id:
                      space_id: 151
                      timezone: Europe/Paris
                      locale: en
                      avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBjQT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--d8faf40368b10d013f60af96e60a20d0f1d82e33/blank.png
                      roles: []
                    building:
                      id: 74
                      name: Autumn Creek
                      address:
                      zipcode: ''
                      city:
                      state_region:
                      country:
                      space_id: 142
                      created_at: '2026-06-22T09:28:22.000Z'
                      updated_at: '2026-06-22T09:28:22.000Z'
                      mapwize_alias:
                      enforce_security: false
                      security_rules: ''
                      current_visitors_qrcode:
                      provider_id:
                      desk_instructions:
                      capacity: 25
                      threshold: 100
                      desks_spreadsheet_url:
                      flex_office: false
                      kiosk_theme_id:
                      kiosk_profile_id:
                      sync_grant_id:
                      meeting_room_booking_rule_set_id:
                    floor:
                      id: 31
                      number: 1
                      building_id: 74
                      created_at: '2026-06-22T09:28:22.455Z'
                      updated_at: '2026-06-22T09:28:22.455Z'
                      name: Industrial Goods & Services
                      desk_instructions:
                      capacity: 15
                      threshold: 100
                      flex_office:
                    area:
                    period: morning
                    bookable_items: []
                    url: http://www.example.com/api/v1/presences/73.json
                '2026-06-26':
                - id: 179
                  email: elmo-marquardt@example.org
                  first_name: Elmo
                  last_name: Marquardt
                  full_name: Elmo Marquardt
                  phone:
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:28:22.000Z'
                  updated_at: '2026-06-22T09:28:22.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id:
                  avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBhdz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--e5fa4fa27cf269d1cba15f12238f7715a00fcc9b/blank.png
                  url: http://www.example.com/api/v1/users/179.json
                  roles: []
                  state: pending
                  presence:
                    uuid: 32921c1c-8fc3-43bf-94a8-0e7d879e865d
                    state: pending
                    space_id: 143
                    created_at: '2026-06-22T09:28:22.518Z'
                    updated_at: '2026-06-22T09:28:22.518Z'
                    location: Autumn Creek - Industrial Goods & Services
                    id: 70
                    start_datetime: '2026-06-26T00:00:00'
                    end_datetime: '2026-06-26T23:59:59'
                    person:
                      id: 179
                      first_name: Elmo
                      last_name: Marquardt
                      full_name: Elmo Marquardt
                      email: elmo-marquardt@example.org
                      building_id:
                      floor_id:
                      area_id:
                      manager_id:
                      space_id: 143
                      timezone: Europe/Paris
                      locale: en
                      avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBhdz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--e5fa4fa27cf269d1cba15f12238f7715a00fcc9b/blank.png
                      roles: []
                    building:
                      id: 74
                      name: Autumn Creek
                      address:
                      zipcode: ''
                      city:
                      state_region:
                      country:
                      space_id: 142
                      created_at: '2026-06-22T09:28:22.000Z'
                      updated_at: '2026-06-22T09:28:22.000Z'
                      mapwize_alias:
                      enforce_security: false
                      security_rules: ''
                      current_visitors_qrcode:
                      provider_id:
                      desk_instructions:
                      capacity: 25
                      threshold: 100
                      desks_spreadsheet_url:
                      flex_office: false
                      kiosk_theme_id:
                      kiosk_profile_id:
                      sync_grant_id:
                      meeting_room_booking_rule_set_id:
                    floor:
                      id: 31
                      number: 1
                      building_id: 74
                      created_at: '2026-06-22T09:28:22.455Z'
                      updated_at: '2026-06-22T09:28:22.455Z'
                      name: Industrial Goods & Services
                      desk_instructions:
                      capacity: 15
                      threshold: 100
                      flex_office:
                    area:
                    period: all_day
                    bookable_items: []
                    url: http://www.example.com/api/v1/presences/65.json
                - id: 183
                  email: kacey-auer@example.org
                  first_name: Kacey
                  last_name: Auer
                  full_name: Kacey Auer
                  phone: "(572) 133-9118"
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:28:22.000Z'
                  updated_at: '2026-06-22T09:28:22.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id:
                  avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBiUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--620667c3e294e407095076380d69f175983cb41c/blank.png
                  url: http://www.example.com/api/v1/users/183.json
                  roles: []
                  state: coming
                  presence:
                    uuid: 21189e0d-6a49-43e8-beed-324461d7536d
                    state: coming
                    space_id: 147
                    created_at: '2026-06-22T09:28:22.770Z'
                    updated_at: '2026-06-22T09:28:22.770Z'
                    location: Autumn Creek - Industrial Goods & Services
                    id: 74
                    start_datetime: '2026-06-26T00:00:00'
                    end_datetime: '2026-06-26T23:59:59'
                    person:
                      id: 183
                      first_name: Kacey
                      last_name: Auer
                      full_name: Kacey Auer
                      email: kacey-auer@example.org
                      building_id:
                      floor_id:
                      area_id:
                      manager_id:
                      space_id: 147
                      timezone: Europe/Paris
                      locale: en
                      avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBiUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--620667c3e294e407095076380d69f175983cb41c/blank.png
                      roles: []
                    building:
                      id: 74
                      name: Autumn Creek
                      address:
                      zipcode: ''
                      city:
                      state_region:
                      country:
                      space_id: 142
                      created_at: '2026-06-22T09:28:22.000Z'
                      updated_at: '2026-06-22T09:28:22.000Z'
                      mapwize_alias:
                      enforce_security: false
                      security_rules: ''
                      current_visitors_qrcode:
                      provider_id:
                      desk_instructions:
                      capacity: 25
                      threshold: 100
                      desks_spreadsheet_url:
                      flex_office: false
                      kiosk_theme_id:
                      kiosk_profile_id:
                      sync_grant_id:
                      meeting_room_booking_rule_set_id:
                    floor:
                      id: 31
                      number: 1
                      building_id: 74
                      created_at: '2026-06-22T09:28:22.455Z'
                      updated_at: '2026-06-22T09:28:22.455Z'
                      name: Industrial Goods & Services
                      desk_instructions:
                      capacity: 15
                      threshold: 100
                      flex_office:
                    area:
                    period: all_day
                    bookable_items: []
                    url: http://www.example.com/api/v1/presences/69.json
                - id: 185
                  email: carma-hegmann@example.org
                  first_name: Carma
                  last_name: Hegmann
                  full_name: Carma Hegmann
                  phone:
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:28:22.000Z'
                  updated_at: '2026-06-22T09:28:22.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id:
                  avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBidz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--12ea322fdc43f471339205373f4f89bd69d7f31e/blank.png
                  url: http://www.example.com/api/v1/users/185.json
                  roles: []
                  state: pending
                  presence:
                    uuid: 1e179a6b-be6b-4cc7-98f4-80ca7fc7949b
                    state: pending
                    space_id: 149
                    created_at: '2026-06-22T09:28:22.907Z'
                    updated_at: '2026-06-22T09:28:22.907Z'
                    location: Autumn Creek - Industrial Goods & Services
                    id: 76
                    start_datetime: '2026-06-26T00:00:00'
                    end_datetime: '2026-06-26T12:00:00'
                    person:
                      id: 185
                      first_name: Carma
                      last_name: Hegmann
                      full_name: Carma Hegmann
                      email: carma-hegmann@example.org
                      building_id:
                      floor_id:
                      area_id:
                      manager_id:
                      space_id: 149
                      timezone: Europe/Paris
                      locale: en
                      avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBidz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--12ea322fdc43f471339205373f4f89bd69d7f31e/blank.png
                      roles: []
                    building:
                      id: 74
                      name: Autumn Creek
                      address:
                      zipcode: ''
                      city:
                      state_region:
                      country:
                      space_id: 142
                      created_at: '2026-06-22T09:28:22.000Z'
                      updated_at: '2026-06-22T09:28:22.000Z'
                      mapwize_alias:
                      enforce_security: false
                      security_rules: ''
                      current_visitors_qrcode:
                      provider_id:
                      desk_instructions:
                      capacity: 25
                      threshold: 100
                      desks_spreadsheet_url:
                      flex_office: false
                      kiosk_theme_id:
                      kiosk_profile_id:
                      sync_grant_id:
                      meeting_room_booking_rule_set_id:
                    floor:
                      id: 31
                      number: 1
                      building_id: 74
                      created_at: '2026-06-22T09:28:22.455Z'
                      updated_at: '2026-06-22T09:28:22.455Z'
                      name: Industrial Goods & Services
                      desk_instructions:
                      capacity: 15
                      threshold: 100
                      flex_office:
                    area:
                    period: morning
                    bookable_items: []
                    url: http://www.example.com/api/v1/presences/71.json
                - id: 188
                  email: mitch-volkman@example.org
                  first_name: Mitch
                  last_name: Volkman
                  full_name: Mitch Volkman
                  phone: 251.863.9780
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:28:23.000Z'
                  updated_at: '2026-06-22T09:28:23.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id:
                  avatar:
                  url: http://www.example.com/api/v1/users/188.json
                  roles: []
                  state: coming
                  presence:
                    uuid: '08fbb034-962f-4ada-a5d3-12e0bc21f3e5'
                    state: coming
                    space_id: 152
                    created_at: '2026-06-22T09:28:23.095Z'
                    updated_at: '2026-06-22T09:28:23.095Z'
                    location: Autumn Creek - Industrial Goods & Services
                    id: 79
                    start_datetime: '2026-06-26T00:00:00'
                    end_datetime: '2026-06-26T12:00:00'
                    person:
                      id: 188
                      first_name: Mitch
                      last_name: Volkman
                      full_name: Mitch Volkman
                      email: mitch-volkman@example.org
                      building_id:
                      floor_id:
                      area_id:
                      manager_id:
                      space_id: 152
                      timezone: Europe/Paris
                      locale: en
                      avatar:
                      roles: []
                    building:
                      id: 74
                      name: Autumn Creek
                      address:
                      zipcode: ''
                      city:
                      state_region:
                      country:
                      space_id: 142
                      created_at: '2026-06-22T09:28:22.000Z'
                      updated_at: '2026-06-22T09:28:22.000Z'
                      mapwize_alias:
                      enforce_security: false
                      security_rules: ''
                      current_visitors_qrcode:
                      provider_id:
                      desk_instructions:
                      capacity: 25
                      threshold: 100
                      desks_spreadsheet_url:
                      flex_office: false
                      kiosk_theme_id:
                      kiosk_profile_id:
                      sync_grant_id:
                      meeting_room_booking_rule_set_id:
                    floor:
                      id: 31
                      number: 1
                      building_id: 74
                      created_at: '2026-06-22T09:28:22.455Z'
                      updated_at: '2026-06-22T09:28:22.455Z'
                      name: Industrial Goods & Services
                      desk_instructions:
                      capacity: 15
                      threshold: 100
                      flex_office:
                    area:
                    period: morning
                    bookable_items: []
                    url: http://www.example.com/api/v1/presences/74.json
  "/api/v1/floors/{id}/desks_schedule":
    parameters:
    - name: id
      in: path
      description: Floor id
      required: true
      schema:
        type: integer
    - name: start_date
      in: query
      schema:
        type: string
        format: date-time
      description: Start bound for Presences fetching
      example: '2022-10-21T17:17:17Z'
    - name: end_date
      in: query
      schema:
        type: string
        format: date-time
      description: End bound for Presences fetching
      example: '2022-10-21T17:17:17Z'
    get:
      summary: Get Desk status for a Floor
      tags:
      - Floors
      - Client-credentials compatible
      security:
      - comeenOauth:
        - presences:read
      deprecated: true
      description: |
        Use v2 endpoint instead:
        - /api/v2/spaces/{space_id}/floors/{floor_id}/desks/schedule
      responses:
        '200':
          description: returns all Presences of the floor even for non-admins
          content:
            application/json:
              example:
              - uuid: 8ee03908-b9c9-4cae-9df5-81820abf337d
                name: Retail-22
                sync_id:
                x:
                "y":
                available_to_booking: true
                person_id:
                floor_id: 34
                area_id:
                equipments: []
                schedule:
                - uuid: 979da91c-99a9-41e1-be1b-ed2c679e849a
                  state: coming
                  created_at: '2026-06-22T09:28:24.628Z'
                  updated_at: '2026-06-22T09:28:24.628Z'
                  start_datetime: '2026-06-25T00:00:00.000Z'
                  end_datetime: '2026-06-25T12:00:00.000Z'
                  person:
                    id: 211
                    email: kuphal-theron@example.org
                    full_name: Theron Kuphal
                    first_name: Theron
                    last_name: Kuphal
                    avatar:
                  is_private: false
              - uuid: ac620cbf-2d74-4709-8e09-31265eee0c6a
                name: Retail-23
                sync_id:
                x:
                "y":
                available_to_booking: true
                person_id:
                floor_id: 34
                area_id:
                equipments: []
                schedule:
                - uuid: f098eaa3-e4a0-485c-b9b4-fc30c144f611
                  state: ongoing
                  created_at: '2026-06-22T09:28:24.692Z'
                  updated_at: '2026-06-22T09:28:24.692Z'
                  start_datetime: '2026-06-22T00:00:00.000Z'
                  end_datetime: '2026-06-22T23:59:59.000Z'
                  person:
                    id: 212
                    email: schuppe_maryalice@example.org
                    full_name: Maryalice Schuppe
                    first_name: Maryalice
                    last_name: Schuppe
                    avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBldz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--db3ad3c6ad746c5f4ab09065723220f30ce8c652/blank.png
                  is_private: false
              - uuid: fbc0630f-4433-42c1-b5cd-aec3df04d22a
                name: Retail-24
                sync_id:
                x:
                "y":
                available_to_booking: true
                person_id:
                floor_id: 34
                area_id:
                equipments: []
                schedule:
                - uuid: 508ad1e7-57b8-47e7-920c-c9a86fc30603
                  state: ongoing
                  created_at: '2026-06-22T09:28:24.759Z'
                  updated_at: '2026-06-22T09:28:24.759Z'
                  start_datetime: '2026-06-22T00:00:00.000Z'
                  end_datetime: '2026-06-22T23:59:59.000Z'
                  person:
                    id: 213
                    email: tremblay.don@example.org
                    full_name: Don Tremblay
                    first_name: Don
                    last_name: Tremblay
                    avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBmQT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--497042793d9bac075dd6f865ce59bfe3fffa39b3/blank.png
                  is_private: false
              - uuid: 80dc1264-d237-43a2-a9e7-87ae9dc3da47
                name: Retail-25
                sync_id:
                x:
                "y":
                available_to_booking: true
                person_id:
                floor_id: 34
                area_id:
                equipments: []
                schedule:
                - uuid: b9e2ec15-992c-4917-b5d5-d82170e1d939
                  state: pending
                  created_at: '2026-06-22T09:28:24.818Z'
                  updated_at: '2026-06-22T09:28:24.818Z'
                  start_datetime: '2026-06-24T00:00:00.000Z'
                  end_datetime: '2026-06-24T12:00:00.000Z'
                  person:
                    id: 214
                    email: hector.christiansen@example.org
                    full_name: Hector Christiansen
                    first_name: Hector
                    last_name: Christiansen
                    avatar:
                  is_private: false
              - uuid: 4bd81257-5ce9-4871-bd79-8f99e9760617
                name: Retail-26
                sync_id:
                x:
                "y":
                available_to_booking: true
                person_id:
                floor_id: 34
                area_id:
                equipments: []
                schedule:
                - uuid: bc23a8eb-3206-4833-b2d0-1200f96f5602
                  state: pending
                  created_at: '2026-06-22T09:28:24.880Z'
                  updated_at: '2026-06-22T09:28:24.880Z'
                  start_datetime: '2026-06-24T00:00:00.000Z'
                  end_datetime: '2026-06-24T12:00:00.000Z'
                  person:
                    id: 215
                    email: moses.bechtelar@example.org
                    full_name: Moses Bechtelar
                    first_name: Moses
                    last_name: Bechtelar
                    avatar:
                  is_private: false
              - uuid: f73cf5a4-aa6c-4d89-b876-dd0545a91826
                name: Retail-27
                sync_id:
                x:
                "y":
                available_to_booking: true
                person_id:
                floor_id: 34
                area_id:
                equipments: []
                schedule:
                - uuid: c461f393-4a99-4d8e-9394-3fc9f6977d57
                  state: coming
                  created_at: '2026-06-22T09:28:24.942Z'
                  updated_at: '2026-06-22T09:28:24.942Z'
                  start_datetime: '2026-06-23T00:00:00.000Z'
                  end_datetime: '2026-06-23T23:59:59.000Z'
                  person:
                    id: 216
                    email: watsica-dimple@example.org
                    full_name: Dimple Watsica
                    first_name: Dimple
                    last_name: Watsica
                    avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBmUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--cd4394076e7d0ee628c914a5876705bb87a5dfd8/blank.png
                  is_private: false
              - uuid: 96fab813-5324-4ebf-b05a-727fe2f77307
                name: Retail-28
                sync_id:
                x:
                "y":
                available_to_booking: true
                person_id:
                floor_id: 34
                area_id:
                equipments: []
                schedule:
                - uuid: eeeeba95-09c3-4df3-a684-60926240129a
                  state: ongoing
                  created_at: '2026-06-22T09:28:24.998Z'
                  updated_at: '2026-06-22T09:28:24.998Z'
                  start_datetime: '2026-06-22T00:00:00.000Z'
                  end_datetime: '2026-06-22T23:59:59.000Z'
                  person:
                    id: 217
                    email: ellis-boyer@example.org
                    full_name: Ellis Boyer
                    first_name: Ellis
                    last_name: Boyer
                    avatar:
                  is_private: false
              - uuid: e00c50d0-884b-49f8-8e38-6b043bb93571
                name: Retail-29
                sync_id:
                x:
                "y":
                available_to_booking: true
                person_id:
                floor_id: 34
                area_id:
                equipments: []
                schedule:
                - uuid: cd296bf1-3094-40cf-9d7a-991d759b5c63
                  state: pending
                  created_at: '2026-06-22T09:28:25.071Z'
                  updated_at: '2026-06-22T09:28:25.071Z'
                  start_datetime: '2026-06-24T00:00:00.000Z'
                  end_datetime: '2026-06-24T23:59:59.000Z'
                  person:
                    id: 218
                    email: graig_stiedemann@example.org
                    full_name: Graig Stiedemann
                    first_name: Graig
                    last_name: Stiedemann
                    avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBmZz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--a2d991a40b74b9e2b585f2c458d02263f3f6614a/blank.png
                  is_private: false
              - uuid: 90aa81db-8987-407c-a9f9-174aa466912c
                name: Retail-30
                sync_id:
                x:
                "y":
                available_to_booking: true
                person_id:
                floor_id: 34
                area_id:
                equipments: []
                schedule:
                - uuid: f9de03f2-63be-43c1-b226-7cefe60a42eb
                  state: coming
                  created_at: '2026-06-22T09:28:25.129Z'
                  updated_at: '2026-06-22T09:28:25.129Z'
                  start_datetime: '2026-06-25T00:00:00.000Z'
                  end_datetime: '2026-06-25T12:00:00.000Z'
                  person:
                    id: 219
                    email: stehr-delphia@example.org
                    full_name: Delphia Stehr
                    first_name: Delphia
                    last_name: Stehr
                    avatar:
                  is_private: false
              - uuid: 358f2f25-cdfb-45c0-8112-914d6a8b4f15
                name: Retail-31
                sync_id:
                x:
                "y":
                available_to_booking: true
                person_id:
                floor_id: 34
                area_id:
                equipments: []
                schedule:
                - uuid: 7518e805-8b79-4487-859f-fa8873586362
                  state: ongoing
                  created_at: '2026-06-22T09:28:25.194Z'
                  updated_at: '2026-06-22T09:28:25.194Z'
                  start_datetime: '2026-06-22T00:00:00.000Z'
                  end_datetime: '2026-06-22T23:59:59.000Z'
                  person:
                    id: 220
                    email: tarah-hintz@example.org
                    full_name: Tarah Hintz
                    first_name: Tarah
                    last_name: Hintz
                    avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBmdz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--cb1396226c781e02a537ffd4816bf388db156e65/blank.png
                  is_private: false
  "/api/v1/buildings/{building_id}/floors":
    parameters:
    - name: building_id
      in: path
      description: Parent Building id
      required: true
      schema:
        type: integer
    get:
      summary: List Floors for a Building
      tags:
      - Floors
      - Buildings
      - Client-credentials compatible
      security:
      - comeenOauth:
        - buildings:read
      parameters:
      - name: page
        in: query
        schema:
          type: integer
        description: Page number
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                floors:
                - id: 35
                  number: 1
                  name: Technology
                  desk_instructions:
                  capacity:
                  threshold: 100
                  building_id: 78
                  created_at: '2026-06-22T09:28:25.382Z'
                  updated_at: '2026-06-22T09:28:25.382Z'
                  flex_office:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floorplan_url:
                  areas: []
                  url: http://www.example.com/api/v1/floors/35.json
                - id: 36
                  number: 1
                  name: Personal & Household Goods
                  desk_instructions:
                  capacity:
                  threshold: 100
                  building_id: 78
                  created_at: '2026-06-22T09:28:25.385Z'
                  updated_at: '2026-06-22T09:28:25.385Z'
                  flex_office:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floorplan_url:
                  areas: []
                  url: http://www.example.com/api/v1/floors/36.json
                - id: 37
                  number: 1
                  name: Oil & Gas
                  desk_instructions:
                  capacity: 15
                  threshold: 100
                  building_id: 78
                  created_at: '2026-06-22T09:28:25.388Z'
                  updated_at: '2026-06-22T09:28:25.388Z'
                  flex_office:
                  capacity_limit: 15.0
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0.0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floorplan_url:
                  areas: []
                  url: http://www.example.com/api/v1/floors/37.json
                pagination:
                  current: 1
                  previous:
                  next:
                  per_page: 24
                  pages: 1
                  count: 3
    post:
      summary: Create a Floor in a Building
      tags:
      - Floors
      - Buildings
      security:
      - comeenOauth:
        - buildings:write
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                id: 43
                number: 1
                building_id: 81
                created_at: '2026-06-22T09:28:25.631Z'
                updated_at: '2026-06-22T09:28:25.631Z'
                name: Financial Services
                desk_instructions:
                capacity:
                threshold: 100
                flex_office:
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                floor:
                  type: object
                  properties:
                    number:
                      type: integer
                    name:
                      type: string
                    floorplan:
                      type: string
                      format: binary
                    desk_instructions:
                      type: string
                    capacity:
                      type: integer
                    threshold:
                      type: integer
                    flex_office:
                      type: boolean
  "/api/v1/floors/{id}":
    parameters:
    - name: id
      in: path
      description: Floor id
      required: true
      schema:
        type: integer
    get:
      summary: Show Floor details
      tags:
      - Floors
      security:
      - comeenOauth:
        - buildings:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 44
                number: 1
                name: Chemicals
                desk_instructions:
                capacity: 15
                threshold: 100
                building_id: 82
                created_at: '2026-06-22T09:28:25.653Z'
                updated_at: '2026-06-22T09:28:25.653Z'
                flex_office:
                capacity_limit: 15.0
                capacity_reached_for_today?: false
                capacity_gauge_for_today: 0.0
                count_checked_in_today: 0
                count_expected_presences_today: 0
                capacity_reached_for_today: false
                floorplan_url:
                areas: []
                desks: []
                url: http://www.example.com/api/v1/floors/44.json
    patch:
      summary: Update Floor details
      tags:
      - Floors
      security:
      - comeenOauth:
        - buildings:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                floor:
                  type: object
                  properties:
                    number:
                      type: integer
                    name:
                      type: string
                    floorplan:
                      type: string
                      format: binary
                    desk_instructions:
                      type: string
                    capacity:
                      type: integer
                    threshold:
                      type: integer
                    flex_office:
                      type: boolean
    put:
      summary: Update Floor details
      tags:
      - Floors
      security:
      - comeenOauth:
        - buildings:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                floor:
                  type: object
                  properties:
                    number:
                      type: integer
                    name:
                      type: string
                    floorplan:
                      type: string
                      format: binary
                    desk_instructions:
                      type: string
                    capacity:
                      type: integer
                    threshold:
                      type: integer
                    flex_office:
                      type: boolean
    delete:
      summary: Delete Floor and child ressources
      tags:
      - Floors
      security:
      - comeenOauth:
        - buildings:write
      responses:
        '204':
          description: successful
  "/api/v1/guests":
    get:
      summary: List Guests
      tags:
      - Guests
      security:
      - comeenOauth:
        - guests:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
              - id: 234
                email: turner_hyon@example.org
                first_name: Hyon
                last_name: Turner
                full_name: Hyon Turner
                phone: "(558) 519-9907"
                created_at: '2026-06-22T09:28:26.000Z'
                updated_at: '2026-06-22T09:28:26.000Z'
                url: http://www.example.com/api/v1/guests/234.json
    post:
      summary: Create Guest
      tags:
      - Guests
      - Client-credentials compatible
      security:
      - comeenOauth:
        - guests:write
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                id: 235
                first_name: Charline
                last_name: Thompson
                email: thompson-charline@example.org
                phone:
                created_at: '2026-06-22T09:28:26.000Z'
                updated_at: '2026-06-22T09:28:26.000Z'
                space_id:
                building_id:
                department_id:
                encrypted_password: ''
                reset_password_token:
                reset_password_sent_at:
                confirmation_token:
                confirmed_at:
                confirmation_sent_at:
                unconfirmed_email:
                roles_mask: 0
                discarded_at:
                provider_id:
                locale: en
                recurring_presences:
                floor_id:
                area_id:
                timezone: Europe/Paris
                manager_id:
                provider_id_slack:
                provider_id_microsoft_teams:
                last_sync_at:
                work_activity_visibility: public
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                guest:
                  type: object
                  properties:
                    email:
                      type: string
                      required: true
                      format: email
                    first_name:
                      type: string
                      required: false
                    last_name:
                      type: string
                      required: false
                    phone:
                      type: string
                      required: false
                company_name:
                  type: string
                  required: false
  "/api/v1/guests/{id}":
    parameters:
    - name: id
      in: path
      description: Guest id
      required: true
      schema:
        type: integer
    get:
      summary: Show Guest details
      tags:
      - Guests
      security:
      - comeenOauth:
        - guests:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 238
                email: vernetta_cassin@example.org
                first_name: Vernetta
                last_name: Cassin
                full_name: Vernetta Cassin
                phone: 119.021.5276
                created_at: '2026-06-22T09:28:26.000Z'
                updated_at: '2026-06-22T09:28:26.000Z'
                url: http://www.example.com/api/v1/guests/238.json
    patch:
      summary: Update Guest details
      tags:
      - Guests
      security:
      - comeenOauth:
        - guests:write
      parameters: []
      responses:
        '200':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                guest:
                  type: object
                  properties:
                    email:
                      type: string
                      required: true
                      format: email
                    first_name:
                      type: string
                      required: false
                    last_name:
                      type: string
                      required: false
                    phone:
                      type: string
                      required: false
    put:
      summary: Update Guest details
      tags:
      - Guests
      security:
      - comeenOauth:
        - guests:write
      parameters: []
      responses:
        '200':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                guest:
                  type: object
                  properties:
                    email:
                      type: string
                      required: true
                      format: email
                    first_name:
                      type: string
                      required: false
                    last_name:
                      type: string
                      required: false
                    phone:
                      type: string
                      required: false
    delete:
      summary: Delete Guest
      tags:
      - Guests
      security:
      - comeenOauth:
        - guests:write
      responses:
        '204':
          description: successful
  "/api/v1/spaces/{space_id}/insights/desks/occupancy":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: Occupancy percentage of Desks in Buildings
      tags:
      - Insights
      - Desks
      security:
      - comeenOauth:
        - desks:read
      parameters:
      - name: start_date
        in: query
        schema:
          type: string
          format: date
        description: Start date bound for Desks data fetching.
        default: Beginning of current week
      - name: end_date
        in: query
        schema:
          type: string
          format: date
        description: End date bound for Desks data fetching.
        default: End of current week
      - name: building_ids
        in: query
        schema:
          type: array
          style: deepObject
          explode: true
          items:
            type: integer
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                per_month:
                  count:
                    '2026-05-01':
                      1f1eee88-b8f3-4745-ae40-8a4ce0303b3b: 7.0
                      aad36020-feff-402c-b6d4-c0c8829b81ad: 0.0
                      9db0e6b0-af74-4055-8599-c52714d1c57f: 0.0
                      20856bef-0ff3-450b-95e9-6f448135b71c: 0.0
                      c9a32376-140c-44ab-925f-a25134aea1f8: 0.0
                      375fa1b6-5083-4326-86af-c56f1aedaa0e: 0.0
                      194603aa-726f-4ca1-97b6-bb63ec5b2956: 0.0
                      92567e29-fa1c-490c-90ac-616df17b346d: 0.0
                      938ad3d6-1408-4f59-b00f-3795871f7428: 0.0
                      85974a00-9bcb-43fa-9ba3-fd3d1f9a89af: 7.0
  "/api/v1/spaces/{space_id}/insights/desks/unique_person_count":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: Unique people count per Desk in Building
      tags:
      - Insights
      - Desks
      security:
      - comeenOauth:
        - desks:read
      parameters:
      - name: start_date
        in: query
        schema:
          type: string
          format: date
        description: Start date bound for Desks data fetching.
        default: Beginning of current week
      - name: end_date
        in: query
        schema:
          type: string
          format: date
        description: End date bound for Desks data fetching.
        default: End of current week
      - name: building_ids
        in: query
        schema:
          type: array
          style: deepObject
          explode: true
          items:
            type: integer
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                per_month:
                  unique_person_count:
                    '2026-05-01':
                      ae5a648d-4be9-4dc1-9c82-04287593c871: 1.0
                      cc47ee4f-866e-47f8-8dd9-b942724cd05d: 0.0
                      422a8766-19f4-4368-a60a-720f05450afd: 0.0
                      6474ae85-030e-41a8-9c49-c3c16986a1e5: 0.0
                      19de095b-490e-4fed-8e47-3614f1e25be1: 0.0
                      c1066cb0-42a9-488f-8ee7-483b2d13640e: 0.0
                      '03296372-2ed8-4530-b853-c279a5ebbcef': 0.0
                      062fb11e-bc6e-4f0d-8b12-52acc47cd971: 0.0
                      33178f3a-a598-49d6-82d8-95d4d761a3e9: 0.0
                      15c06f4b-e548-4514-8aa4-df50b05b0a58: 1.0
  "/api/v1/spaces/{space_id}/insights/meeting_room_bookings/per_day":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: Meeting Room Bookings insights per day
      tags:
      - Insights
      - Meeting Room Bookings
      security:
      - comeenOauth:
        - meeting_rooms:read
      parameters:
      - name: start_date
        in: query
        schema:
          type: string
          format: date
        description: Start date bound for Bookings fetching.
        default: Beginning of current week
      - name: end_date
        in: query
        schema:
          type: string
          format: date
        description: End date bound for Bookings fetching.
        default: End of current week
      - name: meeting_room_ids
        in: query
        schema:
          type: array
          style: deepObject
          explode: true
          items:
            type: integer
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                per_day:
                  total:
                    '2026-05-11': 1
                    '2026-05-12': 1
                    '2026-05-13': 1
                    '2026-05-14': 1
                    '2026-05-15': 1
                    '2026-05-16': 1
                    '2026-05-17': 1
                  auto_released:
                    '2026-05-11': 0
                    '2026-05-12': 0
                    '2026-05-13': 0
                    '2026-05-14': 0
                    '2026-05-15': 1
                    '2026-05-16': 1
                    '2026-05-17': 0
                  released:
                    '2026-05-11': 0
                    '2026-05-12': 1
                    '2026-05-13': 0
                    '2026-05-14': 0
                    '2026-05-15': 0
                    '2026-05-16': 0
                    '2026-05-17': 0
  "/api/v1/spaces/{space_id}/insights/meeting_room_bookings/per_week":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: Meeting Room Bookings insights per week
      tags:
      - Insights
      - Meeting Room Bookings
      security:
      - comeenOauth:
        - meeting_rooms:read
      parameters:
      - name: start_date
        in: query
        schema:
          type: string
          format: date
        description: Start date bound for Bookings fetching.
        default: Beginning of current week
      - name: end_date
        in: query
        schema:
          type: string
          format: date
        description: End date bound for Bookings fetching.
        default: End of current week
      - name: meeting_room_ids
        in: query
        schema:
          type: array
          style: deepObject
          explode: true
          items:
            type: integer
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                per_week:
                  total:
                    '202619': 7
                  auto_released:
                    '202619': 2
                  released:
                    '202619': 1
  "/api/v1/spaces/{space_id}/insights/meeting_room_bookings/per_month":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: Meeting Room Bookings insights per month
      tags:
      - Insights
      - Meeting Room Bookings
      security:
      - comeenOauth:
        - meeting_rooms:read
      parameters:
      - name: start_date
        in: query
        schema:
          type: string
          format: date
        description: Start date bound for Bookings fetching.
        default: Beginning of current week
      - name: end_date
        in: query
        schema:
          type: string
          format: date
        description: End date bound for Bookings fetching.
        default: End of current week
      - name: meeting_room_ids
        in: query
        schema:
          type: array
          style: deepObject
          explode: true
          items:
            type: integer
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                per_month:
                  total:
                    '202605': 7
                  auto_released:
                    '202605': 2
                  released:
                    '202605': 1
  "/api/v1/spaces/{space_id}/insights/presences/per_day":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: Get value of Presences per day
      tags:
      - Insights
      - Presences
      security:
      - comeenOauth:
        - presences:read
      parameters:
      - name: start_date
        in: query
        schema:
          type: string
          format: date
        description: Start date bound for Presences value fetching.
        default: Current date - 12 months
      - name: end_date
        in: query
        schema:
          type: string
          format: date
        description: End date bound for Presences value fetching.
        default: Current date
      - name: group_ids
        in: query
        schema:
          type: array
          style: deepObject
          explode: true
          items:
            type: integer
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                per_day:
                  count:
                    '2026-06-15': 3.0
                    '2026-06-16': 3.0
                    '2026-06-17': 3.0
                    '2026-06-18': 3.0
                    '2026-06-19': 3.0
                    '2026-06-20': 3.0
                    '2026-06-21': 3.0
  "/api/v1/spaces/{space_id}/insights/presences/per_week":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: per_week presence
      tags:
      - Insights
      - Presences
      security:
      - comeenOauth:
        - presences:read
      parameters:
      - name: start_date
        in: query
        schema:
          type: string
          format: date
        description: Start date bound for Presences value fetching.
        default: Current date - 12 months
      - name: end_date
        in: query
        schema:
          type: string
          format: date
        description: End date bound for Presences value fetching.
        default: Current date
      - name: group_ids
        in: query
        schema:
          type: array
          style: deepObject
          explode: true
          items:
            type: integer
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                per_week:
                  count:
                    '202624': 21.0
                  averages:
                    including_empty_weeks:
                      '202624': 7.0
                    excluding_empty_weeks:
                      '202624': 7.0
  "/api/v1/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:
                  provider: google
                  domain: own_calendar
                  variant: default
                  name: ''
                  created_at:
                  updated_at:
                  expired_at:
                  granted: false
                  owner:
                    id: 1
                    email: rau_olen@example.org
                    full_name: Olen Rau
                - id:
                  provider: google
                  domain: working_location
                  variant: default
                  name: ''
                  created_at:
                  updated_at:
                  expired_at:
                  granted: false
                  owner:
                    id: 1
                    email: rau_olen@example.org
                    full_name: Olen Rau
                - id: 1
                  provider: google
                  domain: chat
                  variant: default
                  name: ''
                  created_at: '2026-06-22T09:28:43.043Z'
                  updated_at: '2026-06-22T09:28:43.043Z'
                  expired_at:
                  granted: true
                  grantor:
                    id: 1
                    email: rau_olen@example.org
                    full_name: Olen Rau
                  owner:
                    id: 1
                    email: rau_olen@example.org
                    full_name: Olen Rau
                  url: http://www.example.com/api/v1/integration_grants/1.json
                - id:
                  provider: microsoft
                  domain: own_calendar
                  variant: default
                  name: ''
                  created_at:
                  updated_at:
                  expired_at:
                  granted: false
                  owner:
                    id: 1
                    email: rau_olen@example.org
                    full_name: Olen Rau
                - id:
                  provider: microsoft
                  domain: teams
                  variant: default
                  name: ''
                  created_at:
                  updated_at:
                  expired_at:
                  granted: false
                  owner:
                    id: 1
                    email: rau_olen@example.org
                    full_name: Olen Rau
    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: 3
                owner_type: Person
                owner_id: 2
                provider: google
                domain: working_location
                created_at: '2026-06-22T09:28:43.148Z'
                updated_at: '2026-06-22T09:28:43.148Z'
                grantor_id: 2
                expired_at:
                variant: default
                name: ''
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                integration_grant:
                  type: object
                  properties:
                    name:
                      type: string
                    provider:
                      type: string
                    domain:
                      type: string
                    variant:
                      type: string
  "/api/v1/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: 4
                provider: google
                domain: chat
                variant: default
                name: ''
                created_at: '2026-06-22T09:28:43.182Z'
                updated_at: '2026-06-22T09:28:43.182Z'
                expired_at:
                granted: true
                grantor:
                  id: 3
                  email: kenton_block@example.org
                  full_name: Kenton Block
                owner:
                  id: 3
                  email: kenton_block@example.org
                  full_name: Kenton Block
                url: http://www.example.com/api/v1/integration_grants/4.json
    put:
      summary: Udate IntegrationGrant details
      tags:
      - IntegrationGrants
      security:
      - comeenOauth:
        - integration_grants:read
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                integration_grant:
                  type: object
                  properties:
                    name:
                      type: string
    patch:
      summary: Udate IntegrationGrant details
      tags:
      - IntegrationGrants
      security:
      - comeenOauth:
        - integration_grants:read
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                integration_grant:
                  type: object
                  properties:
                    name:
                      type: string
    delete:
      summary: Destroy IntegrationGrant
      tags:
      - IntegrationGrants
      security:
      - comeenOauth:
        - integration_grants:write
      responses:
        '204':
          description: successful
  "/api/v1/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
      - Users
      security:
      - comeenOauth:
        - integration_grants:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                integrations:
                - id:
                  provider: google
                  domain: buildings
                  variant: default
                  name: ''
                  created_at:
                  updated_at:
                  expired_at:
                  granted: false
                  owner:
                    uuid: 4e347a35-ed15-4628-875a-db8e7da63918
                    subdomain: lemke-and-sons-281
                    name: Lemke and Sons
                - id:
                  provider: google
                  domain: meeting_rooms_auto_release
                  variant: default
                  name: ''
                  created_at:
                  updated_at:
                  expired_at:
                  granted: false
                  owner:
                    uuid: 4e347a35-ed15-4628-875a-db8e7da63918
                    subdomain: lemke-and-sons-281
                    name: Lemke and Sons
                - id:
                  provider: google
                  domain: users
                  variant: default
                  name: ''
                  created_at:
                  updated_at:
                  expired_at:
                  granted: false
                  owner:
                    uuid: 4e347a35-ed15-4628-875a-db8e7da63918
                    subdomain: lemke-and-sons-281
                    name: Lemke and Sons
                - id:
                  provider: google
                  domain: users
                  variant: cloud_identity
                  name: ''
                  created_at:
                  updated_at:
                  expired_at:
                  granted: false
                  owner:
                    uuid: 4e347a35-ed15-4628-875a-db8e7da63918
                    subdomain: lemke-and-sons-281
                    name: Lemke and Sons
                - id:
                  provider: google
                  domain: cloud_identity_users
                  variant: default
                  name: ''
                  created_at:
                  updated_at:
                  expired_at:
                  granted: false
                  owner:
                    uuid: 4e347a35-ed15-4628-875a-db8e7da63918
                    subdomain: lemke-and-sons-281
                    name: Lemke and Sons
                - id:
                  provider: google
                  domain: calendar
                  variant: default
                  name: ''
                  created_at:
                  updated_at:
                  expired_at:
                  granted: false
                  owner:
                    uuid: 4e347a35-ed15-4628-875a-db8e7da63918
                    subdomain: lemke-and-sons-281
                    name: Lemke and Sons
                - id:
                  provider: google
                  domain: working_location
                  variant: default
                  name: ''
                  created_at:
                  updated_at:
                  expired_at:
                  granted: false
                  owner:
                    uuid: 4e347a35-ed15-4628-875a-db8e7da63918
                    subdomain: lemke-and-sons-281
                    name: Lemke and Sons
                - id:
                  provider: google
                  domain: room_meetings
                  variant: default
                  name: ''
                  created_at:
                  updated_at:
                  expired_at:
                  granted: false
                  owner:
                    uuid: 4e347a35-ed15-4628-875a-db8e7da63918
                    subdomain: lemke-and-sons-281
                    name: Lemke and Sons
                - id:
                  provider: microsoft
                  domain: buildings
                  variant: default
                  name: ''
                  created_at:
                  updated_at:
                  expired_at:
                  granted: false
                  owner:
                    uuid: 4e347a35-ed15-4628-875a-db8e7da63918
                    subdomain: lemke-and-sons-281
                    name: Lemke and Sons
                - id:
                  provider: microsoft
                  domain: users
                  variant: default
                  name: ''
                  created_at:
                  updated_at:
                  expired_at:
                  granted: false
                  owner:
                    uuid: 4e347a35-ed15-4628-875a-db8e7da63918
                    subdomain: lemke-and-sons-281
                    name: Lemke and Sons
                - id:
                  provider: microsoft
                  domain: calendar
                  variant: default
                  name: ''
                  created_at:
                  updated_at:
                  expired_at:
                  granted: false
                  owner:
                    uuid: 4e347a35-ed15-4628-875a-db8e7da63918
                    subdomain: lemke-and-sons-281
                    name: Lemke and Sons
                - id:
                  provider: microsoft
                  domain: calendar
                  variant: user_shared
                  name: ''
                  created_at:
                  updated_at:
                  expired_at:
                  granted: false
                  owner:
                    uuid: 4e347a35-ed15-4628-875a-db8e7da63918
                    subdomain: lemke-and-sons-281
                    name: Lemke and Sons
                - id:
                  provider: microsoft
                  domain: room_auto_checkin
                  variant: default
                  name: ''
                  created_at:
                  updated_at:
                  expired_at:
                  granted: false
                  owner:
                    uuid: 4e347a35-ed15-4628-875a-db8e7da63918
                    subdomain: lemke-and-sons-281
                    name: Lemke and Sons
                - id: 8
                  provider: slack
                  domain: app
                  variant: default
                  name: ''
                  created_at: '2026-06-22T09:28:43.457Z'
                  updated_at: '2026-06-22T09:28:43.457Z'
                  expired_at:
                  granted: true
                  grantor:
                    id: 8
                    email: christian_quitzon@example.org
                    full_name: Christian Quitzon
                  owner:
                    id: 7
                    email: schimmel_josephina@example.org
                    full_name: Josephina Schimmel
                  url: http://www.example.com/api/v1/integration_grants/8.json
                - id:
                  provider: crestron
                  domain: desk_q
                  variant: default
                  name: ''
                  created_at:
                  updated_at:
                  expired_at:
                  granted: false
                  owner:
                    uuid: 4e347a35-ed15-4628-875a-db8e7da63918
                    subdomain: lemke-and-sons-281
                    name: Lemke and Sons
    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: 10
                owner_type: Space
                owner_id: 8
                provider: crestron
                domain: desk_q
                created_at: '2026-06-22T09:28:43.561Z'
                updated_at: '2026-06-22T09:28:43.561Z'
                grantor_id: 9
                expired_at:
                variant: default
                name: ''
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                integration_grant:
                  type: object
                  properties:
                    name:
                      type: string
                    provider:
                      type: string
                    domain:
                      type: string
                    variant:
                      type: string
  "/api/v1/spaces/{space_id}/kiosk_profiles":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: List Kiosk Profiles for a Space
      tags:
      - Kiosk Profiles
      - Spaces
      security:
      - comeenOauth:
        - kiosk_profiles:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
              - id: 1
                name: omnis
                created_at: '2026-06-22T09:28:43.600Z'
                updated_at: '2026-06-22T09:28:43.600Z'
                en:
                  id: 1
                  welcome_screen_text: evolve turn-key platforms
                  onboarding_end_text: recontextualize value-added infomediaries
                  offboarding_end_text: enable back-end relationships
                fr:
                  id: 2
                  welcome_screen_text: streamline vertical action-items
                  onboarding_end_text: envisioneer extensible action-items
                  offboarding_end_text: whiteboard next-generation niches
                url: http://www.example.com/api/v1/kiosk_profiles/1.json
    post:
      summary: Create a Kiosk Profile for a Space
      tags:
      - Kiosk Profiles
      - Spaces
      security:
      - comeenOauth:
        - kiosk_profiles:write
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                id: 2
                space_id: 10
                name: exercitationem
                created_at: '2026-06-22T09:28:43.675Z'
                updated_at: '2026-06-22T09:28:43.675Z'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                kiosk_profile:
                  type: object
                  properties:
                    name:
                      type: string
                    kiosk_profile_i18ns_attributes:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            type: integer
                          locale:
                            type: string
                          welcome_screen_text:
                            type: string
                          onboarding_end_text:
                            type: string
                          offboarding_end_text:
                            type: string
                        required:
                        - locale
                        - welcome_screen_text
                        - onboarding_end_text
                        - offboarding_end_text
  "/api/v1/kiosk_profiles/{id}":
    parameters:
    - name: id
      in: path
      description: Kiosk profile id
      required: true
      schema:
        type: integer
    get:
      summary: Show Kiosk Profile details
      tags:
      - Kiosk Profiles
      security:
      - comeenOauth:
        - kiosk_profiles:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 3
                name: magnam
                created_at: '2026-06-22T09:28:43.693Z'
                updated_at: '2026-06-22T09:28:43.693Z'
                en:
                  id: 5
                  welcome_screen_text: recontextualize back-end paradigms
                  onboarding_end_text: expedite dot-com convergence
                  offboarding_end_text: visualize B2B e-tailers
                fr:
                  id: 6
                  welcome_screen_text: deliver one-to-one niches
                  onboarding_end_text: utilize enterprise mindshare
                  offboarding_end_text: scale clicks-and-mortar paradigms
                url: http://www.example.com/api/v1/kiosk_profiles/3.json
    patch:
      summary: Update a Kiosk Profile
      tags:
      - Kiosk Profiles
      security:
      - comeenOauth:
        - kiosk_profiles:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                kiosk_profile:
                  type: object
                  properties:
                    name:
                      type: string
                    kiosk_profile_i18ns_attributes:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            type: integer
                          locale:
                            type: string
                          welcome_screen_text:
                            type: string
                          onboarding_end_text:
                            type: string
                          offboarding_end_text:
                            type: string
                        required:
                        - locale
                        - welcome_screen_text
                        - onboarding_end_text
                        - offboarding_end_text
    put:
      summary: Update a Kiosk Profile
      tags:
      - Kiosk Profiles
      security:
      - comeenOauth:
        - kiosk_profiles:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                kiosk_profile:
                  type: object
                  properties:
                    name:
                      type: string
                    kiosk_profile_i18ns_attributes:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            type: integer
                          locale:
                            type: string
                          welcome_screen_text:
                            type: string
                          onboarding_end_text:
                            type: string
                          offboarding_end_text:
                            type: string
                        required:
                        - locale
                        - welcome_screen_text
                        - onboarding_end_text
                        - offboarding_end_text
    delete:
      summary: delete kiosk_profile
      tags:
      - Kiosk Profiles
      security:
      - comeenOauth:
        - kiosk_profiles:write
      responses:
        '204':
          description: successful
  "/api/v1/spaces/{space_id}/kiosk_themes":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: List KioskThemes for a Space
      tags:
      - KioskThemes
      - Spaces
      security:
      - comeenOauth:
        - kiosk_themes:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
              - id: 1
                name: aut
                area_background_color: "#dcdc8e"
                text_background_color: "#bf7373"
                area_primary_color: "#bc4949"
                text_primary_color: "#643535"
                area_secondary_color: "#cd60cd"
                text_secondary_color: "#474785"
                created_at: '2026-06-22T09:28:43.915Z'
                updated_at: '2026-06-22T09:28:43.915Z'
                url: http://www.example.com/api/v1/kiosk_themes/1.json
    post:
      summary: Create KioskTheme for a Space
      tags:
      - KioskThemes
      - Spaces
      security:
      - comeenOauth:
        - kiosk_themes:write
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                id: 2
                space_id: 16
                name: sunt
                area_background_color: "#786478"
                text_background_color: "#3fd5d5"
                area_primary_color: "#d152d1"
                text_primary_color: "#a7a7ae"
                area_secondary_color: "#020808"
                text_secondary_color: "#b488b4"
                created_at: '2026-06-22T09:28:43.992Z'
                updated_at: '2026-06-22T09:28:43.992Z'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                kiosk_theme:
                  type: object
                  properties:
                    name:
                      type: string
                    area_background_color:
                      type: string
                    text_background_color:
                      type: string
                    area_primary_color:
                      type: string
                    text_primary_color:
                      type: string
                    area_secondary_color:
                      type: string
                    text_secondary_color:
                      type: string
  "/api/v1/kiosk_themes/{id}":
    parameters:
    - name: id
      in: path
      description: Kiosk theme id
      required: true
      schema:
        type: integer
    get:
      summary: Show KioskTheme details
      tags:
      - KioskThemes
      security:
      - comeenOauth:
        - kiosk_themes:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 3
                name: aspernatur
                area_background_color: "#bcb8bc"
                text_background_color: "#e4e4dd"
                area_primary_color: "#247024"
                text_primary_color: "#0b040b"
                area_secondary_color: "#fbd0d0"
                text_secondary_color: "#f381f3"
                created_at: '2026-06-22T09:28:44.020Z'
                updated_at: '2026-06-22T09:28:44.020Z'
                url: http://www.example.com/api/v1/kiosk_themes/3.json
    patch:
      summary: Update KioskTheme
      tags:
      - KioskThemes
      security:
      - comeenOauth:
        - kiosk_themes:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                kiosk_theme:
                  type: object
                  properties:
                    name:
                      type: string
                    area_background_color:
                      type: string
                    text_background_color:
                      type: string
                    area_primary_color:
                      type: string
                    text_primary_color:
                      type: string
                    area_secondary_color:
                      type: string
                    text_secondary_color:
                      type: string
    put:
      summary: Update KioskTheme
      tags:
      - KioskThemes
      security:
      - comeenOauth:
        - kiosk_themes:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                kiosk_theme:
                  type: object
                  properties:
                    name:
                      type: string
                    area_background_color:
                      type: string
                    text_background_color:
                      type: string
                    area_primary_color:
                      type: string
                    text_primary_color:
                      type: string
                    area_secondary_color:
                      type: string
                    text_secondary_color:
                      type: string
    delete:
      summary: Destroy KioskTheme
      tags:
      - KioskThemes
      security:
      - comeenOauth:
        - kiosk_themes:write
      responses:
        '204':
          description: successful
  "/api/v1/kiosks/{id}/regenerate_paircode":
    parameters:
    - name: id
      in: path
      schema:
        type: string
        format: uuid
      description: Kiosk uuid
      required: true
    post:
      summary: Regenerate Kiosk paircode
      tags:
      - Kiosks
      security:
      - comeenOauth:
        - kiosks:write
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                onboarding_modes_mask: 1
                id: 1
                name: Insurance
                paircode: 8JfSt7
                building_id: 1
                created_at: '2026-06-22T09:28:44.000Z'
                updated_at: '2026-06-22T09:28:44.000Z'
                last_seen:
                printer_url:
                uuid: 3aa76169-4ce7-4b82-9431-14e856ae64a4
                location:
                debug: false
                uses_mapwize: false
                print_badge: true
                send_notifications: true
                group_onboarding: false
                printer_type: zimbra
                instructions: Assumenda odit maiores qui.
                onboarding_flow_id:
                custom_theme: default
                help_email: help@example.com
                key: veRS1YRRQCx83e1FGZuOmSi3F1sswOCoXsRkHBBssDnyx
                printer_transport:
                access_control_provider:
                kiosk_theme_id: 7
                kiosk_profile_id: 7
                ard_groups:
                display_qrcode: true
  "/api/v1/kiosks/{id}/send_help_notification":
    parameters:
    - name: id
      in: path
      schema:
        type: string
        format: uuid
      description: Kiosk uuid
      required: true
    post:
      summary: Send help notification for a Kiosk
      tags:
      - Kiosks
      security:
      - comeenOauth:
        - kiosks:read
      responses:
        '204':
          description: successful
  "/api/v1/buildings/{building_id}/kiosks":
    parameters:
    - name: building_id
      in: path
      description: Building id
      required: true
      schema:
        type: integer
    get:
      summary: List Kiosks in a Building
      tags:
      - Kiosks
      - Buildings
      - Client-credentials compatible
      security:
      - comeenOauth:
        - kiosks:write
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
              - id: 3
                uuid: 29c78de5-5d00-4a3d-82ea-c56e78e1fef1
                name: Financial Services
                building:
                  id: 3
                  name: Autumn Creek
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 23
                  created_at: '2026-06-22T09:28:44.000Z'
                  updated_at: '2026-06-22T09:28:44.000Z'
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  current_visitors_qrcode:
                  provider_id:
                  desk_instructions:
                  capacity:
                  threshold: 100
                  desks_spreadsheet_url:
                  flex_office: false
                  kiosk_theme_id:
                  kiosk_profile_id:
                  sync_grant_id:
                  meeting_room_booking_rule_set_id:
                printer_url:
                location:
                debug: false
                custom_theme: default
                uses_mapwize: false
                print_badge: true
                send_notifications: true
                onboarding_modes:
                - spontaneous
                group_onboarding: false
                printer_type: zimbra
                printer_transport:
                key: bxoEfI7DJnS1awkAK2B4QT4lKjAjf3MRJpa5ac8KWrtEE
                help_email: help@example.com
                instructions: Est quidem dolorem temporibus.
                kiosk_profile_id: 9
                kiosk_theme_id: 9
                created_at: '2026-06-22T09:28:44.000Z'
                updated_at: '2026-06-22T09:28:44.000Z'
                display_qrcode: true
                theme:
                  id: 9
                  name: velit
                  area_background_color: "#7f107f"
                  text_background_color: "#34341d"
                  area_primary_color: "#d24b4b"
                  text_primary_color: "#f43434"
                  area_secondary_color: "#43b643"
                  text_secondary_color: "#d1fad1"
                  created_at: '2026-06-22T09:28:44.325Z'
                  updated_at: '2026-06-22T09:28:44.325Z'
                  url: http://www.example.com/api/v1/kiosk_themes/9.json
                profile:
                  id: 9
                  name: enim
                  created_at: '2026-06-22T09:28:44.323Z'
                  updated_at: '2026-06-22T09:28:44.323Z'
                  url: http://www.example.com/api/v1/kiosk_profiles/9.json
                paircode: qHShf4
                logo_url:
                url: http://www.example.com/api/v1/kiosks/29c78de5-5d00-4a3d-82ea-c56e78e1fef1.json
    post:
      summary: Create a Kiosk in a Building
      tags:
      - Kiosks
      - Buildings
      security:
      - comeenOauth:
        - kiosks:write
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                id: 6
                name: Travel & Leisure
                paircode: mrjYfW
                building_id: 5
                created_at: '2026-06-22T09:28:44.000Z'
                updated_at: '2026-06-22T09:28:44.000Z'
                last_seen:
                printer_url:
                uuid: 5fb5955a-9bd0-42e3-9ce1-94b0da1d32e5
                location:
                debug: false
                uses_mapwize: false
                print_badge: true
                send_notifications: true
                onboarding_modes_mask: 1
                group_onboarding: false
                printer_type: zimbra
                instructions: Numquam assumenda rerum aut.
                onboarding_flow_id:
                custom_theme: default
                help_email:
                key: I25e1TA1zuTJm6AAKSWuMXaT0rwYk9LFNej1aqfEMgnyP
                printer_transport:
                access_control_provider:
                kiosk_theme_id:
                kiosk_profile_id:
                ard_groups:
                display_qrcode: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                kiosk:
                  type: object
                  properties:
                    name:
                      type: string
                    logo:
                      type: string
                      format: binary
                    print_badge:
                      type: boolean
                    send_notifications:
                      type: boolean
                    group_onboarding:
                      type: boolean
                    printer_url:
                      type: string
                    printer_type:
                      type: string
                    printer_transport:
                      type: string
                    help_email:
                      type: string
                    kiosk_profile_id:
                      type: integer
                    kiosk_theme_id:
                      type: integer
                    display_qrcode:
                      type: boolean
  "/api/v1/kiosks/{id}":
    parameters:
    - name: id
      in: path
      schema:
        type: string
        format: uuid
      description: Kiosk uuid
      required: true
    get:
      summary: Show Kiosk details
      tags:
      - Kiosks
      security:
      - comeenOauth:
        - kiosks:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 7
                uuid: e0f438be-6815-4d26-bce3-ca831dbf6db7
                name: Food & Beverage
                building:
                  id: 6
                  name: Willow Square
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 26
                  created_at: '2026-06-22T09:28:44.000Z'
                  updated_at: '2026-06-22T09:28:44.000Z'
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  current_visitors_qrcode:
                  provider_id:
                  desk_instructions:
                  capacity:
                  threshold: 100
                  desks_spreadsheet_url:
                  flex_office: false
                  kiosk_theme_id:
                  kiosk_profile_id:
                  sync_grant_id:
                  meeting_room_booking_rule_set_id:
                printer_url:
                location:
                debug: false
                custom_theme: default
                uses_mapwize: false
                print_badge: true
                send_notifications: true
                onboarding_modes:
                - spontaneous
                group_onboarding: false
                printer_type: zimbra
                printer_transport:
                key: 7jgxWI6PLYanenoACgP8qtvnYbhCu9Wop9GU6glpZ0U8j
                help_email: help@example.com
                instructions: In et id dolores.
                kiosk_profile_id: 12
                kiosk_theme_id: 12
                created_at: '2026-06-22T09:28:44.000Z'
                updated_at: '2026-06-22T09:28:44.000Z'
                display_qrcode: true
                theme:
                  id: 12
                  name: cum
                  area_background_color: "#77fd77"
                  text_background_color: "#b91d1d"
                  area_primary_color: "#906464"
                  text_primary_color: "#4b3f4b"
                  area_secondary_color: "#673737"
                  text_secondary_color: "#683c3c"
                  created_at: '2026-06-22T09:28:44.506Z'
                  updated_at: '2026-06-22T09:28:44.506Z'
                  url: http://www.example.com/api/v1/kiosk_themes/12.json
                profile:
                  id: 12
                  name: consectetur
                  created_at: '2026-06-22T09:28:44.504Z'
                  updated_at: '2026-06-22T09:28:44.504Z'
                  url: http://www.example.com/api/v1/kiosk_profiles/12.json
                paircode: 5TrMME
                logo_url:
                url: http://www.example.com/api/v1/kiosks/e0f438be-6815-4d26-bce3-ca831dbf6db7.json
    put:
      summary: Update Kiosk details
      tags:
      - Kiosks
      security:
      - comeenOauth:
        - kiosks:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                kiosk:
                  type: object
                  properties:
                    name:
                      type: string
                    logo:
                      type: string
                      format: binary
                    print_badge:
                      type: boolean
                    send_notifications:
                      type: boolean
                    group_onboarding:
                      type: boolean
                    printer_url:
                      type: string
                    printer_type:
                      type: string
                    printer_transport:
                      type: string
                    help_email:
                      type: string
                    kiosk_profile_id:
                      type: integer
                    kiosk_theme_id:
                      type: integer
                    display_qrcode:
                      type: boolean
    patch:
      summary: Update Kiosk details
      tags:
      - Kiosks
      security:
      - comeenOauth:
        - kiosks:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                kiosk:
                  type: object
                  properties:
                    name:
                      type: string
                    logo:
                      type: string
                      format: binary
                    print_badge:
                      type: boolean
                    send_notifications:
                      type: boolean
                    group_onboarding:
                      type: boolean
                    printer_url:
                      type: string
                    printer_type:
                      type: string
                    printer_transport:
                      type: string
                    help_email:
                      type: string
                    kiosk_profile_id:
                      type: integer
                    kiosk_theme_id:
                      type: integer
                    display_qrcode:
                      type: boolean
    delete:
      summary: Delete a Kiosk
      tags:
      - Kiosks
      security:
      - comeenOauth:
        - kiosks:write
      responses:
        '204':
          description: successful
  "/api/v1/meeting_room_bookings/{id}":
    parameters:
    - name: id
      in: path
      description: Meeting room booking id
      required: true
      schema:
        type: integer
    get:
      summary: Show meeting room booking details
      tags:
      - Meeting Room Bookings
      security:
      - comeenOauth:
        - meeting_room_bookings:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 1
                meeting_room_id: 1
                appointment_id: 1
                state: booked
                created_at: '2026-06-22T09:28:44.798Z'
                updated_at: '2026-06-22T09:28:44.798Z'
                person_id:
                before_reminder_sent_at:
                start_reminder_sent_at:
                autoreleased_at:
                before_reminder_at:
                before_reminder_checkin: true
                start_reminder_at:
                start_reminder_checkin: true
                auto_release_at:
                morning_recap_notification_at:
                morning_recap_notification_sent_at:
                morning_recap_confirmation: false
                booked_at:
                checked_in_at:
                checked_out_at:
                canceled_at:
                released_at:
                auto_released_at:
                proactively_released_at:
    put:
      summary: Update meeting room booking
      tags:
      - Meeting Room Bookings
      security:
      - comeenOauth:
        - meeting_room_bookings:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                person_id:
                  type: integer
    patch:
      summary: Update meeting room booking
      tags:
      - Meeting Room Bookings
      security:
      - comeenOauth:
        - meeting_room_bookings:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                person_id:
                  type: integer
  "/api/v1/meeting_room_bookings/{id}/checkin":
    parameters:
    - name: id
      in: path
      description: Room booking id
      required: true
      schema:
        type: integer
    post:
      summary: Check-in Meeting room booking
      tags:
      - Meeting Room Bookings
      - Client-credentials compatible
      security:
      - comeenOauth:
        - meeting_room_bookings:write
      responses:
        '204':
          description: successful
  "/api/v1/meeting_room_bookings/{id}/release":
    parameters:
    - name: id
      in: path
      description: Room booking id
      required: true
      schema:
        type: integer
    post:
      summary: Release Meeting room booking
      tags:
      - Meeting Room Bookings
      - Client-credentials compatible
      security:
      - comeenOauth:
        - meeting_room_bookings:write
      responses:
        '204':
          description: successful
  "/api/v1/meeting_room_bookings/{id}/manual_before_notification":
    parameters:
    - name: id
      in: path
      description: Room booking id
      required: true
      schema:
        type: integer
    post:
      summary: Send before reminder manually for Meeting room booking
      tags:
      - Meeting Room Bookings
      security:
      - comeenOauth:
        - meeting_room_bookings:read
      responses:
        '204':
          description: successful
  "/api/v1/meeting_room_bookings/{id}/manual_start_notification":
    parameters:
    - name: id
      in: path
      description: Room booking id
      required: true
      schema:
        type: integer
    post:
      summary: Send start reminder manually for Meeting room booking
      tags:
      - Meeting Room Bookings
      security:
      - comeenOauth:
        - meeting_room_bookings:read
      responses:
        '204':
          description: successful
  "/api/v1/meeting_room_dashboards/{meeting_room_dashboard_id}/ip_rules":
    parameters:
    - name: meeting_room_dashboard_id
      in: path
      schema:
        type: string
      description: Meeting Room Dashboard key
      required: true
    get:
      summary: List Meeting Room Dashboard Ip Rules for a Meeting Room Dashboard
      tags:
      - Meeting Room Dashboard Ip Rules
      - Meeting Room Dashboards
      security:
      - comeenOauth:
        - room_dashboard_ip_rules:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example: []
    post:
      summary: Create Meeting Room Dashboard Ip Rule for a Meeting Room Dashboard
      tags:
      - Meeting Room Dashboard Ip Rules
      - Meeting Room Dashboards
      security:
      - comeenOauth:
        - room_dashboard_ip_rules:write
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                id: 1
                ip_address: 206.250.67.36
                kind: allow
                meeting_room_dashboard_id: 2
                created_at: '2026-06-22T09:28:45.887Z'
                updated_at: '2026-06-22T09:28:45.887Z'
        '422':
          description: unprocessable entity bad kind
          content:
            application/json:
              example:
                errors:
                  ip_address:
                  - can't be blank
                  kind:
                  - is not included in the list
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                meeting_room_dashboard_ip_rule:
                  type: object
                  properties:
                    ip_address:
                      type: string
                    kind:
                      type: string
                      enum:
                      - allow
                      - deny
              required:
              - meeting_room_dashboard_ip_rule
  "/api/v1/meeting_room_dashboards/ip_rules/{id}":
    parameters:
    - name: id
      in: path
      schema:
        type: integer
      description: Meeting Room Dashboard Ip Rule id
      required: true
    get:
      summary: Show Meeting Room Dashboard Ip Rule details
      tags:
      - Meeting Room Dashboard Ip Rules
      - Meeting Room Dashboards
      security:
      - comeenOauth:
        - room_dashboard_ip_rules:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 2
                ip_address: 241.33.65.77
                kind: allow
                created_at: '2026-06-22T09:28:45.974Z'
                updated_at: '2026-06-22T09:28:45.974Z'
                meeting_room_dashboard_key: JkJtKRj7pJMm45W1m2BLngXpEdLnz4fgXygqiZYsZxkebp9qMZ
    patch:
      summary: Update Meeting Room Dashboard Ip Rule
      tags:
      - Meeting Room Dashboard Ip Rules
      - Meeting Room Dashboards
      security:
      - comeenOauth:
        - room_dashboard_ip_rules:write
      parameters: []
      responses:
        '204':
          description: successful
        '422':
          description: unprocessable entity bad kind
          content:
            application/json:
              example:
                errors:
                  ip_address:
                  - can't be blank
                  kind:
                  - is not included in the list
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                meeting_room_dashboard_ip_rule:
                  type: object
                  properties:
                    ip_address:
                      type: string
                    kind:
                      type: string
                      enum:
                      - allow
                      - deny
    put:
      summary: Update MeetingRoom Dashboard Ip Rule
      tags:
      - Meeting Room Dashboard Ip Rules
      - Meeting Room Dashboards
      security:
      - comeenOauth:
        - room_dashboard_ip_rules:write
      parameters: []
      responses:
        '204':
          description: successful
        '422':
          description: unprocessable entity bad kind
          content:
            application/json:
              example:
                errors:
                  ip_address:
                  - can't be blank
                  kind:
                  - is not included in the list
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                meeting_room_dashboard_ip_rule:
                  type: object
                  properties:
                    ip_address:
                      type: string
                    kind:
                      type: string
                      enum:
                      - allow
                      - deny
    delete:
      summary: Delete MeetingRoomDashboardIpRule
      tags:
      - Meeting Room Dashboard Ip Rules
      - Meeting Room Dashboards
      security:
      - comeenOauth:
        - room_dashboard_ip_rules:write
      responses:
        '204':
          description: successful
  "/api/v1/meeting_room_dashboards/{key}/data":
    parameters:
    - name: key
      in: path
      schema:
        type: string
        length: 50
      description: Room Dashboard key
      required: true
    get:
      summary: Get Meeting Room Dashboard data (events for the day)
      tags:
      - Meeting Room Dashboards
      - Appointments
      security:
      - comeenOauth:
        - room_dashboards:read
      parameters:
      - name: timezone
        in: query
        description: Time zone for day check
        schema:
          type: string
      - name: room_id
        in: query
        description: Room id filter for partial data recovery
        schema:
          type: integer
      responses:
        '200':
          description: all data when querying timeline
          content:
            application/json:
              example:
                space_uuid: 95a99f6b-d484-434f-8101-11acb5034cc9
                auto_scrolling: false
                building_id: 57
                filter: ALL
                floor_ids: []
                floorplan_desks_filter: ALL
                floorplan_floor:
                floorplan_interactive: false
                floorplan_reset_timer: 30
                floorplan_room_capacity: true
                floorplan_rooms_filter: ALL
                floorplan_view: ROOM-AND-DESK
                key: pfCkwfG2HjUUBRiFEcCg2723rJkz87AURa2B9YhUDfi7KZzKfB
                kind: timeline
                location_scope: ALL-MEETING-ROOMS
                logo:
                meeting_room_ids:
                - 20
                - 21
                name: Real Estate
                timeline_dark_mode: true
                timeline_event_titles: false
                timeline_paginate_per_floor: false
                timeline_room_capacity: false
                timeline_room_floor: false
                meeting_rooms:
                - id: 20
                  name: Eagle Crossing
                  capacity: 3
                  picture_url:
                  floor:
                    id: 25
                    name: Retail
                    number: 1
                  floor_name: Retail
                  floor_number: 1
                  events:
                  - id: 47
                    topic: enable innovative systems
                    meeting_location: Summer Creek
                    start_datetime: '2026-06-22T00:01:00.000Z'
                    end_datetime: '2026-06-23T00:00:59.000Z'
                    company_id:
                    created_at: '2026-06-22T09:28:48.000Z'
                    updated_at: '2026-06-22T09:28:48.000Z'
                    uuid: '08473efd-d262-4fb8-8107-58d91c0b2fa7'
                    space_id: 94
                    provider_id:
                    organizer_id: 99
                    kiosk_id:
                    expecting_visitors: false
                    checked_in: false
                    released_meeting_room_id:
                    provider_recurrent_id:
                    calendar_id:
                    google_meet_space:
                    google_workspace_event_watcher:
                    recurring_appointment_id:
                    creator_id:
                    original_start_datetime:
                    original_end_datetime:
                    microsoft_teams_join_url:
                    microsoft_graph_event_watcher:
                    cross_calendar_id:
                  - id: 48
                    topic: optimize killer web-readiness
                    meeting_location: University Court
                    start_datetime: '2026-06-22T00:01:00.000Z'
                    end_datetime: '2026-06-23T00:00:59.000Z'
                    company_id:
                    created_at: '2026-06-22T09:28:48.000Z'
                    updated_at: '2026-06-22T09:28:48.000Z'
                    uuid: '091c93ad-5362-423c-bffa-d451ff33ed8f'
                    space_id: 94
                    provider_id:
                    organizer_id: 100
                    kiosk_id:
                    expecting_visitors: false
                    checked_in: false
                    released_meeting_room_id:
                    provider_recurrent_id:
                    calendar_id:
                    google_meet_space:
                    google_workspace_event_watcher:
                    recurring_appointment_id:
                    creator_id:
                    original_start_datetime:
                    original_end_datetime:
                    microsoft_teams_join_url:
                    microsoft_graph_event_watcher:
                    cross_calendar_id:
                  - id: 49
                    topic: optimize 24/7 solutions
                    meeting_location: Eagle Acres
                    start_datetime: '2026-06-22T00:01:00.000Z'
                    end_datetime: '2026-06-23T00:00:59.000Z'
                    company_id:
                    created_at: '2026-06-22T09:28:48.000Z'
                    updated_at: '2026-06-22T09:28:48.000Z'
                    uuid: 315454f3-fcf0-4abf-8d8a-a55f8035d053
                    space_id: 94
                    provider_id:
                    organizer_id: 101
                    kiosk_id:
                    expecting_visitors: false
                    checked_in: false
                    released_meeting_room_id:
                    provider_recurrent_id:
                    calendar_id:
                    google_meet_space:
                    google_workspace_event_watcher:
                    recurring_appointment_id:
                    creator_id:
                    original_start_datetime:
                    original_end_datetime:
                    microsoft_teams_join_url:
                    microsoft_graph_event_watcher:
                    cross_calendar_id:
                  - id: 50
                    topic: streamline one-to-one relationships
                    meeting_location: Summer Creek
                    start_datetime: '2026-06-22T00:01:00.000Z'
                    end_datetime: '2026-06-23T00:00:59.000Z'
                    company_id:
                    created_at: '2026-06-22T09:28:48.000Z'
                    updated_at: '2026-06-22T09:28:48.000Z'
                    uuid: 34744760-b368-45b2-a9f9-1ba58543a9db
                    space_id: 94
                    provider_id:
                    organizer_id: 102
                    kiosk_id:
                    expecting_visitors: false
                    checked_in: false
                    released_meeting_room_id:
                    provider_recurrent_id:
                    calendar_id:
                    google_meet_space:
                    google_workspace_event_watcher:
                    recurring_appointment_id:
                    creator_id:
                    original_start_datetime:
                    original_end_datetime:
                    microsoft_teams_join_url:
                    microsoft_graph_event_watcher:
                    cross_calendar_id:
                  - id: 51
                    topic: target B2B architectures
                    meeting_location: University Heights
                    start_datetime: '2026-06-22T00:01:00.000Z'
                    end_datetime: '2026-06-23T00:00:59.000Z'
                    company_id:
                    created_at: '2026-06-22T09:28:48.000Z'
                    updated_at: '2026-06-22T09:28:48.000Z'
                    uuid: a7690721-c29d-48f1-9a1e-8cfdc8e350bc
                    space_id: 94
                    provider_id:
                    organizer_id: 103
                    kiosk_id:
                    expecting_visitors: false
                    checked_in: false
                    released_meeting_room_id:
                    provider_recurrent_id:
                    calendar_id:
                    google_meet_space:
                    google_workspace_event_watcher:
                    recurring_appointment_id:
                    creator_id:
                    original_start_datetime:
                    original_end_datetime:
                    microsoft_teams_join_url:
                    microsoft_graph_event_watcher:
                    cross_calendar_id:
                - id: 21
                  name: Pine Oaks
                  capacity: 5
                  picture_url:
                  floor:
                    id: 26
                    name: Basic Resources
                    number: 1
                  floor_name: Basic Resources
                  floor_number: 1
                  events:
                  - id: 47
                    topic: enable innovative systems
                    meeting_location: Summer Creek
                    start_datetime: '2026-06-22T00:01:00.000Z'
                    end_datetime: '2026-06-23T00:00:59.000Z'
                    company_id:
                    created_at: '2026-06-22T09:28:48.000Z'
                    updated_at: '2026-06-22T09:28:48.000Z'
                    uuid: '08473efd-d262-4fb8-8107-58d91c0b2fa7'
                    space_id: 94
                    provider_id:
                    organizer_id: 99
                    kiosk_id:
                    expecting_visitors: false
                    checked_in: false
                    released_meeting_room_id:
                    provider_recurrent_id:
                    calendar_id:
                    google_meet_space:
                    google_workspace_event_watcher:
                    recurring_appointment_id:
                    creator_id:
                    original_start_datetime:
                    original_end_datetime:
                    microsoft_teams_join_url:
                    microsoft_graph_event_watcher:
                    cross_calendar_id:
                  - id: 48
                    topic: optimize killer web-readiness
                    meeting_location: University Court
                    start_datetime: '2026-06-22T00:01:00.000Z'
                    end_datetime: '2026-06-23T00:00:59.000Z'
                    company_id:
                    created_at: '2026-06-22T09:28:48.000Z'
                    updated_at: '2026-06-22T09:28:48.000Z'
                    uuid: '091c93ad-5362-423c-bffa-d451ff33ed8f'
                    space_id: 94
                    provider_id:
                    organizer_id: 100
                    kiosk_id:
                    expecting_visitors: false
                    checked_in: false
                    released_meeting_room_id:
                    provider_recurrent_id:
                    calendar_id:
                    google_meet_space:
                    google_workspace_event_watcher:
                    recurring_appointment_id:
                    creator_id:
                    original_start_datetime:
                    original_end_datetime:
                    microsoft_teams_join_url:
                    microsoft_graph_event_watcher:
                    cross_calendar_id:
                  - id: 49
                    topic: optimize 24/7 solutions
                    meeting_location: Eagle Acres
                    start_datetime: '2026-06-22T00:01:00.000Z'
                    end_datetime: '2026-06-23T00:00:59.000Z'
                    company_id:
                    created_at: '2026-06-22T09:28:48.000Z'
                    updated_at: '2026-06-22T09:28:48.000Z'
                    uuid: 315454f3-fcf0-4abf-8d8a-a55f8035d053
                    space_id: 94
                    provider_id:
                    organizer_id: 101
                    kiosk_id:
                    expecting_visitors: false
                    checked_in: false
                    released_meeting_room_id:
                    provider_recurrent_id:
                    calendar_id:
                    google_meet_space:
                    google_workspace_event_watcher:
                    recurring_appointment_id:
                    creator_id:
                    original_start_datetime:
                    original_end_datetime:
                    microsoft_teams_join_url:
                    microsoft_graph_event_watcher:
                    cross_calendar_id:
                  - id: 50
                    topic: streamline one-to-one relationships
                    meeting_location: Summer Creek
                    start_datetime: '2026-06-22T00:01:00.000Z'
                    end_datetime: '2026-06-23T00:00:59.000Z'
                    company_id:
                    created_at: '2026-06-22T09:28:48.000Z'
                    updated_at: '2026-06-22T09:28:48.000Z'
                    uuid: 34744760-b368-45b2-a9f9-1ba58543a9db
                    space_id: 94
                    provider_id:
                    organizer_id: 102
                    kiosk_id:
                    expecting_visitors: false
                    checked_in: false
                    released_meeting_room_id:
                    provider_recurrent_id:
                    calendar_id:
                    google_meet_space:
                    google_workspace_event_watcher:
                    recurring_appointment_id:
                    creator_id:
                    original_start_datetime:
                    original_end_datetime:
                    microsoft_teams_join_url:
                    microsoft_graph_event_watcher:
                    cross_calendar_id:
                  - id: 51
                    topic: target B2B architectures
                    meeting_location: University Heights
                    start_datetime: '2026-06-22T00:01:00.000Z'
                    end_datetime: '2026-06-23T00:00:59.000Z'
                    company_id:
                    created_at: '2026-06-22T09:28:48.000Z'
                    updated_at: '2026-06-22T09:28:48.000Z'
                    uuid: a7690721-c29d-48f1-9a1e-8cfdc8e350bc
                    space_id: 94
                    provider_id:
                    organizer_id: 103
                    kiosk_id:
                    expecting_visitors: false
                    checked_in: false
                    released_meeting_room_id:
                    provider_recurrent_id:
                    calendar_id:
                    google_meet_space:
                    google_workspace_event_watcher:
                    recurring_appointment_id:
                    creator_id:
                    original_start_datetime:
                    original_end_datetime:
                    microsoft_teams_join_url:
                    microsoft_graph_event_watcher:
                    cross_calendar_id:
  "/api/v1/spaces/{space_id}/meeting_room_dashboards":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: List Meeting Room Dashboards for a Space
      tags:
      - Meeting Room Dashboards
      security:
      - comeenOauth:
        - room_dashboards:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
              - auto_scrolling: false
                building_id:
                filter: ALL
                floor_ids: []
                floorplan_desks_filter: ALL
                floorplan_interactive: false
                floorplan_reset_timer: 30
                floorplan_room_capacity: true
                floorplan_rooms_filter: ALL
                floorplan_view: ROOM-AND-DESK
                key: GVmxzHuzE85qv6JC6atutcqMqmahkSRFxRrLKuDBXy8rzh8Fnn
                kind: availabilities
                location_scope: ALL-MEETING-ROOMS
                meeting_room_ids:
                - 22
                - 23
                meeting_rooms:
                - id: 22
                  name: Royal Village
                  display_name: ''
                  provider_id: 67s7TmFqQU4XpeeK
                  mapwize_alias:
                  building_id: 58
                  created_at: '2026-06-22T09:28:49.000Z'
                  updated_at: '2026-06-22T09:28:49.000Z'
                  space_id: 99
                  capacity: 6
                  shape:
                  - x: 105.15463917525766
                    "y": 105.15463917525774
                  - x: 296.9072164948455
                    "y": 63.092783505154635
                  - x: 284.5360824742269
                    "y": 184.3298969072165
                  - x: 142.26804123711324
                    "y": 223.91752577319588
                  - x: 101.44329896907212
                    "y": 168.24742268041237
                  center_y: 143
                  center_x: 199
                  floor_number:
                  floor_id: 28
                  alternative_name:
                  sync_grant_id:
                  meeting_room_booking_rule_set_id:
                - id: 23
                  name: Park Court
                  display_name: ''
                  provider_id: qX8c2HqkEWkCxa5W
                  mapwize_alias:
                  building_id: 60
                  created_at: '2026-06-22T09:28:49.000Z'
                  updated_at: '2026-06-22T09:28:49.000Z'
                  space_id: 99
                  capacity: 6
                  shape:
                  - x: 105.15463917525766
                    "y": 105.15463917525774
                  - x: 296.9072164948455
                    "y": 63.092783505154635
                  - x: 284.5360824742269
                    "y": 184.3298969072165
                  - x: 142.26804123711324
                    "y": 223.91752577319588
                  - x: 101.44329896907212
                    "y": 168.24742268041237
                  center_y: 143
                  center_x: 199
                  floor_number:
                  floor_id: 29
                  alternative_name:
                  sync_grant_id:
                  meeting_room_booking_rule_set_id:
                name: Personal & Household Goods
                timeline_dark_mode: true
                timeline_event_titles: false
                timeline_paginate_per_floor: false
                timeline_room_capacity: false
                timeline_room_floor: false
                floorplan_floor:
                  id: 30
                  name: Insurance
                  number: 1
                logo_url:
                url: http://www.example.com/api/v1/meeting_room_dashboards/19.json
    post:
      summary: Create a Meeting Room Dashboard for a Space
      tags:
      - Meeting Room Dashboards
      security:
      - comeenOauth:
        - room_dashboards:write
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                id: 21
                name: Real Estate
                created_at: '2026-06-22T09:28:49.298Z'
                updated_at: '2026-06-22T09:28:49.298Z'
                space_id: 104
                key: 9QTeGfewmPb5EXgErCCMH14oa93bMwQc5JNd27GgyKrCcGaqhZ
                auto_scrolling: true
                filter: BUSY
                kind: timeline
                timeline_event_titles: true
                timeline_room_capacity: false
                timeline_room_floor: true
                timeline_paginate_per_floor: false
                timeline_dark_mode: false
                floorplan_reset_timer: 30
                floorplan_interactive: false
                floorplan_floor_id:
                location_scope: ALL-MEETING-ROOMS
                floorplan_view: ROOM-AND-DESK
                floorplan_rooms_filter: ALL
                floorplan_desks_filter: ALL
                floorplan_room_capacity: true
                building_id:
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                meeting_room_dashboard:
                  type: object
                  properties:
                    name:
                      type: string
                      required: true
                    auto_scrolling:
                      type: boolean
                    timeline_event_titles:
                      type: boolean
                    timeline_room_capacity:
                      type: boolean
                    timeline_room_floor:
                      type: boolean
                    timeline_paginate_per_floor:
                      type: boolean
                    timeline_dark_mode:
                      type: boolean
                    floorplan_floor_id:
                      type: integer
                      required: false
                    floorplan_reset_timer:
                      type: integer
                      required: false
                      default: 30
                    floorplan_interactive:
                      type: boolean
                      required: false
                      default: false
                    filter:
                      type: string
                      enum:
                      - ALL
                      - FREE
                      - BUSY
                    kind:
                      type: string
                      enum:
                      - availabilities
                      - timeline
                      - floorplan
                    logo:
                      type: string
                      required: false
                    meeting_room_ids:
                      type: array
                      items:
                        type: integer
                      default: []
  "/api/v1/meeting_room_dashboards/{key}":
    parameters:
    - name: key
      in: path
      schema:
        type: string
        format: uuid
      description: Room Dashboard key
      required: true
    get:
      summary: Show Meeting Room Dashboard details
      tags:
      - Meeting Room Dashboards
      security:
      - comeenOauth:
        - room_dashboards:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                auto_scrolling: false
                building_id:
                filter: ALL
                floor_ids: []
                floorplan_desks_filter: ALL
                floorplan_interactive: false
                floorplan_reset_timer: 30
                floorplan_room_capacity: true
                floorplan_rooms_filter: ALL
                floorplan_view: ROOM-AND-DESK
                key: GPX7VUUGgKEdBie2AmWs6AFKaJYr1W2NY4Z6rKbaZBP4E6vBGy
                kind: availabilities
                location_scope: ALL-MEETING-ROOMS
                meeting_room_ids:
                - 26
                - 27
                meeting_rooms:
                - id: 26
                  name: Eagle Village
                  display_name: ''
                  provider_id: huQppoAUtQH7nX6S
                  mapwize_alias:
                  building_id: 68
                  created_at: '2026-06-22T09:28:49.000Z'
                  updated_at: '2026-06-22T09:28:49.000Z'
                  space_id: 109
                  capacity: 6
                  shape:
                  - x: 105.15463917525766
                    "y": 105.15463917525774
                  - x: 296.9072164948455
                    "y": 63.092783505154635
                  - x: 284.5360824742269
                    "y": 184.3298969072165
                  - x: 142.26804123711324
                    "y": 223.91752577319588
                  - x: 101.44329896907212
                    "y": 168.24742268041237
                  center_y: 143
                  center_x: 199
                  floor_number:
                  floor_id: 34
                  alternative_name:
                  sync_grant_id:
                  meeting_room_booking_rule_set_id:
                - id: 27
                  name: Park Pointe
                  display_name: ''
                  provider_id: RArQvZ1K35o1bCmE
                  mapwize_alias:
                  building_id: 70
                  created_at: '2026-06-22T09:28:49.000Z'
                  updated_at: '2026-06-22T09:28:49.000Z'
                  space_id: 109
                  capacity: 5
                  shape:
                  - x: 105.15463917525766
                    "y": 105.15463917525774
                  - x: 296.9072164948455
                    "y": 63.092783505154635
                  - x: 284.5360824742269
                    "y": 184.3298969072165
                  - x: 142.26804123711324
                    "y": 223.91752577319588
                  - x: 101.44329896907212
                    "y": 168.24742268041237
                  center_y: 143
                  center_x: 199
                  floor_number:
                  floor_id: 35
                  alternative_name:
                  sync_grant_id:
                  meeting_room_booking_rule_set_id:
                name: Health Care
                timeline_dark_mode: true
                timeline_event_titles: false
                timeline_paginate_per_floor: false
                timeline_room_capacity: false
                timeline_room_floor: false
                floorplan_floor:
                  id: 36
                  name: Banks
                  number: 1
                logo_url:
                url: http://www.example.com/api/v1/meeting_room_dashboards/22.json
    patch:
      summary: Update a Meeting Room Dashboard
      tags:
      - Meeting Room Dashboards
      security:
      - comeenOauth:
        - room_dashboards:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                meeting_room_dashboard:
                  type: object
                  properties:
                    name:
                      type: string
                      required: true
                    auto_scrolling:
                      type: boolean
                    timeline_event_titles:
                      type: boolean
                    timeline_room_capacity:
                      type: boolean
                    timeline_room_floor:
                      type: boolean
                    timeline_paginate_per_floor:
                      type: boolean
                    timeline_dark_mode:
                      type: boolean
                    floorplan_floor_id:
                      type: integer
                      required: false
                    floorplan_reset_timer:
                      type: integer
                      required: false
                      default: 30
                    floorplan_interactive:
                      type: boolean
                      required: false
                      default: false
                    filter:
                      type: string
                      enum:
                      - ALL
                      - FREE
                      - BUSY
                    kind:
                      type: string
                      enum:
                      - availabilities
                      - timeline
                      - floorplan
                    logo:
                      type: string
                      required: false
                    meeting_room_ids:
                      type: array
                      items:
                        type: integer
                      default: []
    put:
      summary: Update a Meeting Room Dashboard
      tags:
      - Meeting Room Dashboards
      security:
      - comeenOauth:
        - room_dashboards:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                meeting_room_dashboard:
                  type: object
                  properties:
                    name:
                      type: string
                      required: true
                    auto_scrolling:
                      type: boolean
                    timeline_event_titles:
                      type: boolean
                    timeline_room_capacity:
                      type: boolean
                    timeline_room_floor:
                      type: boolean
                    timeline_paginate_per_floor:
                      type: boolean
                    timeline_dark_mode:
                      type: boolean
                    floorplan_floor_id:
                      type: integer
                      required: false
                    floorplan_reset_timer:
                      type: integer
                      required: false
                      default: 30
                    floorplan_interactive:
                      type: boolean
                      required: false
                      default: false
                    filter:
                      type: string
                      enum:
                      - ALL
                      - FREE
                      - BUSY
                    kind:
                      type: string
                      enum:
                      - availabilities
                      - timeline
                      - floorplan
                    logo:
                      type: string
                      required: false
                    meeting_room_ids:
                      type: array
                      items:
                        type: integer
                      default: []
    delete:
      summary: Delete a Meeting Room Dashboard
      tags:
      - Meeting Room Dashboards
      security:
      - comeenOauth:
        - room_dashboards:write
      responses:
        '204':
          description: successful
  "/api/v1/meeting_rooms/{id}/favourite":
    parameters:
    - name: id
      in: path
      description: Meeting Room id
      required: true
      schema:
        type: integer
    post:
      summary: Set a Meeting Room as favorite, that is already marked as favorite,
        does nothing
      tags:
      - Meeting Rooms
      security:
      - comeenOauth:
        - 'meeting_rooms: read'
      responses:
        '201':
          description: successful
    delete:
      summary: Un-favourite a Meeting Room
      tags:
      - Meeting Rooms
      security:
      - comeenOauth:
        - meeting_rooms:read
      responses:
        '204':
          description: successful
  "/api/v1/meeting_rooms/{id}/appointments":
    parameters:
    - name: id
      in: path
      description: Meeting Room id
      required: true
      schema:
        type: integer
    get:
      summary: Get todays Appointments for a Meeting Room
      tags:
      - Meeting Rooms
      - Appointments
      - Client-credentials compatible
      security:
      - comeenOauth:
        - appointments:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
              - id: 52
                topic: visualize B2B communities
                start_datetime: '2026-06-22T01:00:00.000Z'
                end_datetime: '2026-06-22T02:00:00.000Z'
                meeting_location: Eagle Acres
                organizer:
                  id: 114
                  first_name: Derick
                  last_name: Altenwerth
                  full_name: Derick Altenwerth
                  email: derick.altenwerth@example.org
                  phone: "(807) 817-4129"
                  created_at: '2026-06-22T09:28:50.000Z'
                  updated_at: '2026-06-22T09:28:50.000Z'
                  url: http://www.example.com/api/v1/users/114.json
                created_at: '2026-06-22T09:28:50.000Z'
                updated_at: '2026-06-22T09:28:50.000Z'
                company:
                meeting_rooms:
                - id: 37
                  name: Pine Crossing
                  provider_id: hw9scsWeRfdNV9KC
                  building_id: 94
                  space_id: 138
                  capacity: 4
                  created_at: '2026-06-22T09:28:50.000Z'
                  updated_at: '2026-06-22T09:28:50.000Z'
                  state: booked
                  booking:
                    id: 88
                    booking_source: api.calendar_sync
                    before_reminder_at:
                    before_reminder_sent_at:
                    start_reminder_at:
                    start_reminder_sent_at:
                    auto_release_at:
                    autoreleased_at:
                    morning_recap_notification_at:
                    morning_recap_notification_sent_at:
                    booked_at:
                    checked_in_at:
                    checked_out_at:
                    canceled_at:
                    released_at:
                    auto_released_at:
                attendees: []
                url: http://www.example.com/api/v1/appointments/52.json
              - id: 53
                topic: synergize sexy networks
                start_datetime: '2026-06-22T04:00:00.000Z'
                end_datetime: '2026-06-22T05:00:00.000Z'
                meeting_location: Autumn Court
                organizer:
                  id: 115
                  first_name: Porsha
                  last_name: Lockman
                  full_name: Porsha Lockman
                  email: lockman.porsha@example.org
                  phone:
                  created_at: '2026-06-22T09:28:50.000Z'
                  updated_at: '2026-06-22T09:28:50.000Z'
                  url: http://www.example.com/api/v1/users/115.json
                created_at: '2026-06-22T09:28:50.000Z'
                updated_at: '2026-06-22T09:28:50.000Z'
                company:
                meeting_rooms:
                - id: 37
                  name: Pine Crossing
                  provider_id: hw9scsWeRfdNV9KC
                  building_id: 94
                  space_id: 138
                  capacity: 4
                  created_at: '2026-06-22T09:28:50.000Z'
                  updated_at: '2026-06-22T09:28:50.000Z'
                  state: booked
                  booking:
                    id: 89
                    booking_source: api.calendar_sync
                    before_reminder_at:
                    before_reminder_sent_at:
                    start_reminder_at:
                    start_reminder_sent_at:
                    auto_release_at:
                    autoreleased_at:
                    morning_recap_notification_at:
                    morning_recap_notification_sent_at:
                    booked_at:
                    checked_in_at:
                    checked_out_at:
                    canceled_at:
                    released_at:
                    auto_released_at:
                attendees: []
                url: http://www.example.com/api/v1/appointments/53.json
              - id: 54
                topic: synergize innovative bandwidth
                start_datetime: '2026-06-22T07:00:00.000Z'
                end_datetime: '2026-06-22T08:00:00.000Z'
                meeting_location: University Estates
                organizer:
                  id: 116
                  first_name: Holley
                  last_name: McGlynn
                  full_name: Holley McGlynn
                  email: holley.mcglynn@example.org
                  phone: 835.659.2781
                  created_at: '2026-06-22T09:28:50.000Z'
                  updated_at: '2026-06-22T09:28:50.000Z'
                  url: http://www.example.com/api/v1/users/116.json
                created_at: '2026-06-22T09:28:50.000Z'
                updated_at: '2026-06-22T09:28:50.000Z'
                company:
                meeting_rooms:
                - id: 37
                  name: Pine Crossing
                  provider_id: hw9scsWeRfdNV9KC
                  building_id: 94
                  space_id: 138
                  capacity: 4
                  created_at: '2026-06-22T09:28:50.000Z'
                  updated_at: '2026-06-22T09:28:50.000Z'
                  state: booked
                  booking:
                    id: 90
                    booking_source: api.calendar_sync
                    before_reminder_at:
                    before_reminder_sent_at:
                    start_reminder_at:
                    start_reminder_sent_at:
                    auto_release_at:
                    autoreleased_at:
                    morning_recap_notification_at:
                    morning_recap_notification_sent_at:
                    booked_at:
                    checked_in_at:
                    checked_out_at:
                    canceled_at:
                    released_at:
                    auto_released_at:
                attendees: []
                url: http://www.example.com/api/v1/appointments/54.json
  "/api/v1/spaces/{space_id}/meeting_rooms":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: List Meeting Rooms
      tags:
      - Meeting Rooms
      - Client-credentials compatible
      security:
      - comeenOauth:
        - meeting_rooms:read
      parameters:
      - name: building_id
        in: query
        schema:
          type: integer
        required: false
        description: Building id filter
      - name: floor_id
        in: query
        schema:
          type: integer
        required: false
        description: Floor id filter
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
              - alternative_name:
                capacity: 4
                center:
                created_at: '2026-06-22T09:28:50.000Z'
                display_name: ''
                email:
                floor_number:
                id: 41
                mapwize_alias:
                name: University Place
                original_name: University Place
                provider_id: sNVbmDGrpe8X4dv6
                shape:
                sync_grant_id:
                type:
                updated_at: '2026-06-22T09:28:50.000Z'
                building:
                  id: 102
                  name: Paradise Square
                floor:
                  id: 53
                  number: 1
                  name: Telecommunications
                  desk_instructions:
                  capacity:
                  threshold: 100
                  building_id: 103
                  created_at: '2026-06-22T09:28:50.854Z'
                  updated_at: '2026-06-22T09:28:50.854Z'
                  flex_office:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floorplan_url:
                  url: http://www.example.com/api/v1/floors/53.json
                equipment_items: []
                url: http://www.example.com/api/v1/meeting_rooms/41.json
                time_zone: UTC
              - alternative_name:
                capacity: 3
                center:
                created_at: '2026-06-22T09:28:50.000Z'
                display_name: ''
                email:
                floor_number:
                id: 40
                mapwize_alias:
                name: Park Creek
                original_name: Park Creek
                provider_id: TtBEx65v27EwJ388
                shape:
                sync_grant_id:
                type:
                updated_at: '2026-06-22T09:28:50.000Z'
                building:
                  id: 100
                  name: Pine Square
                floor:
                  id: 52
                  number: 1
                  name: Chemicals
                  desk_instructions:
                  capacity:
                  threshold: 100
                  building_id: 101
                  created_at: '2026-06-22T09:28:50.819Z'
                  updated_at: '2026-06-22T09:28:50.819Z'
                  flex_office:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floorplan_url:
                  url: http://www.example.com/api/v1/floors/52.json
                equipment_items: []
                url: http://www.example.com/api/v1/meeting_rooms/40.json
                time_zone: UTC
    post:
      summary: Create a Meeting Room
      tags:
      - Meeting Rooms
      security:
      - comeenOauth:
        - meeting_rooms:write
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                id: 50
                name: Royal Heights
                display_name: ''
                provider_id: gVRQE9kvLaQQkJsJ
                mapwize_alias:
                building_id:
                created_at: '2026-06-22T09:28:51.000Z'
                updated_at: '2026-06-22T09:28:51.000Z'
                space_id: 166
                capacity: 4
                shape:
                - x: 0
                  "y": 0
                - x: 0
                  "y": 100
                - x: 100
                  "y": 100
                - x: 100
                  "y": 0
                center_y: 50
                center_x: 50
                floor_number:
                floor_id:
                alternative_name:
                sync_grant_id:
                meeting_room_booking_rule_set_id:
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                meeting_room:
                  oneOf:
                  - "$ref": "#/components/schemas/meeting_room_create_params"
                  - "$ref": "#/components/schemas/meeting_room_deprecated_google_create_params"
                  - "$ref": "#/components/schemas/meeting_room_deprecated_microsoft_create_params"
  "/api/v1/meeting_rooms/{id}":
    parameters:
    - name: id
      in: path
      description: Meeting Room id
      required: true
      schema:
        type: integer
    get:
      summary: Show Meeting Room details
      tags:
      - Meeting Rooms
      security:
      - comeenOauth:
        - meeting_rooms:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                alternative_name:
                capacity: 5
                center:
                created_at: '2026-06-22T09:28:51.000Z'
                display_name: ''
                email:
                floor_number:
                id: 51
                mapwize_alias:
                name: Park Estates
                original_name: Park Estates
                provider_id: LyzbanHGEmRBnKB5
                shape:
                sync_grant_id:
                type:
                updated_at: '2026-06-22T09:28:51.000Z'
                building:
                  id: 113
                  name: Park Village
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 168
                  created_at: '2026-06-22T09:28:51.000Z'
                  updated_at: '2026-06-22T09:28:51.000Z'
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id:
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                  url: http://www.example.com/api/v1/buildings/113.json
                floor:
                  id: 59
                  name: Travel & Leisure
                equipment_items: []
                url: http://www.example.com/api/v1/meeting_rooms/51.json
                time_zone: UTC
    put:
      summary: Update Meeting Room details
      tags:
      - Meeting Rooms
      security:
      - comeenOauth:
        - meeting_rooms:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                meeting_room:
                  "$ref": "#/components/schemas/meeting_room_update_params"
    patch:
      summary: Update Meeting Room details
      tags:
      - Meeting Rooms
      security:
      - comeenOauth:
        - meeting_rooms:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                meeting_room:
                  "$ref": "#/components/schemas/meeting_room_update_params"
    delete:
      summary: Delete Meeting Room and all child resources
      tags:
      - Meeting Rooms
      security:
      - comeenOauth:
        - meeting_rooms:write
      responses:
        '204':
          description: successful
  "/api/v1/microsoft/spaces/{space_id}/meeting_rooms/fetch":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: Fetch Microsoft Meeting Rooms for a Space
      tags:
      - Meeting Rooms
      - Spaces
      security:
      - comeenOauth:
        - meeting_rooms:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
              - alternative_name:
                capacity: 5
                center:
                created_at:
                display_name: ''
                email: roomtest1@dynamicscreen.onmicrosoft.com
                floor_number:
                id:
                mapwize_alias:
                name: 'Room Test #1'
                original_name: 'Room Test #1'
                provider_id: 7036d6be-c0cf-452c-9595-4a613b2887b2
                shape:
                sync_grant_id: 11
                type: Microsoft::MeetingRoom
                updated_at:
                calendar:
                  id:
                  uuid:
                  provider_id: roomtest1@dynamicscreen.onmicrosoft.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                outlook_calendar:
                  id:
                  uuid:
                  provider_id: roomtest1@dynamicscreen.onmicrosoft.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 12
                center:
                created_at:
                display_name: ''
                email: meeting-room-1@comeen.com
                floor_number:
                id:
                mapwize_alias:
                name: 'Meeting room #1'
                original_name: 'Meeting room #1'
                provider_id: fe871ee9-344d-4950-af29-175655d2cfcd
                shape:
                sync_grant_id: 11
                type: Microsoft::MeetingRoom
                updated_at:
                building:
                  id:
                  name: Bordeaux Verdun
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 185
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type: Microsoft::Building
                  provider_id:
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: meeting-room-1@comeen.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                outlook_calendar:
                  id:
                  uuid:
                  provider_id: meeting-room-1@comeen.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 42
                center:
                created_at:
                display_name: ''
                email: notinroomlist@comeen.com
                floor_number:
                id:
                mapwize_alias:
                name: NotInRoomList
                original_name: NotInRoomList
                provider_id: 611b4ac4-1da9-4d25-b9b8-29a051f72812
                shape:
                sync_grant_id: 11
                type: Microsoft::MeetingRoom
                updated_at:
                calendar:
                  id:
                  uuid:
                  provider_id: notinroomlist@comeen.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                outlook_calendar:
                  id:
                  uuid:
                  provider_id: notinroomlist@comeen.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 3
                center:
                created_at:
                display_name: ''
                email: meeting-room-2@comeen.com
                floor_number:
                id:
                mapwize_alias:
                name: 'Meeting room #2'
                original_name: 'Meeting room #2'
                provider_id: da646e13-0a90-425c-b766-6a05d7e5327a
                shape:
                sync_grant_id: 11
                type: Microsoft::MeetingRoom
                updated_at:
                calendar:
                  id:
                  uuid:
                  provider_id: meeting-room-2@comeen.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                outlook_calendar:
                  id:
                  uuid:
                  provider_id: meeting-room-2@comeen.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
  "/api/v1/microsoft/meeting_rooms/{id}":
    parameters:
    - name: id
      in: path
      description: Meeting Room Microsoft id
      required: true
      schema:
        type: string
    get:
      summary: Show Microsoft Meeting Room
      tags:
      - Meeting Rooms
      security:
      - comeenOauth:
        - meeting_rooms:read
      responses:
        '200':
          description: successful
  "/api/v1/users/{user_id}/notifications/settings":
    parameters:
    - name: user_id
      in: path
      description: User id
      required: true
      schema:
        type: integer
    get:
      summary: Show Notification Settings for a User
      tags:
      - Notification Settings
      - Users
      security:
      - comeenOauth:
        - notification_settings:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                email: true
                phone: false
                google_chat: false
                microsoft_teams: false
                facebook_workplace: false
                slack: true
                config: {}
                onboarding_done: false
    put:
      summary: Update NotificationSettings for a User
      tags:
      - Notification Settings
      - Users
      security:
      - comeenOauth:
        - notification_settings:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                notification_settings:
                  type: object
                  properties:
                    email:
                      type: boolean
                    phone:
                      type: boolean
                    google_chat:
                      type: boolean
                    microsoft_teams:
                      type: boolean
                    facebook_workplace:
                      type: boolean
                    slack:
                      type: boolean
        required: true
  "/api/v1/spaces/{space_id}/notifications/settings":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: Show Notification Settings for a Space
      tags:
      - Notification Settings
      - Spaces
      security:
      - comeenOauth:
        - notification_settings:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                email: true
                phone: false
                google_chat: false
                microsoft_teams: false
                facebook_workplace: false
                slack: true
                config: {}
                onboarding_done: false
    put:
      summary: Update Notification Settings for a Space
      tags:
      - Notification Settings
      - Spaces
      security:
      - comeenOauth:
        - notification_settings:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                notification_settings:
                  type: object
                  properties:
                    email:
                      type: boolean
                    phone:
                      type: boolean
                    google_chat:
                      type: boolean
                    microsoft_teams:
                      type: boolean
                    facebook_workplace:
                      type: boolean
                    slack:
                      type: boolean
        required: true
  "/api/v1/appointments/{id}/log_onboarding":
    parameters:
    - name: id
      in: path
      description: Appointment id
      required: true
      schema:
        type: integer
    post:
      summary: Log visit Onboarding for an Appointment
      tags:
      - Onboardings
      - Client-credentials compatible
      security:
      - comeenOauth:
        - visits:write
      parameters: []
      responses:
        '201':
          description: successful with badges uuid
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - type: object
                properties:
                  attendee_ids:
                    type: array
                    items:
                      type: integer
                  kiosk_id:
                    type: integer
                    required: false
              - type: object
                properties:
                  badge_uuids:
                    type: array
                    items:
                      type: string
                      format: uuid
                  kiosk_id:
                    type: integer
                    required: false
        required: true
  "/api/v1/appointments/{id}/log_offboarding":
    parameters:
    - name: id
      in: path
      description: Appointment id
      required: true
      schema:
        type: integer
    post:
      summary: Log visit Offboarding for an Appointment
      tags:
      - Onboardings
      security:
      - comeenOauth:
        - visits:write
      parameters: []
      responses:
        '201':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - type: object
                properties:
                  attendee_ids:
                    type: array
                    items:
                      type: integer
              - type: object
                properties:
                  badge_uuids:
                    type: array
                    items:
                      type: string
                      format: uuid
        required: true
  "/api/v1/spaces/{space_id}/appointments/log_offboarding":
    parameters:
    - name: space_id
      in: path
      description: space_id
      required: true
      schema:
        type: string
    post:
      summary: Log visit Offboarding for a Spaces Appointment
      tags:
      - Onboardings
      - Spaces
      security:
      - comeenOauth:
        - visits:write
      parameters: []
      responses:
        '201':
          description: successful with badge uuid & person uuids
          content:
            application/json:
              example: {}
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - type: object
                properties:
                  attendee_ids:
                    type: array
                    items:
                      type: integer
              - type: object
                properties:
                  badge_uuids:
                    type: array
                    items:
                      type: string
                      format: uuid
        required: true
  "/api/v1/floors/{id}/schedule/meeting_rooms":
    parameters:
    - name: id
      in: path
      description: Floor id
      required: true
      schema:
        type: integer
    get:
      summary: Get meeting room schedule for a Floor
      tags:
      - Floors
      security:
      - comeenOauth:
        - appointments:read
      parameters:
      - name: start_date_time
        in: query
        schema:
          type: string
          format: date-time
        description: Start date time formatted in RFC3339
        required: false
      - name: end_date_time
        in: query
        schema:
          type: string
          format: date-time
        description: End date time formatted in RFC3339
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                location:
                  id: 66
                  number: 1
                  name: Personal & Household Goods
                  desk_instructions:
                  capacity:
                  threshold: 100
                  building_id: 133
                  created_at: '2026-06-22T09:28:53.320Z'
                  updated_at: '2026-06-22T09:28:53.320Z'
                  flex_office:
                  floorplan_url:
                  url: http://www.example.com/api/v1/floors/66.json
                meeting_rooms:
                - alternative_name:
                  capacity: 6
                  center:
                  created_at: '2026-06-22T09:28:53.000Z'
                  display_name: ''
                  email: 2e811c6f-d7c0-4fc6-8be5-68d55eb2bb27
                  floor_number:
                  id: 58
                  mapwize_alias:
                  name: Eagle Oaks
                  original_name: Eagle Oaks
                  provider_id: 3Q2HJLhmVVXExvTL
                  shape:
                  sync_grant_id:
                  type:
                  updated_at: '2026-06-22T09:28:53.000Z'
                  building:
                    id: 133
                    name: University Estates
                  favourite: true
                  floor:
                    id: 66
                    number: 1
                    name: Personal & Household Goods
                    desk_instructions:
                    capacity:
                    threshold: 100
                    building_id: 133
                    created_at: '2026-06-22T09:28:53.320Z'
                    updated_at: '2026-06-22T09:28:53.320Z'
                    flex_office:
                    floorplan_url:
                    url: http://www.example.com/api/v1/floors/66.json
                  calendar:
                    id: 17
                    uuid: e1cf0210-be3d-4845-89e9-df7b40ec2e68
                    provider_id: 2e811c6f-d7c0-4fc6-8be5-68d55eb2bb27
                    watch: false
                    watch_config:
                      expiry:
                      channel_id:
                      resource_id:
                      last_sync:
                      sync_token:
                  equipment_items: []
                  url: http://www.example.com/api/v1/meeting_rooms/58.json
                  time_zone: UTC
                  schedule:
                  - id: 67
                    topic: seize value-added systems
                    start_datetime: '2026-06-22T09:28:53.000Z'
                    end_datetime: '2026-06-22T10:28:53.000Z'
                    meeting_location: University Village
                    organizer:
                      id: 165
                      first_name: Carlota
                      last_name: Vandervort
                      full_name: Carlota Vandervort
                      email: carlota_vandervort@example.org
                      phone:
                      created_at: '2026-06-22T09:28:53.000Z'
                      updated_at: '2026-06-22T09:28:53.000Z'
                      url: http://www.example.com/api/v1/users/165.json
                    created_at: '2026-06-22T09:28:53.000Z'
                    updated_at: '2026-06-22T09:28:53.000Z'
                    company:
                    meeting_rooms:
                    - id: 58
                      name: Eagle Oaks
                      provider_id: 3Q2HJLhmVVXExvTL
                      building_id: 133
                      space_id: 199
                      capacity: 6
                      created_at: '2026-06-22T09:28:53.000Z'
                      updated_at: '2026-06-22T09:28:53.000Z'
                      state: booked
                      booking:
                        id: 97
                        booking_source: api.calendar_sync
                        before_reminder_at:
                        before_reminder_sent_at:
                        start_reminder_at:
                        start_reminder_sent_at:
                        auto_release_at:
                        autoreleased_at:
                        morning_recap_notification_at:
                        morning_recap_notification_sent_at:
                        booked_at:
                        checked_in_at:
                        checked_out_at:
                        canceled_at:
                        released_at:
                        auto_released_at:
                    attendees: []
                    url: http://www.example.com/api/v1/appointments/67.json
                - alternative_name:
                  capacity: 6
                  center:
                  created_at: '2026-06-22T09:28:53.000Z'
                  display_name: ''
                  email: c6577ee9-3cb7-4d44-ae3c-7c70175a4fc7
                  floor_number:
                  id: 59
                  mapwize_alias:
                  name: Park Heights
                  original_name: Park Heights
                  provider_id: b2DH4DfVX6rYX979
                  shape:
                  sync_grant_id:
                  type:
                  updated_at: '2026-06-22T09:28:53.000Z'
                  building:
                    id: 133
                    name: University Estates
                  favourite: false
                  floor:
                    id: 66
                    number: 1
                    name: Personal & Household Goods
                    desk_instructions:
                    capacity:
                    threshold: 100
                    building_id: 133
                    created_at: '2026-06-22T09:28:53.320Z'
                    updated_at: '2026-06-22T09:28:53.320Z'
                    flex_office:
                    floorplan_url:
                    url: http://www.example.com/api/v1/floors/66.json
                  calendar:
                    id: 18
                    uuid: 334da16e-dab2-467d-8da1-ccfebed212df
                    provider_id: c6577ee9-3cb7-4d44-ae3c-7c70175a4fc7
                    watch: false
                    watch_config:
                      expiry:
                      channel_id:
                      resource_id:
                      last_sync:
                      sync_token:
                  equipment_items: []
                  url: http://www.example.com/api/v1/meeting_rooms/59.json
                  time_zone: UTC
                  schedule:
                  - id: 68
                    topic: architect real-time architectures
                    start_datetime: '2026-06-22T09:28:53.000Z'
                    end_datetime: '2026-06-22T10:28:53.000Z'
                    meeting_location: Summer Court
                    organizer:
                      id: 166
                      first_name: Kim
                      last_name: Mitchell
                      full_name: Kim Mitchell
                      email: kim_mitchell@example.org
                      phone: 1-244-731-5126
                      created_at: '2026-06-22T09:28:53.000Z'
                      updated_at: '2026-06-22T09:28:53.000Z'
                      url: http://www.example.com/api/v1/users/166.json
                    created_at: '2026-06-22T09:28:53.000Z'
                    updated_at: '2026-06-22T09:28:53.000Z'
                    company:
                    meeting_rooms:
                    - id: 59
                      name: Park Heights
                      provider_id: b2DH4DfVX6rYX979
                      building_id: 133
                      space_id: 199
                      capacity: 6
                      created_at: '2026-06-22T09:28:53.000Z'
                      updated_at: '2026-06-22T09:28:53.000Z'
                      state: booked
                      booking:
                        id: 98
                        booking_source: api.calendar_sync
                        before_reminder_at:
                        before_reminder_sent_at:
                        start_reminder_at:
                        start_reminder_sent_at:
                        auto_release_at:
                        autoreleased_at:
                        morning_recap_notification_at:
                        morning_recap_notification_sent_at:
                        booked_at:
                        checked_in_at:
                        checked_out_at:
                        canceled_at:
                        released_at:
                        auto_released_at:
                    attendees: []
                    url: http://www.example.com/api/v1/appointments/68.json
                - alternative_name:
                  capacity: 4
                  center:
                  created_at: '2026-06-22T09:28:53.000Z'
                  display_name: ''
                  email: 7d345f9c-a4d8-4a7e-919f-a36500bb294d
                  floor_number:
                  id: 60
                  mapwize_alias:
                  name: University Court
                  original_name: University Court
                  provider_id: 1BLKhDnaP23wAoq4
                  shape:
                  sync_grant_id:
                  type:
                  updated_at: '2026-06-22T09:28:53.000Z'
                  building:
                    id: 133
                    name: University Estates
                  favourite: false
                  floor:
                    id: 66
                    number: 1
                    name: Personal & Household Goods
                    desk_instructions:
                    capacity:
                    threshold: 100
                    building_id: 133
                    created_at: '2026-06-22T09:28:53.320Z'
                    updated_at: '2026-06-22T09:28:53.320Z'
                    flex_office:
                    floorplan_url:
                    url: http://www.example.com/api/v1/floors/66.json
                  calendar:
                    id: 19
                    uuid: bed6cd1e-80e4-4d27-858d-af448e6d4278
                    provider_id: 7d345f9c-a4d8-4a7e-919f-a36500bb294d
                    watch: false
                    watch_config:
                      expiry:
                      channel_id:
                      resource_id:
                      last_sync:
                      sync_token:
                  equipment_items: []
                  url: http://www.example.com/api/v1/meeting_rooms/60.json
                  time_zone: UTC
                  schedule:
                  - id: 69
                    topic: integrate viral models
                    start_datetime: '2026-06-22T09:28:53.000Z'
                    end_datetime: '2026-06-22T10:28:53.000Z'
                    meeting_location: University Place
                    organizer:
                      id: 167
                      first_name: Stephen
                      last_name: VonRueden
                      full_name: Stephen VonRueden
                      email: stephen_vonrueden@example.org
                      phone: 324.831.5631
                      created_at: '2026-06-22T09:28:53.000Z'
                      updated_at: '2026-06-22T09:28:53.000Z'
                      url: http://www.example.com/api/v1/users/167.json
                    created_at: '2026-06-22T09:28:53.000Z'
                    updated_at: '2026-06-22T09:28:53.000Z'
                    company:
                    meeting_rooms:
                    - id: 60
                      name: University Court
                      provider_id: 1BLKhDnaP23wAoq4
                      building_id: 133
                      space_id: 199
                      capacity: 4
                      created_at: '2026-06-22T09:28:53.000Z'
                      updated_at: '2026-06-22T09:28:53.000Z'
                      state: booked
                      booking:
                        id: 99
                        booking_source: api.calendar_sync
                        before_reminder_at:
                        before_reminder_sent_at:
                        start_reminder_at:
                        start_reminder_sent_at:
                        auto_release_at:
                        autoreleased_at:
                        morning_recap_notification_at:
                        morning_recap_notification_sent_at:
                        booked_at:
                        checked_in_at:
                        checked_out_at:
                        canceled_at:
                        released_at:
                        auto_released_at:
                    attendees: []
                    url: http://www.example.com/api/v1/appointments/69.json
  "/api/v1/people/find_by_email":
    get:
      summary: Find Person by email
      tags:
      - People
      - Client-credentials compatible
      security:
      - comeenOauth:
        - people:read
      parameters:
      - name: email
        in: query
        required: true
        schema:
          type: string
          format: email
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 181
                first_name: Velia
                last_name: Rice
                full_name: Velia Rice
                email: rice.velia@example.org
                phone:
                created_at: '2026-06-22T09:28:54.000Z'
                updated_at: '2026-06-22T09:28:54.000Z'
                url: http://www.example.com/api/v1/people/181.json
  "/api/v1/people":
    get:
      summary: List People
      tags:
      - People
      security:
      - comeenOauth:
        - people:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example: []
  "/api/v1/people/{id}":
    parameters:
    - name: id
      in: path
      description: Person id
      required: true
      schema:
        type: integer
    get:
      summary: Show Person detais
      tags:
      - People
      security:
      - comeenOauth:
        - people:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 183
                first_name: Saran
                last_name: Prosacco
                full_name: Saran Prosacco
                email: saran-prosacco@example.org
                phone: 563-100-0414
                created_at: '2026-06-22T09:28:54.000Z'
                updated_at: '2026-06-22T09:28:54.000Z'
                url: http://www.example.com/api/v1/people/183.json
  "/api/v1/spaces/{space_id}/presences":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: space_id
      required: true
    get:
      summary: List Presences in a Space
      tags:
      - Office Presences
      - Spaces
      security:
      - comeenOauth:
        - presences:read
      deprecated: Work Activities endpoint should be used instead
      responses:
        '200':
          description: successful
  "/api/v1/presences/{id}/confirm":
    parameters:
    - name: id
      in: path
      schema:
        type: string
        format: uuid
      description: Office Presence uuid
      required: true
    post:
      summary: Office Presence confirmation
      tags:
      - Office Presences
      - Client-credentials compatible
      security:
      - comeenOauth:
        - presences:write
      responses:
        '204':
          description: successful
  "/api/v1/presences/{id}/checkin":
    parameters:
    - name: id
      in: path
      schema:
        type: string
        format: uuid
      description: Office Presence uuid
      required: true
    post:
      summary: Office Presence check-in
      tags:
      - Office Presences
      - Client-credentials compatible
      security:
      - comeenOauth:
        - presences:write
      responses:
        '201':
          description: successful
  "/api/v1/presences/{id}/checkout":
    parameters:
    - name: id
      in: path
      schema:
        type: string
        format: uuid
      description: Office Presence uuid
      required: true
    post:
      summary: Office Presence check-out
      tags:
      - Office Presences
      - Client-credentials compatible
      security:
      - comeenOauth:
        - presences:write
      responses:
        '204':
          description: successful
  "/api/v1/presences/{id}/cancel_checkout":
    parameters:
    - name: id
      in: path
      schema:
        type: string
        format: uuid
      description: Office Presence uuid
      required: true
    post:
      summary: Office Presence check-out cancel
      tags:
      - Office Presences
      - Client-credentials compatible
      security:
      - comeenOauth:
        - presences:write
      responses:
        '204':
          description: successful
  "/api/v1/presences/{id}/desk_booking":
    parameters:
    - name: id
      in: path
      schema:
        type: string
        format: uuid
      description: Office Presence uuid
      required: true
    put:
      summary: Office Presence Desk booking details update
      tags:
      - Office Presences
      security:
      - comeenOauth:
        - presences:write
      deprecated: Work Activities endpoint should be used instead
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                desk_booking:
                  type: object
                  properties:
                    desk_uuid:
                      type: string
                      format: uuid
                    next_to_presence_uuid:
                      type: string
                      format: uuid
                    equipments:
                      type: array
                      items:
                        type: integer
        required: true
  "/api/v1/users/{user_id}/presences":
    parameters:
    - name: user_id
      in: path
      description: User id
      required: true
      schema:
        type: integer
    get:
      summary: List Office Presences for a User
      tags:
      - Office Presences
      - Users
      security:
      - comeenOauth:
        - presences:read
      deprecated: Work Activities endpoint should be used instead
      responses:
        '200':
          description: successful
    post:
      summary: Create an Office Presence for a User
      tags:
      - Office Presences
      - Users
      security:
      - comeenOauth:
        - presences:write
      deprecated: Work Activities endpoint should be used instead
      parameters: []
      responses:
        '201':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                presence:
                  type: object
                  properties:
                    start_datetime:
                      type: string
                      format: date-time
                    end_datetime:
                      type: string
                      format: date-time
                    building_id:
                      type: integer
                      required: true
                    floor_id:
                      type: integer
                      required: false
                    area_id:
                      type: integer
                      required: false
                desk_booking:
                  type: object
                  properties:
                    desk_uuid:
                      type: string
                      format: uuid
                    next_to_presence_uuid:
                      type: string
                      format: uuid
                    equipments:
                      type: array
                      items:
                        type: integer
  "/api/v1/presences/{id}":
    parameters:
    - name: id
      in: path
      schema:
        type: string
        format: uuid
      description: Office Presence uuid
      required: true
    get:
      summary: Show Office Presence details
      tags:
      - Office Presences
      security:
      - comeenOauth:
        - presences:read
      deprecated: Work Activities endpoint should be used instead
      responses:
        '200':
          description: successful
    patch:
      summary: Update Office Presence details
      tags:
      - Office Presences
      security:
      - comeenOauth:
        - presences:write
      deprecated: Work Activities endpoint should be used instead
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                presence:
                  type: object
                  properties:
                    start_datetime:
                      type: string
                      format: date-time
                    end_datetime:
                      type: string
                      format: date-time
                    building_id:
                      type: integer
                      required: true
                    floor_id:
                      type: integer
                      required: false
                    area_id:
                      type: integer
                      required: false
        required: true
    put:
      summary: Update Office Presence details
      tags:
      - Office Presences
      security:
      - comeenOauth:
        - presences:write
      deprecated: Work Activities endpoint should be used instead
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                presence:
                  type: object
                  properties:
                    start_datetime:
                      type: string
                      format: date-time
                    end_datetime:
                      type: string
                      format: date-time
                    building_id:
                      type: integer
                      required: true
                    floor_id:
                      type: integer
                      required: false
                    area_id:
                      type: integer
                      required: false
        required: true
    delete:
      summary: Delete Office Presence
      tags:
      - Office Presences
      security:
      - comeenOauth:
        - presences:write
      deprecated: Work Activities endpoint should be used instead
      responses:
        '204':
          description: successful
  "/api/v1/users/{user_id}/schedule":
    parameters:
    - name: user_id
      in: path
      description: User id
      required: true
      schema:
        type: integer
    get:
      summary: List Office Presences for a User
      tags:
      - Office Presences
      - Users
      security:
      - comeenOauth:
        - presences:read
      deprecated: Work Activities endpoint should be used instead
      responses:
        '200':
          description: successful
  "/api/v1/recurring_appointments/{id}":
    parameters:
    - name: id
      in: path
      description: Recurring Appointment id
      required: true
      schema:
        type: integer
    get:
      summary: Show Recurring Appointment details
      tags:
      - Recurring Appointments
      security:
      - comeenOauth:
        - appointments:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 1
                topic: redefine seamless solutions
                failures: 0
                total_failures: 0
                created_at: '2026-06-22T09:28:56.207Z'
                updated_at: '2026-06-22T09:28:56.207Z'
                last_sync_at:
                maximum_failures: 10
  "/api/v1/recurring_appointments/{id}/reset_failures":
    parameters:
    - name: id
      in: path
      description: Recurring Appointment id
      required: true
      schema:
        type: integer
    post:
      summary: Reset failures counter for a Recurring Appointment
      tags:
      - Recurring Appointments
      security:
      - comeenOauth:
        - appointments:write
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                failures: 0
                calendar_id: 30
                provider_id: d296f7da-2cb7-4281-b207-700fa41d9590
                id: 2
                topic: redefine granular vortals
                created_at: '2026-06-22T09:28:56.288Z'
                updated_at: '2026-06-22T09:28:56.329Z'
                last_sync_at:
                released_at:
                total_failures: 0
                cross_calendar_id:
                start:
                organizer_id:
  "/api/v1/recurring_appointments/{id}/attendees":
    parameters:
    - name: id
      in: path
      description: Recurring Appointment id
      required: true
      schema:
        type: integer
    get:
      summary: List attendees for a Recurring Appointment
      tags:
      - Recurring Appointments
      security:
      - comeenOauth:
        - appointments:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                attendees:
                - id: 202
                  email: kuvalis.boyd@example.org
                  first_name: Boyd
                  last_name: Kuvalis
                  full_name: Boyd Kuvalis
                  phone:
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:28:56.000Z'
                  updated_at: '2026-06-22T09:28:56.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id:
                  avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBYdz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--122d481e865e1dfe4210f3fe33ec11eb1efe7100/blank.png
                  url: http://www.example.com/api/v1/users/202.json
                  roles: []
  "/api/v1/recurring_appointments/{id}/meeting_room_bookings":
    parameters:
    - name: id
      in: path
      description: Recurring Appointment id
      required: true
      schema:
        type: integer
    put:
      summary: Change person to notify for all Room bookings of Recurring Appointment
      tags:
      - Recurring Appointments
      security:
      - comeenOauth:
        - appointments:write
      parameters:
      - name: cutoff_date
        in: query
        schema:
          type: string
          format: date-time
        description: Cutoff date for occurrences
        required: true
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                meeting_room_booking:
                  type: object
                  properties:
                    person_id:
                      type: integer
                  required:
                  - person_id
              required: true
  "/api/v1/recurring_appointments/{id}/occurrences":
    parameters:
    - name: id
      in: path
      description: Recurring Appointment id
      required: true
      schema:
        type: integer
    get:
      summary: List occurrences for a Recurring Appointment
      tags:
      - Recurring Appointments
      security:
      - comeenOauth:
        - appointments:read
      parameters:
      - name: start_date
        in: query
        schema:
          type: string
          format: date-time
        description: Start date bound for occurrences fetching
        required: false
      - name: end_date
        in: query
        schema:
          type: string
          format: date-time
        description: End date bound for occurrences fetching
        required: false
      - name: page
        in: query
        schema:
          type: integer
        description: Page number for paginated results
        required: false
      - name: per_page
        in: query
        schema:
          type: integer
          max: 200
        description: Number of results per page
        required: false
      - name: cutoff_date
        in: query
        schema:
          type: string
          format: date-time
        description: Cutoff date for occurrences - any occurrence before this date
          is considered past
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                occurences:
                - id: 85
                  topic: morph compelling methodologies
                  start_datetime: '2026-06-25T12:00:00.000Z'
                  end_datetime: '2026-06-25T12:05:00.000Z'
                  meeting_location: Summer Heights
                  organizer:
                    id: 218
                    first_name: Hollis
                    last_name: Hirthe
                    full_name: Hollis Hirthe
                    email: hirthe.hollis@example.org
                    phone: "(464) 225-0744"
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    url: http://www.example.com/api/v1/users/218.json
                  created_at: '2026-06-22T09:28:57.000Z'
                  updated_at: '2026-06-22T09:28:57.000Z'
                  company:
                  recurring_appointment:
                    id: 5
                    topic: engineer scalable infrastructures
                    created_at: '2026-06-22T09:28:57.097Z'
                    updated_at: '2026-06-22T09:28:57.097Z'
                  meeting_rooms:
                  - id: 75
                    name: Eagle Court
                    provider_id: LPw93mD6nqzTD6tu
                    building_id: 164
                    space_id: 235
                    capacity: 4
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    state: booked
                    booking:
                      id: 115
                      booking_source: api.calendar_sync
                      before_reminder_at:
                      before_reminder_sent_at:
                      start_reminder_at:
                      start_reminder_sent_at:
                      auto_release_at:
                      autoreleased_at:
                      morning_recap_notification_at:
                      morning_recap_notification_sent_at:
                      booked_at:
                      checked_in_at:
                      checked_out_at:
                      canceled_at:
                      released_at:
                      auto_released_at:
                      person:
                        id: 219
                        first_name: Rodger
                        last_name: Beer
                        full_name: Rodger Beer
                        email: rodger.beer@example.org
                        phone: "(126) 797-5592"
                        created_at: '2026-06-22T09:28:57.000Z'
                        updated_at: '2026-06-22T09:28:57.000Z'
                        url: http://www.example.com/api/v1/users/219.json
                  attendees:
                  - id: 217
                    first_name: Ute
                    last_name: Vandervort
                    full_name: Ute Vandervort
                    email: ute.vandervort@example.org
                    phone:
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    url: http://www.example.com/api/v1/users/217.json
                  url: http://www.example.com/api/v1/appointments/85.json
                - id: 86
                  topic: seize collaborative bandwidth
                  start_datetime: '2026-06-24T12:00:00.000Z'
                  end_datetime: '2026-06-24T12:15:00.000Z'
                  meeting_location: Eagle Acres
                  organizer:
                    id: 220
                    first_name: Bobbie
                    last_name: Skiles
                    full_name: Bobbie Skiles
                    email: skiles-bobbie@example.org
                    phone: 661-627-1374
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    url: http://www.example.com/api/v1/users/220.json
                  created_at: '2026-06-22T09:28:57.000Z'
                  updated_at: '2026-06-22T09:28:57.000Z'
                  company:
                  recurring_appointment:
                    id: 5
                    topic: engineer scalable infrastructures
                    created_at: '2026-06-22T09:28:57.097Z'
                    updated_at: '2026-06-22T09:28:57.097Z'
                  meeting_rooms:
                  - id: 75
                    name: Eagle Court
                    provider_id: LPw93mD6nqzTD6tu
                    building_id: 164
                    space_id: 235
                    capacity: 4
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    state: booked
                    booking:
                      id: 116
                      booking_source: api.calendar_sync
                      before_reminder_at:
                      before_reminder_sent_at:
                      start_reminder_at:
                      start_reminder_sent_at:
                      auto_release_at:
                      autoreleased_at:
                      morning_recap_notification_at:
                      morning_recap_notification_sent_at:
                      booked_at:
                      checked_in_at:
                      checked_out_at:
                      canceled_at:
                      released_at:
                      auto_released_at:
                      person:
                        id: 221
                        first_name: Hazel
                        last_name: Heidenreich
                        full_name: Hazel Heidenreich
                        email: heidenreich-hazel@example.org
                        phone: 220-357-2176
                        created_at: '2026-06-22T09:28:57.000Z'
                        updated_at: '2026-06-22T09:28:57.000Z'
                        url: http://www.example.com/api/v1/users/221.json
                  attendees:
                  - id: 217
                    first_name: Ute
                    last_name: Vandervort
                    full_name: Ute Vandervort
                    email: ute.vandervort@example.org
                    phone:
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    url: http://www.example.com/api/v1/users/217.json
                  url: http://www.example.com/api/v1/appointments/86.json
                - id: 87
                  topic: recontextualize 24/365 synergies
                  start_datetime: '2026-06-23T12:00:00.000Z'
                  end_datetime: '2026-06-23T12:05:00.000Z'
                  meeting_location: Eagle Court
                  organizer:
                    id: 222
                    first_name: Francina
                    last_name: Schneider
                    full_name: Francina Schneider
                    email: francina.schneider@example.org
                    phone:
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    url: http://www.example.com/api/v1/users/222.json
                  created_at: '2026-06-22T09:28:57.000Z'
                  updated_at: '2026-06-22T09:28:57.000Z'
                  company:
                  recurring_appointment:
                    id: 5
                    topic: engineer scalable infrastructures
                    created_at: '2026-06-22T09:28:57.097Z'
                    updated_at: '2026-06-22T09:28:57.097Z'
                  meeting_rooms:
                  - id: 75
                    name: Eagle Court
                    provider_id: LPw93mD6nqzTD6tu
                    building_id: 164
                    space_id: 235
                    capacity: 4
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    state: booked
                    booking:
                      id: 117
                      booking_source: api.calendar_sync
                      before_reminder_at:
                      before_reminder_sent_at:
                      start_reminder_at:
                      start_reminder_sent_at:
                      auto_release_at:
                      autoreleased_at:
                      morning_recap_notification_at:
                      morning_recap_notification_sent_at:
                      booked_at:
                      checked_in_at:
                      checked_out_at:
                      canceled_at:
                      released_at:
                      auto_released_at:
                      person:
                        id: 223
                        first_name: Clarisa
                        last_name: Christiansen
                        full_name: Clarisa Christiansen
                        email: christiansen_clarisa@example.org
                        phone:
                        created_at: '2026-06-22T09:28:57.000Z'
                        updated_at: '2026-06-22T09:28:57.000Z'
                        url: http://www.example.com/api/v1/users/223.json
                  attendees:
                  - id: 217
                    first_name: Ute
                    last_name: Vandervort
                    full_name: Ute Vandervort
                    email: ute.vandervort@example.org
                    phone:
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    url: http://www.example.com/api/v1/users/217.json
                  url: http://www.example.com/api/v1/appointments/87.json
                occurrences:
                - id: 85
                  topic: morph compelling methodologies
                  start_datetime: '2026-06-25T12:00:00.000Z'
                  end_datetime: '2026-06-25T12:05:00.000Z'
                  meeting_location: Summer Heights
                  organizer:
                    id: 218
                    first_name: Hollis
                    last_name: Hirthe
                    full_name: Hollis Hirthe
                    email: hirthe.hollis@example.org
                    phone: "(464) 225-0744"
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    url: http://www.example.com/api/v1/users/218.json
                  created_at: '2026-06-22T09:28:57.000Z'
                  updated_at: '2026-06-22T09:28:57.000Z'
                  company:
                  recurring_appointment:
                    id: 5
                    topic: engineer scalable infrastructures
                    created_at: '2026-06-22T09:28:57.097Z'
                    updated_at: '2026-06-22T09:28:57.097Z'
                  meeting_rooms:
                  - id: 75
                    name: Eagle Court
                    provider_id: LPw93mD6nqzTD6tu
                    building_id: 164
                    space_id: 235
                    capacity: 4
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    state: booked
                    booking:
                      id: 115
                      booking_source: api.calendar_sync
                      before_reminder_at:
                      before_reminder_sent_at:
                      start_reminder_at:
                      start_reminder_sent_at:
                      auto_release_at:
                      autoreleased_at:
                      morning_recap_notification_at:
                      morning_recap_notification_sent_at:
                      booked_at:
                      checked_in_at:
                      checked_out_at:
                      canceled_at:
                      released_at:
                      auto_released_at:
                      person:
                        id: 219
                        first_name: Rodger
                        last_name: Beer
                        full_name: Rodger Beer
                        email: rodger.beer@example.org
                        phone: "(126) 797-5592"
                        created_at: '2026-06-22T09:28:57.000Z'
                        updated_at: '2026-06-22T09:28:57.000Z'
                        url: http://www.example.com/api/v1/users/219.json
                  attendees:
                  - id: 217
                    first_name: Ute
                    last_name: Vandervort
                    full_name: Ute Vandervort
                    email: ute.vandervort@example.org
                    phone:
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    url: http://www.example.com/api/v1/users/217.json
                  url: http://www.example.com/api/v1/appointments/85.json
                - id: 86
                  topic: seize collaborative bandwidth
                  start_datetime: '2026-06-24T12:00:00.000Z'
                  end_datetime: '2026-06-24T12:15:00.000Z'
                  meeting_location: Eagle Acres
                  organizer:
                    id: 220
                    first_name: Bobbie
                    last_name: Skiles
                    full_name: Bobbie Skiles
                    email: skiles-bobbie@example.org
                    phone: 661-627-1374
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    url: http://www.example.com/api/v1/users/220.json
                  created_at: '2026-06-22T09:28:57.000Z'
                  updated_at: '2026-06-22T09:28:57.000Z'
                  company:
                  recurring_appointment:
                    id: 5
                    topic: engineer scalable infrastructures
                    created_at: '2026-06-22T09:28:57.097Z'
                    updated_at: '2026-06-22T09:28:57.097Z'
                  meeting_rooms:
                  - id: 75
                    name: Eagle Court
                    provider_id: LPw93mD6nqzTD6tu
                    building_id: 164
                    space_id: 235
                    capacity: 4
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    state: booked
                    booking:
                      id: 116
                      booking_source: api.calendar_sync
                      before_reminder_at:
                      before_reminder_sent_at:
                      start_reminder_at:
                      start_reminder_sent_at:
                      auto_release_at:
                      autoreleased_at:
                      morning_recap_notification_at:
                      morning_recap_notification_sent_at:
                      booked_at:
                      checked_in_at:
                      checked_out_at:
                      canceled_at:
                      released_at:
                      auto_released_at:
                      person:
                        id: 221
                        first_name: Hazel
                        last_name: Heidenreich
                        full_name: Hazel Heidenreich
                        email: heidenreich-hazel@example.org
                        phone: 220-357-2176
                        created_at: '2026-06-22T09:28:57.000Z'
                        updated_at: '2026-06-22T09:28:57.000Z'
                        url: http://www.example.com/api/v1/users/221.json
                  attendees:
                  - id: 217
                    first_name: Ute
                    last_name: Vandervort
                    full_name: Ute Vandervort
                    email: ute.vandervort@example.org
                    phone:
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    url: http://www.example.com/api/v1/users/217.json
                  url: http://www.example.com/api/v1/appointments/86.json
                - id: 87
                  topic: recontextualize 24/365 synergies
                  start_datetime: '2026-06-23T12:00:00.000Z'
                  end_datetime: '2026-06-23T12:05:00.000Z'
                  meeting_location: Eagle Court
                  organizer:
                    id: 222
                    first_name: Francina
                    last_name: Schneider
                    full_name: Francina Schneider
                    email: francina.schneider@example.org
                    phone:
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    url: http://www.example.com/api/v1/users/222.json
                  created_at: '2026-06-22T09:28:57.000Z'
                  updated_at: '2026-06-22T09:28:57.000Z'
                  company:
                  recurring_appointment:
                    id: 5
                    topic: engineer scalable infrastructures
                    created_at: '2026-06-22T09:28:57.097Z'
                    updated_at: '2026-06-22T09:28:57.097Z'
                  meeting_rooms:
                  - id: 75
                    name: Eagle Court
                    provider_id: LPw93mD6nqzTD6tu
                    building_id: 164
                    space_id: 235
                    capacity: 4
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    state: booked
                    booking:
                      id: 117
                      booking_source: api.calendar_sync
                      before_reminder_at:
                      before_reminder_sent_at:
                      start_reminder_at:
                      start_reminder_sent_at:
                      auto_release_at:
                      autoreleased_at:
                      morning_recap_notification_at:
                      morning_recap_notification_sent_at:
                      booked_at:
                      checked_in_at:
                      checked_out_at:
                      canceled_at:
                      released_at:
                      auto_released_at:
                      person:
                        id: 223
                        first_name: Clarisa
                        last_name: Christiansen
                        full_name: Clarisa Christiansen
                        email: christiansen_clarisa@example.org
                        phone:
                        created_at: '2026-06-22T09:28:57.000Z'
                        updated_at: '2026-06-22T09:28:57.000Z'
                        url: http://www.example.com/api/v1/users/223.json
                  attendees:
                  - id: 217
                    first_name: Ute
                    last_name: Vandervort
                    full_name: Ute Vandervort
                    email: ute.vandervort@example.org
                    phone:
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    url: http://www.example.com/api/v1/users/217.json
                  url: http://www.example.com/api/v1/appointments/87.json
                cutoff:
                  date:
                  past: 0
                  future: 3
    delete:
      summary: Delete occurrences for a Recurring Appointment
      tags:
      - Recurring Appointments
      security:
      - comeenOauth:
        - appointments:write
      parameters:
      - name: cutoff_date
        in: query
        schema:
          type: string
          format: date-time
        description: Cutoff date for occurrences
        required: true
      responses:
        '204':
          description: successful
  "/api/v1/recurring_appointments/{id}/occurences":
    parameters:
    - name: id
      in: path
      description: Recurring Appointment id
      required: true
      schema:
        type: integer
    get:
      summary: List occurrences for a Recurring Appointment
      tags:
      - Recurring Appointments
      security:
      - comeenOauth:
        - appointments:read
      parameters:
      - name: start_date
        in: query
        schema:
          type: string
          format: date-time
        description: Start date bound for occurrences fetching
        required: false
      - name: end_date
        in: query
        schema:
          type: string
          format: date-time
        description: End date bound for occurrences fetching
        required: false
      - name: page
        in: query
        schema:
          type: integer
        description: Page number for paginated results
        required: false
      - name: per_page
        in: query
        schema:
          type: integer
          max: 200
        description: Number of results per page
        required: false
      - name: cutoff_date
        in: query
        schema:
          type: string
          format: date-time
        description: Cutoff date for occurrences - any occurrence before this date
          is considered past
        required: false
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                occurences:
                - id: 88
                  topic: synthesize scalable action-items
                  start_datetime: '2026-06-26T12:00:00.000Z'
                  end_datetime: '2026-06-26T12:05:00.000Z'
                  meeting_location: Park Estates
                  organizer:
                    id: 226
                    first_name: Twana
                    last_name: O'Kon
                    full_name: Twana O'Kon
                    email: twana-kon-o@example.org
                    phone: 1-941-173-6281
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    url: http://www.example.com/api/v1/users/226.json
                  created_at: '2026-06-22T09:28:57.000Z'
                  updated_at: '2026-06-22T09:28:57.000Z'
                  company:
                  recurring_appointment:
                    id: 7
                    topic: disintermediate compelling e-business
                    created_at: '2026-06-22T09:28:57.550Z'
                    updated_at: '2026-06-22T09:28:57.550Z'
                  meeting_rooms:
                  - id: 77
                    name: Willow Estates
                    provider_id: ks7r9KsQAFx8B6hK
                    building_id: 168
                    space_id: 241
                    capacity: 6
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    state: booked
                    booking:
                      id: 118
                      booking_source: api.calendar_sync
                      before_reminder_at:
                      before_reminder_sent_at:
                      start_reminder_at:
                      start_reminder_sent_at:
                      auto_release_at:
                      autoreleased_at:
                      morning_recap_notification_at:
                      morning_recap_notification_sent_at:
                      booked_at:
                      checked_in_at:
                      checked_out_at:
                      canceled_at:
                      released_at:
                      auto_released_at:
                      person:
                        id: 227
                        first_name: Sparkle
                        last_name: Wunsch
                        full_name: Sparkle Wunsch
                        email: wunsch-sparkle@example.org
                        phone: 182.344.8116
                        created_at: '2026-06-22T09:28:57.000Z'
                        updated_at: '2026-06-22T09:28:57.000Z'
                        url: http://www.example.com/api/v1/users/227.json
                  attendees:
                  - id: 225
                    first_name: Vincenza
                    last_name: Crist
                    full_name: Vincenza Crist
                    email: vincenza-crist@example.org
                    phone: "(424) 514-6046"
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    url: http://www.example.com/api/v1/users/225.json
                  url: http://www.example.com/api/v1/appointments/88.json
                - id: 89
                  topic: redefine dot-com initiatives
                  start_datetime: '2026-06-23T12:00:00.000Z'
                  end_datetime: '2026-06-23T12:45:00.000Z'
                  meeting_location: Paradise Oaks
                  organizer:
                    id: 228
                    first_name: Curtis
                    last_name: Walsh
                    full_name: Curtis Walsh
                    email: curtis.walsh@example.org
                    phone: 1-864-322-1131
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    url: http://www.example.com/api/v1/users/228.json
                  created_at: '2026-06-22T09:28:57.000Z'
                  updated_at: '2026-06-22T09:28:57.000Z'
                  company:
                  recurring_appointment:
                    id: 7
                    topic: disintermediate compelling e-business
                    created_at: '2026-06-22T09:28:57.550Z'
                    updated_at: '2026-06-22T09:28:57.550Z'
                  meeting_rooms:
                  - id: 77
                    name: Willow Estates
                    provider_id: ks7r9KsQAFx8B6hK
                    building_id: 168
                    space_id: 241
                    capacity: 6
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    state: booked
                    booking:
                      id: 119
                      booking_source: api.calendar_sync
                      before_reminder_at:
                      before_reminder_sent_at:
                      start_reminder_at:
                      start_reminder_sent_at:
                      auto_release_at:
                      autoreleased_at:
                      morning_recap_notification_at:
                      morning_recap_notification_sent_at:
                      booked_at:
                      checked_in_at:
                      checked_out_at:
                      canceled_at:
                      released_at:
                      auto_released_at:
                      person:
                        id: 229
                        first_name: Wei
                        last_name: Hickle
                        full_name: Wei Hickle
                        email: wei-hickle@example.org
                        phone:
                        created_at: '2026-06-22T09:28:57.000Z'
                        updated_at: '2026-06-22T09:28:57.000Z'
                        url: http://www.example.com/api/v1/users/229.json
                  attendees:
                  - id: 225
                    first_name: Vincenza
                    last_name: Crist
                    full_name: Vincenza Crist
                    email: vincenza-crist@example.org
                    phone: "(424) 514-6046"
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    url: http://www.example.com/api/v1/users/225.json
                  url: http://www.example.com/api/v1/appointments/89.json
                - id: 90
                  topic: optimize value-added partnerships
                  start_datetime: '2026-06-25T12:00:00.000Z'
                  end_datetime: '2026-06-25T12:45:00.000Z'
                  meeting_location: University Oaks
                  organizer:
                    id: 230
                    first_name: Lorna
                    last_name: Marquardt
                    full_name: Lorna Marquardt
                    email: marquardt.lorna@example.org
                    phone:
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    url: http://www.example.com/api/v1/users/230.json
                  created_at: '2026-06-22T09:28:57.000Z'
                  updated_at: '2026-06-22T09:28:57.000Z'
                  company:
                  recurring_appointment:
                    id: 7
                    topic: disintermediate compelling e-business
                    created_at: '2026-06-22T09:28:57.550Z'
                    updated_at: '2026-06-22T09:28:57.550Z'
                  meeting_rooms:
                  - id: 77
                    name: Willow Estates
                    provider_id: ks7r9KsQAFx8B6hK
                    building_id: 168
                    space_id: 241
                    capacity: 6
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    state: booked
                    booking:
                      id: 120
                      booking_source: api.calendar_sync
                      before_reminder_at:
                      before_reminder_sent_at:
                      start_reminder_at:
                      start_reminder_sent_at:
                      auto_release_at:
                      autoreleased_at:
                      morning_recap_notification_at:
                      morning_recap_notification_sent_at:
                      booked_at:
                      checked_in_at:
                      checked_out_at:
                      canceled_at:
                      released_at:
                      auto_released_at:
                      person:
                        id: 231
                        first_name: Vicente
                        last_name: Heathcote
                        full_name: Vicente Heathcote
                        email: vicente.heathcote@example.org
                        phone:
                        created_at: '2026-06-22T09:28:57.000Z'
                        updated_at: '2026-06-22T09:28:57.000Z'
                        url: http://www.example.com/api/v1/users/231.json
                  attendees:
                  - id: 225
                    first_name: Vincenza
                    last_name: Crist
                    full_name: Vincenza Crist
                    email: vincenza-crist@example.org
                    phone: "(424) 514-6046"
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    url: http://www.example.com/api/v1/users/225.json
                  url: http://www.example.com/api/v1/appointments/90.json
                occurrences:
                - id: 88
                  topic: synthesize scalable action-items
                  start_datetime: '2026-06-26T12:00:00.000Z'
                  end_datetime: '2026-06-26T12:05:00.000Z'
                  meeting_location: Park Estates
                  organizer:
                    id: 226
                    first_name: Twana
                    last_name: O'Kon
                    full_name: Twana O'Kon
                    email: twana-kon-o@example.org
                    phone: 1-941-173-6281
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    url: http://www.example.com/api/v1/users/226.json
                  created_at: '2026-06-22T09:28:57.000Z'
                  updated_at: '2026-06-22T09:28:57.000Z'
                  company:
                  recurring_appointment:
                    id: 7
                    topic: disintermediate compelling e-business
                    created_at: '2026-06-22T09:28:57.550Z'
                    updated_at: '2026-06-22T09:28:57.550Z'
                  meeting_rooms:
                  - id: 77
                    name: Willow Estates
                    provider_id: ks7r9KsQAFx8B6hK
                    building_id: 168
                    space_id: 241
                    capacity: 6
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    state: booked
                    booking:
                      id: 118
                      booking_source: api.calendar_sync
                      before_reminder_at:
                      before_reminder_sent_at:
                      start_reminder_at:
                      start_reminder_sent_at:
                      auto_release_at:
                      autoreleased_at:
                      morning_recap_notification_at:
                      morning_recap_notification_sent_at:
                      booked_at:
                      checked_in_at:
                      checked_out_at:
                      canceled_at:
                      released_at:
                      auto_released_at:
                      person:
                        id: 227
                        first_name: Sparkle
                        last_name: Wunsch
                        full_name: Sparkle Wunsch
                        email: wunsch-sparkle@example.org
                        phone: 182.344.8116
                        created_at: '2026-06-22T09:28:57.000Z'
                        updated_at: '2026-06-22T09:28:57.000Z'
                        url: http://www.example.com/api/v1/users/227.json
                  attendees:
                  - id: 225
                    first_name: Vincenza
                    last_name: Crist
                    full_name: Vincenza Crist
                    email: vincenza-crist@example.org
                    phone: "(424) 514-6046"
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    url: http://www.example.com/api/v1/users/225.json
                  url: http://www.example.com/api/v1/appointments/88.json
                - id: 89
                  topic: redefine dot-com initiatives
                  start_datetime: '2026-06-23T12:00:00.000Z'
                  end_datetime: '2026-06-23T12:45:00.000Z'
                  meeting_location: Paradise Oaks
                  organizer:
                    id: 228
                    first_name: Curtis
                    last_name: Walsh
                    full_name: Curtis Walsh
                    email: curtis.walsh@example.org
                    phone: 1-864-322-1131
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    url: http://www.example.com/api/v1/users/228.json
                  created_at: '2026-06-22T09:28:57.000Z'
                  updated_at: '2026-06-22T09:28:57.000Z'
                  company:
                  recurring_appointment:
                    id: 7
                    topic: disintermediate compelling e-business
                    created_at: '2026-06-22T09:28:57.550Z'
                    updated_at: '2026-06-22T09:28:57.550Z'
                  meeting_rooms:
                  - id: 77
                    name: Willow Estates
                    provider_id: ks7r9KsQAFx8B6hK
                    building_id: 168
                    space_id: 241
                    capacity: 6
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    state: booked
                    booking:
                      id: 119
                      booking_source: api.calendar_sync
                      before_reminder_at:
                      before_reminder_sent_at:
                      start_reminder_at:
                      start_reminder_sent_at:
                      auto_release_at:
                      autoreleased_at:
                      morning_recap_notification_at:
                      morning_recap_notification_sent_at:
                      booked_at:
                      checked_in_at:
                      checked_out_at:
                      canceled_at:
                      released_at:
                      auto_released_at:
                      person:
                        id: 229
                        first_name: Wei
                        last_name: Hickle
                        full_name: Wei Hickle
                        email: wei-hickle@example.org
                        phone:
                        created_at: '2026-06-22T09:28:57.000Z'
                        updated_at: '2026-06-22T09:28:57.000Z'
                        url: http://www.example.com/api/v1/users/229.json
                  attendees:
                  - id: 225
                    first_name: Vincenza
                    last_name: Crist
                    full_name: Vincenza Crist
                    email: vincenza-crist@example.org
                    phone: "(424) 514-6046"
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    url: http://www.example.com/api/v1/users/225.json
                  url: http://www.example.com/api/v1/appointments/89.json
                - id: 90
                  topic: optimize value-added partnerships
                  start_datetime: '2026-06-25T12:00:00.000Z'
                  end_datetime: '2026-06-25T12:45:00.000Z'
                  meeting_location: University Oaks
                  organizer:
                    id: 230
                    first_name: Lorna
                    last_name: Marquardt
                    full_name: Lorna Marquardt
                    email: marquardt.lorna@example.org
                    phone:
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    url: http://www.example.com/api/v1/users/230.json
                  created_at: '2026-06-22T09:28:57.000Z'
                  updated_at: '2026-06-22T09:28:57.000Z'
                  company:
                  recurring_appointment:
                    id: 7
                    topic: disintermediate compelling e-business
                    created_at: '2026-06-22T09:28:57.550Z'
                    updated_at: '2026-06-22T09:28:57.550Z'
                  meeting_rooms:
                  - id: 77
                    name: Willow Estates
                    provider_id: ks7r9KsQAFx8B6hK
                    building_id: 168
                    space_id: 241
                    capacity: 6
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    state: booked
                    booking:
                      id: 120
                      booking_source: api.calendar_sync
                      before_reminder_at:
                      before_reminder_sent_at:
                      start_reminder_at:
                      start_reminder_sent_at:
                      auto_release_at:
                      autoreleased_at:
                      morning_recap_notification_at:
                      morning_recap_notification_sent_at:
                      booked_at:
                      checked_in_at:
                      checked_out_at:
                      canceled_at:
                      released_at:
                      auto_released_at:
                      person:
                        id: 231
                        first_name: Vicente
                        last_name: Heathcote
                        full_name: Vicente Heathcote
                        email: vicente.heathcote@example.org
                        phone:
                        created_at: '2026-06-22T09:28:57.000Z'
                        updated_at: '2026-06-22T09:28:57.000Z'
                        url: http://www.example.com/api/v1/users/231.json
                  attendees:
                  - id: 225
                    first_name: Vincenza
                    last_name: Crist
                    full_name: Vincenza Crist
                    email: vincenza-crist@example.org
                    phone: "(424) 514-6046"
                    created_at: '2026-06-22T09:28:57.000Z'
                    updated_at: '2026-06-22T09:28:57.000Z'
                    url: http://www.example.com/api/v1/users/225.json
                  url: http://www.example.com/api/v1/appointments/90.json
                cutoff:
                  date:
                  past: 0
                  future: 3
    delete:
      summary: Delete occurrences for a Recurring Appointment
      tags:
      - Recurring Appointments
      security:
      - comeenOauth:
        - appointments:write
      parameters:
      - name: cutoff_date
        in: query
        schema:
          type: string
          format: date-time
        description: Cutoff date for occurrences
        required: true
      responses:
        '204':
          description: successful
  "/api/v1/meeting_room_auto_releases/{id}":
    parameters:
    - name: id
      in: path
      description: Room release Policy id
      required: true
      schema:
        type: integer
    get:
      summary: Show Room release Policy
      description: Provide direct access to a room policy with its ID
      tags:
      - Room release Policies
      security:
      - comeenOauth:
        - room_release_policies:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 24
                auto_release: false
                auto_release_after: 10
                auto_reminder: false
                reminder_before: 30
                reminder_before_checkin: true
                reminder_after: 5
                reminder_after_checkin: true
                morning_recap_notification: false
                morning_recap_hour: 0
                morning_recap_checkin: false
                max_recurrent_failures: 10
                autorelease_adds_failures: false
                manual_release_adds_failures: false
                created_at: '2026-06-22T09:28:58.212Z'
                updated_at: '2026-06-22T09:28:58.212Z'
                url: http://www.example.com/api/v1/meeting_room_auto_releases/24.json
  "/api/v1/meeting_rooms/{meeting_room_id}/room_policy":
    parameters:
    - name: meeting_room_id
      in: path
      description: Meeting Room id
      required: true
      schema:
        type: integer
    get:
      summary: Get Room release Policy for a Meeting Room
      tags:
      - Room release Policies
      - Meeting Rooms
      security:
      - comeenOauth:
        - room_release_policies:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 25
                auto_release: false
                auto_release_after: 10
                auto_reminder: false
                reminder_before: 30
                reminder_before_checkin: true
                reminder_after: 5
                reminder_after_checkin: true
                morning_recap_notification: false
                morning_recap_hour: 0
                morning_recap_checkin: false
                max_recurrent_failures: 10
                autorelease_adds_failures: false
                manual_release_adds_failures: false
                created_at: '2026-06-22T09:28:58.295Z'
                updated_at: '2026-06-22T09:28:58.295Z'
                url: http://www.example.com/api/v1/meeting_room_auto_releases/25.json
              schema:
                "$ref": "#/components/schemas/room_policy"
    post:
      summary: Create Room release Policy for a Meeting Room
      tags:
      - Room release Policies
      - Meeting Rooms
      security:
      - comeenOauth:
        - room_release_policies:write
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                id: 26
                auto_release: false
                auto_release_after: 10
                auto_reminder: false
                reminder_before: 30
                reminder_before_checkin: true
                reminder_after: 5
                reminder_after_checkin: true
                morning_recap_notification: false
                morning_recap_hour: 0
                morning_recap_checkin: false
                max_recurrent_failures: 10
                autorelease_adds_failures: false
                manual_release_adds_failures: false
                created_at: '2026-06-22T09:28:58.413Z'
                updated_at: '2026-06-22T09:28:58.413Z'
                url: http://www.example.com/api/v1/meeting_room_auto_releases/26.json
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                room_auto_release:
                  "$ref": "#/components/schemas/room_policy_params"
    put:
      summary: Update Room release Policy for Meeting Room
      tags:
      - Room release Policies
      - Meeting Rooms
      security:
      - comeenOauth:
        - room_release_policies:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                room_auto_release:
                  "$ref": "#/components/schemas/room_policy_params"
    patch:
      summary: Update Room release Policy for Meeting Room
      tags:
      - Room release Policies
      - Meeting Rooms
      security:
      - comeenOauth:
        - room_release_policies:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                room_auto_release:
                  "$ref": "#/components/schemas/room_policy_params"
    delete:
      summary: Delete room Release policy for a Meeting Room
      tags:
      - Room release Policies
      - Meeting Rooms
      security:
      - comeenOauth:
        - room_release_policies:write
      responses:
        '204':
          description: successful
  "/api/v1/buildings/{building_id}/room_policy":
    parameters:
    - name: building_id
      in: path
      description: Building id
      required: true
      schema:
        type: integer
    get:
      summary: Get Room release Policy for a Building
      tags:
      - Room release Policies
      - Buildings
      security:
      - comeenOauth:
        - room_release_policies:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 30
                auto_release: false
                auto_release_after: 10
                auto_reminder: false
                reminder_before: 30
                reminder_before_checkin: true
                reminder_after: 5
                reminder_after_checkin: true
                morning_recap_notification: false
                morning_recap_hour: 0
                morning_recap_checkin: false
                max_recurrent_failures: 10
                autorelease_adds_failures: false
                manual_release_adds_failures: false
                created_at: '2026-06-22T09:28:58.668Z'
                updated_at: '2026-06-22T09:28:58.668Z'
                url: http://www.example.com/api/v1/meeting_room_auto_releases/30.json
              schema:
                "$ref": "#/components/schemas/room_policy"
    post:
      summary: Create Room release Policy for a Building
      tags:
      - Room release Policies
      - Buildings
      security:
      - comeenOauth:
        - room_release_policies:write
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                id: 31
                auto_release: false
                auto_release_after: 10
                auto_reminder: false
                reminder_before: 30
                reminder_before_checkin: true
                reminder_after: 5
                reminder_after_checkin: true
                morning_recap_notification: false
                morning_recap_hour: 0
                morning_recap_checkin: false
                max_recurrent_failures: 10
                autorelease_adds_failures: false
                manual_release_adds_failures: false
                created_at: '2026-06-22T09:28:58.742Z'
                updated_at: '2026-06-22T09:28:58.742Z'
                url: http://www.example.com/api/v1/meeting_room_auto_releases/31.json
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                room_auto_release:
                  "$ref": "#/components/schemas/room_policy_params"
    put:
      summary: Update Room release Policy for Building
      tags:
      - Room release Policies
      - Buildings
      security:
      - comeenOauth:
        - room_release_policies:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                room_auto_release:
                  "$ref": "#/components/schemas/room_policy_params"
    patch:
      summary: Update Room release Policy for Building
      tags:
      - Room release Policies
      - Buildings
      security:
      - comeenOauth:
        - room_release_policies:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                room_auto_release:
                  "$ref": "#/components/schemas/room_policy_params"
    delete:
      summary: Delete room Release policy for a Building
      tags:
      - Room release Policies
      - Buildings
      security:
      - comeenOauth:
        - room_release_policies:write
      responses:
        '204':
          description: successful
  "/api/v1/user_groups/{user_group_id}/room_policy":
    parameters:
    - name: user_group_id
      in: path
      description: User Group id
      required: true
      schema:
        type: integer
    get:
      summary: Get Room release Policy for a User Group
      tags:
      - Room release Policies
      - User Groups
      security:
      - comeenOauth:
        - room_release_policies:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 35
                auto_release: false
                auto_release_after: 10
                auto_reminder: false
                reminder_before: 30
                reminder_before_checkin: true
                reminder_after: 5
                reminder_after_checkin: true
                morning_recap_notification: false
                morning_recap_hour: 0
                morning_recap_checkin: false
                max_recurrent_failures: 10
                autorelease_adds_failures: false
                manual_release_adds_failures: false
                created_at: '2026-06-22T09:28:58.900Z'
                updated_at: '2026-06-22T09:28:58.900Z'
                url: http://www.example.com/api/v1/meeting_room_auto_releases/35.json
              schema:
                "$ref": "#/components/schemas/room_policy"
    post:
      summary: Create Room release Policy for a User Group
      tags:
      - Room release Policies
      - User Groups
      security:
      - comeenOauth:
        - room_release_policies:write
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                id: 36
                auto_release: false
                auto_release_after: 10
                auto_reminder: false
                reminder_before: 30
                reminder_before_checkin: true
                reminder_after: 5
                reminder_after_checkin: true
                morning_recap_notification: false
                morning_recap_hour: 0
                morning_recap_checkin: false
                max_recurrent_failures: 10
                autorelease_adds_failures: false
                manual_release_adds_failures: false
                created_at: '2026-06-22T09:28:58.983Z'
                updated_at: '2026-06-22T09:28:58.983Z'
                url: http://www.example.com/api/v1/meeting_room_auto_releases/36.json
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                room_auto_release:
                  "$ref": "#/components/schemas/room_policy_params"
    put:
      summary: Update Room release Policy for User Group
      tags:
      - Room release Policies
      - User Groups
      security:
      - comeenOauth:
        - room_release_policies:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                room_auto_release:
                  "$ref": "#/components/schemas/room_policy_params"
    patch:
      summary: Update Room release Policy for User Group
      tags:
      - Room release Policies
      - User Groups
      security:
      - comeenOauth:
        - room_release_policies:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                room_auto_release:
                  "$ref": "#/components/schemas/room_policy_params"
    delete:
      summary: Delete room Release policy for a User Group
      tags:
      - Room release Policies
      - User Groups
      security:
      - comeenOauth:
        - room_release_policies:write
      responses:
        '204':
          description: successful
  "/api/v1/spaces/{space_id}/room_policy":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: Get Room release Policy for a Space
      tags:
      - Room release Policies
      - Spaces
      security:
      - comeenOauth:
        - room_release_policies:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 40
                auto_release: false
                auto_release_after: 10
                auto_reminder: false
                reminder_before: 30
                reminder_before_checkin: true
                reminder_after: 5
                reminder_after_checkin: true
                morning_recap_notification: false
                morning_recap_hour: 0
                morning_recap_checkin: false
                max_recurrent_failures: 10
                autorelease_adds_failures: false
                manual_release_adds_failures: false
                created_at: '2026-06-22T09:28:59.190Z'
                updated_at: '2026-06-22T09:28:59.190Z'
                url: http://www.example.com/api/v1/meeting_room_auto_releases/40.json
              schema:
                "$ref": "#/components/schemas/room_policy"
    post:
      summary: Create Room release Policy for a Space
      tags:
      - Room release Policies
      - Spaces
      security:
      - comeenOauth:
        - room_release_policies:write
      parameters: []
      responses:
        '400':
          description: cannot create a config for a space
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                room_auto_release:
                  "$ref": "#/components/schemas/room_policy_params"
    put:
      summary: Update Room release Policy for a Space
      tags:
      - Room release Policies
      - Spaces
      security:
      - comeenOauth:
        - room_release_policies:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                room_auto_release:
                  "$ref": "#/components/schemas/room_policy_params"
    patch:
      summary: Update Room release Policy for a Space
      tags:
      - Room release Policies
      - Spaces
      security:
      - comeenOauth:
        - room_release_policies:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                room_auto_release:
                  "$ref": "#/components/schemas/room_policy_params"
    delete:
      summary: Delete Room release Policy for a Space
      tags:
      - Room release Policies
      - Spaces
      security:
      - comeenOauth:
        - room_release_policies:write
      responses:
        '400':
          description: cannot delete config for a space
  "/api/v1/seat_auto_releases/{id}.json":
    parameters:
    - name: id
      in: path
      description: Seat Policy id
      required: true
      schema:
        type: integer
    get:
      summary: Show seat release Policy
      tags:
      - Seat release Policies
      security:
      - comeenOauth:
        - seat_release_policies:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 1
                confirmation_reminder: false
                confirmation_reminder_days_before: 1
                confirmation_reminder_hour: 16
                confirmation_auto_release: false
                confirmation_auto_release_timer: 60
                checkin_morning_reminder: true
                checkin_morning_reminder_hour: 10
                checkin_afternoon_reminder: true
                checkin_afternoon_reminder_hour: 14
                checkin_auto_release: false
                checkin_auto_release_timer: 30
                autoreleasable_type: Building
                autoreleasable_id: 187
                created_at: '2026-06-22T09:28:59.396Z'
                updated_at: '2026-06-22T09:28:59.396Z'
        '404':
          description: seat release policy does not exist
  "/api/v1/buildings/{building_id}/seat_policy":
    parameters:
    - name: building_id
      in: path
      description: Building id
      required: true
      schema:
        type: integer
    get:
      summary: Get Seat release Policy for a Building
      tags:
      - Seat release Policies
      - Buildings
      security:
      - comeenOauth:
        - seat_release_policies:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 2
                confirmation_reminder: false
                confirmation_reminder_days_before: 1
                confirmation_reminder_hour: 16
                confirmation_auto_release: false
                confirmation_auto_release_timer: 60
                checkin_morning_reminder: true
                checkin_morning_reminder_hour: 10
                checkin_afternoon_reminder: true
                checkin_afternoon_reminder_hour: 14
                checkin_auto_release: false
                checkin_auto_release_timer: 30
                autoreleasable_type: Building
                autoreleasable_id: 188
                created_at: '2026-06-22T09:28:59.491Z'
                updated_at: '2026-06-22T09:28:59.491Z'
        '404':
          description: resource does not have a seat release policy
    post:
      summary: Create Seat release Policy for a Building
      tags:
      - Seat release Policies
      - Buildings
      security:
      - comeenOauth:
        - seat_release_policies:write
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                id: 3
                confirmation_reminder: false
                confirmation_reminder_days_before: 1
                confirmation_reminder_hour: 16
                confirmation_auto_release: false
                confirmation_auto_release_timer: 60
                checkin_morning_reminder: true
                checkin_morning_reminder_hour: 10
                checkin_afternoon_reminder: true
                checkin_afternoon_reminder_hour: 14
                checkin_auto_release: false
                checkin_auto_release_timer: 30
                autoreleasable_type: Building
                autoreleasable_id: 190
                created_at: '2026-06-22T09:28:59.609Z'
                updated_at: '2026-06-22T09:28:59.609Z'
        '400':
          description: resource already has a seat auto release policy
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                seat_policy:
                  type: object
                  properties:
                    confirmation_reminder:
                      type: boolean
                    confirmation_reminder_days_before:
                      type: integer
                      minimum: 1
                      maximum: 10
                    confirmation_reminder_hour:
                      type: integer
                      minimum: 0
                      maximum: 23
                    confirmation_auto_release:
                      type: boolean
                    confirmation_auto_release_timer:
                      type: integer
                      minimum: 5
                      maximum: 180
                      multipleOf: 5
                    checkin_morning_reminder:
                      type: boolean
                    checkin_morning_reminder_hour:
                      type: integer
                      minimum: 0
                      maximum: 12
                    checkin_afternoon_reminder:
                      type: boolean
                    checkin_afternoon_reminder_hour:
                      type: integer
                      minimum: 12
                      maximum: 23
                    checkin_auto_release:
                      type: boolean
                    checkin_auto_release_timer:
                      type: integer
                      minimum: 5
                      maximum: 180
                      multipleOf: 5
    put:
      summary: Update Seat release Policy for a Building
      tags:
      - Seat release Policies
      - Buildings
      security:
      - comeenOauth:
        - seat_release_policies:write
      parameters: []
      responses:
        '204':
          description: successful
        '404':
          description: resource does not have a seat auto release policy
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                seat_policy:
                  type: object
                  properties:
                    confirmation_reminder:
                      type: boolean
                    confirmation_reminder_days_before:
                      type: integer
                      minimum: 1
                      maximum: 10
                    confirmation_reminder_hour:
                      type: integer
                      minimum: 0
                      maximum: 23
                    confirmation_auto_release:
                      type: boolean
                    confirmation_auto_release_timer:
                      type: integer
                      minimum: 5
                      maximum: 180
                      multipleOf: 5
                    checkin_morning_reminder:
                      type: boolean
                    checkin_morning_reminder_hour:
                      type: integer
                      minimum: 0
                      maximum: 12
                    checkin_afternoon_reminder:
                      type: boolean
                    checkin_afternoon_reminder_hour:
                      type: integer
                      minimum: 12
                      maximum: 23
                    checkin_auto_release:
                      type: boolean
                    checkin_auto_release_timer:
                      type: integer
                      minimum: 5
                      maximum: 180
                      multipleOf: 5
    patch:
      summary: Update Seat release Policy for a Building
      tags:
      - Seat release Policies
      - Buildings
      security:
      - comeenOauth:
        - seat_release_policies:write
      parameters: []
      responses:
        '204':
          description: successful
        '404':
          description: resource does not have a seat auto release policy
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                seat_policy:
                  type: object
                  properties:
                    confirmation_reminder:
                      type: boolean
                    confirmation_reminder_days_before:
                      type: integer
                      minimum: 1
                      maximum: 10
                    confirmation_reminder_hour:
                      type: integer
                      minimum: 0
                      maximum: 23
                    confirmation_auto_release:
                      type: boolean
                    confirmation_auto_release_timer:
                      type: integer
                      minimum: 5
                      maximum: 180
                      multipleOf: 5
                    checkin_morning_reminder:
                      type: boolean
                    checkin_morning_reminder_hour:
                      type: integer
                      minimum: 0
                      maximum: 12
                    checkin_afternoon_reminder:
                      type: boolean
                    checkin_afternoon_reminder_hour:
                      type: integer
                      minimum: 12
                      maximum: 23
                    checkin_auto_release:
                      type: boolean
                    checkin_auto_release_timer:
                      type: integer
                      minimum: 5
                      maximum: 180
                      multipleOf: 5
    delete:
      summary: Delete Seat release Policy for a Building
      tags:
      - Seat release Policies
      - Buildings
      security:
      - comeenOauth:
        - seat_release_policies:write
      responses:
        '204':
          description: successful
        '404':
          description: resource does not have a seat auto release policy
  "/api/v1/spaces/{space_id}/seat_policy":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: Get Seat release Policy for a Space
      tags:
      - Seat release Policies
      - Spaces
      security:
      - comeenOauth:
        - seat_release_policies:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 8
                confirmation_reminder: false
                confirmation_reminder_days_before: 1
                confirmation_reminder_hour: 16
                confirmation_auto_release: false
                confirmation_auto_release_timer: 60
                checkin_morning_reminder: true
                checkin_morning_reminder_hour: 10
                checkin_afternoon_reminder: true
                checkin_afternoon_reminder_hour: 14
                checkin_auto_release: false
                checkin_auto_release_timer: 30
                autoreleasable_type: Space
                autoreleasable_id: 290
                created_at: '2026-06-22T09:28:59.985Z'
                updated_at: '2026-06-22T09:28:59.985Z'
    post:
      summary: Create Seat release Policy for a Space
      tags:
      - Seat release Policies
      - Spaces
      security:
      - comeenOauth:
        - seat_release_policies:write
      parameters: []
      responses:
        '400':
          description: cannot create a seat release policy for a space
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                seat_policy:
                  type: object
                  properties:
                    confirmation_reminder:
                      type: boolean
                    confirmation_reminder_days_before:
                      type: integer
                      minimum: 1
                      maximum: 10
                    confirmation_reminder_hour:
                      type: integer
                      minimum: 0
                      maximum: 23
                    confirmation_auto_release:
                      type: boolean
                    confirmation_auto_release_timer:
                      type: integer
                      minimum: 5
                      maximum: 180
                      multipleOf: 5
                    checkin_morning_reminder:
                      type: boolean
                    checkin_morning_reminder_hour:
                      type: integer
                      minimum: 0
                      maximum: 12
                    checkin_afternoon_reminder:
                      type: boolean
                    checkin_afternoon_reminder_hour:
                      type: integer
                      minimum: 12
                      maximum: 23
                    checkin_auto_release:
                      type: boolean
                    checkin_auto_release_timer:
                      type: integer
                      minimum: 5
                      maximum: 180
                      multipleOf: 5
    put:
      summary: Update Seat release Policy for a Space
      tags:
      - Seat release Policies
      - Spaces
      security:
      - comeenOauth:
        - seat_release_policies:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                seat_policy:
                  type: object
                  properties:
                    confirmation_reminder:
                      type: boolean
                    confirmation_reminder_days_before:
                      type: integer
                      minimum: 1
                      maximum: 10
                    confirmation_reminder_hour:
                      type: integer
                      minimum: 0
                      maximum: 23
                    confirmation_auto_release:
                      type: boolean
                    confirmation_auto_release_timer:
                      type: integer
                      minimum: 5
                      maximum: 180
                      multipleOf: 5
                    checkin_morning_reminder:
                      type: boolean
                    checkin_morning_reminder_hour:
                      type: integer
                      minimum: 0
                      maximum: 12
                    checkin_afternoon_reminder:
                      type: boolean
                    checkin_afternoon_reminder_hour:
                      type: integer
                      minimum: 12
                      maximum: 23
                    checkin_auto_release:
                      type: boolean
                    checkin_auto_release_timer:
                      type: integer
                      minimum: 5
                      maximum: 180
                      multipleOf: 5
    patch:
      summary: Update Seat release Policy for a Space
      tags:
      - Seat release Policies
      - Spaces
      security:
      - comeenOauth:
        - seat_release_policies:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                seat_policy:
                  type: object
                  properties:
                    confirmation_reminder:
                      type: boolean
                    confirmation_reminder_days_before:
                      type: integer
                      minimum: 1
                      maximum: 10
                    confirmation_reminder_hour:
                      type: integer
                      minimum: 0
                      maximum: 23
                    confirmation_auto_release:
                      type: boolean
                    confirmation_auto_release_timer:
                      type: integer
                      minimum: 5
                      maximum: 180
                      multipleOf: 5
                    checkin_morning_reminder:
                      type: boolean
                    checkin_morning_reminder_hour:
                      type: integer
                      minimum: 0
                      maximum: 12
                    checkin_afternoon_reminder:
                      type: boolean
                    checkin_afternoon_reminder_hour:
                      type: integer
                      minimum: 12
                      maximum: 23
                    checkin_auto_release:
                      type: boolean
                    checkin_auto_release_timer:
                      type: integer
                      minimum: 5
                      maximum: 180
                      multipleOf: 5
    delete:
      summary: Delete Seat release Policy for a Space
      tags:
      - Seat release Policies
      - Spaces
      security:
      - comeenOauth:
        - seat_release_policies:write
      responses:
        '400':
          description: cannot delete seat policy for a space
  "/api/v1/spaces/url/{subdomain}":
    parameters:
    - name: subdomain
      in: path
      description: Space subdomain
      required: true
      schema:
        type: string
    get:
      summary: Get Space by subdomain
      tags:
      - Spaces
      security:
      - comeenOauth:
        - spaces:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                uuid: 3495e584-5cf4-4557-9e5e-57269439795e
                name: O'Kon, Cummings and Leuschke
                subdomain: o-kon-cummings-and-leuschke-579
                provider_mask: 1
                mapwize_key:
                legacy_mode: true
                logins_mask: 15
                created_at: '2026-06-22T09:29:00.000Z'
                updated_at: '2026-06-22T09:29:00.000Z'
                weeks_in_advance: 2
                enable_recurring_presences: true
                enable_favorite_location: true
                enable_notifications_channel_choice: false
                enable_map_booking: true
                enable_chat_agent: false
                onboarding_completed_at:
                logo_url:
                url: http://www.example.com/api/v1/spaces/3495e584-5cf4-4557-9e5e-57269439795e.json
                notification_channels:
                  email: true
                  phone: false
                  google_chat: false
                  microsoft_teams: false
                  facebook_workplace: false
                  slack: true
                  config: {}
                  onboarding_done: false
                meeting_room_auto_release:
                  id: 48
                  auto_release: false
                  auto_release_after: 10
                  auto_reminder: false
                  reminder_before: 30
                  reminder_before_checkin: true
                  reminder_after: 5
                  reminder_after_checkin: true
                  morning_recap_notification: false
                  morning_recap_hour: 0
                  morning_recap_checkin: false
                  max_recurrent_failures: 10
                  autorelease_adds_failures: false
                  manual_release_adds_failures: false
                  created_at: '2026-06-22T09:29:00.666Z'
                  updated_at: '2026-06-22T09:29:00.666Z'
                  url: http://www.example.com/api/v1/meeting_room_auto_releases/48.json
                webhook_endpoints: []
                providers:
                - google
                provider_domains:
                  google:
                    buildings: false
                    meeting_rooms: false
                    meeting_rooms_auto_release: false
                    users: false
                    cloud_identity_users: false
                    calendar: false
                    working_location: false
                    room_meetings: false
                  microsoft:
                    buildings: false
                    meeting_rooms: false
                    users: false
                    calendar: false
                    room_auto_checkin: false
                  slack:
                    app: false
                  crestron:
                    desk_q: false
                service_account_configuration:
                  google:
                    email: ''
                discarded: false
                google_service_account_configured: false
  "/api/v1/spaces/for_user":
    get:
      summary: Get Space for an User email
      tags:
      - Spaces
      security:
      - comeenOauth:
        - spaces:read
      parameters:
      - name: email
        in: query
        schema:
          type: string
          format: email
        description: User email
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                name: Reichert-Lesch
                subdomain: reichert-lesch-580
  "/api/v1/spaces/{id}/stats":
    parameters:
    - name: id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: Space Visit stats
      tags:
      - Spaces
      - Visits
      security:
      - comeenOauth:
        - spaces:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                onboardings:
                  '2026-06-22': 0
                  '2026-06-23': 0
                  '2026-06-24': 0
                  '2026-06-25': 0
                  '2026-06-26': 0
                  '2026-06-27': 0
                  '2026-06-28': 0
                last_events: []
  "/api/v1/spaces/{id}/discard":
    parameters:
    - name: id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    delete:
      summary: Disable Space
      tags:
      - Spaces
      security:
      - comeenOauth:
        - spaces:write
      responses:
        '204':
          description: successful
  "/api/v1/spaces":
    get:
      summary: List Spaces
      tags:
      - Spaces
      security:
      - comeenOauth:
        - spaces:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
              - uuid: 106e1f06-690b-49c3-9fe7-9f13150cbc15
                name: Harris Group
                subdomain: harris-group-583
                provider_mask: 1
                mapwize_key:
                legacy_mode: true
                logins_mask: 15
                created_at: '2026-06-22T09:29:00.000Z'
                updated_at: '2026-06-22T09:29:00.000Z'
                weeks_in_advance: 2
                enable_recurring_presences: true
                enable_favorite_location: true
                enable_notifications_channel_choice: false
                enable_map_booking: true
                enable_chat_agent: false
                onboarding_completed_at:
                logo_url:
                url: http://www.example.com/api/v1/spaces/106e1f06-690b-49c3-9fe7-9f13150cbc15.json
    post:
      summary: Create Space
      tags:
      - Spaces
      security:
      - comeenOauth:
        - spaces:write
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                id: 307
                name: Leffler, Hermiston and Gleichner
                subdomain: leffler-hermiston-and-gleichner-584
                created_at: '2026-06-22T09:29:00.000Z'
                updated_at: '2026-06-22T09:29:00.000Z'
                uuid: 1ee85911-a3ee-46a3-bd92-a4acc8e1366a
                mapwize_key:
                provider_mask: 6
                legacy_mode: true
                discarded_at:
                service_account_configuration:
                logins_mask: 15
                weeks_in_advance: 2
                enable_recurring_presences: true
                enable_favorite_location: true
                enable_notifications_channel_choice: false
                provider_organisation_id:
                enable_map_booking: true
                onboarding_completed_at:
                enable_chat_agent: false
                meeting_room_booking_rule_set_id:
                work_activity_visibility: public
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                space:
                  type: object
                  properties:
                    name:
                      type: string
                    subdomain:
                      type: string
                    weeks_in_advance:
                      type: integer
                    provider_mask:
                      type: integer
                    logins_mask:
                      type: integer
                    logo:
                      type: string
                      format: binary
                    enable_recurring_presences:
                      type: boolean
                    enable_favorite_location:
                      type: boolean
                    enable_notifications_channel_choice:
                      type: boolean
                    enable_map_booking:
                      type: boolean
        required: true
  "/api/v1/spaces/{id}":
    parameters:
    - name: id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: Show Space details
      tags:
      - Spaces
      security:
      - comeenOauth:
        - spaces:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                uuid: 2d43042b-c59a-4937-83ba-f9bf12d4d9be
                name: Breitenberg-Kub
                subdomain: breitenberg-kub-586
                provider_mask: 1
                mapwize_key:
                legacy_mode: true
                logins_mask: 15
                created_at: '2026-06-22T09:29:00.000Z'
                updated_at: '2026-06-22T09:29:00.000Z'
                weeks_in_advance: 2
                enable_recurring_presences: true
                enable_favorite_location: true
                enable_notifications_channel_choice: false
                enable_map_booking: true
                enable_chat_agent: false
                onboarding_completed_at:
                logo_url:
                url: http://www.example.com/api/v1/spaces/2d43042b-c59a-4937-83ba-f9bf12d4d9be.json
                notification_channels:
                  email: true
                  phone: false
                  google_chat: false
                  microsoft_teams: false
                  facebook_workplace: false
                  slack: true
                  config: {}
                  onboarding_done: false
                meeting_room_auto_release:
                  id: 51
                  auto_release: false
                  auto_release_after: 10
                  auto_reminder: false
                  reminder_before: 30
                  reminder_before_checkin: true
                  reminder_after: 5
                  reminder_after_checkin: true
                  morning_recap_notification: false
                  morning_recap_hour: 0
                  morning_recap_checkin: false
                  max_recurrent_failures: 10
                  autorelease_adds_failures: false
                  manual_release_adds_failures: false
                  created_at: '2026-06-22T09:29:00.955Z'
                  updated_at: '2026-06-22T09:29:00.955Z'
                  url: http://www.example.com/api/v1/meeting_room_auto_releases/51.json
                webhook_endpoints: []
                providers:
                - google
                provider_domains:
                  google:
                    buildings: false
                    meeting_rooms: false
                    meeting_rooms_auto_release: false
                    users: false
                    cloud_identity_users: false
                    calendar: false
                    working_location: false
                    room_meetings: false
                  microsoft:
                    buildings: false
                    meeting_rooms: false
                    users: false
                    calendar: false
                    room_auto_checkin: false
                  slack:
                    app: false
                  crestron:
                    desk_q: false
                service_account_configuration:
                  google:
                    email: ''
                discarded: false
                google_service_account_configured: false
    patch:
      summary: Update Space details
      tags:
      - Spaces
      security:
      - comeenOauth:
        - spaces:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                space:
                  type: object
                  properties:
                    name:
                      type: string
                    subdomain:
                      type: string
                    weeks_in_advance:
                      type: integer
                    provider_mask:
                      type: integer
                    logins_mask:
                      type: integer
                    logo:
                      type: string
                      format: binary
                    enable_recurring_presences:
                      type: boolean
                    enable_favorite_location:
                      type: boolean
                    enable_notifications_channel_choice:
                      type: boolean
                    enable_map_booking:
                      type: boolean
        required: true
    put:
      summary: Update Space details
      tags:
      - Spaces
      security:
      - comeenOauth:
        - spaces:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                space:
                  type: object
                  properties:
                    name:
                      type: string
                    subdomain:
                      type: string
                    weeks_in_advance:
                      type: integer
                    provider_mask:
                      type: integer
                    logins_mask:
                      type: integer
                    logo:
                      type: string
                      format: binary
                    enable_recurring_presences:
                      type: boolean
                    enable_favorite_location:
                      type: boolean
                    enable_notifications_channel_choice:
                      type: boolean
                    enable_map_booking:
                      type: boolean
        required: true
    delete:
      summary: Delete Space and all child resources
      tags:
      - Spaces
      security:
      - comeenOauth:
        - spaces:write
      responses:
        '204':
          description: successful
        '400':
          description: cannot delete a non-discarded space
  "/api/v1/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: 16
                  provider: google
                  domain: buildings
                  variant: default
                  name: ''
                  created_at: '2026-06-22T09:29:01.241Z'
                  updated_at: '2026-06-22T09:29:01.241Z'
                  expired_at:
                  granted: true
                  grantor:
                    id: 285
                    email: shawnda.okuneva@example.org
                    full_name: Shawnda Okuneva
                  owner:
                    uuid: 38d0daed-9f1b-4163-ab00-ab4c555ee168
                    subdomain: lebsack-steuber-593
                    name: Lebsack-Steuber
                  url: http://www.example.com/api/v1/integration_grants/16.json
                - id: 17
                  provider: microsoft
                  domain: buildings
                  variant: default
                  name: ''
                  created_at: '2026-06-22T09:29:01.248Z'
                  updated_at: '2026-06-22T09:29:01.248Z'
                  expired_at:
                  granted: true
                  grantor:
                    id: 285
                    email: shawnda.okuneva@example.org
                    full_name: Shawnda Okuneva
                  owner:
                    uuid: 38d0daed-9f1b-4163-ab00-ab4c555ee168
                    subdomain: lebsack-steuber-593
                    name: Lebsack-Steuber
                  url: http://www.example.com/api/v1/integration_grants/17.json
  "/api/v1/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: 26
                  provider: google
                  domain: meeting_rooms
                  variant: default
                  name: ''
                  created_at: '2026-06-22T09:29:01.369Z'
                  updated_at: '2026-06-22T09:29:01.369Z'
                  expired_at:
                  granted: true
                  grantor:
                    id: 286
                    email: bernhard.donny@example.org
                    full_name: Donny Bernhard
                  owner:
                    uuid: df6a7648-4e76-4b06-8b49-ce436a8bba18
                    subdomain: beahan-lesch-and-toy-594
                    name: Beahan, Lesch and Toy
                  url: http://www.example.com/api/v1/integration_grants/26.json
                - id: 27
                  provider: microsoft
                  domain: meeting_rooms
                  variant: default
                  name: ''
                  created_at: '2026-06-22T09:29:01.375Z'
                  updated_at: '2026-06-22T09:29:01.375Z'
                  expired_at:
                  granted: true
                  grantor:
                    id: 286
                    email: bernhard.donny@example.org
                    full_name: Donny Bernhard
                  owner:
                    uuid: df6a7648-4e76-4b06-8b49-ce436a8bba18
                    subdomain: beahan-lesch-and-toy-594
                    name: Beahan, Lesch and Toy
                  url: http://www.example.com/api/v1/integration_grants/27.json
  "/api/v1/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: 34
                  provider: google
                  domain: meeting_rooms
                  variant: default
                  name: ''
                  created_at: '2026-06-22T09:29:01.481Z'
                  updated_at: '2026-06-22T09:29:01.481Z'
                  expired_at:
                  granted: true
                  grantor:
                    id: 287
                    email: will_john@example.org
                    full_name: John Will
                  owner:
                    uuid: 9744fc04-34b3-4dba-b5ee-ec77f9314359
                    subdomain: dubuque-denesik-595
                    name: DuBuque-Denesik
                  url: http://www.example.com/api/v1/integration_grants/34.json
                - id: 35
                  provider: microsoft
                  domain: meeting_rooms
                  variant: default
                  name: ''
                  created_at: '2026-06-22T09:29:01.488Z'
                  updated_at: '2026-06-22T09:29:01.488Z'
                  expired_at:
                  granted: true
                  grantor:
                    id: 287
                    email: will_john@example.org
                    full_name: John Will
                  owner:
                    uuid: 9744fc04-34b3-4dba-b5ee-ec77f9314359
                    subdomain: dubuque-denesik-595
                    name: DuBuque-Denesik
                  url: http://www.example.com/api/v1/integration_grants/35.json
  "/api/v1/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: 39
                  provider: google
                  domain: users
                  variant: default
                  name: ''
                  created_at: '2026-06-22T09:29:01.573Z'
                  updated_at: '2026-06-22T09:29:01.573Z'
                  expired_at:
                  granted: true
                  grantor:
                    id: 288
                    email: west-fabian@example.org
                    full_name: Fabian West
                  owner:
                    uuid: 5b4bef52-e9f9-45f8-94bd-4a69917d9f4d
                    subdomain: hills-ratke-and-satterfield-596
                    name: Hills, Ratke and Satterfield
                  url: http://www.example.com/api/v1/integration_grants/39.json
  "/api/v1/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: 46
                  provider: google
                  domain: working_location
                  variant: default
                  name: ''
                  created_at: '2026-06-22T09:29:01.693Z'
                  updated_at: '2026-06-22T09:29:01.693Z'
                  expired_at:
                  granted: true
                  grantor:
                    id: 289
                    email: sporer-veola@example.org
                    full_name: Veola Sporer
                  owner:
                    uuid: 66f6c619-6b53-49a4-8185-f4afb4ca95d6
                    subdomain: kuhlman-jacobs-597
                    name: Kuhlman-Jacobs
                  url: http://www.example.com/api/v1/integration_grants/46.json
  "/api/v1/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:
              - id:
                name: Bordeaux
                address: 88 Cours de Verdun
                zipcode: '33000'
                city: Bordeaux
                state_region:
                country: FR
                space_id: 319
                created_at:
                updated_at:
                mapwize_alias:
                enforce_security: false
                security_rules: ''
                desk_instructions:
                current_visitors_qrcode:
                type: Google::Building
                provider_id: Bordeaux
                sync_grant_id: 53
                capacity:
                threshold: 100
                flex_office: false
                desks_spreadsheet_url:
                kiosk_profile_id:
                kiosk_theme_id:
                capacity_limit:
                capacity_reached_for_today?: false
                capacity_gauge_for_today: 0
                count_checked_in_today: 0
                count_expected_presences_today: 0
                capacity_reached_for_today: false
                floors: []
                logo_url:
                uses_mapwize: false
                uses_guests_qr: false
              - id:
                name: NYC - HQ
                address: 20 West 34th Street
                zipcode: '10118'
                city: New York
                state_region: NY
                country: US
                space_id: 319
                created_at:
                updated_at:
                mapwize_alias:
                enforce_security: false
                security_rules: ''
                desk_instructions:
                current_visitors_qrcode:
                type: Google::Building
                provider_id: NYC---HQ
                sync_grant_id: 53
                capacity:
                threshold: 100
                flex_office: false
                desks_spreadsheet_url:
                kiosk_profile_id:
                kiosk_theme_id:
                capacity_limit:
                capacity_reached_for_today?: false
                capacity_gauge_for_today: 0
                count_checked_in_today: 0
                count_expected_presences_today: 0
                capacity_reached_for_today: false
                floors: []
                logo_url:
                uses_mapwize: false
                uses_guests_qr: false
              - id:
                name: Strasbourg
                address: ''
                zipcode: ''
                city: ''
                state_region: ''
                country: ''
                space_id: 319
                created_at:
                updated_at:
                mapwize_alias:
                enforce_security: false
                security_rules: ''
                desk_instructions:
                current_visitors_qrcode:
                type: Google::Building
                provider_id: strasbourg
                sync_grant_id: 53
                capacity:
                threshold: 100
                flex_office: false
                desks_spreadsheet_url:
                kiosk_profile_id:
                kiosk_theme_id:
                capacity_limit:
                capacity_reached_for_today?: false
                capacity_gauge_for_today: 0
                count_checked_in_today: 0
                count_expected_presences_today: 0
                capacity_reached_for_today: false
                floors: []
                logo_url:
                uses_mapwize: false
                uses_guests_qr: false
  "/api/v1/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:
      - Buildings
      - SyncGrants
      security:
      - comeenOauth:
        - integration_grants:read
        - buildings:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
              - id:
                name: Bordeaux
                address: 88 Cours de Verdun
                zipcode: '33000'
                city: Bordeaux
                state_region:
                country: FR
                space_id: 320
                created_at:
                updated_at:
                mapwize_alias:
                enforce_security: false
                security_rules: ''
                desk_instructions:
                current_visitors_qrcode:
                type: Google::Building
                provider_id: Bordeaux
                sync_grant_id: 54
                capacity:
                threshold: 100
                flex_office: false
                desks_spreadsheet_url:
                kiosk_profile_id:
                kiosk_theme_id:
                capacity_limit:
                capacity_reached_for_today?: false
                capacity_gauge_for_today: 0
                count_checked_in_today: 0
                count_expected_presences_today: 0
                capacity_reached_for_today: false
                floors: []
                logo_url:
                uses_mapwize: false
                uses_guests_qr: false
              - id:
                name: NYC - HQ
                address: 20 West 34th Street
                zipcode: '10118'
                city: New York
                state_region: NY
                country: US
                space_id: 320
                created_at:
                updated_at:
                mapwize_alias:
                enforce_security: false
                security_rules: ''
                desk_instructions:
                current_visitors_qrcode:
                type: Google::Building
                provider_id: NYC---HQ
                sync_grant_id: 54
                capacity:
                threshold: 100
                flex_office: false
                desks_spreadsheet_url:
                kiosk_profile_id:
                kiosk_theme_id:
                capacity_limit:
                capacity_reached_for_today?: false
                capacity_gauge_for_today: 0
                count_checked_in_today: 0
                count_expected_presences_today: 0
                capacity_reached_for_today: false
                floors: []
                logo_url:
                uses_mapwize: false
                uses_guests_qr: false
              - id:
                name: Strasbourg
                address: ''
                zipcode: ''
                city: ''
                state_region: ''
                country: ''
                space_id: 320
                created_at:
                updated_at:
                mapwize_alias:
                enforce_security: false
                security_rules: ''
                desk_instructions:
                current_visitors_qrcode:
                type: Google::Building
                provider_id: strasbourg
                sync_grant_id: 54
                capacity:
                threshold: 100
                flex_office: false
                desks_spreadsheet_url:
                kiosk_profile_id:
                kiosk_theme_id:
                capacity_limit:
                capacity_reached_for_today?: false
                capacity_gauge_for_today: 0
                count_checked_in_today: 0
                count_expected_presences_today: 0
                capacity_reached_for_today: false
                floors: []
                logo_url:
                uses_mapwize: false
                uses_guests_qr: false
  "/api/v1/meeting_rooms/sync_grants/{id}/fetch_resources":
    parameters:
    - name: id
      in: path
      description: Sync grant id
      required: true
      schema:
        type: integer
    get:
      summary: List meeting_rooms for grant
      tags:
      - Buildings
      - SyncGrants
      security:
      - comeenOauth:
        - integration_grants:read
        - meeting_rooms:write
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
              - alternative_name:
                capacity: 4
                center:
                created_at:
                display_name: ''
                email: jsfdhjsfdhk23895ethgijdhjikh789@resource.calendar.google.com
                floor_number: '2'
                id:
                mapwize_alias:
                name: Glacier Gateway
                original_name: Glacier Gateway
                provider_id: '1039506483'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: Bordeaux
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: Bordeaux
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: jsfdhjsfdhk23895ethgijdhjikh789@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: jsfdhjsfdhk23895ethgijdhjikh789@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 4
                center:
                created_at:
                display_name: ''
                email: c_188ci6gu2bsqiihunc3idvhlea1ga@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Ocean Oasis
                original_name: Ocean Oasis
                provider_id: '13795064490'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_188ci6gu2bsqiihunc3idvhlea1ga@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_188ci6gu2bsqiihunc3idvhlea1ga@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 4
                center:
                created_at:
                display_name: ''
                email: c_1889ithbpcq62gmbg8nd6cd3bp4ne@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Himalaya Hub
                original_name: Himalaya Hub
                provider_id: '14190510801'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_1889ithbpcq62gmbg8nd6cd3bp4ne@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_1889ithbpcq62gmbg8nd6cd3bp4ne@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 2
                center:
                created_at:
                display_name: ''
                email: c_188429nm8j56chg1gvoo7ma1o6lpa@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Tokyo Tower
                original_name: Tokyo Tower
                provider_id: '16588117419'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_188429nm8j56chg1gvoo7ma1o6lpa@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_188429nm8j56chg1gvoo7ma1o6lpa@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 4
                center:
                created_at:
                display_name: ''
                email: c_1884t9jh4s9jmgtvnkj9sc6493g3s@resource.calendar.google.com
                floor_number: '3'
                id:
                mapwize_alias:
                name: Orion Office
                original_name: Orion Office
                provider_id: '1894165268'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_1884t9jh4s9jmgtvnkj9sc6493g3s@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_1884t9jh4s9jmgtvnkj9sc6493g3s@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 2
                center:
                created_at:
                display_name: ''
                email: c_188b2dd6chs9ih1mm3qgmejipab8g@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Lovelace Lounge
                original_name: Lovelace Lounge
                provider_id: '20185657722'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_188b2dd6chs9ih1mm3qgmejipab8g@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_188b2dd6chs9ih1mm3qgmejipab8g@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 4
                center:
                created_at:
                display_name: ''
                email: c_18853un4hspheh50lql5kuo41pbeo@resource.calendar.google.com
                floor_number: '2'
                id:
                mapwize_alias:
                name: Atlantis Area
                original_name: Atlantis Area
                provider_id: '20597447907'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_18853un4hspheh50lql5kuo41pbeo@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_18853un4hspheh50lql5kuo41pbeo@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 4
                center:
                created_at:
                display_name: ''
                email: c_1882gqguo0fiiigki6g190i02jlhk@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Forest Forum
                original_name: Forest Forum
                provider_id: '22095064474'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_1882gqguo0fiiigki6g190i02jlhk@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_1882gqguo0fiiigki6g190i02jlhk@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 8
                center:
                created_at:
                display_name: ''
                email: c_188fd9lutu1u8ioiheh0lhm0tv6ha@resource.calendar.google.com
                floor_number: '2'
                id:
                mapwize_alias:
                name: Galaxy Gathering
                original_name: Galaxy Gathering
                provider_id: '2531740574'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_188fd9lutu1u8ioiheh0lhm0tv6ha@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_188fd9lutu1u8ioiheh0lhm0tv6ha@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 4
                center:
                created_at:
                display_name: ''
                email: c_1881vth8i5la6i0ghc24tu2mpajfm@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Sydney Suite
                original_name: Sydney Suite
                provider_id: '3188811770'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_1881vth8i5la6i0ghc24tu2mpajfm@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_1881vth8i5la6i0ghc24tu2mpajfm@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 2
                center:
                created_at:
                display_name: ''
                email: c_1882nsi4afahshmuhjea6qi9jpa30@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Paris Parlor
                original_name: Paris Parlor
                provider_id: '32788117282'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_1882nsi4afahshmuhjea6qi9jpa30@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_1882nsi4afahshmuhjea6qi9jpa30@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 2
                center:
                created_at:
                display_name: ''
                email: c_188cj43jo4hhaii2kfi5060skjqh0@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Archimedes Arena
                original_name: Archimedes Arena
                provider_id: '3328565720'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_188cj43jo4hhaii2kfi5060skjqh0@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_188cj43jo4hhaii2kfi5060skjqh0@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 6
                center:
                created_at:
                display_name: ''
                email: c_188aa0iiuh33oj2llr35mugp8fu68@resource.calendar.google.com
                floor_number: '2'
                id:
                mapwize_alias:
                name: Shangri-La Suite
                original_name: Shangri-La Suite
                provider_id: '33299697250'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_188aa0iiuh33oj2llr35mugp8fu68@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_188aa0iiuh33oj2llr35mugp8fu68@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 4
                center:
                created_at:
                display_name: ''
                email: c_1888ejrcf1qvghtuju18n5o7eamta@resource.calendar.google.com
                floor_number: '3'
                id:
                mapwize_alias:
                name: Mercury Meeting
                original_name: Mercury Meeting
                provider_id: '3404165854'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_1888ejrcf1qvghtuju18n5o7eamta@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_1888ejrcf1qvghtuju18n5o7eamta@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 2
                center:
                created_at:
                display_name: ''
                email: c_18827fuv03usohkvk7rnnfc8trs8k@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Galileo Galley
                original_name: Galileo Galley
                provider_id: '3418565751'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_18827fuv03usohkvk7rnnfc8trs8k@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_18827fuv03usohkvk7rnnfc8trs8k@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 4
                center:
                created_at:
                display_name: ''
                email: c_188a3d8e1t64ogi8hb25nhtfu0a9i@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Aurora Avenue
                original_name: Aurora Avenue
                provider_id: '3692926904'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_188a3d8e1t64ogi8hb25nhtfu0a9i@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_188a3d8e1t64ogi8hb25nhtfu0a9i@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 6
                center:
                created_at:
                display_name: ''
                email: c_1887i2brlgpkgj5pjl270qr1i00bu@resource.calendar.google.com
                floor_number: '2'
                id:
                mapwize_alias:
                name: Camelot Corner
                original_name: Camelot Corner
                provider_id: '39299697628'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_1887i2brlgpkgj5pjl270qr1i00bu@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_1887i2brlgpkgj5pjl270qr1i00bu@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 4
                center:
                created_at:
                display_name: ''
                email: c_1881d6k29ndrkgfgnl07akche91ie@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Manhattan Meeting
                original_name: Manhattan Meeting
                provider_id: '43188117892'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_1881d6k29ndrkgfgnl07akche91ie@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_1881d6k29ndrkgfgnl07akche91ie@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 4
                center:
                created_at:
                display_name: ''
                email: c_188akrrg3u3j8if4nh32lm95gehq8@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Everest Enclosure
                original_name: Everest Enclosure
                provider_id: '43292926990'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_188akrrg3u3j8if4nh32lm95gehq8@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_188akrrg3u3j8if4nh32lm95gehq8@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 8
                center:
                created_at:
                display_name: ''
                email: c_18807euvbatcuhgvls7ak9do9v0qa@resource.calendar.google.com
                floor_number: '2'
                id:
                mapwize_alias:
                name: Mars Mansion
                original_name: Mars Mansion
                provider_id: '4461739177'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_18807euvbatcuhgvls7ak9do9v0qa@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_18807euvbatcuhgvls7ak9do9v0qa@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 4
                center:
                created_at:
                display_name: ''
                email: c_18837fn9eq30kho1n79q63koc0c9s@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Pacific Place
                original_name: Pacific Place
                provider_id: '45892926917'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_18837fn9eq30kho1n79q63koc0c9s@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_18837fn9eq30kho1n79q63koc0c9s@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 4
                center:
                created_at:
                display_name: ''
                email: c_1885af8ai5i1gh80nk9efpj1ji89i@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Amazon Room
                original_name: Amazon Room
                provider_id: '47792926481'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_1885af8ai5i1gh80nk9efpj1ji89i@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_1885af8ai5i1gh80nk9efpj1ji89i@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 2
                center:
                created_at:
                display_name: ''
                email: c_1883i6pp2a36kgs8mv2pf3laab9gi@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Franklin Hall
                original_name: Franklin Hall
                provider_id: '50483145692'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_1883i6pp2a36kgs8mv2pf3laab9gi@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_1883i6pp2a36kgs8mv2pf3laab9gi@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 2
                center:
                created_at:
                display_name: ''
                email: c_188a7kdd5ts7egqdn49ilv13isqt2@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Wright Wing
                original_name: Wright Wing
                provider_id: '508856559'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_188a7kdd5ts7egqdn49ilv13isqt2@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_188a7kdd5ts7egqdn49ilv13isqt2@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 4
                center:
                created_at:
                display_name: ''
                email: c_1881tf462dc1uhugkoacc1ia4u404@resource.calendar.google.com
                floor_number: '2'
                id:
                mapwize_alias:
                name: Valhalla Venue
                original_name: Valhalla Venue
                provider_id: '5249744756'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_1881tf462dc1uhugkoacc1ia4u404@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_1881tf462dc1uhugkoacc1ia4u404@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 6
                center:
                created_at:
                display_name: ''
                email: c_18858iusmmmv2i6jieai050b6bl4q@resource.calendar.google.com
                floor_number: '2'
                id:
                mapwize_alias:
                name: Nirvana Niche
                original_name: Nirvana Niche
                provider_id: '53699697657'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_18858iusmmmv2i6jieai050b6bl4q@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_18858iusmmmv2i6jieai050b6bl4q@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 4
                center:
                created_at:
                display_name: ''
                email: c_188734nvfg7vkghdir6vmqm0g9mnc@resource.calendar.google.com
                floor_number: '2'
                id:
                mapwize_alias:
                name: Canyon Chamber
                original_name: Canyon Chamber
                provider_id: '55695064192'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_188734nvfg7vkghdir6vmqm0g9mnc@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_188734nvfg7vkghdir6vmqm0g9mnc@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 4
                center:
                created_at:
                display_name: ''
                email: c_1888l3okumuuohremop8bia7sh636@resource.calendar.google.com
                floor_number: '2'
                id:
                mapwize_alias:
                name: Olympus Office
                original_name: Olympus Office
                provider_id: '55797447513'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_1888l3okumuuohremop8bia7sh636@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_1888l3okumuuohremop8bia7sh636@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 6
                center:
                created_at:
                display_name: ''
                email: c_188efskrnkht6hmuk1jco1ggb5hfs@resource.calendar.google.com
                floor_number: '2'
                id:
                mapwize_alias:
                name: Apollo Area
                original_name: Apollo Area
                provider_id: '5641740700'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_188efskrnkht6hmuk1jco1ggb5hfs@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_188efskrnkht6hmuk1jco1ggb5hfs@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 8
                center:
                created_at:
                display_name: ''
                email: c_18814qqeo0kscjttnuah9tdmec4q6@resource.calendar.google.com
                floor_number: '3'
                id:
                mapwize_alias:
                name: Jupiter Junction
                original_name: Jupiter Junction
                provider_id: '5711739705'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_18814qqeo0kscjttnuah9tdmec4q6@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_18814qqeo0kscjttnuah9tdmec4q6@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 6
                center:
                created_at:
                display_name: ''
                email: c_1882bvlv5kpbigf5i7g06n4jdkv5k@resource.calendar.google.com
                floor_number: '2'
                id:
                mapwize_alias:
                name: Avalon Atrium
                original_name: Avalon Atrium
                provider_id: '58399697179'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_1882bvlv5kpbigf5i7g06n4jdkv5k@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_1882bvlv5kpbigf5i7g06n4jdkv5k@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 2
                center:
                created_at:
                display_name: ''
                email: c_188fhc2q5hva2jlnh3r17tv3drnlk@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Edison Room
                original_name: Edison Room
                provider_id: '609831456'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_188fhc2q5hva2jlnh3r17tv3drnlk@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_188fhc2q5hva2jlnh3r17tv3drnlk@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 4
                center:
                created_at:
                display_name: ''
                email: c_188dsclct2ahii4pm9217qpm8jk70@resource.calendar.google.com
                floor_number: '2'
                id:
                mapwize_alias:
                name: Midgard Meeting
                original_name: Midgard Meeting
                provider_id: '61197447479'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_188dsclct2ahii4pm9217qpm8jk70@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_188dsclct2ahii4pm9217qpm8jk70@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 4
                center:
                created_at:
                display_name: ''
                email: c_188ekk8gritjgiiohcusb0l63ggdm@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Venice View
                original_name: Venice View
                provider_id: '63988117617'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_188ekk8gritjgiiohcusb0l63ggdm@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_188ekk8gritjgiiohcusb0l63ggdm@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 4
                center:
                created_at:
                display_name: ''
                email: c_1889p7jgdts3ug6flnceeeodandp4@resource.calendar.google.com
                floor_number: '3'
                id:
                mapwize_alias:
                name: Venus Vault
                original_name: Venus Vault
                provider_id: '6514165927'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_1889p7jgdts3ug6flnceeeodandp4@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_1889p7jgdts3ug6flnceeeodandp4@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 4
                center:
                created_at:
                display_name: ''
                email: c_188f2a2tnk7legg1i1uj1fk1oigjg@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Sahara Space
                original_name: Sahara Space
                provider_id: '69890510424'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_188f2a2tnk7legg1i1uj1fk1oigjg@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_188f2a2tnk7legg1i1uj1fk1oigjg@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 2
                center:
                created_at:
                display_name: ''
                email: c_188epjrlpu904iqdkudn81hviiip4@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Curie Chamber
                original_name: Curie Chamber
                provider_id: '76083145852'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_188epjrlpu904iqdkudn81hviiip4@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_188epjrlpu904iqdkudn81hviiip4@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 6
                center:
                created_at:
                display_name: ''
                email: c_188237lna11s4gt0j8cmrvo6i6uko@resource.calendar.google.com
                floor_number: '2'
                id:
                mapwize_alias:
                name: El Dorado Estate
                original_name: El Dorado Estate
                provider_id: '76499697910'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_188237lna11s4gt0j8cmrvo6i6uko@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_188237lna11s4gt0j8cmrvo6i6uko@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 2
                center:
                created_at:
                display_name: ''
                email: c_1880blhtg080mi15lrbeph3aq30di@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Newton Nook
                original_name: Newton Nook
                provider_id: '77685657616'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_1880blhtg080mi15lrbeph3aq30di@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_1880blhtg080mi15lrbeph3aq30di@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 4
                center:
                created_at:
                display_name: ''
                email: c_18832nmnhf4uig1jjig8msl79cvae@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Sahara Spot
                original_name: Sahara Spot
                provider_id: '7892926154'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_18832nmnhf4uig1jjig8msl79cvae@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_18832nmnhf4uig1jjig8msl79cvae@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 8
                center:
                created_at:
                display_name: ''
                email: c_1882u7q430laegthgsc2v2h9bps2g@resource.calendar.google.com
                floor_number: '3'
                id:
                mapwize_alias:
                name: Saturn Suite
                original_name: Saturn Suite
                provider_id: '8231739298'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_1882u7q430laegthgsc2v2h9bps2g@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_1882u7q430laegthgsc2v2h9bps2g@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 4
                center:
                created_at:
                display_name: ''
                email: c_188asv0gjo4rihkikaijh3au4c3ig@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Cairo Corner
                original_name: Cairo Corner
                provider_id: '8390510797'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_188asv0gjo4rihkikaijh3au4c3ig@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_188asv0gjo4rihkikaijh3au4c3ig@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 4
                center:
                created_at:
                display_name: ''
                email: c_1886iujujl5rciu6h8jap1uqqr7mm@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Nile Niche
                original_name: Nile Niche
                provider_id: '85590510956'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_1886iujujl5rciu6h8jap1uqqr7mm@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_1886iujujl5rciu6h8jap1uqqr7mm@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 8
                center:
                created_at:
                display_name: ''
                email: c_188597hk7lkioib6l8bijn3r29u24@resource.calendar.google.com
                floor_number: '3'
                id:
                mapwize_alias:
                name: Comet Corner
                original_name: Comet Corner
                provider_id: '8614165740'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_188597hk7lkioib6l8bijn3r29u24@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_188597hk7lkioib6l8bijn3r29u24@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 2
                center:
                created_at:
                display_name: ''
                email: c_1889sg669krg8ipvmr8geog11sjga@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Da Vinci Vault
                original_name: Da Vinci Vault
                provider_id: '87483145201'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_1889sg669krg8ipvmr8geog11sjga@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_1889sg669krg8ipvmr8geog11sjga@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 8
                center:
                created_at:
                display_name: ''
                email: c_188de39b454jghtlilt9b2kkekhae@resource.calendar.google.com
                floor_number: '3'
                id:
                mapwize_alias:
                name: Nebula Nook
                original_name: Nebula Nook
                provider_id: '9084165872'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_188de39b454jghtlilt9b2kkekhae@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_188de39b454jghtlilt9b2kkekhae@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 2
                center:
                created_at:
                display_name: ''
                email: c_188euq0ic8dq6h0diomdpciudklr6@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Tesla Coil
                original_name: Tesla Coil
                provider_id: '92283145159'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_188euq0ic8dq6h0diomdpciudklr6@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_188euq0ic8dq6h0diomdpciudklr6@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 4
                center:
                created_at:
                display_name: ''
                email: c_1885lrp97652qig4mpknb3ebb3vd8@resource.calendar.google.com
                floor_number: '3'
                id:
                mapwize_alias:
                name: Creative room
                original_name: Creative room
                provider_id: '92289041831'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_1885lrp97652qig4mpknb3ebb3vd8@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_1885lrp97652qig4mpknb3ebb3vd8@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 4
                center:
                created_at:
                display_name: ''
                email: c_1887sns6p24t2gt9kujsfoqv1vi7s@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Coral Cove
                original_name: Coral Cove
                provider_id: '9609506477'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_1887sns6p24t2gt9kujsfoqv1vi7s@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_1887sns6p24t2gt9kujsfoqv1vi7s@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 6
                center:
                created_at:
                display_name: ''
                email: c_188683jd9igdgjf5gvnrsv5sie08g@resource.calendar.google.com
                floor_number: '2'
                id:
                mapwize_alias:
                name: Asgard Assembly
                original_name: Asgard Assembly
                provider_id: '96297447218'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_188683jd9igdgjf5gvnrsv5sie08g@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_188683jd9igdgjf5gvnrsv5sie08g@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
              - alternative_name:
                capacity: 4
                center:
                created_at:
                display_name: ''
                email: c_1886cvt80cp4kgukn55uis0o711t0@resource.calendar.google.com
                floor_number: '1'
                id:
                mapwize_alias:
                name: Amazon Annex
                original_name: Amazon Annex
                provider_id: '98690510566'
                shape:
                sync_grant_id: 55
                type: Google::MeetingRoom
                updated_at:
                building:
                  id:
                  name: NYC---HQ
                  address:
                  zipcode: ''
                  city:
                  state_region:
                  country:
                  space_id: 321
                  created_at:
                  updated_at:
                  mapwize_alias:
                  enforce_security: false
                  security_rules: ''
                  desk_instructions:
                  current_visitors_qrcode:
                  type:
                  provider_id: NYC---HQ
                  sync_grant_id:
                  capacity:
                  threshold: 100
                  flex_office: false
                  desks_spreadsheet_url:
                  kiosk_profile_id:
                  kiosk_theme_id:
                  capacity_limit:
                  capacity_reached_for_today?: false
                  capacity_gauge_for_today: 0
                  count_checked_in_today: 0
                  count_expected_presences_today: 0
                  capacity_reached_for_today: false
                  floors: []
                  logo_url:
                  uses_mapwize: false
                  uses_guests_qr: false
                calendar:
                  id:
                  uuid:
                  provider_id: c_1886cvt80cp4kgukn55uis0o711t0@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                google_calendar:
                  id:
                  uuid:
                  provider_id: c_1886cvt80cp4kgukn55uis0o711t0@resource.calendar.google.com
                  watch: false
                  watch_config:
                    expiry:
                    channel_id:
                    resource_id:
                    last_sync:
                    sync_token:
                equipment_items: []
                time_zone: UTC
  "/api/v1/user_groups/sync_grants/{id}/fetch_resources":
    parameters:
    - name: id
      in: path
      description: Sync grant id
      required: true
      schema:
        type: integer
    get:
      summary: List meeting_rooms for grant
      tags:
      - Buildings
      - SyncGrants
      security:
      - comeenOauth:
        - meeting_rooms:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
              - id:
                name: Foo
                space_id: 322
                created_at:
                updated_at:
                provider_id: 02y3w2473owp5gw
                sync_grant_id: 56
                working_location_sync_grant_id:
                type: Google::UserGroup
                watch:
                enable_chat_agent: false
                members_count: 1
                roles: []
              - id:
                name: Group Test 1058
                space_id: 322
                created_at:
                updated_at:
                provider_id: '0279ka65295sfkd'
                sync_grant_id: 56
                working_location_sync_grant_id:
                type: Google::UserGroup
                watch:
                enable_chat_agent: false
                members_count: 2
                roles: []
  "/api/v1/teams/teammates":
    get:
      summary: Teammates for the current user
      security:
      - comeenOauth:
        - teams:read
      parameters:
      - name: management_team
        in: query
        default: false
        description: Flag to get management team members
        schema:
          type: boolean
      - name: managed_team
        in: query
        default: false
        description: Flag to get managed team members
        schema:
          type: boolean
      - name: favorites_team
        in: query
        default: false
        description: Flag to get favorites team members
        schema:
          type: boolean
      responses:
        '200':
          description: Get favorite colleagues
          content:
            application/json:
              example:
              - id: 303
                first_name: Bobby
                last_name: Pollich
                full_name: Bobby Pollich
                email: pollich_bobby@example.org
                phone: 285-905-8304
                invite_status: confirmed
                avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBWkk9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--ac203a2fc4ebc5c1a63b98e3b5a521123dc447aa/blank.png
              - id: 304
                first_name: Kristy
                last_name: Conn
                full_name: Kristy Conn
                email: kristy.conn@example.org
                phone: 631.732.6896
                invite_status: confirmed
                avatar:
  "/api/v1/teams/{id}/work_activity_schedule":
    parameters:
    - name: id
      in: path
      description: Team ID
      required: true
      schema:
        type: integer
    get:
      summary: Work activity schedule for a team
      tags:
      - Work Activities
      - Client-credentials compatible
      security:
      - comeenOauth:
        - teams:read
      parameters:
      - name: start_date
        in: query
        format: date
        description: Start date
        required: false
        schema:
          type: string
      - name: end_date
        in: query
        format: date
        description: End date
        required: false
        schema:
          type: string
      - name: management_team
        in: query
        default: false
        description: Flag to get management team members
        schema:
          type: boolean
      - name: managed_team
        in: query
        default: false
        description: Flag to get managed team members
        schema:
          type: boolean
      - name: favorites_team
        in: query
        default: false
        description: Flag to get favorites team members
        schema:
          type: boolean
      responses:
        '200':
          description: success
          content:
            application/json:
              example:
                '2025-11-03':
                - id: 327
                  email: shayla-reilly@example.org
                  first_name: Shayla
                  last_name: Reilly
                  full_name: Shayla Reilly
                  phone: 1-580-090-1956
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:29:04.000Z'
                  updated_at: '2026-06-22T09:29:04.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id:
                  avatar:
                  url: http://www.example.com/api/v1/users/327.json
                  roles: []
                  work_activities: []
                - id: 328
                  email: dickinson.marlon@example.org
                  first_name: Marlon
                  last_name: Dickinson
                  full_name: Marlon Dickinson
                  phone: "(117) 261-3861"
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:29:04.000Z'
                  updated_at: '2026-06-22T09:29:04.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id: 333
                  avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBYUk9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--680ff223f47346fd3b491c44b53a2a8139273e61/blank.png
                  url: http://www.example.com/api/v1/users/328.json
                  roles: []
                  work_activities: []
                - id: 329
                  email: schumm_caren@example.org
                  first_name: Caren
                  last_name: Schumm
                  full_name: Caren Schumm
                  phone: "(261) 190-4107"
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:29:04.000Z'
                  updated_at: '2026-06-22T09:29:04.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id: 334
                  avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBYU09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--7fe1e29a71f4ce72feb1b606c26eb268f058f60a/blank.png
                  url: http://www.example.com/api/v1/users/329.json
                  roles: []
                  work_activities: []
                - id: 330
                  email: denny-bauch@example.org
                  first_name: Denny
                  last_name: Bauch
                  full_name: Denny Bauch
                  phone:
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:29:04.000Z'
                  updated_at: '2026-06-22T09:29:04.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id: 334
                  avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBYVE9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--14d92b56c3394a0cb88c85dbdfdcffa6e7c5559c/blank.png
                  url: http://www.example.com/api/v1/users/330.json
                  roles: []
                  work_activities: []
                '2025-11-04':
                - id: 327
                  email: shayla-reilly@example.org
                  first_name: Shayla
                  last_name: Reilly
                  full_name: Shayla Reilly
                  phone: 1-580-090-1956
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:29:04.000Z'
                  updated_at: '2026-06-22T09:29:04.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id:
                  avatar:
                  url: http://www.example.com/api/v1/users/327.json
                  roles: []
                  work_activities: []
                - id: 328
                  email: dickinson.marlon@example.org
                  first_name: Marlon
                  last_name: Dickinson
                  full_name: Marlon Dickinson
                  phone: "(117) 261-3861"
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:29:04.000Z'
                  updated_at: '2026-06-22T09:29:04.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id: 333
                  avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBYUk9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--680ff223f47346fd3b491c44b53a2a8139273e61/blank.png
                  url: http://www.example.com/api/v1/users/328.json
                  roles: []
                  work_activities: []
                - id: 329
                  email: schumm_caren@example.org
                  first_name: Caren
                  last_name: Schumm
                  full_name: Caren Schumm
                  phone: "(261) 190-4107"
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:29:04.000Z'
                  updated_at: '2026-06-22T09:29:04.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id: 334
                  avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBYU09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--7fe1e29a71f4ce72feb1b606c26eb268f058f60a/blank.png
                  url: http://www.example.com/api/v1/users/329.json
                  roles: []
                  work_activities: []
                - id: 330
                  email: denny-bauch@example.org
                  first_name: Denny
                  last_name: Bauch
                  full_name: Denny Bauch
                  phone:
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:29:04.000Z'
                  updated_at: '2026-06-22T09:29:04.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id: 334
                  avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBYVE9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--14d92b56c3394a0cb88c85dbdfdcffa6e7c5559c/blank.png
                  url: http://www.example.com/api/v1/users/330.json
                  roles: []
                  work_activities: []
                '2025-11-05':
                - id: 327
                  email: shayla-reilly@example.org
                  first_name: Shayla
                  last_name: Reilly
                  full_name: Shayla Reilly
                  phone: 1-580-090-1956
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:29:04.000Z'
                  updated_at: '2026-06-22T09:29:04.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id:
                  avatar:
                  url: http://www.example.com/api/v1/users/327.json
                  roles: []
                  work_activities:
                  - id: 19
                    period: morning
                    work_activity: on_site
                    uuid: 73f8ddd5-c446-47a1-b8dc-6dc039ac773b
                    state: pending
                    space_id: 336
                    created_at: '2026-06-22T09:29:04.840Z'
                    updated_at: '2026-06-22T09:29:04.851Z'
                    location: Eagle Estates
                    start_datetime: '2025-11-05T00:00:00'
                    end_datetime: '2025-11-05T00:00:00'
                    person:
                      id: 335
                      first_name: Tyrell
                      last_name: Gislason
                      full_name: Tyrell Gislason
                      email: tyrell_gislason@example.org
                      building_id:
                      floor_id:
                      area_id:
                      manager_id:
                      space_id: 336
                      timezone: Europe/Paris
                      locale: en
                      avatar:
                      roles: []
                    building:
                      id: 202
                      name: Eagle Estates
                      address: 83101 Towne Isle
                      zipcode: '99267'
                      city: South Miquelberg
                      state_region:
                      country: Argentina
                      space_id: 336
                      created_at: '2026-06-22T09:29:04.000Z'
                      updated_at: '2026-06-22T09:29:04.000Z'
                      mapwize_alias:
                      enforce_security: false
                      security_rules: ''
                      current_visitors_qrcode:
                      provider_id:
                      desk_instructions:
                      capacity:
                      threshold: 100
                      desks_spreadsheet_url:
                      flex_office: false
                      kiosk_theme_id:
                      kiosk_profile_id:
                      sync_grant_id:
                      meeting_room_booking_rule_set_id:
                    floor:
                    area:
                    bookable_items: []
                    url: http://www.example.com/api/v1/presences/18.json
                    time_zone: Europe/Paris
                - id: 328
                  email: dickinson.marlon@example.org
                  first_name: Marlon
                  last_name: Dickinson
                  full_name: Marlon Dickinson
                  phone: "(117) 261-3861"
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:29:04.000Z'
                  updated_at: '2026-06-22T09:29:04.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id: 333
                  avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBYUk9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--680ff223f47346fd3b491c44b53a2a8139273e61/blank.png
                  url: http://www.example.com/api/v1/users/328.json
                  roles: []
                  work_activities: []
                - id: 329
                  email: schumm_caren@example.org
                  first_name: Caren
                  last_name: Schumm
                  full_name: Caren Schumm
                  phone: "(261) 190-4107"
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:29:04.000Z'
                  updated_at: '2026-06-22T09:29:04.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id: 334
                  avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBYU09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--7fe1e29a71f4ce72feb1b606c26eb268f058f60a/blank.png
                  url: http://www.example.com/api/v1/users/329.json
                  roles: []
                  work_activities: []
                - id: 330
                  email: denny-bauch@example.org
                  first_name: Denny
                  last_name: Bauch
                  full_name: Denny Bauch
                  phone:
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:29:04.000Z'
                  updated_at: '2026-06-22T09:29:04.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id: 334
                  avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBYVE9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--14d92b56c3394a0cb88c85dbdfdcffa6e7c5559c/blank.png
                  url: http://www.example.com/api/v1/users/330.json
                  roles: []
                  work_activities:
                  - id: 21
                    period: morning
                    work_activity: on_site
                    uuid: 550baaac-e697-4744-9308-9904906a4b96
                    state: pending
                    space_id: 337
                    created_at: '2026-06-22T09:29:04.918Z'
                    updated_at: '2026-06-22T09:29:04.930Z'
                    location: Park Village
                    start_datetime: '2025-11-05T00:00:00'
                    end_datetime: '2025-11-05T00:00:00'
                    person:
                      id: 336
                      first_name: Robbi
                      last_name: Barrows
                      full_name: Robbi Barrows
                      email: robbi.barrows@example.org
                      building_id:
                      floor_id:
                      area_id:
                      manager_id:
                      space_id: 337
                      timezone: Europe/Paris
                      locale: en
                      avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBYVk9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--0f52921f08a05ab4b0eeeb662377c7bfbcfd1d9f/blank.png
                      roles: []
                    building:
                      id: 203
                      name: Park Village
                      address: 1512 Jacelyn Knolls
                      zipcode: 86840-8929
                      city: East Caron
                      state_region:
                      country: Saint Lucia
                      space_id: 337
                      created_at: '2026-06-22T09:29:04.000Z'
                      updated_at: '2026-06-22T09:29:04.000Z'
                      mapwize_alias:
                      enforce_security: false
                      security_rules: ''
                      current_visitors_qrcode:
                      provider_id:
                      desk_instructions:
                      capacity:
                      threshold: 100
                      desks_spreadsheet_url:
                      flex_office: false
                      kiosk_theme_id:
                      kiosk_profile_id:
                      sync_grant_id:
                      meeting_room_booking_rule_set_id:
                    floor:
                    area:
                    bookable_items: []
                    url: http://www.example.com/api/v1/presences/19.json
                    time_zone: Europe/Paris
                '2025-11-06':
                - id: 327
                  email: shayla-reilly@example.org
                  first_name: Shayla
                  last_name: Reilly
                  full_name: Shayla Reilly
                  phone: 1-580-090-1956
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:29:04.000Z'
                  updated_at: '2026-06-22T09:29:04.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id:
                  avatar:
                  url: http://www.example.com/api/v1/users/327.json
                  roles: []
                  work_activities: []
                - id: 328
                  email: dickinson.marlon@example.org
                  first_name: Marlon
                  last_name: Dickinson
                  full_name: Marlon Dickinson
                  phone: "(117) 261-3861"
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:29:04.000Z'
                  updated_at: '2026-06-22T09:29:04.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id: 333
                  avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBYUk9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--680ff223f47346fd3b491c44b53a2a8139273e61/blank.png
                  url: http://www.example.com/api/v1/users/328.json
                  roles: []
                  work_activities: []
                - id: 329
                  email: schumm_caren@example.org
                  first_name: Caren
                  last_name: Schumm
                  full_name: Caren Schumm
                  phone: "(261) 190-4107"
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:29:04.000Z'
                  updated_at: '2026-06-22T09:29:04.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id: 334
                  avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBYU09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--7fe1e29a71f4ce72feb1b606c26eb268f058f60a/blank.png
                  url: http://www.example.com/api/v1/users/329.json
                  roles: []
                  work_activities: []
                - id: 330
                  email: denny-bauch@example.org
                  first_name: Denny
                  last_name: Bauch
                  full_name: Denny Bauch
                  phone:
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:29:04.000Z'
                  updated_at: '2026-06-22T09:29:04.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id: 334
                  avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBYVE9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--14d92b56c3394a0cb88c85dbdfdcffa6e7c5559c/blank.png
                  url: http://www.example.com/api/v1/users/330.json
                  roles: []
                  work_activities: []
                '2025-11-07':
                - id: 327
                  email: shayla-reilly@example.org
                  first_name: Shayla
                  last_name: Reilly
                  full_name: Shayla Reilly
                  phone: 1-580-090-1956
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:29:04.000Z'
                  updated_at: '2026-06-22T09:29:04.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id:
                  avatar:
                  url: http://www.example.com/api/v1/users/327.json
                  roles: []
                  work_activities: []
                - id: 328
                  email: dickinson.marlon@example.org
                  first_name: Marlon
                  last_name: Dickinson
                  full_name: Marlon Dickinson
                  phone: "(117) 261-3861"
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:29:04.000Z'
                  updated_at: '2026-06-22T09:29:04.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id: 333
                  avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBYUk9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--680ff223f47346fd3b491c44b53a2a8139273e61/blank.png
                  url: http://www.example.com/api/v1/users/328.json
                  roles: []
                  work_activities: []
                - id: 329
                  email: schumm_caren@example.org
                  first_name: Caren
                  last_name: Schumm
                  full_name: Caren Schumm
                  phone: "(261) 190-4107"
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:29:04.000Z'
                  updated_at: '2026-06-22T09:29:04.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id: 334
                  avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBYU09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--7fe1e29a71f4ce72feb1b606c26eb268f058f60a/blank.png
                  url: http://www.example.com/api/v1/users/329.json
                  roles: []
                  work_activities: []
                - id: 330
                  email: denny-bauch@example.org
                  first_name: Denny
                  last_name: Bauch
                  full_name: Denny Bauch
                  phone:
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:29:04.000Z'
                  updated_at: '2026-06-22T09:29:04.000Z'
                  confirmed_at:
                  discarded_at:
                  locale: en
                  manager_id: 334
                  avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBYVE9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--14d92b56c3394a0cb88c85dbdfdcffa6e7c5559c/blank.png
                  url: http://www.example.com/api/v1/users/330.json
                  roles: []
                  work_activities: []
  "/api/v1/spaces/{space_id}/user_groups/hosts":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: hosts user_group
      description: Users index route implements this functionnality now.
      deprecated: Users index route implements this functionnality now.
      tags:
      - User Groups
      security:
      - comeenOauth:
        - usergroups:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example: []
              schema:
                "$ref": "#/components/schemas/user_groups"
  "/api/v1/spaces/{space_id}/user_groups":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: List User Groups in a Space
      tags:
      - User Groups
      - Spaces
      security:
      - comeenOauth:
        - usergroups:read
      parameters:
      - name: q
        in: query
        required: false
        description: User Groups text fields search (name)
        schema:
          type: string
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
              - id: 7
                name: Advertising
                space_id: 348
                created_at: '2026-06-22T09:29:06.845Z'
                updated_at: '2026-06-22T09:29:06.845Z'
                provider_id:
                sync_grant_id:
                working_location_sync_grant_id:
                type:
                watch: true
                enable_chat_agent: false
                members_count: 0
                url: http://www.example.com/api/v1/user_groups/7.json
                roles: []
              - id: 8
                name: Accounting
                space_id: 348
                created_at: '2026-06-22T09:29:06.848Z'
                updated_at: '2026-06-22T09:29:06.848Z'
                provider_id:
                sync_grant_id:
                working_location_sync_grant_id:
                type:
                watch: true
                enable_chat_agent: false
                members_count: 2
                url: http://www.example.com/api/v1/user_groups/8.json
                roles: []
              - id: 9
                name: Government
                space_id: 348
                created_at: '2026-06-22T09:29:06.852Z'
                updated_at: '2026-06-22T09:29:06.852Z'
                provider_id:
                sync_grant_id:
                working_location_sync_grant_id:
                type:
                watch: true
                enable_chat_agent: false
                members_count: 0
                url: http://www.example.com/api/v1/user_groups/9.json
                roles: []
              - id: 10
                name: Marketing
                space_id: 348
                created_at: '2026-06-22T09:29:07.006Z'
                updated_at: '2026-06-22T09:29:07.006Z'
                provider_id:
                sync_grant_id:
                working_location_sync_grant_id:
                type:
                watch: true
                enable_chat_agent: false
                members_count: 3
                url: http://www.example.com/api/v1/user_groups/10.json
                roles: []
              schema:
                "$ref": "#/components/schemas/user_groups"
    post:
      summary: Create a User Group in a Space
      tags:
      - User Groups
      - Spaces
      security:
      - comeenOauth:
        - usergroups:write
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                id: 12
                space_id: 349
                name: Real-Estate
                provider_id:
                watch: true
                created_at: '2026-06-22T09:29:07.193Z'
                updated_at: '2026-06-22T09:29:07.193Z'
                roles_mask: 0
                sync_grant_id:
                working_location_sync_grant_id:
                enable_chat_agent: false
                meeting_room_booking_rule_set_id:
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                user_group:
                  "$ref": "#/components/schemas/create_user_group"
  "/api/v1/user_groups/{id}":
    parameters:
    - name: id
      in: path
      description: User Group id
      required: true
      schema:
        type: integer
    get:
      summary: Show User Group details
      tags:
      - User Groups
      security:
      - comeenOauth:
        - usergroups:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 13
                name: Farming
                space_id: 350
                created_at: '2026-06-22T09:29:07.299Z'
                updated_at: '2026-06-22T09:29:07.299Z'
                provider_id:
                sync_grant_id:
                working_location_sync_grant_id:
                type:
                watch: true
                enable_chat_agent: false
                members_count: 3
                url: http://www.example.com/api/v1/user_groups/13.json
                roles: []
              schema:
                "$ref": "#/components/schemas/user_group"
    put:
      summary: Update User Group details
      tags:
      - User Groups
      security:
      - comeenOauth:
        - usergroups:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                user_group:
                  "$ref": "#/components/schemas/update_user_group"
    patch:
      summary: Update User Group details
      tags:
      - User Groups
      security:
      - comeenOauth:
        - usergroups:write
      parameters: []
      responses:
        '204':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                user_group:
                  "$ref": "#/components/schemas/update_user_group"
    delete:
      summary: Delete User Group
      tags:
      - User Groups
      security:
      - comeenOauth:
        - usergroups:write
      responses:
        '204':
          description: successful
  "/api/v1/users/{id}/give_owner":
    parameters:
    - name: id
      in: path
      description: User id
      required: true
      schema:
        type: integer
    post:
      summary: Give Space owner role to a User
      description: Can only be used by a Space owner User. This will remove the Space
        owner role from the User calling the endpoint.
      tags:
      - Users
      security:
      - comeenOauth:
        - users:write
      responses:
        '200':
          description: successful
  "/api/v1/users/{id}/destroy_permanently":
    parameters:
    - name: id
      in: path
      description: User id
      required: true
      schema:
        type: integer
    delete:
      summary: Permanently delete a User
      tags:
      - Users
      security:
      - comeenOauth:
        - users:write
      responses:
        '204':
          description: successful
        '404':
          description: User not found
        '422':
          description: User not discarded
  "/api/v1/spaces/{space_id}/users/find_by_email":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: Find Space User by email
      deprecated: Users index route implements this functionnality now.
      tags:
      - Users
      - Spaces
      security:
      - comeenOauth:
        - users:read
      parameters:
      - name: email
        in: query
        schema:
          type: string
          format: email
        description: User email
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 401
                first_name: Everett
                last_name: Fisher
                email: everett.fisher@example.org
                phone: 708-982-1153
                created_at: '2026-06-22T09:29:07.000Z'
                updated_at: '2026-06-22T09:29:07.000Z'
                space_id: 357
                building_id:
                department_id:
                roles_mask: 16
                discarded_at:
                provider_id:
                locale: en
                recurring_presences:
                floor_id:
                area_id:
                timezone: Europe/Paris
                manager_id:
                provider_id_slack:
                provider_id_microsoft_teams:
                last_sync_at:
                work_activity_visibility: public
  "/api/v1/spaces/{space_id}/users/search":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: Autocomplete search for Space User
      deprecated: Users index route implements this functionnality now.
      tags:
      - Users
      - Spaces
      security:
      - comeenOauth:
        - users:read
      parameters:
      - name: search
        in: query
        description: User search (email, first/last names)
        schema:
          type: string
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                users:
                - id: 404
                  email: koelpin.velma@example.org
                  first_name: Velma
                  last_name: Koelpin
                  full_name: Velma Koelpin
                  phone:
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:29:08.000Z'
                  updated_at: '2026-06-22T09:29:08.000Z'
                  confirmed_at: '2026-06-22T09:29:08.000Z'
                  discarded_at:
                  locale: en
                  manager_id:
                  chat_agent_enabled: false
                  recurring_presences:
                  space:
                    name: Cummings Group
                    uuid: b20072ae-3e80-4275-b6d3-145776899253
                    subdomain: cummings-group-640
                  departments: []
                  team: 388
                  avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBY1U9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--fda9e291dc2b58cfa27983e7b070fb19ed27ec81/blank.png
                  url: http://www.example.com/api/v1/users/404.json
                  roles:
                  - owner
                - id: 403
                  email: morar_suzan@example.org
                  first_name: Suzan
                  last_name: Morar
                  full_name: Suzan Morar
                  phone: 873-628-3958
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:29:08.000Z'
                  updated_at: '2026-06-22T09:29:08.000Z'
                  confirmed_at: '2026-06-22T09:29:08.000Z'
                  discarded_at:
                  locale: en
                  manager_id:
                  chat_agent_enabled: false
                  recurring_presences:
                  space:
                    name: Cummings Group
                    uuid: b20072ae-3e80-4275-b6d3-145776899253
                    subdomain: cummings-group-640
                  departments: []
                  team: 387
                  avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBY1E9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--542d98678184dc48a623881a19f8f6ef36ebe31a/blank.png
                  url: http://www.example.com/api/v1/users/403.json
                  roles:
                  - desk
  "/api/v1/spaces/{space_id}/users":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: List Space Users
      tags:
      - Users
      - Spaces
      - Client-credentials compatible
      security:
      - comeenOauth:
        - users:read
      parameters:
      - name: page
        in: query
        description: Results page number
        schema:
          type: integer
      - name: small
        in: query
        required: false
        description: Small version of resources for faster loading
        schema:
          type: boolean
      - name: role
        required: false
        in: query
        schema:
          type: string
          enum:
          - space_owner
          - space_admin
          - building_admin
          - host
          - desk_booker
          - manager
          - announcer
          - user_admin
          - building_reader
          - meeting_room_admin
          - meeting_room_reader
          - visitor_admin
          - visitor_reader
          - analytics_observer
          - meeting_room_booker
          - service_admin
        description: User role filter
      - name: q
        in: query
        required: false
        description: User text fields search (email, first/last names)
        schema:
          type: string
      - name: non_member_department
        in: query
        required: false
        description: Exclude members of Department id
        schema:
          type: integer
      - name: member_department
        in: query
        required: false
        description: Only members of Department id
        schema:
          type: integer
      - name: non_member_group
        in: query
        required: false
        description: Exclude members of Group id
        schema:
          type: integer
      - name: member_group
        in: query
        required: false
        description: Only members of Group id
        schema:
          type: integer
      - name: non_manager
        in: query
        required: false
        description: Exclude Users with this User id as manager
        schema:
          type: integer
      - name: manager
        in: query
        required: false
        description: Only Users with this User id as manager
        schema:
          type: integer
      responses:
        '200':
          description: successful when passing first name only in query
          content:
            application/json:
              example:
                users:
                - id: 409
                  email: azalee.flatley@example.org
                  first_name: Azalee
                  last_name: Flatley
                  full_name: Azalee Flatley
                  phone: 1-776-849-9815
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:29:08.000Z'
                  updated_at: '2026-06-22T09:29:08.000Z'
                  confirmed_at: '2026-06-22T09:29:08.000Z'
                  discarded_at:
                  locale: en
                  manager_id:
                  chat_agent_enabled: false
                  recurring_presences:
                  space:
                    name: Von Group
                    uuid: 3644890b-42fe-468d-bc0d-a31b1bfb1191
                    subdomain: von-group-643
                  departments: []
                  team: 393
                  avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBY2c9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--0e94fdeb289a88c9f9b07dbbac88937f6cece7e1/blank.png
                  url: http://www.example.com/api/v1/users/409.json
                  roles:
                  - desk
                pagination:
                  current: 1
                  previous:
                  next:
                  per_page: 24
                  pages: 1
                  count: 1
              schema:
                "$ref": "#/components/schemas/space_users"
    post:
      summary: Create a User in a Space
      tags:
      - Users
      - Spaces
      security:
      - comeenOauth:
        - users:write
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                id: 416
                first_name: Tonja
                last_name: Wuckert
                email: tonja_wuckert@example.org
                phone:
                created_at: '2026-06-22T09:29:08.000Z'
                updated_at: '2026-06-22T09:29:08.000Z'
                space_id: 365
                building_id:
                department_id:
                roles_mask: 0
                discarded_at:
                provider_id:
                locale: en
                recurring_presences:
                floor_id:
                area_id:
                timezone: Europe/Paris
                manager_id:
                provider_id_slack:
                provider_id_microsoft_teams:
                last_sync_at:
                work_activity_visibility: public
        '422':
          description: creating a User using email of existing confirmed User
          content:
            application/json:
              example:
                errors:
                  email:
                  - has already been taken
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/new_space_user"
  "/api/v1/users/{id}":
    parameters:
    - name: id
      in: path
      description: User id
      required: true
      schema:
        type: integer
    get:
      summary: Show User details
      tags:
      - Users
      - Client-credentials compatible
      security:
      - comeenOauth:
        - users:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 419
                email: marjorie-marquardt@example.org
                first_name: Marjorie
                last_name: Marquardt
                full_name: Marjorie Marquardt
                phone:
                timezone: Europe/Paris
                created_at: '2026-06-22T09:29:08.000Z'
                updated_at: '2026-06-22T09:29:08.000Z'
                confirmed_at: '2026-06-22T09:29:08.000Z'
                discarded_at:
                locale: en
                manager_id:
                chat_agent_enabled: false
                recurring_presences:
                space:
                  name: Wiza-Gutkowski
                  uuid: 1c0b2305-e11f-42af-8d65-5b0a210e9fd4
                  subdomain: wiza-gutkowski-650
                departments: []
                team: 403
                avatar: http://localhost/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBYzA9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--dda3b649b949d3c256dca3ce00e8d16e8f2569d2/blank.png
                url: http://www.example.com/api/v1/users/419.json
                roles:
                - desk
              schema:
                "$ref": "#/components/schemas/user"
        '404':
          description: does not show details of discarded Users
    patch:
      summary: Update User details
      tags:
      - Users
      security:
      - comeenOauth:
        - users:write
      parameters: []
      responses:
        '204':
          description: successful
        '404':
          description: cannot update a discarded User
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/update_user"
    put:
      summary: Update User details
      tags:
      - Users
      security:
      - comeenOauth:
        - users:write
      parameters: []
      responses:
        '204':
          description: successful
        '404':
          description: cannot update a discarded User
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/update_user"
    delete:
      summary: Delete User
      tags:
      - Users
      security:
      - comeenOauth:
        - users:write
      responses:
        '204':
          description: successful
        '404':
          description: cannot destroy a discarded User
  "/api/v1/users/{id}/meeting_room_bookings":
    parameters:
    - name: id
      in: path
      description: User id
      required: true
      schema:
        type: integer
    get:
      summary: List User's Meeting Room Bookings
      tags:
      - Users
      - Meeting Room Bookings
      - Client-credentials compatible
      security:
      - comeenOauth:
        - meeting_room_bookings:read
      parameters:
      - name: start_datetime
        in: query
        schema:
          type: string
          format: date-time
        description: Start bound for meeting room bookings appointment start time.
          Defaults to beginning of current day.
      - name: end_datetime
        in: query
        schema:
          type: string
          format: date-time
        description: End bound for meeting room bookings appointment end time. Defaults
          to end of current day.
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                meeting_room_bookings:
                - id: 123
                  state: booked
                  booking_source: api.calendar_sync
                  booked_at:
                  checked_in_at:
                  checked_out_at:
                  canceled_at:
                  released_at:
                  auto_released_at:
                  appointment:
                    id: 93
                    start_datetime: '2026-06-22T09:29:09.000Z'
                    end_datetime: '2026-06-22T10:29:09.000Z'
                    topic: benchmark scalable networks
                  meeting_room:
                    id: 86
                    name: Royal Court
                    capacity: 4
                    building_id: 211
                    floor_id: 102
  "/api/v1/visitor_trigger_rules/{visitor_trigger_rule_id}/visitor_trigger_rule_conditions":
    parameters:
    - name: visitor_trigger_rule_id
      in: path
      description: Visitor Trigger Rule id
      required: true
      schema:
        type: integer
    get:
      summary: List Visitor Trigger Rule Conditions for a Visitor Trigger Rule
      tags:
      - Visitor Trigger Rule Conditions
      - Visitor Trigger Rules
      security:
      - comeenOauth:
        - visitor_trigger_rules:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
              - id: 1
                visitor_trigger_rule_id: 1
                field: firstname
                value: myFirstname
                created_at: '2026-06-22T09:29:09.495Z'
                updated_at: '2026-06-22T09:29:09.495Z'
                url: http://www.example.com/api/v1/visitor_trigger_rule_conditions/1.json
    post:
      summary: Create Visitor Trigger Rule Condition for a Visitor Trigger Rule
      tags:
      - Visitor Trigger Rule Conditions
      - Visitor Trigger Rules
      security:
      - comeenOauth:
        - visitor_trigger_rules:write
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                id: 2
                visitor_trigger_rule_id: 2
                field: firstname
                value: myFirstname
                created_at: '2026-06-22T09:29:09.580Z'
                updated_at: '2026-06-22T09:29:09.580Z'
        '422':
          description: unprocessable entity
          content:
            application/json:
              example:
                errors:
                  field:
                  - can't be blank
                  - is not included in the list
                  value:
                  - can't be blank
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                visitor_trigger_rule_condition:
                  type: object
                  properties:
                    field:
                      type: string
                    value:
                      type: string
  "/api/v1/visitor_trigger_rule_conditions/{id}":
    parameters:
    - name: id
      in: path
      description: Visitor Trigger Rule Condition id
      required: true
      schema:
        type: integer
    get:
      summary: Show Visitor Trigger Rule Condition details
      tags:
      - Visitor Trigger Rule Conditions
      security:
      - comeenOauth:
        - visitor_trigger_rules:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 3
                visitor_trigger_rule_id: 4
                field: firstname
                value: myFirstname
                created_at: '2026-06-22T09:29:09.647Z'
                updated_at: '2026-06-22T09:29:09.647Z'
                url: http://www.example.com/api/v1/visitor_trigger_rule_conditions/3.json
    patch:
      summary: Update Visitor Trigger Rule Condition
      tags:
      - Visitor Trigger Rule Conditions
      security:
      - comeenOauth:
        - visitor_trigger_rules:write
      parameters: []
      responses:
        '204':
          description: successful
        '422':
          description: unprocessable entity
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                visitor_trigger_rule_condition:
                  type: object
                  properties:
                    field:
                      type: string
                    value:
                      type: string
    put:
      summary: Update Visitor Trigger Rule Condition
      tags:
      - Visitor Trigger Rule Conditions
      security:
      - comeenOauth:
        - visitor_trigger_rules:write
      parameters: []
      responses:
        '204':
          description: successful
        '422':
          description: unprocessable entity
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                visitor_trigger_rule_condition:
                  type: object
                  properties:
                    field:
                      type: string
                    value:
                      type: string
    delete:
      summary: Delete Visitor Trigger Rule Condition
      tags:
      - Visitor Trigger Rule Conditions
      security:
      - comeenOauth:
        - visitor_trigger_rules:write
      responses:
        '204':
          description: successful
  "/api/v1/spaces/{space_id}/visitor_trigger_rules":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: List Visitor Trigger Rules for a Space
      tags:
      - Visitor Trigger Rules
      - Spaces
      security:
      - comeenOauth:
        - visitor_trigger_rules:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
              - id: 10
                space_id: 392
                title: MyTitle
                email: email@comeen.com
                created_at: '2026-06-22T09:29:09.920Z'
                updated_at: '2026-06-22T09:29:09.920Z'
                logical_operator: OR
                conditions: []
                buildings:
                - id: 215
                  name: University Heights
                  created_at: '2026-06-22T09:29:09.000Z'
                  updated_at: '2026-06-22T09:29:09.000Z'
                url: http://www.example.com/api/v1/visitor_trigger_rules/10.json
    post:
      summary: Create Visitor Trigger Rule for a Space
      tags:
      - Visitor Trigger Rules
      - Spaces
      security:
      - comeenOauth:
        - visitor_trigger_rules:write
      parameters: []
      responses:
        '201':
          description: successful
          content:
            application/json:
              example:
                id: 11
                space_id: 393
                title: MyTitle
                email: email@comeen.com
                created_at: '2026-06-22T09:29:09.997Z'
                updated_at: '2026-06-22T09:29:09.997Z'
                logical_operator: OR
                conditions: []
                buildings: []
                url: http://www.example.com/api/v1/visitor_trigger_rules/11.json
        '422':
          description: unprocessable entity
          content:
            application/json:
              example:
                errors:
                  title:
                  - can't be blank
                  email:
                  - can't be blank
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                visitor_trigger_rule:
                  type: object
                  properties:
                    title:
                      type: string
                    email:
                      type: string
                    building_ids:
                      type: array
                      items:
                        type: integer
  "/api/v1/visitor_trigger_rules/{id}":
    parameters:
    - name: id
      in: path
      description: Visitor Trigger Rule id
      required: true
      schema:
        type: integer
    get:
      summary: Show Visitor Trigger Rule
      tags:
      - Visitor Trigger Rules
      security:
      - comeenOauth:
        - visitor_trigger_rules:read
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 12
                space_id: 397
                title: MyTitle
                email: email@comeen.com
                created_at: '2026-06-22T09:29:10.104Z'
                updated_at: '2026-06-22T09:29:10.104Z'
                logical_operator: OR
                conditions: []
                buildings:
                - id: 217
                  name: Park Court
                  created_at: '2026-06-22T09:29:10.000Z'
                  updated_at: '2026-06-22T09:29:10.000Z'
                url: http://www.example.com/api/v1/visitor_trigger_rules/12.json
    patch:
      summary: Update Visitor Trigger Rule
      tags:
      - Visitor Trigger Rules
      security:
      - comeenOauth:
        - visitor_trigger_rules:write
      parameters: []
      responses:
        '201':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                visitor_trigger_rule:
                  type: object
                  properties:
                    title:
                      type: string
                    email:
                      type: string
                    building_ids:
                      type: array
                      items:
                        type: integer
    put:
      summary: Update Visitor Trigger Rule
      tags:
      - Visitor Trigger Rules
      security:
      - comeenOauth:
        - visitor_trigger_rules:write
      parameters: []
      responses:
        '201':
          description: successful
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                visitor_trigger_rule:
                  type: object
                  properties:
                    title:
                      type: string
                    email:
                      type: string
                    building_ids:
                      type: array
                      items:
                        type: integer
    delete:
      summary: Delete Visitor Trigger Rule
      tags:
      - Visitor Trigger Rules
      security:
      - comeenOauth:
        - visitor_trigger_rules:write
      responses:
        '204':
          description: successful
  "/api/v1/spaces/{space_id}/visits":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: List Visits for a Space
      tags:
      - Visits
      - Spaces
      - Client-credentials compatible
      security:
      - comeenOauth:
        - visits:read
      parameters:
      - name: visit[date]
        in: query
        schema:
          type: string
          format: date
        description: Date to filter visits
      - name: visit[state]
        in: query
        schema:
          type: array
          items:
            type: string
            enum:
            - offsite
            - onsite
            - expected
        style: deepObject
        explode: true
        description: State filter
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
              - id: 6
                kiosk:
                visitor:
                  id: 6
                  info:
                    name: Quinton Hegmann
                    email: Quinton.Hegmann@example.com
                    phone: "(767) 375-3940 x816"
                    company: Goldner-Marquardt
                  created_at: '2026-06-22T09:29:10.000Z'
                  updated_at: '2026-06-22T09:29:10.000Z'
                  visit_id: 6
                state: onsite
                start_datetime: '2026-06-22T07:00:00.000Z'
                end_datetime: '2026-06-22T12:00:00.000Z'
                info:
                  Ezra: Jess
                  Maude: Bernie
                  Ferdinand: Jess
                created_at: '2026-06-22T09:29:10.000Z'
                updated_at: '2026-06-22T09:29:10.000Z'
                badge:
                url: http://www.example.com/api/v1/visits/6.json
  "/api/v1/visits/{id}":
    parameters:
    - name: id
      in: path
      schema:
        type: integer
      description: Visit id
      required: true
    put:
      summary: Update a Visit
      tags:
      - Visits
      - Client-credentials compatible
      security:
      - comeenOauth:
        - visits:write
      parameters: []
      responses:
        '204':
          description: successful
          content:
            application/json:
              example: ''
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                visit:
                  type: object
                  properties:
                    state:
                      type: string
                      enum:
                      - offsite
                      - onsite
                      - expected
        description: State to update the visit to
  "/api/v1/spaces/{space_id}/work_activity_schedule":
    parameters:
    - name: space_id
      in: path
      schema:
        type: string
        format: uuid
      description: Space uuid
      required: true
    get:
      summary: List Work Activities for a Space
      tags:
      - Work Activities
      security:
      - comeenOauth:
        - workactivities:read
      parameters:
      - name: start_date
        in: query
        schema:
          type: string
          format: date
        description: Start bound for Work Activities fetching. Inclusive.
      - name: end_date
        in: query
        schema:
          type: string
          format: date
        description: End bound for Work Activities fetching. Inclusive.
      - name: activity
        in: query
        schema:
          type: string
          enum:
          - on_site
          - off_site
          - remote
          - other
        description: Filter by Work Activity state
      - name: page
        in: query
        schema:
          type: integer
        description: Page number for pagination - only when there are more than page_size
          items in the result.
      - name: page_size
        in: query
        schema:
          type: integer
        description: Number of items per page - default is 50, max is 400.
      responses:
        '200':
          description: successful with activity filtering
          content:
            application/json:
              example:
                parent:
                  uuid: fe69209d-9668-491b-8d51-f451583e2166
                  name: Stark LLC
                  subdomain: stark-llc-694
                  provider_mask: 1
                  mapwize_key:
                  legacy_mode: true
                  logins_mask: 15
                  created_at: '2026-06-22T09:29:10.000Z'
                  updated_at: '2026-06-22T09:29:10.000Z'
                  weeks_in_advance: 2
                  enable_recurring_presences: true
                  enable_favorite_location: true
                  enable_notifications_channel_choice: false
                  enable_map_booking: true
                  enable_chat_agent: false
                  onboarding_completed_at:
                  logo_url:
                  url: http://www.example.com/api/v1/spaces/fe69209d-9668-491b-8d51-f451583e2166.json
                schedule:
                  '2026-06-17': []
                  '2026-06-18': []
                  '2026-06-19': []
                  '2026-06-20': []
                  '2026-06-21': []
                  '2026-06-22': []
                  '2026-06-23':
                  - id: 36
                    period: all_day
                    work_activity: on_site
                    uuid: 8a52ebe1-1296-4c9e-ad3b-d5cbe3ae57d0
                    state: pending
                    space_id: 408
                    created_at: '2026-06-22T09:29:10.754Z'
                    updated_at: '2026-06-22T09:29:10.754Z'
                    location: Willow Court
                    start_datetime: '2026-06-23T00:00:00'
                    end_datetime: '2026-06-23T23:59:59'
                    person:
                      id: 463
                      first_name: Toby
                      last_name: Turcotte
                      full_name: Toby Turcotte
                      email: turcotte.toby@example.org
                      building_id:
                      floor_id:
                      area_id:
                      manager_id:
                      space_id: 408
                      timezone: Europe/Paris
                      locale: en
                      avatar:
                      roles:
                      - desk
                    building:
                      id: 223
                      name: Willow Court
                      address: 63556 Dominique Turnpike
                      zipcode: '05445'
                      city: Gibsonview
                      state_region:
                      country: Honduras
                      space_id: 408
                      created_at: '2026-06-22T09:29:10.000Z'
                      updated_at: '2026-06-22T09:29:10.000Z'
                      mapwize_alias:
                      enforce_security: false
                      security_rules: ''
                      current_visitors_qrcode:
                      provider_id:
                      desk_instructions:
                      capacity:
                      threshold: 100
                      desks_spreadsheet_url:
                      flex_office: false
                      kiosk_theme_id:
                      kiosk_profile_id:
                      sync_grant_id:
                      meeting_room_booking_rule_set_id:
                    floor:
                    area:
                    bookable_items: []
                    url: http://www.example.com/api/v1/presences/26.json
                    time_zone: Europe/Paris
                  '2026-06-24': []
                  '2026-06-25': []
                  '2026-06-26': []
                  '2026-06-27': []
  "/api/v1/users/{user_id}/work_activity_schedule":
    parameters:
    - name: user_id
      in: path
      schema:
        one_of:
        - type: integer
        - type: string
          enum:
          - me
      description: User id. Can use "me" to reference current user.
      required: true
    get:
      summary: List Work Activities for an User
      tags:
      - Users
      - Work Activities
      - Client-credentials compatible
      security:
      - comeenOauth:
        - workactivities:read
      parameters:
      - name: start_date
        in: query
        schema:
          type: string
          format: date
        description: Start bound for Work Activities fetching. Inclusive.
      - name: end_date
        in: query
        schema:
          type: string
          format: date
        description: End bound for Work Activities fetching. Inclusive.
      - name: activity
        in: query
        schema:
          type: string
          enum:
          - on_site
          - off_site
          - remote
          - other
        description: Filter by Work Activity state
      - name: page
        in: query
        schema:
          type: integer
        description: Page number for pagination - only when there are more than page_size
          items in the result.
      - name: page_size
        in: query
        schema:
          type: integer
        description: Number of items per page - default is 50, max is 400.
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                parent:
                  id: 465
                  email: feil-dorcas@example.org
                  first_name: Dorcas
                  last_name: Feil
                  full_name: Dorcas Feil
                  phone:
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:29:10.000Z'
                  updated_at: '2026-06-22T09:29:10.000Z'
                  confirmed_at: '2026-06-22T09:29:10.000Z'
                  discarded_at:
                  locale: en
                  manager_id:
                  avatar:
                  url: http://www.example.com/api/v1/users/465.json
                  roles:
                  - desk
                user:
                  id: 465
                  email: feil-dorcas@example.org
                  first_name: Dorcas
                  last_name: Feil
                  full_name: Dorcas Feil
                  phone:
                  timezone: Europe/Paris
                  created_at: '2026-06-22T09:29:10.000Z'
                  updated_at: '2026-06-22T09:29:10.000Z'
                  confirmed_at: '2026-06-22T09:29:10.000Z'
                  discarded_at:
                  locale: en
                  manager_id:
                  avatar:
                  url: http://www.example.com/api/v1/users/465.json
                  roles:
                  - desk
                schedule:
                  '2026-06-17': []
                  '2026-06-18': []
                  '2026-06-19': []
                  '2026-06-20': []
                  '2026-06-21': []
                  '2026-06-22':
                  - id: 37
                    period: all_day
                    work_activity: remote
                    start_datetime: '2026-06-22T00:00:00'
                    end_datetime: '2026-06-22T23:59:59'
                    time_zone: Europe/Paris
                  '2026-06-23': []
                  '2026-06-24': []
                  '2026-06-25': []
                  '2026-06-26': []
                  '2026-06-27': []
    post:
      summary: Create Work Activity for an User
      tags:
      - Users
      - Work Activities
      - Client-credentials compatible
      security:
      - comeenOauth:
        - workactivities:write
      parameters: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 40
                period: all_day
                work_activity: remote
                start_datetime: '2026-06-24T00:00:00'
                end_datetime: '2026-06-24T23:59:59'
                time_zone: Europe/Paris
        '422':
          description: creating on_site activity with a desk assigned to another person
          content:
            application/json:
              example:
                errors:
                  base:
                  - No desk matching those criteria on 2026-06-24 has been found.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                work_activity:
                  type: object
                  properties:
                    start_datetime:
                      type: string
                      format: date-time
                    end_datetime:
                      type: string
                      format: date-time
                    state:
                      type: string
                      enum:
                      - on_site
                      - off_site
                      - remote
                      - other
                presence:
                  type: object
                  properties:
                    building_id:
                      type: integer
                      required: true
                    floor_id:
                      type: integer
                      required: false
                    area_id:
                      type: integer
                      required: false
                desk_booking:
                  type: object
                  properties:
                    desk_uuid:
                      type: string
                      format: uuid
                    next_to_presence_uuid:
                      type: string
                      format: uuid
                    equipments:
                      type: array
                      items:
                        type: integer
                extras_booking:
                  type: object
                  properties:
                    extras:
                      type: array
                      items:
                        type: integer
              required:
              - work_activity
  "/api/v1/users/{user_id}/work_activity_schedule/{id}":
    parameters:
    - name: user_id
      in: path
      schema:
        one_of:
        - type: integer
        - type: string
          enum:
          - me
      description: User id. Can use "me" to reference current user.
      required: true
    - name: id
      in: path
      description: Work Activity id
      required: true
      schema:
        type: integer
    put:
      summary: Update a Users Work Activity details
      tags:
      - Users
      - Work Activities
      - Client-credentials compatible
      security:
      - comeenOauth:
        - workactivities:write
      parameters: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 44
                period: all_day
                work_activity: remote
                start_datetime: '2026-06-26T00:00:00'
                end_datetime: '2026-06-26T23:59:59'
                time_zone: Europe/Paris
        '422':
          description: errors when locations do not match
          content:
            application/json:
              example:
                errors:
                  presence:
                  - Building, Floor and Area do not match
                  - is invalid
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                work_activity:
                  type: object
                  properties:
                    start_datetime:
                      type: string
                      format: date-time
                    end_datetime:
                      type: string
                      format: date-time
                    state:
                      type: string
                      enum:
                      - on_site
                      - off_site
                      - remote
                      - other
                presence:
                  type: object
                  properties:
                    building_id:
                      type: integer
                      required: true
                    floor_id:
                      type: integer
                      required: false
                    area_id:
                      type: integer
                      required: false
                desk_booking:
                  type: object
                  properties:
                    desk_uuid:
                      type: string
                      format: uuid
                    next_to_presence_uuid:
                      type: string
                      format: uuid
                    equipments:
                      type: array
                      items:
                        type: integer
                extras_booking:
                  type: object
                  properties:
                    extras:
                      type: array
                      items:
                        type: integer
              required:
              - work_activity
    patch:
      summary: Update a Users Work Activity details
      tags:
      - Users
      - Work Activities
      - Client-credentials compatible
      security:
      - comeenOauth:
        - workactivities:write
      parameters: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              example:
                id: 49
                period: all_day
                work_activity: remote
                start_datetime: '2026-06-26T00:00:00'
                end_datetime: '2026-06-26T23:59:59'
                time_zone: Europe/Paris
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                work_activity:
                  type: object
                  properties:
                    start_datetime:
                      type: string
                      format: date-time
                    end_datetime:
                      type: string
                      format: date-time
                    state:
                      type: string
                      enum:
                      - on_site
                      - off_site
                      - remote
                      - other
                presence:
                  type: object
                  properties:
                    building_id:
                      type: integer
                      required: true
                    floor_id:
                      type: integer
                      required: false
                    area_id:
                      type: integer
                      required: false
                desk_booking:
                  type: object
                  properties:
                    desk_uuid:
                      type: string
                      format: uuid
                    next_to_presence_uuid:
                      type: string
                      format: uuid
                    equipments:
                      type: array
                      items:
                        type: integer
                extras_booking:
                  type: object
                  properties:
                    extras:
                      type: array
                      items:
                        type: integer
              required:
              - work_activity
    delete:
      summary: Delete a Users Work Activity
      tags:
      - Users
      - Work Activities
      - Client-credentials compatible
      security:
      - comeenOauth:
        - workactivities:write
      responses:
        '204':
          description: successful
  "/oauth/token":
    post:
      summary: Get oauth Token
      description: Standard Oauth token endpoint behavior. Please refer to https://oauth.net/2/
        for details and documentation. Use additional "owner_type" parameter to specify
        which type of resource to get a token for.
      tags:
      - Oauth
      parameters: []
      responses:
        '200':
          description: successful lumapps assertion grant
          content:
            application/json:
              example:
                access_token: zMO0R6zZeTlVggfEVd43zedK_PdoLy9591g2wtsolTk
                token_type: Bearer
                expires_in: 7199
                refresh_token: VDW9RgLC8lZBsn6KiiHJjqIhyaRK0Bd4RcK6vIX_W7Y
                scope: buildings:read
                created_at: 1782120581
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                client_id:
                  type: string
                client_secret:
                  type: string
                  format: password
                owner_type:
                  type: string
                  enum:
                  - user
                  - admin
                  - kiosk
                scope:
                  type: string
                username:
                  type: string
                grant_type:
                  type: string
                  enum:
                  - password
                  - code
                  - assertion
                provider:
                  type: string
                  enum:
                  - google
                  - microsoft
                  - slack
                  - lumapps
                  description: Required if grant_type is assertion
                assertion:
                  type: string
                  description: Required if grant_type is assertion
        required: true
servers:
- url: "/"
