Reclaim.ai buildings API

The buildings API from Reclaim.ai — 10 operation(s) for buildings.

OpenAPI Specification

reclaim-ai-buildings-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Reclaim account-time-schemes buildings API
  description: Reclaim's awesome API
  contact:
    name: Reclaim.ai Inc.
    url: http://reclaim.ai
    email: info@reclaim.ai
  license:
    name: Reclaim 9.9
    url: http://reclaim.ai
  version: '0.1'
tags:
- name: buildings
paths:
  /api/users/current/buildings:
    get:
      tags:
      - buildings
      operationId: getBuildings
      parameters:
      - name: user
        in: query
        required: true
        schema:
          $ref: '#/components/schemas/User'
      responses:
        '200':
          description: getBuildings 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BuildingView'
      security:
      - Authorization: []
  /api/users/current/buildings/rooms:
    get:
      tags:
      - buildings
      operationId: getRooms
      parameters:
      - name: user
        in: query
        required: true
        schema:
          $ref: '#/components/schemas/User'
      responses:
        '200':
          description: getRooms 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RoomView'
      security:
      - Authorization: []
  /api/users/current/buildings/rooms/v2:
    get:
      tags:
      - buildings
      summary: This API should be deprecated in favor of /buildings/v2/{credentialId}/rooms once that API is stable.
      description: This API should be deprecated in favor of /buildings/v2/{credentialId}/rooms once that API is stable.
      operationId: getRoomsV2
      parameters:
      - name: user
        in: query
        required: true
        schema:
          $ref: '#/components/schemas/User'
      - name: search
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getRoomsV2 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RoomView'
      security:
      - Authorization: []
  /api/users/current/buildings/sync:
    post:
      tags:
      - buildings
      operationId: refreshBuilding
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                user:
                  $ref: '#/components/schemas/User'
        required: true
      responses:
        '200':
          description: refreshBuilding 200 response
      security:
      - Authorization: []
  /api/users/current/buildings/v2/{credentialId}:
    get:
      tags:
      - buildings
      operationId: listBuildingsV2
      parameters:
      - name: user
        in: query
        required: true
        schema:
          $ref: '#/components/schemas/User'
      - name: credentialId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: pageToken
        in: query
        schema:
          type: string
          nullable: true
      - name: limit
        in: query
        required: true
        schema:
          type: integer
          format: int32
          default: 20
      responses:
        '200':
          description: listBuildingsV2 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildingsPage'
      security:
      - Authorization: []
  /api/users/current/buildings/v2/{credentialId}/rooms/page-token:
    get:
      tags:
      - buildings
      operationId: getRoomsBuildingsWithPageToken
      parameters:
      - name: credentialId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: search
        in: query
        schema:
          type: string
          nullable: true
      - name: pageToken
        in: query
        schema:
          type: string
          nullable: true
      - name: limit
        in: query
        required: true
        schema:
          type: integer
          format: int32
          default: 20
      - name: hasBuilding
        in: query
        schema:
          type: boolean
          nullable: true
      responses:
        '200':
          description: Ok
          content:
            application/json: {}
      security:
      - Authorization: []
  /api/users/current/buildings/v2/{credentialId}/rooms/top:
    get:
      tags:
      - buildings
      operationId: getTopRooms
      parameters:
      - name: user
        in: query
        required: true
        schema:
          $ref: '#/components/schemas/User'
      - name: credentialId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: limit
        in: query
        required: true
        schema:
          type: integer
          format: int32
          default: 10
      responses:
        '200':
          description: getTopRooms 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RoomView'
      security:
      - Authorization: []
  /api/users/current/buildings/v2/{credentialId}/{buildingId}/rooms:
    get:
      tags:
      - buildings
      operationId: getBuildingRooms
      parameters:
      - name: user
        in: query
        required: true
        schema:
          $ref: '#/components/schemas/User'
      - name: credentialId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: buildingId
        in: path
        required: true
        schema:
          type: string
      - name: pageToken
        in: query
        schema:
          type: string
          nullable: true
      - name: limit
        in: query
        required: true
        schema:
          type: integer
          format: int32
          default: 20
      responses:
        '200':
          description: getBuildingRooms 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenPage_RoomView_'
      security:
      - Authorization: []
  /api/users/current/buildings/v3/{credentialId}/rooms/page-token:
    get:
      tags:
      - buildings
      operationId: getRoomsBuildingsWithAvailabilityAndPageToken
      parameters:
      - name: credentialId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: start
        in: query
        required: true
        schema:
          type: string
          format: date-time
      - name: end
        in: query
        required: true
        schema:
          type: string
          format: date-time
      - name: search
        in: query
        schema:
          type: string
          nullable: true
      - name: pageToken
        in: query
        schema:
          type: string
          nullable: true
      - name: limit
        in: query
        required: true
        schema:
          type: integer
          format: int32
          default: 20
      - name: hasBuilding
        in: query
        schema:
          type: boolean
          nullable: true
      responses:
        '200':
          description: Ok
          content:
            application/json: {}
      security:
      - Authorization: []
  /api/users/current/buildings/v3/{credentialId}/{buildingId}/rooms:
    get:
      tags:
      - buildings
      operationId: getBuildingRoomsWithAvailability
      parameters:
      - name: user
        in: query
        required: true
        schema:
          $ref: '#/components/schemas/User'
      - name: credentialId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: buildingId
        in: path
        required: true
        schema:
          type: string
      - name: start
        in: query
        required: true
        schema:
          type: string
          format: date-time
      - name: end
        in: query
        required: true
        schema:
          type: string
          format: date-time
      - name: pageToken
        in: query
        schema:
          type: string
          nullable: true
      - name: limit
        in: query
        required: true
        schema:
          type: integer
          format: int32
          default: 20
      responses:
        '200':
          description: getBuildingRoomsWithAvailability 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenPage_RoomAvailabilityView_'
      security:
      - Authorization: []
components:
  schemas:
    DefaultRsvpAvailability:
      type: object
      properties:
        treatNeedsActionRsvpAs:
          $ref: '#/components/schemas/AvailabilityType'
    SchedulingWindowWeeks:
      type: string
      enum:
      - ONE
      - TWO
      - THREE
      - FOUR
      - FIVE
      - SIX
      - SEVEN
      - EIGHT
      - NINE
      - TEN
      - ELEVEN
      - TWELVE
    WebhookSettings:
      type: object
      properties:
        enabled:
          type: boolean
        all:
          $ref: '#/components/schemas/WebhookSettings'
    UserInterests:
      type: object
      properties:
        tasks:
          type: boolean
        priorities:
          type: boolean
        office365:
          type: boolean
        calendar:
          type: boolean
        asana:
          type: boolean
        trello:
          type: boolean
        todoist:
          type: boolean
        jira:
          type: boolean
        linear:
          type: boolean
        clickup:
          type: boolean
        monday:
          type: boolean
        MSTeams:
          type: boolean
    AvailabilitySettings:
      type: object
      properties:
        redisCacheEnabled:
          type: boolean
    UserProfileDepartment:
      type: string
      enum:
      - PRODUCT
      - ENGINEERING
      - SUPPORT
      - MARKETING
      - SALES
      - DESIGN
      - HR
      - OPERATIONS
      - ACCOUNTING_AND_FINANCE
      - FOUNDER
      - EXECUTIVE_ASSISTANT
      - IT_SECURITY
      - OTHER
      x-deprecated:
      - OTHER
    Colorized:
      type: object
      properties:
        color:
          $ref: '#/components/schemas/EventColor'
    TaskAutoWorkflowSettings:
      type: object
      properties:
        category:
          $ref: '#/components/schemas/TaskAutoWorkflowType'
        durationToWaitInDays:
          type: integer
          format: int32
    AsanaSettings:
      type: object
      properties:
        enabled:
          type: boolean
    RoomView:
      required:
      - capacity
      - category
      - floorName
      - id
      - name
      - resourceEmail
      - resourceId
      - roomBuildingTextForSearch
      - userId
      type: object
      properties:
        id:
          type: string
        resourceId:
          type: string
        name:
          type: string
        resourceEmail:
          type: string
        capacity:
          type: integer
          format: int32
        buildingId:
          type: string
          nullable: true
        buildingName:
          type: string
          nullable: true
        buildingDescription:
          type: string
          nullable: true
        floorName:
          type: string
        category:
          type: string
        roomBuildingTextForSearch:
          type: string
        userId:
          type: string
    TimezonePreference:
      type: string
      enum:
      - USE_PRIMARY_CALENDAR_TZ
      - USE_RECLAIM_TZ
    UserProvisioningDetails:
      required:
      - hasTeamProvisionedMetadata
      type: object
      properties:
        hasTeamProvisionedMetadata:
          type: boolean
    UserMetadataUsecase:
      type: string
      enum:
      - EDUCATION
      - WORK
      - NON_PROFIT
      - TEAM
      - SOLO_WORK
      - PERSONAL
      x-deprecated:
      - EDUCATION
      - NON_PROFIT
    ExperimentalSettings:
      type: object
      properties:
        treatOptionalSmartMeetingAttendeesAsFree:
          type: boolean
        lookAheadForSmartMeetingIdealDayOnWeeklyMeetings:
          type: boolean
    PrioritiesSettings:
      type: object
      properties:
        enabled:
          type: boolean
    EventDisplayPreferences:
      required:
      - attribution
      - busyEmoji
      - description
      - doneEmoji
      - freeEmoji
      - lockEmoji
      - prefix
      - progressEmoji
      - warningEmoji
      type: object
      properties:
        progressEmoji:
          type: boolean
        lockEmoji:
          type: boolean
        freeEmoji:
          type: boolean
        busyEmoji:
          type: boolean
        doneEmoji:
          type: boolean
        warningEmoji:
          type: boolean
        description:
          type: boolean
        attribution:
          type: boolean
        prefix:
          type: boolean
    SchedulingWindowWeeksOverride:
      type: string
      enum:
      - ONE
      - TWO
      - THREE
      - FOUR
      - FIVE
      - SIX
      - SEVEN
      - EIGHT
      - NINE
      - TEN
      - ELEVEN
      - TWELVE
    UserAccountLock.AccountLockType:
      type: string
      enum:
      - PIPELINE_MIGRATION
    SignupMethod:
      type: string
      enum:
      - SCIM
      - ADMIN_API
      - SLACK
      - SELF
    UserMetadata:
      type: object
      properties:
        jobTitle:
          type: string
        companyName:
          type: string
        companySize:
          $ref: '#/components/schemas/UserMetadataCompanySize'
        usecase:
          $ref: '#/components/schemas/UserMetadataUsecase'
        role:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/UserProfileRole'
        goals:
          type: array
          items:
            $ref: '#/components/schemas/UserProfileGoal'
        isWorkspace:
          type: boolean
        department:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/UserProfileDepartment'
        orgMetadata:
          $ref: '#/components/schemas/OrgMetadata'
    UserMetadataCompanySize:
      type: string
      enum:
      - SUB_10
      - SUB_50
      - SUB_100
      - SUB_500
      - SUB_1000
      - THOUSAND_PLUS
    CalendarEntrySettings:
      type: object
      properties:
        pipelineEnabled:
          type: boolean
        pipelineWatchEnabled:
          type: boolean
        autoMigrate:
          type: boolean
        shouldMigrate:
          type: boolean
        selfServiceMigrate:
          type: boolean
        dailyAudit:
          type: boolean
        microsoftPipelineBatching:
          type: boolean
        scoredTopContacts:
          type: boolean
        googleGhCutoff:
          type: boolean
        usePipelineCleanCalendar:
          type: boolean
        dedicatedUpsertEnabled:
          type: boolean
    DetailedEntitlements:
      type: object
      properties:
        unlimitedHabitsEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
        unlimitedSyncEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
        unlimitedConnectedCalendarsEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
        customSyncTransparencyEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
        smart11CreationEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
        customSlackSyncStatusEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
        customConferenceBufferTitleEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
        linearEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
        jiraEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
        todoistEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
        asanaEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
        clickupEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
        trelloEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
        mondayEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
    AssistSettings:
      type: object
      properties:
        travel:
          type: boolean
        otherTravelDuration:
          type: integer
          format: int32
        conferenceBuffer:
          type: boolean
        conferenceBufferDuration:
          type: integer
          format: int32
        assignmentPaddingDuration:
          type: integer
          format: int32
        conferenceBufferPrivate:
          type: boolean
        conferenceBufferType:
          $ref: '#/components/schemas/ConferenceBufferType'
        customConferenceBufferTitle:
          type: string
        focus:
          type: boolean
        allOneOnOnesBusy:
          type: boolean
        autoLockForMeetings:
          $ref: '#/components/schemas/AutoLock'
        autoLockForNonMeetings:
          $ref: '#/components/schemas/AutoLock'
        sendMeetingNotifications:
          type: boolean
        useFreeBusyEmojis:
          type: boolean
        useLockEmoji:
          type: boolean
        includeDescription:
          type: boolean
        includeAttribution:
          type: boolean
        smartSeries:
          type: boolean
        smartMeetingRecurrenceType:
          $ref: '#/components/schemas/SmartSeriesRecurrenceType'
        smartHabitRecurrenceType:
          $ref: '#/components/schemas/SmartSeriesRecurrenceType'
        showClassicHabits:
          type: boolean
        allowSmartSeriesOptIn:
          type: boolean
        smartSeriesMigrateComplete:
          type: boolean
        neverSeenClassicHabits:
          type: boolean
        notificationSettings:
          $ref: '#/components/schemas/AssistNotificationSettings'
        assistDays:
          type: integer
          format: int32
        bypassed:
          type: boolean
        dayZero:
          type: string
          format: date
        schedulerDisabled:
          type: boolean
        schedulerSuppressedUntil:
          type: string
          format: date-time
        schedulerSuppressed:
          type: boolean
        rescheduleUnstarted:
          type: boolean
        rescheduleUnstartedOkToSchedule:
          type: boolean
        dampSmartMeetings:
          type: boolean
        scheduleSmartMeetingsAtMostDaily:
          type: boolean
        scheduleSmartMeetingsOnce:
          type: boolean
        manualAssistRunsEnabled:
          type: boolean
        schedulerWindowWeeks:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/SchedulingWindowWeeksOverride'
        extendedSmartMeetingCooldown:
          type: boolean
        includeOrganizerInSmartSeries:
          type: boolean
          deprecated: true
        debugScheduler:
          type: boolean
        smartHabitGen2ToGen3MigrationDate:
          type: string
          format: date-time
        smartMeetingGen2ToGen3MigrationDate:
          type: string
          format: date-time
        gen1HabitsAndMeetingsToGen3AutoMigrate:
          type: boolean
        smartHabitsToGen3AutoMigrate:
          type: boolean
        smartMeetingsToGen3AutoMigrate:
          type: boolean
    DayOfWeek:
      type: string
      enum:
      - MONDAY
      - TUESDAY
      - WEDNESDAY
      - THURSDAY
      - FRIDAY
      - SATURDAY
      - SUNDAY
    AdventureSetting:
      required:
      - complete
      type: object
      properties:
        complete:
          type: boolean
    AssistNotificationSettings:
      required:
      - detectedDigest
      - instanceChanges
      - instanceWindowInDays
      - needsAttentionDigest
      type: object
      properties:
        instanceChanges:
          type: boolean
        instanceWindowInDays:
          type: integer
          format: int32
        needsAttentionDigest:
          type: boolean
        detectedDigest:
          type: boolean
    User:
      required:
      - edition
      - editionUsage
      - schedulerWindowWeeks
      - sku
      type: object
      properties:
        id:
          type: string
        email:
          type: string
        principal:
          type: string
        provider:
          type: string
        baseProvider:
          type: string
        name:
          type: string
        firstName:
          type: string
        entitlements:
          $ref: '#/components/schemas/Entitlements'
        detailedEntitlements:
          $ref: '#/components/schemas/DetailedEntitlements'
        editionEntitlements:
          properties:
            MAX_TEAM_SIZE:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            SCHEDULER_WEEKS:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            MAX_TASKS:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            MAX_CALENDARS:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            MAX_SYNCS:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            MAX_HABITS:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            MAX_TASKS_WEEK:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            TRAVEL_TIME:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            DECOMPRESSION_TIME:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            CUSTOM_BLOCKING:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            CUSTOM_BLOCKING_DECOMPRESSION:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            CUSTOM_BLOCKING_HABITS:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            CUSTOM_BLOCKING_CALENDAR_SYNC:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            CUSTOM_SLACK_STATUS:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            MAX_SCHEDULING_LINKS:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            DERIVATIVE_SCHEDULING_LINKS:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            SCHEDULING_LINK_SURVEY:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            SCHEDULING_LINK_REDIRECT:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            MAX_SCHEDULING_LINK_MEETINGS_QUARTER:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            MAX_1_ON_1_ORGANIZE:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            MAX_1_ON_1_ATTEND:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            MAX_CUSTOM_TIME_SCHEMES:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            INTEGRATIONS:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            INTEGRATION_GOOGLE_TASKS:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            INTEGRATION_GOOGLE_ADD_ON:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            INTEGRATION_SLACK:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            INTEGRATION_RAYCAST:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            INTEGRATION_ZOOM:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            INTEGRATION_TODOIST:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            INTEGRATION_LINEAR:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            INTEGRATION_JIRA:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            INTEGRATION_CLICKUP:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            INTEGRATION_ASANA:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            INTEGRATION_OFFICE_365:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            INTEGRATION_MONDAY:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            INTEGRATION_TRELLO:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            INTEGRATION_DROPBOX:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            SUPPORT:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            SSO:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            TEAM_ANALYTICS:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            EVENT_PREFERENCES:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            DELEGATED_ACCESS:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            SCHEDULING_LINK_ROUND_ROBIN:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            SCHEDULING_LINK_BRANDING:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            SMART_MEETING_ATTENDEE_USERS:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            WEBHOOKS:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            MAX_STATS_WINDOW:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            FOCUS_TIME:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            OOO_CALENDAR:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            MAX_AGENTS:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            MAX_DAILY_LLM_COST_MICROS:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            PROACTIVE_LLM:
              $ref: '#/components/schemas/EntitlementValue_Object_'
            MCP:
              $ref: '#/components/schemas/EntitlementValue_Object_'
        lastName:
          type: string
        avatarUrl:
          type: string
        admin:
          type: boolean
        slackEnabled:
          type: boolean
        impersonated:
          type: boolean
        timestampOffsetMs:
          type: integer
          format: int64
        features:
          $ref: '#/components/schemas/UserSettings'
        settings:
          $ref: '#/components/schemas/Settings'
        metadata:
          $ref: '#/components/schemas/UserMetadata'
        created:
          type: string
          format: date-time
        deleted:
          type: string
          format: date-time
        onboarded:
          type: boolean
        trackingCode:
          type: string
        locale:
          type: string
        likelyPersonal:
          type: boolean
        apiKey:
          type: string
        sku:
          deprecated: true
          allOf:
          - $ref: '#/components/schemas/ReclaimEdition'
        edition:
          $ref: '#/components/schemas/ReclaimEdition'
        editionAfterTrial:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ReclaimEdition'
        editionUsage:
          $ref: '#/components/schemas/ReclaimEdition'
        preDowngradeEditionUsage:
          $ref: '#/components/schemas/ReclaimEdition'
        overage:
          type: boolean
        logContextUser:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ObservedUser'
        refCode:
          type: string
        hostedDomain:
          type: string
          nullable: true
        primaryCalendar:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ThinCalendar'
        primaryCalendarId:
          type: string
        timezone:
          type: string
        startOfWeek:
          $ref: '#/components/schemas/DayOfWeek'
        usingDelegatedAccess:
          type: boolean
        firstLogin:
          type: string
          format: date-time
          nullable: true
        signupMethod:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/SignupMethod'
        providerCreated:
          type: string
          format: date-time
          nullable: true
        schedulerWindowWeeks:
          $ref: '#/components/schemas/SchedulingWindowWeeks'
        userDateTimeFormatter:
          $ref: '#/components/schemas/UserDateTimeFormatter'
        userProvisioningDetails:
          $ref: '#/components/schemas/UserProvisioningDetails'
    TaskAutoWorkflowType:
      type: string
      enum:
      - NOTHING
      - REOPEN
      - CLOSE
    MicrosoftSettings:
      type: object
      properties:
        smartSeriesDetectionEnabled:
          type: boolean
        useFullyExpandedSeriesMasterForInterop:
          type: boolean
        resolveReclaimForNonMemberUsingCalendarView:
          type: boolean
    GoogleAddOnSettings:
      type: object
      properties:
        enabled:
          type: boolean
    UserProfileGoal:
      type: string
      enum:
      - HEADS_DOWN_TIME
      - MEETINGS
      - WORK_LIFE_BALANCE
      - MULTIPLE_CALENDARS
    TimezoneSettings:
      required:
      - timeZonePreference
      type: object
      properties:
        zoneId:
          type: string
          nullable: true
        timeZonePreference:
          $ref: '#/components/schemas/TimezonePreference'
        timezonePreference:
          $ref: '#/components/schemas/TimezonePreference'
    EntitlementDetails:
      required:
      - minimumEdition
      - name
      type: object
      properties:
        minimumEdition:
          type: string
        name:
          type: string
        enabledForUser:
          type: boolean
    ConferenceBufferType:
      type: string
      enum:
      - ALL_MEETINGS
      - CONFERENCE_MEETINGS
    UserDateTimeFormatter:
      type: object
      properties:
        locale:
          type: string
    AvailabilityType:
      type: string
      enum:
      - BUSY
      - FREE
    SyncFeatureSettings:
      type: object
      properties:
        enabled:
          type: boolean
        hasVipPrivileges:
          type: boolean
        daysBackwardOverride:
          type: integer
          format: int32
    SlackStatusSetting:
      type: object
      properties:
        emoji:
          type: string
        template:
          type: string
        dnd:
          type: boolean
        enabled:
          type: boolean
    UserPostOnboard:
      type: object
      properties:
        welcomed:
          $ref: '#/components/schemas/UserPostOnboardState'
        focus:
          $ref: '#/components/schemas/UserPostOnboardState'
        hours:
          $ref: '#/components/schemas/UserPostOnboardState'
        habits:
          $ref: '#/components/schemas/UserPostOnboardState'
        firstTask:
          $ref: '#/components/schemas/UserPostOnboardState'
        integration:
          $ref: '#/components/schemas/UserPostOnboardState'
        smartMeetings:
          $ref: '#/components/schemas/UserPostOnboardState'
        schedulingLinks:
          $ref: '#/components/schemas/UserPostOnboardState'
        slackStatusSync:
          $ref: '#/components/schemas/UserPostOnboardState'
        travelTime:
          $ref: '#/components/schemas/UserPostOnboardState'
        zoom:
          $ref: '#/components/schemas/UserPostOnboardState'
        connectCalendars:
          $ref: '#/components/schemas/UserPostOnboardState'
        colors:
          $ref: '#/components/schemas/UserPostOnboardState'
        reclaimFree:
          $ref: '#/components/schemas/UserPostOnboardState'
        guidedTours:
          $ref: '#/components/schemas/UserPostOnboardState'
    AnalyticsSettings:
      type: object
      properties:
        teamAnalyticsV4ViewEnabled:
          type: boolean
        teamAnalyticsV4FiltersEnabled:
          type: boolean
    AutoLock:
      type: string
      enum:
      - 'OFF'
      - SAME_DAY
      - SAME_WEEK
      - TOMORROW
      - ROLLING_3_DAYS
    QuestSettings:
      type: object
      properties:
        enabled:
          type: boolean
    SchedulingLinkSettings:
      type: object
      properties:
        enabled:
          type: boolean
        note:
          type: string
        remindersMigrated:
          type: boolean
        messageTemplates:
          type: object
          additionalProperties:
            type: string
        nameVisibility:
          nullable: true
    

# --- truncated at 32 KB (52 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/reclaim-ai/refs/heads/main/openapi/reclaim-ai-buildings-api-openapi.yml