Biamp Workplace GraphQL API

Public GraphQL API for integrating with Biamp Workplace. Query, mutate, and subscribe to Workplace resources using a typed, self-describing schema.

Contact

Biamp Support

support@biamp.com

API Endpoints
# Production (US):
https://api.evoko.app/graphql
# Production (EU):
https://euapi.evoko.app/graphql

GraphQL basics

GraphQL is a query language for APIs. It lets clients request exactly the fields they need, which can reduce over-fetching and the number of round trips.

GraphQL schemas are strongly typed. Many teams use client-side GraphQL libraries to generate types and handle responses without manual parsing.

This API follows GraphQL’s recommended approach to being versionless: it evolves primarily through additive changes and deprecation rather than URL-based versions.

About this documentation

This reference is generated from the current Biamp Workplace GraphQL schema.

You can explore and test the API using our interactive GraphQL explorer: GraphQL Playground

If you need a machine-readable schema for tooling, you can export the schema in standard formats (SDL/IDL and JSON) using GraphQL introspection.

US and EU endpoints

Workplace is divided into two completely separate regions, each with its own database:

  • US Organizations: use the US API endpoint
  • EU Organizations: use the EU API endpoint

Important: The US and EU databases are entirely separate. Data is not shared between regions.
Queries to one region will not return data from the other, even if the schemas are identical.

User accounts are managed centrally via Zitadel, which is shared across regions. This means a user who has registered in one region can also log in to the other region, but all organizational and content data remains isolated within its region.

Authentication

Requests are authenticated by default using an access token.

Send it as a Bearer token in the Authorization header:

Authorization: Bearer <ACCESS_TOKEN>

Schema stability

The schema is additive and follows GraphQL best practices. Deprecated fields remain available unless otherwise communicated.

Examples

Below are example operations you can copy/paste and adapt.

1) Start by activating your user if you haven't already (this accepts data collection for the user. See https://www.biamp.com/legal/privacy-policy)

mutation ActivateUser {
  activateUser {
    id
  }
}

2) Query your user profile to verify activation was successful

query MyProfile {
  profile {
    name
  }
}

3) See profile organization memberships

query MyOrganizations {
  profile {
    name
    memberships {
      organization {
        id
        domain
      }
    }
  }
}

4) Get places belonging to organization

query MyOrgsPlaces {
  allPlaces(orgId: an orgId from the previous query) {
    places {
      id
      name
      placeTypeId
    }
  }
}

Queries

activeDeviceErrors

Response

Returns [DeviceEvent!]!

Arguments
Name Description
id - ID!
limit - Int! Default = 10
minSeverity - Int! Default = 2

Example

Query
query activeDeviceErrors(
  $id: ID!,
  $limit: Int!,
  $minSeverity: Int!
) {
  activeDeviceErrors(
    id: $id,
    limit: $limit,
    minSeverity: $minSeverity
  ) {
    deviceId
    orgId
    eventType
    data {
      ... on DeviceEventTelemetry {
        ...DeviceEventTelemetryFragment
      }
      ... on DeviceEventStatus {
        ...DeviceEventStatusFragment
      }
    }
    createdAt
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67", "limit": 10, "minSeverity": 2}
Response
{
  "data": {
    "activeDeviceErrors": [
      {
        "deviceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
        "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
        "eventType": "TELEMETRY",
        "data": DeviceEventTelemetry,
        "createdAt": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

activeDeviceErrorsCount

Response

Returns [ActiveDeviceErrorCount!]!

Arguments
Name Description
orgId - ID!

Example

Query
query activeDeviceErrorsCount($orgId: ID!) {
  activeDeviceErrorsCount(orgId: $orgId) {
    severity
    count
  }
}
Variables
{"orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{"data": {"activeDeviceErrorsCount": [{"severity": 123, "count": 987}]}}

allBookings

Response

Returns a BookingsConnection!

Arguments
Name Description
limit - Int
offset - Int
order - [BookingOrder!]
filter - BookingFilter

Example

Query
query allBookings(
  $limit: Int,
  $offset: Int,
  $order: [BookingOrder!],
  $filter: BookingFilter
) {
  allBookings(
    limit: $limit,
    offset: $offset,
    order: $order,
    filter: $filter
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
    bookings {
      ...BookingFragment
    }
  }
}
Variables
{
  "limit": 123,
  "offset": 123,
  "order": [BookingOrder],
  "filter": BookingFilter
}
Response
{
  "data": {
    "allBookings": {
      "pageInfo": PageInfo,
      "totalCount": 123,
      "bookings": [Booking]
    }
  }
}

allCalendarEvents

Description

List calendar events for a membership with optional filtering and ordering.

Authorization: calendar_calendarevents_list on Calendar(membershipId)

Response

Returns a CalendarEventsConnection!

Arguments
Name Description
membershipId - ID!
filter - CalendarEventsFilter
order - [CalendarEventOrder!]! Default = [{field: START_TIME}]
pageSize - Int! Default = 100
pageToken - String

Example

Query
query allCalendarEvents(
  $membershipId: ID!,
  $filter: CalendarEventsFilter,
  $order: [CalendarEventOrder!]!,
  $pageSize: Int!,
  $pageToken: String
) {
  allCalendarEvents(
    membershipId: $membershipId,
    filter: $filter,
    order: $order,
    pageSize: $pageSize,
    pageToken: $pageToken
  ) {
    events {
      ...CalendarEventFragment
    }
    nextPageToken
  }
}
Variables
{
  "membershipId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "filter": CalendarEventsFilter,
  "order": [{"field": "START_TIME"}],
  "pageSize": 100,
  "pageToken": "xyz789"
}
Response
{
  "data": {
    "allCalendarEvents": {
      "events": [CalendarEvent],
      "nextPageToken": "xyz789"
    }
  }
}

allCalendarSources

Description

List all calendar sources for an organization.

Authorization: calendar_calendarsources_list on Organization(orgId)

Response

Returns a CalendarSourcesConnection!

Arguments
Name Description
orgId - ID!
pageToken - String
pageSize - Int! Default = 100

Example

Query
query allCalendarSources(
  $orgId: ID!,
  $pageToken: String,
  $pageSize: Int!
) {
  allCalendarSources(
    orgId: $orgId,
    pageToken: $pageToken,
    pageSize: $pageSize
  ) {
    sources {
      ...CalendarSourceFragment
    }
    nextPageToken
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "pageToken": "xyz789",
  "pageSize": 100
}
Response
{
  "data": {
    "allCalendarSources": {
      "sources": [CalendarSource],
      "nextPageToken": "abc123"
    }
  }
}

allCalendars

Description

List all calendars in an organization with optional filtering.

Authorization: calendar_calendars_list on CalendarSource(srcId)

Response

Returns a CalendarsConnection!

Arguments
Name Description
orgId - ID!
filter - CalendarsFilter
pageToken - String
pageSize - Int! Default = 100

Example

Query
query allCalendars(
  $orgId: ID!,
  $filter: CalendarsFilter,
  $pageToken: String,
  $pageSize: Int!
) {
  allCalendars(
    orgId: $orgId,
    filter: $filter,
    pageToken: $pageToken,
    pageSize: $pageSize
  ) {
    calendars {
      ...CalendarFragment
    }
    nextPageToken
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "filter": CalendarsFilter,
  "pageToken": "abc123",
  "pageSize": 100
}
Response
{
  "data": {
    "allCalendars": {
      "calendars": [Calendar],
      "nextPageToken": "xyz789"
    }
  }
}

allChannels

Description

List all firmware channels with pagination and ordering support.

Authorization: firmware_channel_list on Platform

Response

Returns a ChannelsConnection!

Arguments
Name Description
limit - Int! Default = 20
offset - Int! Default = 0
order - [ChannelOrder!]

Example

Query
query allChannels(
  $limit: Int!,
  $offset: Int!,
  $order: [ChannelOrder!]
) {
  allChannels(
    limit: $limit,
    offset: $offset,
    order: $order
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
    channels {
      ...ChannelFragment
    }
  }
}
Variables
{"limit": 20, "offset": 0, "order": [ChannelOrder]}
Response
{
  "data": {
    "allChannels": {
      "pageInfo": PageInfo,
      "totalCount": 123,
      "channels": [Channel]
    }
  }
}

allColleagues

Description

List all colleagues in an organization with optional search and ordering.

Authorization: colleague_colleagues_list on Organization(orgId)

Response

Returns a ColleaguesConnection!

Arguments
Name Description
orgId - ID!
pageToken - String
pageSize - Int! Default = 100
order - [ColleagueOrder!]
filter - ColleagueFilter

Example

Query
query allColleagues(
  $orgId: ID!,
  $pageToken: String,
  $pageSize: Int!,
  $order: [ColleagueOrder!],
  $filter: ColleagueFilter
) {
  allColleagues(
    orgId: $orgId,
    pageToken: $pageToken,
    pageSize: $pageSize,
    order: $order,
    filter: $filter
  ) {
    colleagues {
      ...ColleagueFragment
    }
    nextPageToken
    totalCount
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "pageToken": "xyz789",
  "pageSize": 100,
  "order": [ColleagueOrder],
  "filter": ColleagueFilter
}
Response
{
  "data": {
    "allColleagues": {
      "colleagues": [Colleague],
      "nextPageToken": "xyz789",
      "totalCount": 123
    }
  }
}

allDeviceEvents

Response

Returns a DeviceEventConnection!

Arguments
Name Description
id - ID!
limit - Int
offset - Int
order - [DeviceEventOrder!]
filter - DeviceEventFilter

Example

Query
query allDeviceEvents(
  $id: ID!,
  $limit: Int,
  $offset: Int,
  $order: [DeviceEventOrder!],
  $filter: DeviceEventFilter
) {
  allDeviceEvents(
    id: $id,
    limit: $limit,
    offset: $offset,
    order: $order,
    filter: $filter
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
    deviceEvents {
      ...DeviceEventFragment
    }
  }
}
Variables
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "limit": 123,
  "offset": 987,
  "order": [DeviceEventOrder],
  "filter": DeviceEventFilter
}
Response
{
  "data": {
    "allDeviceEvents": {
      "pageInfo": PageInfo,
      "totalCount": 123,
      "deviceEvents": [DeviceEvent]
    }
  }
}

allDeviceTypes

Description

List all device types available in the platform.

Authorization: Authentication required; no SpiceDB permission check (any authenticated subject)

Response

Returns [DeviceType!]!

Example

Query
query allDeviceTypes {
  allDeviceTypes {
    id
    name
    attributes {
      ...DeviceTypeAttributesFragment
    }
  }
}
Response
{
  "data": {
    "allDeviceTypes": [
      {
        "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
        "name": "abc123",
        "attributes": DeviceTypeAttributes
      }
    ]
  }
}

allDevices

Description

List all devices with pagination, filtering, and ordering support.

Authorization: device_devices_list on Organization(orgId) when filtering by single organization, or device_devices_list on Platform for cross-organization queries

Response

Returns a DevicesConnection!

Arguments
Name Description
limit - Int Default = 50
offset - Int
order - [DeviceOrder!]
filter - DeviceFilter

Example

Query
query allDevices(
  $limit: Int,
  $offset: Int,
  $order: [DeviceOrder!],
  $filter: DeviceFilter
) {
  allDevices(
    limit: $limit,
    offset: $offset,
    order: $order,
    filter: $filter
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
    devices {
      ...DeviceFragment
    }
  }
}
Variables
{
  "limit": 50,
  "offset": 123,
  "order": [DeviceOrder],
  "filter": DeviceFilter
}
Response
{
  "data": {
    "allDevices": {
      "pageInfo": PageInfo,
      "totalCount": 987,
      "devices": [Device]
    }
  }
}

allFacilities

Description

List all available facilities.

Authorization: No authorization check (public)

Response

Returns [Facility]!

Example

Query
query allFacilities {
  allFacilities {
    id
    name
    category
    iconPath
  }
}
Response
{
  "data": {
    "allFacilities": [
      {
        "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
        "name": "xyz789",
        "category": "xyz789",
        "iconPath": "abc123"
      }
    ]
  }
}

allFeatureFlags

Response

Returns [FeatureFlag!]!

Example

Query
query allFeatureFlags {
  allFeatureFlags {
    id
    value
    description
  }
}
Response
{
  "data": {
    "allFeatureFlags": [
      {
        "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
        "value": true,
        "description": "xyz789"
      }
    ]
  }
}

allFileTypes

Description

List all file types in the system.

Authorization: file_types_list on Platform

Response

Returns [FileType!]!

Example

Query
query allFileTypes {
  allFileTypes {
    id
    fileType
  }
}
Response
{
  "data": {
    "allFileTypes": [
      {
        "id": "LAUNCH_REPORT",
        "fileType": "xyz789"
      }
    ]
  }
}

allFiles

Description

List files for an organization with filtering and offset-based pagination. Only files in uploaded status are returned, ordered by createdAt DESC.

Authorization: file_files_list on Organization(orgId)

Response

Returns a FilesConnection!

Arguments
Name Description
input - AllFilesInput!

Example

Query
query allFiles($input: AllFilesInput!) {
  allFiles(input: $input) {
    files {
      ...FileFragment
    }
    totalCount
    pageInfo {
      ...PageInfoFragment
    }
  }
}
Variables
{"input": AllFilesInput}
Response
{
  "data": {
    "allFiles": {
      "files": [File],
      "totalCount": 123,
      "pageInfo": PageInfo
    }
  }
}

allFirmwares

Description

List all firmware versions with pagination, filtering, and ordering support.

Authorization: firmware_firmware_list on Platform

Response

Returns a FirmwaresConnection!

Arguments
Name Description
limit - Int
offset - Int
order - [FirmwareOrder!]
filter - FirmwareFilter

Example

Query
query allFirmwares(
  $limit: Int,
  $offset: Int,
  $order: [FirmwareOrder!],
  $filter: FirmwareFilter
) {
  allFirmwares(
    limit: $limit,
    offset: $offset,
    order: $order,
    filter: $filter
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
    firmwares {
      ...FirmwareFragment
    }
  }
}
Variables
{
  "limit": 987,
  "offset": 123,
  "order": [FirmwareOrder],
  "filter": FirmwareFilter
}
Response
{
  "data": {
    "allFirmwares": {
      "pageInfo": PageInfo,
      "totalCount": 987,
      "firmwares": [Firmware]
    }
  }
}

allIDTags

Description

List all ID tags with optional filtering and ordering.

Authorization: idtag_idtags_list on Membership, Organization(orgId), or Platform (depending on filters)

Response

Returns an IDTagsConnection!

Arguments
Name Description
orgId - ID
userId - ID
limit - Int
offset - Int
order - [IDTagOrder!]

Example

Query
query allIDTags(
  $orgId: ID,
  $userId: ID,
  $limit: Int,
  $offset: Int,
  $order: [IDTagOrder!]
) {
  allIDTags(
    orgId: $orgId,
    userId: $userId,
    limit: $limit,
    offset: $offset,
    order: $order
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
    idTags {
      ...IDTagFragment
    }
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "userId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "limit": 987,
  "offset": 987,
  "order": [IDTagOrder]
}
Response
{
  "data": {
    "allIDTags": {
      "pageInfo": PageInfo,
      "totalCount": 987,
      "idTags": [IDTag]
    }
  }
}

allInvitations

Response

Returns an InvitationsConnection!

Arguments
Name Description
orgId - ID
limit - Int
offset - Int
order - [InvitationOrder!]
filter - InvitationFilter

Example

Query
query allInvitations(
  $orgId: ID,
  $limit: Int,
  $offset: Int,
  $order: [InvitationOrder!],
  $filter: InvitationFilter
) {
  allInvitations(
    orgId: $orgId,
    limit: $limit,
    offset: $offset,
    order: $order,
    filter: $filter
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
    invitations {
      ...InvitationFragment
    }
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "limit": 123,
  "offset": 987,
  "order": [InvitationOrder],
  "filter": InvitationFilter
}
Response
{
  "data": {
    "allInvitations": {
      "pageInfo": PageInfo,
      "totalCount": 987,
      "invitations": [Invitation]
    }
  }
}

allLicenseAssociations

Description

List license associations (place or device assignments).

Authorization: license_licenseassociation_list on License(licenseId), or entity-type-specific permission on the bound entity depending on filter

Response

Returns a LicenseAssociationsConnection!

Arguments
Name Description
limit - Int Default = 20
offset - Int Default = 0
filter - LicenseAssociationFilter

Example

Query
query allLicenseAssociations(
  $limit: Int,
  $offset: Int,
  $filter: LicenseAssociationFilter
) {
  allLicenseAssociations(
    limit: $limit,
    offset: $offset,
    filter: $filter
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
    licenseAssociations {
      ...LicenseAssociationFragment
    }
  }
}
Variables
{
  "limit": 20,
  "offset": 0,
  "filter": LicenseAssociationFilter
}
Response
{
  "data": {
    "allLicenseAssociations": {
      "pageInfo": PageInfo,
      "totalCount": 987,
      "licenseAssociations": [LicenseAssociation]
    }
  }
}

allLicenseTypes

Description

List all license types available in the platform.

Authorization: license_licensetypes_list on Platform

Response

Returns a LicenseTypesConnection

Arguments
Name Description
limit - Int
offset - Int
filter - LicenseTypeFilter

Example

Query
query allLicenseTypes(
  $limit: Int,
  $offset: Int,
  $filter: LicenseTypeFilter
) {
  allLicenseTypes(
    limit: $limit,
    offset: $offset,
    filter: $filter
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
    licenseTypes {
      ...LicenseTypeFragment
    }
  }
}
Variables
{"limit": 987, "offset": 123, "filter": LicenseTypeFilter}
Response
{
  "data": {
    "allLicenseTypes": {
      "pageInfo": PageInfo,
      "totalCount": 123,
      "licenseTypes": [LicenseType]
    }
  }
}

allLicenses

Description

List licenses with pagination, filtering, and ordering support.

Authorization: license_licenses_list on Organization(orgId) when filtering by single organization, or license_licenses_list on Platform for cross-organization queries

Response

Returns a LicensesConnection!

Arguments
Name Description
orgId - ID
limit - Int
offset - Int
order - [LicenseOrder!]
filter - LicenseFilter

Example

Query
query allLicenses(
  $orgId: ID,
  $limit: Int,
  $offset: Int,
  $order: [LicenseOrder!],
  $filter: LicenseFilter
) {
  allLicenses(
    orgId: $orgId,
    limit: $limit,
    offset: $offset,
    order: $order,
    filter: $filter
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
    licenses {
      ...LicenseFragment
    }
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "limit": 123,
  "offset": 123,
  "order": [LicenseOrder],
  "filter": LicenseFilter
}
Response
{
  "data": {
    "allLicenses": {
      "pageInfo": PageInfo,
      "totalCount": 123,
      "licenses": [License]
    }
  }
}

allMemberships

Description

List all memberships for an organization with filtering and pagination.

Requires: Organization membership with list permission

Response

Returns a MembershipsConnection!

Arguments
Name Description
orgId - ID!
limit - Int
offset - Int
order - [MembershipOrder!]
filter - MembershipFilter

Example

Query
query allMemberships(
  $orgId: ID!,
  $limit: Int,
  $offset: Int,
  $order: [MembershipOrder!],
  $filter: MembershipFilter
) {
  allMemberships(
    orgId: $orgId,
    limit: $limit,
    offset: $offset,
    order: $order,
    filter: $filter
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
    memberships {
      ...MembershipFragment
    }
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "limit": 987,
  "offset": 987,
  "order": [MembershipOrder],
  "filter": MembershipFilter
}
Response
{
  "data": {
    "allMemberships": {
      "pageInfo": PageInfo,
      "totalCount": 123,
      "memberships": [Membership]
    }
  }
}

allOrganizationMessages

Response

Returns an OrganizationMessagesConnection!

Arguments
Name Description
limit - Int! Default = 25
offset - Int
order - [OrganizationMessageOrder!]
filter - OrganizationMessageFilter

Example

Query
query allOrganizationMessages(
  $limit: Int!,
  $offset: Int,
  $order: [OrganizationMessageOrder!],
  $filter: OrganizationMessageFilter
) {
  allOrganizationMessages(
    limit: $limit,
    offset: $offset,
    order: $order,
    filter: $filter
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
    organizationMessages {
      ...OrganizationMessageFragment
    }
  }
}
Variables
{
  "limit": 25,
  "offset": 123,
  "order": [OrganizationMessageOrder],
  "filter": OrganizationMessageFilter
}
Response
{
  "data": {
    "allOrganizationMessages": {
      "pageInfo": PageInfo,
      "totalCount": 123,
      "organizationMessages": [OrganizationMessage]
    }
  }
}

allOrganizations

Description

List all organizations with pagination, filtering, and ordering support.

Authorization: organization_organizations_list on Platform

Response

Returns an OrganizationsConnection!

Arguments
Name Description
limit - Int
offset - Int
order - [OrganizationOrder!]
filter - OrganizationFilter

Example

Query
query allOrganizations(
  $limit: Int,
  $offset: Int,
  $order: [OrganizationOrder!],
  $filter: OrganizationFilter
) {
  allOrganizations(
    limit: $limit,
    offset: $offset,
    order: $order,
    filter: $filter
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
    organizations {
      ...OrganizationFragment
    }
  }
}
Variables
{
  "limit": 123,
  "offset": 987,
  "order": [OrganizationOrder],
  "filter": OrganizationFilter
}
Response
{
  "data": {
    "allOrganizations": {
      "pageInfo": PageInfo,
      "totalCount": 123,
      "organizations": [Organization]
    }
  }
}

allOverviews

Response

Returns an OverviewsConnection!

Arguments
Name Description
orgId - ID!
limit - Int
offset - Int
order - [OverviewOrder!]
filter - OverviewFilter

Example

Query
query allOverviews(
  $orgId: ID!,
  $limit: Int,
  $offset: Int,
  $order: [OverviewOrder!],
  $filter: OverviewFilter
) {
  allOverviews(
    orgId: $orgId,
    limit: $limit,
    offset: $offset,
    order: $order,
    filter: $filter
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
    overviews {
      ...OverviewFragment
    }
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "limit": 123,
  "offset": 123,
  "order": [OverviewOrder],
  "filter": OverviewFilter
}
Response
{
  "data": {
    "allOverviews": {
      "pageInfo": PageInfo,
      "totalCount": 123,
      "overviews": [Overview]
    }
  }
}

allPlaceFeatureInstances

Response

Returns a PlaceFeatureInstanceConnection!

Arguments
Name Description
filter - PlaceFeatureInstanceFilter!
limit - Int! Default = 10
offset - Int! Default = 0

Example

Query
query allPlaceFeatureInstances(
  $filter: PlaceFeatureInstanceFilter!,
  $limit: Int!,
  $offset: Int!
) {
  allPlaceFeatureInstances(
    filter: $filter,
    limit: $limit,
    offset: $offset
  ) {
    placeFeatureInstances {
      ...PlaceFeatureInstanceFragment
    }
    totalCount
  }
}
Variables
{
  "filter": PlaceFeatureInstanceFilter,
  "limit": 10,
  "offset": 0
}
Response
{
  "data": {
    "allPlaceFeatureInstances": {
      "placeFeatureInstances": [PlaceFeatureInstance],
      "totalCount": 123
    }
  }
}

allPlaceFeatures

Response

Returns a PlaceFeatureConnection!

Arguments
Name Description
limit - Int Default = 100
offset - Int Default = 0

Example

Query
query allPlaceFeatures(
  $limit: Int,
  $offset: Int
) {
  allPlaceFeatures(
    limit: $limit,
    offset: $offset
  ) {
    placeFeatures {
      ...PlaceFeatureFragment
    }
    totalCount
  }
}
Variables
{"limit": 100, "offset": 0}
Response
{
  "data": {
    "allPlaceFeatures": {
      "placeFeatures": [PlaceFeature],
      "totalCount": 123
    }
  }
}

allPlaceTypes

Response

Returns [PlaceType!]

Example

Query
query allPlaceTypes {
  allPlaceTypes {
    id
    name
    createdAt
    updatedAt
  }
}
Response
{
  "data": {
    "allPlaceTypes": [
      {
        "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
        "name": "xyz789",
        "createdAt": "2007-12-03T10:15:30Z",
        "updatedAt": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

allPlaces

Description

Query all places within an organization.

When using the availability filter, unlicensed locations are automatically filtered out on the backend. Only licensed places will be returned in the results.

Response

Returns a PlacesConnection!

Arguments
Name Description
orgId - ID!
limit - Int
offset - Int
order - [PlaceOrder!]
filter - PlaceFilter

Example

Query
query allPlaces(
  $orgId: ID!,
  $limit: Int,
  $offset: Int,
  $order: [PlaceOrder!],
  $filter: PlaceFilter
) {
  allPlaces(
    orgId: $orgId,
    limit: $limit,
    offset: $offset,
    order: $order,
    filter: $filter
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
    places {
      ...PlaceFragment
    }
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "limit": 123,
  "offset": 123,
  "order": [PlaceOrder],
  "filter": PlaceFilter
}
Response
{
  "data": {
    "allPlaces": {
      "pageInfo": PageInfo,
      "totalCount": 123,
      "places": [Place]
    }
  }
}

allRoomBookings

use allBookings
Response

Returns a RoomBookingsConnection!

Arguments
Name Description
limit - Int Default = 20
offset - Int Default = 0
order - [RoomBookingOrder!]
filter - RoomBookingFilter

Example

Query
query allRoomBookings(
  $limit: Int,
  $offset: Int,
  $order: [RoomBookingOrder!],
  $filter: RoomBookingFilter
) {
  allRoomBookings(
    limit: $limit,
    offset: $offset,
    order: $order,
    filter: $filter
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
    bookings {
      ...RoomBookingFragment
    }
  }
}
Variables
{
  "limit": 20,
  "offset": 0,
  "order": [RoomBookingOrder],
  "filter": RoomBookingFilter
}
Response
{
  "data": {
    "allRoomBookings": {
      "pageInfo": PageInfo,
      "totalCount": 123,
      "bookings": [RoomBooking]
    }
  }
}

allUsers

Description

Returns list of all users

Response

Returns a UsersConnection!

Arguments
Name Description
limit - Int
offset - Int
order - [UserOrder!]
filter - UserFilter

Example

Query
query allUsers(
  $limit: Int,
  $offset: Int,
  $order: [UserOrder!],
  $filter: UserFilter
) {
  allUsers(
    limit: $limit,
    offset: $offset,
    order: $order,
    filter: $filter
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
    users {
      ...UserFragment
    }
  }
}
Variables
{
  "limit": 987,
  "offset": 123,
  "order": [UserOrder],
  "filter": UserFilter
}
Response
{
  "data": {
    "allUsers": {
      "pageInfo": PageInfo,
      "totalCount": 987,
      "users": [User]
    }
  }
}

calendar

Description

Retrieve the calendar for a specific membership.

Authorization: calendar_calendars_get on Calendar(membershipId)

Response

Returns a Calendar!

Arguments
Name Description
membershipId - ID!

Example

Query
query calendar($membershipId: ID!) {
  calendar(membershipId: $membershipId) {
    id
    createdAt
    updatedAt
    remoteId
    remoteData
    remoteSubId
    remoteSubExpiresAt
    syncToken
    sourceId
    label
    membershipId
    resourceID
    isResource
  }
}
Variables
{"membershipId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "calendar": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "remoteId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "remoteData": "abc123",
      "remoteSubId": "xyz789",
      "remoteSubExpiresAt": "2007-12-03T10:15:30Z",
      "syncToken": "abc123",
      "sourceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "label": "xyz789",
      "membershipId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "resourceID": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "isResource": true
    }
  }
}

calendarEvent

Description

Retrieve a specific calendar event by ID.

Authorization: calendar_calendarevents_get on CalendarEvent(eventId)

Response

Returns a CalendarEvent!

Arguments
Name Description
eventId - ID!

Example

Query
query calendarEvent($eventId: ID!) {
  calendarEvent(eventId: $eventId) {
    id
    name
    calendarId
    timesSynced
    remoteId
    remoteData
    isRecurring
    isWholeDay
    sensitivity
    startTime
    endTime
    createdAt
    updatedAt
    attendees {
      ...AttendeeFragment
    }
    meetingUrl
    creator
    iCalUID
    meetingProvider
  }
}
Variables
{"eventId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "calendarEvent": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "abc123",
      "calendarId": "xyz789",
      "timesSynced": 987,
      "remoteId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "remoteData": "xyz789",
      "isRecurring": true,
      "isWholeDay": true,
      "sensitivity": "PRIVATE",
      "startTime": "2007-12-03T10:15:30Z",
      "endTime": "2007-12-03T10:15:30Z",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "attendees": [Attendee],
      "meetingUrl": "xyz789",
      "creator": "abc123",
      "iCalUID": "abc123",
      "meetingProvider": "UNSPECIFIED"
    }
  }
}

calendarSource

Description

Retrieve a calendar source configuration by ID.

Authorization: calendar_calendarsources_get on CalendarSource(srcId)

Response

Returns a CalendarSource!

Arguments
Name Description
srcId - ID!

Example

Query
query calendarSource($srcId: ID!) {
  calendarSource(srcId: $srcId) {
    id
    createdAt
    updatedAt
    orgId
    settings
    provider
    resourceAdmin
    syncedAt
    syncErrors
  }
}
Variables
{"srcId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "calendarSource": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "orgId": "abc123",
      "settings": "xyz789",
      "provider": "GOOGLE",
      "resourceAdmin": "abc123",
      "syncedAt": "2007-12-03T10:15:30Z",
      "syncErrors": ["xyz789"]
    }
  }
}

colleagueFacets

Description

Get facets for colleagues in an organization.

Authorization: colleague_colleagues_list on Organization(orgId)

Response

Returns a ColleagueFacets!

Arguments
Name Description
orgId - ID!

Example

Query
query colleagueFacets($orgId: ID!) {
  colleagueFacets(orgId: $orgId) {
    departments {
      ...FacetValueFragment
    }
    cities {
      ...FacetValueFragment
    }
    countryCodes {
      ...FacetValueFragment
    }
    employeeTypes {
      ...FacetValueFragment
    }
  }
}
Variables
{"orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "colleagueFacets": {
      "departments": [FacetValue],
      "cities": [FacetValue],
      "countryCodes": [FacetValue],
      "employeeTypes": [FacetValue]
    }
  }
}

desk

Response

Returns a Desk

Arguments
Name Description
id - ID!

Example

Query
query desk($id: ID!) {
  desk(id: $id) {
    id
    orgId
    name
    deskType
    bookingCount
    currentBooking {
      ...BookingFragment
    }
    nextBooking {
      ...BookingFragment
    }
    floor {
      ...FloorFragment
    }
    presenceDetection
    available {
      ...AvailabilityFragment
    }
    timeZone
    timeZoneOffset
    timePresentation
    settings {
      ...DeskBookingSettingsFragment
    }
    createdAt
    updatedAt
    license {
      ...LicenseFragment
    }
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "desk": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "xyz789",
      "deskType": "HOT",
      "bookingCount": 123,
      "currentBooking": Booking,
      "nextBooking": Booking,
      "floor": Floor,
      "presenceDetection": true,
      "available": Availability,
      "timeZone": "abc123",
      "timeZoneOffset": 123,
      "timePresentation": "H24",
      "settings": DeskBookingSettings,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "license": License
    }
  }
}

device

Description

Retrieve a specific device by ID.

Authorization: device_devices_get on Device(id)

Response

Returns a Device!

Arguments
Name Description
id - ID! Default = "me"

Example

Query
query device($id: ID!) {
  device(id: $id) {
    id
    type {
      ...DeviceTypeFragment
    }
    serial
    assignedFirmware {
      ...FirmwareFragment
    }
    latestFirmware {
      ...FirmwareFragment
    }
    nextFirmware {
      ...FirmwareFragment
    }
    firmwarePublicKey
    firmwareVariant
    channel {
      ...ChannelFragment
    }
    place {
      ...PlaceFragment
    }
    placeId
    desk {
      ...DeskFragment
    }
    deskId
    room {
      ...RoomFragment
    }
    roomId
    status {
      ...DeviceStatusFragment
    }
    language
    timezone
    orgName
    orgId
    parent {
      ...DeviceFragment
    }
    children {
      ...DeviceFragment
    }
    activeHours {
      ...WeeklyOpenHoursFragment
    }
    createdAt
    updatedAt
    attributes {
      ...DeviceAttributesFragment
    }
    state
    activeError {
      ...DeviceEventStatusFragment
    }
    activeDeviceErrors {
      ...DeviceEventFragment
    }
    interfaces {
      ...NetworkInterfaceFragment
    }
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "device": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "type": DeviceType,
      "serial": "xyz789",
      "assignedFirmware": Firmware,
      "latestFirmware": Firmware,
      "nextFirmware": Firmware,
      "firmwarePublicKey": "xyz789",
      "firmwareVariant": "abc123",
      "channel": Channel,
      "place": Place,
      "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "desk": Desk,
      "deskId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "room": Room,
      "roomId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "status": DeviceStatus,
      "language": "abc123",
      "timezone": "abc123",
      "orgName": "xyz789",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "parent": Device,
      "children": [Device],
      "activeHours": WeeklyOpenHours,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "attributes": DeviceAttributes,
      "state": "UNPROVISIONED",
      "activeError": DeviceEventStatus,
      "activeDeviceErrors": [DeviceEvent],
      "interfaces": [NetworkInterface]
    }
  }
}

deviceCountByState

Response

Returns [DeviceCountByState!]!

Arguments
Name Description
orgID - ID!

Example

Query
query deviceCountByState($orgID: ID!) {
  deviceCountByState(orgID: $orgID) {
    state
    count
  }
}
Variables
{"orgID": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{"data": {"deviceCountByState": [{"state": "UNPROVISIONED", "count": 987}]}}

deviceMetrics

Response

Returns [MetricVector!]!

Arguments
Name Description
orgId - ID!
deviceId - ID
input - MetricQueryInput

Example

Query
query deviceMetrics(
  $orgId: ID!,
  $deviceId: ID,
  $input: MetricQueryInput
) {
  deviceMetrics(
    orgId: $orgId,
    deviceId: $deviceId,
    input: $input
  ) {
    name
    label
    values {
      ...MetricValueFragment
    }
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "deviceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": MetricQueryInput
}
Response
{
  "data": {
    "deviceMetrics": [
      {
        "name": "abc123",
        "label": "xyz789",
        "values": [MetricValue]
      }
    ]
  }
}

deviceSpecificSettings

Description

Returns the device specific settings for a given device id and preset

Response

Returns a DeviceSpecificSettings!

Arguments
Name Description
deviceID - ID!
preset - ID! Default = ""

Example

Query
query deviceSpecificSettings(
  $deviceID: ID!,
  $preset: ID!
) {
  deviceSpecificSettings(
    deviceID: $deviceID,
    preset: $preset
  ) {
    id
    deviceID
    preset
    data
    dataVersion
    createdAt
    updatedAt
  }
}
Variables
{
  "deviceID": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "preset": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
}
Response
{
  "data": {
    "deviceSpecificSettings": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "deviceID": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "preset": "abc123",
      "data": "xyz789",
      "dataVersion": "abc123",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

deviceStatistics

Response

Returns a DeviceStatistics

Arguments
Name Description
orgId - ID!
filter - DeviceStatisticsFilter

Example

Query
query deviceStatistics(
  $orgId: ID!,
  $filter: DeviceStatisticsFilter
) {
  deviceStatistics(
    orgId: $orgId,
    filter: $filter
  ) {
    cpuUtilization {
      ...DeviceStatisticsDistributionFragment
    }
    temperature {
      ...DeviceStatisticsDistributionFragment
    }
    errors {
      ...DeviceStatisticsErrorSummaryFragment
    }
    missingDevices
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "filter": DeviceStatisticsFilter
}
Response
{
  "data": {
    "deviceStatistics": {
      "cpuUtilization": [DeviceStatisticsDistribution],
      "temperature": [DeviceStatisticsDistribution],
      "errors": [DeviceStatisticsErrorSummary],
      "missingDevices": 987
    }
  }
}

entityLicenseTypeStates

Description

Get license states per license type for any licensed entity.

NOTE: entityType: DEVICE is wired but currently returns an empty list for every device. Device-bound license states are a follow-up to this PR and have no implementation yet, so a UI rendered against entityLicenseTypeStates(entityType: DEVICE, ...) will always show "no licenses" until that follow-up lands. Use entityType: PLACE for real data today.

Authorization: varies by entityType: PLACE: place_places_get on Place(entityId) DEVICE: device_devices_get on Device(entityId)

Response

Returns [LicenseTypeEntityState!]!

Arguments
Name Description
entityType - LicenseBoundEntityType!
entityId - ID!

Example

Query
query entityLicenseTypeStates(
  $entityType: LicenseBoundEntityType!,
  $entityId: ID!
) {
  entityLicenseTypeStates(
    entityType: $entityType,
    entityId: $entityId
  ) {
    licenseTypeId
    state
    startTime
    endTime
    licenseIds
  }
}
Variables
{"entityType": "PLACE", "entityId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "entityLicenseTypeStates": [
      {
        "licenseTypeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
        "state": "UNSPECIFIED",
        "startTime": "2007-12-03T10:15:30Z",
        "endTime": "2007-12-03T10:15:30Z",
        "licenseIds": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"]
      }
    ]
  }
}

featureFlag

Response

Returns a FeatureFlag!

Arguments
Name Description
input - GetFeatureFlagInput!

Example

Query
query featureFlag($input: GetFeatureFlagInput!) {
  featureFlag(input: $input) {
    id
    value
    description
  }
}
Variables
{"input": GetFeatureFlagInput}
Response
{
  "data": {
    "featureFlag": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "value": false,
      "description": "xyz789"
    }
  }
}

file

Description

Fetch a single file by ID within an organization. Unlike allFiles, this returns files in any status (e.g. PENDING), making it suitable for polling the PENDING -> UPLOADED transition.

Returns null when the file does not exist or belongs to a different organization.

Authorization: file_files_list on Organization(orgId)

Response

Returns a File

Arguments
Name Description
input - FileInput!

Example

Query
query file($input: FileInput!) {
  file(input: $input) {
    id
    orgId
    fileType
    size
    createdAt
    updatedAt
    status
    filename
    uploadedBy {
      ... on User {
        ...UserFragment
      }
      ... on Device {
        ...DeviceFragment
      }
    }
    metadata {
      ...FileMetadataEntryFragment
    }
  }
}
Variables
{"input": FileInput}
Response
{
  "data": {
    "file": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "fileType": "LAUNCH_REPORT",
      "size": 987,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "status": "PENDING",
      "filename": "xyz789",
      "uploadedBy": User,
      "metadata": [FileMetadataEntry]
    }
  }
}

fileType

Description

Retrieve a specific file type by its ID.

Authorization: file_type_get on FileType(id)

Response

Returns a FileType!

Arguments
Name Description
id - FileTypeID!

Example

Query
query fileType($id: FileTypeID!) {
  fileType(id: $id) {
    id
    fileType
  }
}
Variables
{"id": "LAUNCH_REPORT"}
Response
{
  "data": {
    "fileType": {
      "id": "LAUNCH_REPORT",
      "fileType": "abc123"
    }
  }
}

getFileDownloadUrl

Description

Get a URL for downloading a file.

Authorization: file_files_download on Organization(orgId)

Response

Returns a GetFileDownloadUrlResponse!

Arguments
Name Description
input - GetFileDownloadUrlInput!

Example

Query
query getFileDownloadUrl($input: GetFileDownloadUrlInput!) {
  getFileDownloadUrl(input: $input) {
    url {
      ...FileDownloadUrlFragment
    }
  }
}
Variables
{"input": GetFileDownloadUrlInput}
Response
{"data": {"getFileDownloadUrl": {"url": FileDownloadUrl}}}

getScheduleCalendar

Description

Retrieve a specific schedule calendar by resource name.

Authorization: schedule_calendar_get on ScheduleCalendar(name)

Response

Returns a ScheduleCalendar!

Arguments
Name Description
name - ID!

Example

Query
query getScheduleCalendar($name: ID!) {
  getScheduleCalendar(name: $name) {
    name
    summary
    description
    timeZone
    createdAt
    updatedAt
  }
}
Variables
{"name": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "getScheduleCalendar": {
      "name": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "summary": "xyz789",
      "description": "xyz789",
      "timeZone": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

getScheduleEvent

Description

Retrieve a specific schedule event by resource name.

Authorization: schedule_event_get on ScheduleCalendar (parent of event)

Response

Returns a ScheduleEvent!

Arguments
Name Description
name - ID!

Example

Query
query getScheduleEvent($name: ID!) {
  getScheduleEvent(name: $name) {
    name
    createdAt
    updatedAt
    summary
    description
    startTime
    endTime
    timeZone
    recurrence
    recurringEventId
    devices {
      ...DeviceFragment
    }
    deviceAction
    deviceActionArguments
    deviceActionTriggeredAt
    notificationEmails
    deviceActionCompletedAt
    deviceActionState
    notificationBeforeOffset
  }
}
Variables
{"name": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "getScheduleEvent": {
      "name": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "summary": "xyz789",
      "description": "xyz789",
      "startTime": "2007-12-03T10:15:30Z",
      "endTime": "2007-12-03T10:15:30Z",
      "timeZone": "abc123",
      "recurrence": ["xyz789"],
      "recurringEventId": "xyz789",
      "devices": [Device],
      "deviceAction": "abc123",
      "deviceActionArguments": ["abc123"],
      "deviceActionTriggeredAt": "2007-12-03T10:15:30Z",
      "notificationEmails": ["xyz789"],
      "deviceActionCompletedAt": "2007-12-03T10:15:30Z",
      "deviceActionState": "UNSPECIFIED",
      "notificationBeforeOffset": "P3Y6M4DT12H30M5S"
    }
  }
}

licenseSummary

Description

Get license usage summary for an organization.

Authorization: license_licenses_list on Organization(orgId)

Response

Returns a LicenseSummary

Arguments
Name Description
orgId - ID!
filter - LicenseSummaryFilter

Example

Query
query licenseSummary(
  $orgId: ID!,
  $filter: LicenseSummaryFilter
) {
  licenseSummary(
    orgId: $orgId,
    filter: $filter
  ) {
    assigned
    notExpired
    expiresSoon
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "filter": LicenseSummaryFilter
}
Response
{
  "data": {
    "licenseSummary": {"assigned": 123, "notExpired": 987, "expiresSoon": 123}
  }
}

listScheduleDeviceActions

Description

List device actions for a schedule event.

Authorization: schedule_eventdeviceaction_list on ScheduleCalendar(parent)

Arguments
Name Description
parent - ID!

Example

Query
query listScheduleDeviceActions($parent: ID!) {
  listScheduleDeviceActions(parent: $parent) {
    actions {
      ...ScheduleDeviceActionFragment
    }
  }
}
Variables
{"parent": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "listScheduleDeviceActions": {
      "actions": [ScheduleDeviceAction]
    }
  }
}

listScheduleEvents

Description

List schedule events for a calendar with optional filtering and ordering.

Authorization: schedule_event_list on ScheduleCalendar(parent)

Response

Returns a ListScheduleEventsResponse!

Arguments
Name Description
parent - ID!
pageSize - Int
skip - Int
orderBy - [ScheduleEventsOrder!]
filter - ListScheduleEventsFilter

Example

Query
query listScheduleEvents(
  $parent: ID!,
  $pageSize: Int,
  $skip: Int,
  $orderBy: [ScheduleEventsOrder!],
  $filter: ListScheduleEventsFilter
) {
  listScheduleEvents(
    parent: $parent,
    pageSize: $pageSize,
    skip: $skip,
    orderBy: $orderBy,
    filter: $filter
  ) {
    events {
      ...ScheduleEventFragment
    }
    nextPageToken
  }
}
Variables
{
  "parent": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "pageSize": 987,
  "skip": 987,
  "orderBy": [ScheduleEventsOrder],
  "filter": ListScheduleEventsFilter
}
Response
{
  "data": {
    "listScheduleEvents": {
      "events": [ScheduleEvent],
      "nextPageToken": "xyz789"
    }
  }
}

membership

Description

Retrieve a specific membership by ID.

Requires: Permission to view the membership

Response

Returns a Membership!

Arguments
Name Description
id - ID!

Example

Query
query membership($id: ID!) {
  membership(id: $id) {
    hasCalendar
    calendar {
      ...CalendarFragment
    }
    id
    userId
    orgId
    user {
      ...UserFragment
    }
    organization {
      ...OrganizationFragment
    }
    invitation {
      ...InvitationFragment
    }
    role
    roles
    createdAt
    updatedAt
    status
    pin {
      ...PinFragment
    }
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "membership": {
      "hasCalendar": true,
      "calendar": Calendar,
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "userId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "user": User,
      "organization": Organization,
      "invitation": Invitation,
      "role": "OWNER",
      "roles": ["OWNER"],
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "status": "REQUESTED",
      "pin": Pin
    }
  }
}

organization

Description

Retrieve a specific organization by ID.

Authorization: organization_organizations_get on Organization(id)

Response

Returns an Organization!

Arguments
Name Description
id - ID!

Example

Query
query organization($id: ID!) {
  organization(id: $id) {
    hasCalendar
    id
    name
    domain
    logoMediaId
    logoUrl
    bookingSettings {
      ...OrganizationBookingSettingsFragment
    }
    deskBookingSettings {
      ...DeskBookingSettingsFragment
    }
    roomBookingSettings {
      ...RoomBookingSettingsFragment
    }
    parkingBookingSettings {
      ...ParkingBookingSettingsFragment
    }
    calendarSettings {
      ...CalendarSettingsFragment
    }
    whitelist
    whitelistEnabled
    language
    timezone
    deviceScreenTemplate
    brokenEquipmentReportEmails
    timePresentation
    deskStats {
      ...DeskStatsFragment
    }
    deviceStats {
      ...DeviceStatsFragment
    }
    membershipStats {
      ...MembershipStatsFragment
    }
    openHours {
      ...WeeklyOpenHoursFragment
    }
    licenseStats {
      ...LicenseStatsFragment
    }
    trial {
      ...LicenseFragment
    }
    ola
    deviceErrorReportEmails
    deviceErrorReportWebhookUrl
    createdAt
    updatedAt
    type
    schedulingSettings {
      ...SchedulingSettingsFragment
    }
    pin {
      ...PinFragment
    }
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "organization": {
      "hasCalendar": true,
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "abc123",
      "domain": "xyz789",
      "logoMediaId": "xyz789",
      "logoUrl": "xyz789",
      "bookingSettings": OrganizationBookingSettings,
      "deskBookingSettings": DeskBookingSettings,
      "roomBookingSettings": RoomBookingSettings,
      "parkingBookingSettings": ParkingBookingSettings,
      "calendarSettings": CalendarSettings,
      "whitelist": "abc123",
      "whitelistEnabled": true,
      "language": "xyz789",
      "timezone": "abc123",
      "deviceScreenTemplate": "LargeResourceName",
      "brokenEquipmentReportEmails": [
        "abc123"
      ],
      "timePresentation": "H24",
      "deskStats": DeskStats,
      "deviceStats": DeviceStats,
      "membershipStats": MembershipStats,
      "openHours": WeeklyOpenHours,
      "licenseStats": LicenseStats,
      "trial": [License],
      "ola": "xyz789",
      "deviceErrorReportEmails": ["xyz789"],
      "deviceErrorReportWebhookUrl": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "type": "SHARED",
      "schedulingSettings": SchedulingSettings,
      "pin": Pin
    }
  }
}

organizationPermissions

Response

Returns a PermissionSet!

Arguments
Name Description
input - OrganizationPermissionsInput!

Example

Query
query organizationPermissions($input: OrganizationPermissionsInput!) {
  organizationPermissions(input: $input) {
    appCommand {
      ...AppCommandPermissionsFragment
    }
    appSettings {
      ...AppSettingsPermissionsFragment
    }
    flagsFlags {
      ...FlagsFlagsPermissionsFragment
    }
    userUsers {
      ...UserUsersPermissionsFragment
    }
    organizationOrganizations {
      ...OrganizationOrganizationsPermissionsFragment
    }
    organizationMemberships {
      ...OrganizationMembershipsPermissionsFragment
    }
    organizationMessages {
      ...OrganizationMessagesPermissionsFragment
    }
    resourceTypes {
      ...ResourceTypesPermissionsFragment
    }
    placeTypes {
      ...PlaceTypesPermissionsFragment
    }
    deviceTypes {
      ...DeviceTypesPermissionsFragment
    }
    deviceSerial {
      ...DeviceSerialPermissionsFragment
    }
    facilityFacility {
      ...FacilityFacilityPermissionsFragment
    }
    fileTypes {
      ...FileTypesPermissionsFragment
    }
    fileSignedurl {
      ...FileSignedurlPermissionsFragment
    }
    fileFiles {
      ...FileFilesPermissionsFragment
    }
    firmwareFirmware {
      ...FirmwareFirmwarePermissionsFragment
    }
    firmwareChannel {
      ...FirmwareChannelPermissionsFragment
    }
    organizationMembershipinvitations {
      ...OrganizationMembershipinvitationsPermissionsFragment
    }
    calendarCalendarsources {
      ...CalendarCalendarsourcesPermissionsFragment
    }
    calendarCalendars {
      ...CalendarCalendarsPermissionsFragment
    }
    calendarCalendarevents {
      ...CalendarCalendareventsPermissionsFragment
    }
    colleagueColleagues {
      ...ColleagueColleaguesPermissionsFragment
    }
    resourceResources {
      ...ResourceResourcesPermissionsFragment
    }
    placePlaces {
      ...PlacePlacesPermissionsFragment
    }
    bookingBookings {
      ...BookingBookingsPermissionsFragment
    }
    mediaMedias {
      ...MediaMediasPermissionsFragment
    }
    planPlans {
      ...PlanPlansPermissionsFragment
    }
    notificationFcmtoken {
      ...NotificationFcmtokenPermissionsFragment
    }
    licenseLicenses {
      ...LicenseLicensesPermissionsFragment
    }
    licenseLicensetypes {
      ...LicenseLicensetypesPermissionsFragment
    }
    licenseLicenseassociation {
      ...LicenseLicenseassociationPermissionsFragment
    }
    idtagIdtags {
      ...IdtagIdtagsPermissionsFragment
    }
    pinPins {
      ...PinPinsPermissionsFragment
    }
    deviceDevices {
      ...DeviceDevicesPermissionsFragment
    }
    deviceDeviceevents {
      ...DeviceDeviceeventsPermissionsFragment
    }
    overviewOverviews {
      ...OverviewOverviewsPermissionsFragment
    }
    overviewAuthcode {
      ...OverviewAuthcodePermissionsFragment
    }
    calendarColleagues {
      ...CalendarColleaguesPermissionsFragment
    }
    natsauthNatsaccount {
      ...NatsauthNatsaccountPermissionsFragment
    }
    devicecommandDevice {
      ...DevicecommandDevicePermissionsFragment
    }
    placePlacefeatures {
      ...PlacePlacefeaturesPermissionsFragment
    }
    placePlacefeatureinstances {
      ...PlacePlacefeatureinstancesPermissionsFragment
    }
    scheduleCalendar {
      ...ScheduleCalendarPermissionsFragment
    }
    scheduleEvent {
      ...ScheduleEventPermissionsFragment
    }
    scheduleEventdeviceaction {
      ...ScheduleEventdeviceactionPermissionsFragment
    }
    organizationZoom {
      ...OrganizationZoomPermissionsFragment
    }
    subscriptionSubscriptions {
      ...SubscriptionSubscriptionsPermissionsFragment
    }
    subscriptionLicenses {
      ...SubscriptionLicensesPermissionsFragment
    }
    subscriptionPaymentmethods {
      ...SubscriptionPaymentmethodsPermissionsFragment
    }
    subscriptionBuyingid {
      ...SubscriptionBuyingidPermissionsFragment
    }
    subscriptionBillingaddress {
      ...SubscriptionBillingaddressPermissionsFragment
    }
  }
}
Variables
{"input": OrganizationPermissionsInput}
Response
{
  "data": {
    "organizationPermissions": {
      "appCommand": AppCommandPermissions,
      "appSettings": AppSettingsPermissions,
      "flagsFlags": FlagsFlagsPermissions,
      "userUsers": UserUsersPermissions,
      "organizationOrganizations": OrganizationOrganizationsPermissions,
      "organizationMemberships": OrganizationMembershipsPermissions,
      "organizationMessages": OrganizationMessagesPermissions,
      "resourceTypes": ResourceTypesPermissions,
      "placeTypes": PlaceTypesPermissions,
      "deviceTypes": DeviceTypesPermissions,
      "deviceSerial": DeviceSerialPermissions,
      "facilityFacility": FacilityFacilityPermissions,
      "fileTypes": FileTypesPermissions,
      "fileSignedurl": FileSignedurlPermissions,
      "fileFiles": FileFilesPermissions,
      "firmwareFirmware": FirmwareFirmwarePermissions,
      "firmwareChannel": FirmwareChannelPermissions,
      "organizationMembershipinvitations": OrganizationMembershipinvitationsPermissions,
      "calendarCalendarsources": CalendarCalendarsourcesPermissions,
      "calendarCalendars": CalendarCalendarsPermissions,
      "calendarCalendarevents": CalendarCalendareventsPermissions,
      "colleagueColleagues": ColleagueColleaguesPermissions,
      "resourceResources": ResourceResourcesPermissions,
      "placePlaces": PlacePlacesPermissions,
      "bookingBookings": BookingBookingsPermissions,
      "mediaMedias": MediaMediasPermissions,
      "planPlans": PlanPlansPermissions,
      "notificationFcmtoken": NotificationFcmtokenPermissions,
      "licenseLicenses": LicenseLicensesPermissions,
      "licenseLicensetypes": LicenseLicensetypesPermissions,
      "licenseLicenseassociation": LicenseLicenseassociationPermissions,
      "idtagIdtags": IdtagIdtagsPermissions,
      "pinPins": PinPinsPermissions,
      "deviceDevices": DeviceDevicesPermissions,
      "deviceDeviceevents": DeviceDeviceeventsPermissions,
      "overviewOverviews": OverviewOverviewsPermissions,
      "overviewAuthcode": OverviewAuthcodePermissions,
      "calendarColleagues": CalendarColleaguesPermissions,
      "natsauthNatsaccount": NatsauthNatsaccountPermissions,
      "devicecommandDevice": DevicecommandDevicePermissions,
      "placePlacefeatures": PlacePlacefeaturesPermissions,
      "placePlacefeatureinstances": PlacePlacefeatureinstancesPermissions,
      "scheduleCalendar": ScheduleCalendarPermissions,
      "scheduleEvent": ScheduleEventPermissions,
      "scheduleEventdeviceaction": ScheduleEventdeviceactionPermissions,
      "organizationZoom": OrganizationZoomPermissions,
      "subscriptionSubscriptions": SubscriptionSubscriptionsPermissions,
      "subscriptionLicenses": SubscriptionLicensesPermissions,
      "subscriptionPaymentmethods": SubscriptionPaymentmethodsPermissions,
      "subscriptionBuyingid": SubscriptionBuyingidPermissions,
      "subscriptionBillingaddress": SubscriptionBillingaddressPermissions
    }
  }
}

overview

Response

Returns an Overview!

Arguments
Name Description
id - ID! The ID of the overview. The alias "me" can also be used if the caller is an overview.

Example

Query
query overview($id: ID!) {
  overview(id: $id) {
    id
    orgId
    type
    mode
    name
    message
    alert {
      ...AlertFragment
    }
    showDateTime
    showLogo
    darkMode
    columnCount
    tiles {
      ...TileFragment
    }
    logoUrl
    createdAt
    updatedAt
    place {
      ...PlaceFragment
    }
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "overview": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "abc123",
      "type": "TILES",
      "mode": "MONITORING",
      "name": "abc123",
      "message": "xyz789",
      "alert": Alert,
      "showDateTime": false,
      "showLogo": false,
      "darkMode": true,
      "columnCount": 987,
      "tiles": [Tile],
      "logoUrl": "abc123",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "place": Place
    }
  }
}

place

Response

Returns a Place!

Arguments
Name Description
id - ID!

Example

Query
query place($id: ID!) {
  place(id: $id) {
    currentBooking {
      ...BookingFragment
    }
    nextBooking {
      ...BookingFragment
    }
    id
    name
    parentPlaceId
    placeTypeId
    settings {
      ... on BuildingSettings {
        ...BuildingSettingsFragment
      }
      ... on SiteSettings {
        ...SiteSettingsFragment
      }
      ... on FloorSettings {
        ...FloorSettingsFragment
      }
      ... on ZoneSettings {
        ...ZoneSettingsFragment
      }
      ... on DeskSettings {
        ...DeskSettingsFragment
      }
      ... on RoomSettings {
        ...RoomSettingsFragment
      }
    }
    attributes {
      ... on BuildingAttributes {
        ...BuildingAttributesFragment
      }
      ... on SiteAttributes {
        ...SiteAttributesFragment
      }
      ... on FloorAttributes {
        ...FloorAttributesFragment
      }
      ... on ParkingLotAttributes {
        ...ParkingLotAttributesFragment
      }
      ... on ParkingSpaceAttributes {
        ...ParkingSpaceAttributesFragment
      }
      ... on DeskAttributes {
        ...DeskAttributesFragment
      }
      ... on RoomAttributes {
        ...RoomAttributesFragment
      }
    }
    createdAt
    updatedAt
    deviceCount
    plan {
      ...PlanFragment
    }
    fullName
    hierarchy {
      ...PlaceSummaryFragment
    }
    hasChildren
    media {
      ...MediaFragment
    }
    available {
      ...AvailabilityFragment
    }
    calendar {
      ...PlaceFeatureInstanceFragment
    }
    zoomInfo {
      ...ZoomPlaceInfoFragment
    }
    timeZoneOffset
    owner {
      ...MembershipFragment
    }
    isDedicated
    qrCodeString
    schedulingSettings {
      ...SchedulingSettingsFragment
    }
    mergedSchedulingSettings {
      ...SchedulingSettingsFragment
    }
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "place": {
      "currentBooking": Booking,
      "nextBooking": Booking,
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "xyz789",
      "parentPlaceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "placeTypeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "settings": BuildingSettings,
      "attributes": BuildingAttributes,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "deviceCount": 123,
      "plan": Plan,
      "fullName": ["abc123"],
      "hierarchy": [PlaceSummary],
      "hasChildren": true,
      "media": Media,
      "available": Availability,
      "calendar": PlaceFeatureInstance,
      "zoomInfo": ZoomPlaceInfo,
      "timeZoneOffset": 123,
      "owner": Membership,
      "isDedicated": false,
      "qrCodeString": "abc123",
      "schedulingSettings": SchedulingSettings,
      "mergedSchedulingSettings": SchedulingSettings
    }
  }
}

placeBookingSummary

Response

Returns a PlaceBookingSummary!

Arguments
Name Description
orgId - ID!
filter - PlaceStatisticsFilter!

Example

Query
query placeBookingSummary(
  $orgId: ID!,
  $filter: PlaceStatisticsFilter!
) {
  placeBookingSummary(
    orgId: $orgId,
    filter: $filter
  ) {
    totalBookingCount
    totalBookingSeconds
    activeUserCount
    totalUserCount
    distribution {
      ...PlaceDistributionFragment
    }
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "filter": PlaceStatisticsFilter
}
Response
{
  "data": {
    "placeBookingSummary": {
      "totalBookingCount": 987,
      "totalBookingSeconds": 123,
      "activeUserCount": 987,
      "totalUserCount": 987,
      "distribution": [PlaceDistribution]
    }
  }
}

placeFeature

Response

Returns a PlaceFeature

Arguments
Name Description
id - ID!

Example

Query
query placeFeature($id: ID!) {
  placeFeature(id: $id) {
    id
    enabled
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "placeFeature": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "enabled": true
    }
  }
}

placeFeatureInstance

Response

Returns a PlaceFeatureInstance

Arguments
Name Description
placeId - ID!
featureId - ID!

Example

Query
query placeFeatureInstance(
  $placeId: ID!,
  $featureId: ID!
) {
  placeFeatureInstance(
    placeId: $placeId,
    featureId: $featureId
  ) {
    placeId
    featureId
    orgId
    enabled
    disabled_reason
    attributes {
      ... on PlaceFeatureInstanceCalendarAttributes {
        ...PlaceFeatureInstanceCalendarAttributesFragment
      }
    }
  }
}
Variables
{
  "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "featureId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
}
Response
{
  "data": {
    "placeFeatureInstance": {
      "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "featureId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "enabled": false,
      "disabled_reason": "abc123",
      "attributes": PlaceFeatureInstanceCalendarAttributes
    }
  }
}

placeLicenseState

placeLicenseTypeStates[0].state is equivalent to placeLicenseState. Deprecated January 29th 2026
Description

Get the license state for a specific place.

Authorization: place_places_get on Place(placeId)

Response

Returns a PlaceLicenseState!

Arguments
Name Description
placeId - String!

Example

Query
query placeLicenseState($placeId: String!) {
  placeLicenseState(placeId: $placeId)
}
Variables
{"placeId": "abc123"}
Response
{"data": {"placeLicenseState": "UNSPECIFIED"}}

placeLicenseTypeStates

Use entityLicenseTypeStates with entityType: PLACE
Description

Get the license states per license type for a specific place.

Authorization: place_places_get on Place(placeId)

Response

Returns [PlaceLicenseTypeState!]!

Arguments
Name Description
placeId - String!

Example

Query
query placeLicenseTypeStates($placeId: String!) {
  placeLicenseTypeStates(placeId: $placeId) {
    licenseTypeId
    state
    startTime
    endTime
    licenseIds
  }
}
Variables
{"placeId": "xyz789"}
Response
{
  "data": {
    "placeLicenseTypeStates": [
      {
        "licenseTypeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
        "state": "UNSPECIFIED",
        "startTime": "2007-12-03T10:15:30Z",
        "endTime": "2007-12-03T10:15:30Z",
        "licenseIds": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"]
      }
    ]
  }
}

placeStatistics

Response

Returns a PlaceStatisticsConnection!

Arguments
Name Description
limit - Int
offset - Int
filter - PlaceStatisticsFilter!
order - [PlaceStatisticsOrder!]
orgId - ID!

Example

Query
query placeStatistics(
  $limit: Int,
  $offset: Int,
  $filter: PlaceStatisticsFilter!,
  $order: [PlaceStatisticsOrder!],
  $orgId: ID!
) {
  placeStatistics(
    limit: $limit,
    offset: $offset,
    filter: $filter,
    order: $order,
    orgId: $orgId
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
    statistics {
      ...PlaceStatisticsFragment
    }
  }
}
Variables
{
  "limit": 987,
  "offset": 123,
  "filter": PlaceStatisticsFilter,
  "order": [PlaceStatisticsOrder],
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
}
Response
{
  "data": {
    "placeStatistics": {
      "pageInfo": PageInfo,
      "totalCount": 123,
      "statistics": [PlaceStatistics]
    }
  }
}

profile

Description

Get the authenticated user's profile information.

Requires: Authentication

Response

Returns a User!

Example

Query
query profile {
  profile {
    id
    name
    firstName
    lastName
    email
    eula
    verified
    memberships {
      ...MembershipFragment
    }
    invitations {
      ...InvitationFragment
    }
    superAdmin
    createdAt
    updatedAt
  }
}
Response
{
  "data": {
    "profile": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "xyz789",
      "firstName": "abc123",
      "lastName": "xyz789",
      "email": "xyz789",
      "eula": "abc123",
      "verified": false,
      "memberships": [Membership],
      "invitations": [Invitation],
      "superAdmin": true,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

room

Response

Returns a Room!

Arguments
Name Description
id - ID!

Example

Query
query room($id: ID!) {
  room(id: $id) {
    id
    orgId
    floorId
    floor {
      ...FloorFragment
    }
    name
    email
    capacity
    roomType
    resources
    bookingSettings {
      ...RoomBookingSettingsFragment
    }
    currentBooking {
      ...RoomBookingFragment
    }
    nextBooking {
      ...RoomBookingFragment
    }
    available {
      ...AvailabilityFragment
    }
    timeZone
    timeZoneOffset
    timePresentation
    deviceScreenTemplate
    brokenEquipmentReportEmails
    createdAt
    updatedAt
    license {
      ...LicenseFragment
    }
    media {
      ...MediaFragment
    }
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "room": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "floorId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "floor": Floor,
      "name": "abc123",
      "email": "abc123",
      "capacity": 123,
      "roomType": "abc123",
      "resources": ["ROOM_TEMPERATURE"],
      "bookingSettings": RoomBookingSettings,
      "currentBooking": RoomBooking,
      "nextBooking": RoomBooking,
      "available": Availability,
      "timeZone": "abc123",
      "timeZoneOffset": 987,
      "timePresentation": "H24",
      "deviceScreenTemplate": "LargeResourceName",
      "brokenEquipmentReportEmails": [
        "xyz789"
      ],
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "license": License,
      "media": Media
    }
  }
}

searchToken

Description

Generates a search token.

Response

Returns a SearchToken!

Arguments
Name Description
orgId - ID!

Example

Query
query searchToken($orgId: ID!) {
  searchToken(orgId: $orgId) {
    token
    expiresAt
  }
}
Variables
{"orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "searchToken": {
      "token": "xyz789",
      "expiresAt": "2007-12-03T10:15:30Z"
    }
  }
}

userByIdTag

Description

Retrieve a user by their ID tag within a specific organization.

Requires: Organization membership

Response

Returns a User!

Arguments
Name Description
idTag - String!
orgId - ID!

Example

Query
query userByIdTag(
  $idTag: String!,
  $orgId: ID!
) {
  userByIdTag(
    idTag: $idTag,
    orgId: $orgId
  ) {
    id
    name
    firstName
    lastName
    email
    eula
    verified
    memberships {
      ...MembershipFragment
    }
    invitations {
      ...InvitationFragment
    }
    superAdmin
    createdAt
    updatedAt
  }
}
Variables
{
  "idTag": "abc123",
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
}
Response
{
  "data": {
    "userByIdTag": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "abc123",
      "firstName": "xyz789",
      "lastName": "abc123",
      "email": "abc123",
      "eula": "abc123",
      "verified": false,
      "memberships": [Membership],
      "invitations": [Invitation],
      "superAdmin": false,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

zoomConnection

Description

Get the Zoom connection for an organization.

Returns null if no connection exists.

Response

Returns a ZoomConnection

Arguments
Name Description
orgId - ID!

Example

Query
query zoomConnection($orgId: ID!) {
  zoomConnection(orgId: $orgId) {
    id
    orgId
    zoomAccountId
    connectedAt
    connectedByUserId
    status
    statusMessage
    statusUpdatedAt
    installId
    reauthLink
    syncLog {
      ...SyncLogEntryFragment
    }
    managedPlacesCount
    linkedDevicesCount
  }
}
Variables
{"orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "zoomConnection": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "zoomAccountId": "xyz789",
      "connectedAt": "2007-12-03T10:15:30Z",
      "connectedByUserId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "status": "ACTIVE",
      "statusMessage": "abc123",
      "statusUpdatedAt": "2007-12-03T10:15:30Z",
      "installId": "xyz789",
      "reauthLink": "abc123",
      "syncLog": [SyncLogEntry],
      "managedPlacesCount": 987,
      "linkedDevicesCount": 123
    }
  }
}

zoomInstallLockStatus

Description

Lock status of a pending Zoom installation.

Returns whether the install's Zoom account is already linked to an Evoko org. The web picker calls this after the OAuth callback to disable non-locked orgs and to redirect or show an error when the locked org is not in the user's memberships.

Authentication: requires an authenticated user (any role). At the point this is called (org-picker page after OAuth redirect), the user is signed in via Zitadel; the installId is itself a capability obtained from the OAuth redirect. The query intentionally does NOT carry @orgBlockCheckDirective because no org is in context yet.

Response

Returns a ZoomInstallLockStatus!

Arguments
Name Description
installId - ID!

Example

Query
query zoomInstallLockStatus($installId: ID!) {
  zoomInstallLockStatus(installId: $installId) {
    locked
    lockedOrgId
  }
}
Variables
{"installId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "zoomInstallLockStatus": {
      "locked": true,
      "lockedOrgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
    }
  }
}

zoomLogs

Description

Get Zoom integration activity logs for an organization. Filters are optional and composable: start/end bound by createdAt, syncPeriod narrows to a specific sync run.

Response

Returns [SyncLogEntry!]!

Arguments
Name Description
orgId - ID!
start - DateTime
end - DateTime
syncPeriod - DateTime
limit - Int! Default = 50
offset - Int

Example

Query
query zoomLogs(
  $orgId: ID!,
  $start: DateTime,
  $end: DateTime,
  $syncPeriod: DateTime,
  $limit: Int!,
  $offset: Int
) {
  zoomLogs(
    orgId: $orgId,
    start: $start,
    end: $end,
    syncPeriod: $syncPeriod,
    limit: $limit,
    offset: $offset
  ) {
    id
    logLevel
    message
    syncPeriod
    createdAt
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "start": "2007-12-03T10:15:30Z",
  "end": "2007-12-03T10:15:30Z",
  "syncPeriod": "2007-12-03T10:15:30Z",
  "limit": 50,
  "offset": 123
}
Response
{
  "data": {
    "zoomLogs": [
      {
        "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
        "logLevel": "INFO",
        "message": "abc123",
        "syncPeriod": "2007-12-03T10:15:30Z",
        "createdAt": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

zoomPlaceInfo

Description

Get Zoom connection info for a specific place.

Returns whether the place has a Zoom connection and its QR code string.

Response

Returns a ZoomPlaceInfo

Arguments
Name Description
placeId - ID!

Example

Query
query zoomPlaceInfo($placeId: ID!) {
  zoomPlaceInfo(placeId: $placeId) {
    hasConnection
    qrCodeString
  }
}
Variables
{"placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "zoomPlaceInfo": {
      "hasConnection": true,
      "qrCodeString": "abc123"
    }
  }
}

Mutations

acceptCalendarEvent

Description

Accept a calendar event invitation.

Authorization: calendar_calendarevents_accept on CalendarEvent(id)

Response

Returns a CalendarEvent!

Arguments
Name Description
id - ID!

Example

Query
mutation acceptCalendarEvent($id: ID!) {
  acceptCalendarEvent(id: $id) {
    id
    name
    calendarId
    timesSynced
    remoteId
    remoteData
    isRecurring
    isWholeDay
    sensitivity
    startTime
    endTime
    createdAt
    updatedAt
    attendees {
      ...AttendeeFragment
    }
    meetingUrl
    creator
    iCalUID
    meetingProvider
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "acceptCalendarEvent": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "abc123",
      "calendarId": "xyz789",
      "timesSynced": 123,
      "remoteId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "remoteData": "abc123",
      "isRecurring": false,
      "isWholeDay": true,
      "sensitivity": "PRIVATE",
      "startTime": "2007-12-03T10:15:30Z",
      "endTime": "2007-12-03T10:15:30Z",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "attendees": [Attendee],
      "meetingUrl": "xyz789",
      "creator": "xyz789",
      "iCalUID": "xyz789",
      "meetingProvider": "UNSPECIFIED"
    }
  }
}

acceptInvitation

Response

Returns an Invitation

Arguments
Name Description
id - ID!

Example

Query
mutation acceptInvitation($id: ID!) {
  acceptInvitation(id: $id) {
    id
    orgId
    email
    expiresAt
    organization {
      ...OrganizationFragment
    }
    status
    membership {
      ...MembershipFragment
    }
    createdAt
    updatedAt
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "acceptInvitation": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "email": "xyz789",
      "expiresAt": "2007-12-03T10:15:30Z",
      "organization": Organization,
      "status": "PENDING",
      "membership": Membership,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

activateLicense

Description

Activate a license for an organization.

Authorization: license_licenses_activate on Organization(orgId)

Response

Returns a License!

Arguments
Name Description
id - ID!
orgId - ID!
activationTime - DateTime

Example

Query
mutation activateLicense(
  $id: ID!,
  $orgId: ID!,
  $activationTime: DateTime
) {
  activateLicense(
    id: $id,
    orgId: $orgId,
    activationTime: $activationTime
  ) {
    id
    refId
    count
    duration
    activatesAt
    expiresAt
    createdAt
    updatedAt
    revokedAt
    organization {
      ...OrganizationFragment
    }
    licenseTypeId
    trial
    state
    licenseType {
      ...LicenseTypeFragment
    }
    associations {
      ...LicenseAssociationsConnectionFragment
    }
    places {
      ...LicensePlacesConnectionFragment
    }
  }
}
Variables
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "activationTime": "2007-12-03T10:15:30Z"
}
Response
{
  "data": {
    "activateLicense": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "refId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "count": 987,
      "duration": 123,
      "activatesAt": "2007-12-03T10:15:30Z",
      "expiresAt": "2007-12-03T10:15:30Z",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "revokedAt": "2007-12-03T10:15:30Z",
      "organization": Organization,
      "licenseTypeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "trial": false,
      "state": "UNSPECIFIED",
      "licenseType": LicenseType,
      "associations": LicenseAssociationsConnection,
      "places": LicensePlacesConnection
    }
  }
}

activateMembership

Description

Activate a pending or deactivated membership.

Requires: Organization admin or owner role

Response

Returns a Membership!

Arguments
Name Description
id - ID!

Example

Query
mutation activateMembership($id: ID!) {
  activateMembership(id: $id) {
    hasCalendar
    calendar {
      ...CalendarFragment
    }
    id
    userId
    orgId
    user {
      ...UserFragment
    }
    organization {
      ...OrganizationFragment
    }
    invitation {
      ...InvitationFragment
    }
    role
    roles
    createdAt
    updatedAt
    status
    pin {
      ...PinFragment
    }
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "activateMembership": {
      "hasCalendar": true,
      "calendar": Calendar,
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "userId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "user": User,
      "organization": Organization,
      "invitation": Invitation,
      "role": "OWNER",
      "roles": ["OWNER"],
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "status": "REQUESTED",
      "pin": Pin
    }
  }
}

activateOverviewCode

Description

Activate the overview code. This will bind the overview code to the authenticated user and extend the expiration. Can be called multiple times to extend the expiration. If the code can not be activated, one of the following errors will be returned:

  • notFound: the code do not exists or already activated by another user
  • expiredToken: the auth request has expired
  • conflict: if the request is already authorized
Response

Returns an ActivateOverviewCodePayload!

Arguments
Name Description
userCode - String!

Example

Query
mutation activateOverviewCode($userCode: String!) {
  activateOverviewCode(userCode: $userCode) {
    userCode
    expiresIn
  }
}
Variables
{"userCode": "abc123"}
Response
{
  "data": {
    "activateOverviewCode": {
      "userCode": "xyz789",
      "expiresIn": "P3Y6M4DT12H30M5S"
    }
  }
}

activateTrialLicense

Description

Activate trial licenses for an organization.

Authorization: license_licenses_activate on Organization(orgId)

Response

Returns a LicensesConnection!

Arguments
Name Description
orgId - ID!
activationTime - DateTime

Example

Query
mutation activateTrialLicense(
  $orgId: ID!,
  $activationTime: DateTime
) {
  activateTrialLicense(
    orgId: $orgId,
    activationTime: $activationTime
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
    licenses {
      ...LicenseFragment
    }
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "activationTime": "2007-12-03T10:15:30Z"
}
Response
{
  "data": {
    "activateTrialLicense": {
      "pageInfo": PageInfo,
      "totalCount": 123,
      "licenses": [License]
    }
  }
}

activateUser

Description

Activate user account in the current region after providing consent to store data.

Requires: Authentication. Called after user provides regional data storage consent.

Response

Returns a User!

Example

Query
mutation activateUser {
  activateUser {
    id
    name
    firstName
    lastName
    email
    eula
    verified
    memberships {
      ...MembershipFragment
    }
    invitations {
      ...InvitationFragment
    }
    superAdmin
    createdAt
    updatedAt
  }
}
Response
{
  "data": {
    "activateUser": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "xyz789",
      "firstName": "xyz789",
      "lastName": "xyz789",
      "email": "abc123",
      "eula": "abc123",
      "verified": false,
      "memberships": [Membership],
      "invitations": [Invitation],
      "superAdmin": false,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

addBooking

Response

Returns a Booking!

Arguments
Name Description
orgId - ID!
input - AddBookingInput!
idTag - String
pin - String

Example

Query
mutation addBooking(
  $orgId: ID!,
  $input: AddBookingInput!,
  $idTag: String,
  $pin: String
) {
  addBooking(
    orgId: $orgId,
    input: $input,
    idTag: $idTag,
    pin: $pin
  ) {
    id
    startTime
    endTime
    checkedIn
    checkedOut
    canceled
    isWholeDay
    userDeleted
    place {
      ...PlaceFragment
    }
    user {
      ...UserFragment
    }
    skipAwayFromDeskReminder
    skipLateArrivalReminder
    focusMode
    arrivedAt
    title
    attendees {
      ...AttendeeFragment
    }
    isPrivate
    isImmutable
    organizer
    desk {
      ...DeskFragment
    }
    resource {
      ...ResourceFragment
    }
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": AddBookingInput,
  "idTag": "abc123",
  "pin": "xyz789"
}
Response
{
  "data": {
    "addBooking": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "startTime": "2007-12-03T10:15:30Z",
      "endTime": "2007-12-03T10:15:30Z",
      "checkedIn": "2007-12-03T10:15:30Z",
      "checkedOut": "2007-12-03T10:15:30Z",
      "canceled": "2007-12-03T10:15:30Z",
      "isWholeDay": true,
      "userDeleted": false,
      "place": Place,
      "user": User,
      "skipAwayFromDeskReminder": false,
      "skipLateArrivalReminder": false,
      "focusMode": true,
      "arrivedAt": "2007-12-03T10:15:30Z",
      "title": "abc123",
      "attendees": [Attendee],
      "isPrivate": true,
      "isImmutable": true,
      "organizer": "xyz789",
      "desk": Desk,
      "resource": Resource
    }
  }
}

addCalendarSource

Description

Add a new calendar source (Google or Microsoft) to an organization.

Authorization: calendar_calendarsources_create on Organization(orgId)

Response

Returns a CalendarSource!

Arguments
Name Description
orgId - ID!
input - AddCalendarSourceInput!

Example

Query
mutation addCalendarSource(
  $orgId: ID!,
  $input: AddCalendarSourceInput!
) {
  addCalendarSource(
    orgId: $orgId,
    input: $input
  ) {
    id
    createdAt
    updatedAt
    orgId
    settings
    provider
    resourceAdmin
    syncedAt
    syncErrors
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": AddCalendarSourceInput
}
Response
{
  "data": {
    "addCalendarSource": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "orgId": "abc123",
      "settings": "abc123",
      "provider": "GOOGLE",
      "resourceAdmin": "xyz789",
      "syncedAt": "2007-12-03T10:15:30Z",
      "syncErrors": ["xyz789"]
    }
  }
}

addChannel

Description

Create a new firmware distribution channel.

Authorization: firmware_channel_create on Platform

Response

Returns a Channel!

Arguments
Name Description
input - AddChannelInput!

Example

Query
mutation addChannel($input: AddChannelInput!) {
  addChannel(input: $input) {
    id
    name
  }
}
Variables
{"input": AddChannelInput}
Response
{
  "data": {
    "addChannel": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "abc123"
    }
  }
}

addDeviceHeartbeatEvent

Response

Returns a Boolean!

Arguments
Name Description
deviceId - ID!

Example

Query
mutation addDeviceHeartbeatEvent($deviceId: ID!) {
  addDeviceHeartbeatEvent(deviceId: $deviceId)
}
Variables
{"deviceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{"data": {"addDeviceHeartbeatEvent": false}}

addDeviceOfflineEvent

Description

Send a message to indicate that the device is going offline.

Response

Returns a Boolean!

Arguments
Name Description
deviceId - ID!
reason - OfflineReason! Default = UNSPECIFIED
duration - Duration

Example

Query
mutation addDeviceOfflineEvent(
  $deviceId: ID!,
  $reason: OfflineReason!,
  $duration: Duration
) {
  addDeviceOfflineEvent(
    deviceId: $deviceId,
    reason: $reason,
    duration: $duration
  )
}
Variables
{
  "deviceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "reason": "UNSPECIFIED",
  "duration": "P3Y6M4DT12H30M5S"
}
Response
{"data": {"addDeviceOfflineEvent": false}}

addDeviceSpecificSettings

Description

Adds a device specific setting to the device with the given device id

Response

Returns a DeviceSpecificSettings!

Arguments
Name Description
deviceID - ID!
input - AddDeviceSpecificSettingsInput!

Example

Query
mutation addDeviceSpecificSettings(
  $deviceID: ID!,
  $input: AddDeviceSpecificSettingsInput!
) {
  addDeviceSpecificSettings(
    deviceID: $deviceID,
    input: $input
  ) {
    id
    deviceID
    preset
    data
    dataVersion
    createdAt
    updatedAt
  }
}
Variables
{
  "deviceID": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": AddDeviceSpecificSettingsInput
}
Response
{
  "data": {
    "addDeviceSpecificSettings": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "deviceID": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "preset": "abc123",
      "data": "abc123",
      "dataVersion": "abc123",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

addDeviceStatusEvent

Response

Returns a Boolean!

Arguments
Name Description
orgId - ID!
deviceId - ID!
data - DeviceEventStatusInput!

Example

Query
mutation addDeviceStatusEvent(
  $orgId: ID!,
  $deviceId: ID!,
  $data: DeviceEventStatusInput!
) {
  addDeviceStatusEvent(
    orgId: $orgId,
    deviceId: $deviceId,
    data: $data
  )
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "deviceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "data": DeviceEventStatusInput
}
Response
{"data": {"addDeviceStatusEvent": true}}

addDeviceTelemetryEvent

Response

Returns a Boolean!

Arguments
Name Description
orgId - ID!
deviceId - ID!
data - DeviceEventTelemetryInput!

Example

Query
mutation addDeviceTelemetryEvent(
  $orgId: ID!,
  $deviceId: ID!,
  $data: DeviceEventTelemetryInput!
) {
  addDeviceTelemetryEvent(
    orgId: $orgId,
    deviceId: $deviceId,
    data: $data
  )
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "deviceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "data": DeviceEventTelemetryInput
}
Response
{"data": {"addDeviceTelemetryEvent": true}}

addDeviceType

Description

Create a new device type in the platform.

Authorization: device_types_create on Platform

Response

Returns a DeviceType!

Arguments
Name Description
input - AddDeviceTypeInput!

Example

Query
mutation addDeviceType($input: AddDeviceTypeInput!) {
  addDeviceType(input: $input) {
    id
    name
    attributes {
      ...DeviceTypeAttributesFragment
    }
  }
}
Variables
{"input": AddDeviceTypeInput}
Response
{
  "data": {
    "addDeviceType": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "abc123",
      "attributes": DeviceTypeAttributes
    }
  }
}

addFirmware

Description

Upload and register a new firmware version.

Authorization: firmware_firmware_create on Platform

Response

Returns a Firmware!

Arguments
Name Description
input - AddFirmwareInput!

Example

Query
mutation addFirmware($input: AddFirmwareInput!) {
  addFirmware(input: $input) {
    id
    deviceType {
      ...DeviceTypeFragment
    }
    version
    url
    publicKey
    variant
    channels {
      ...ChannelFragment
    }
    createdAt
    updatedAt
  }
}
Variables
{"input": AddFirmwareInput}
Response
{
  "data": {
    "addFirmware": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "deviceType": DeviceType,
      "version": "abc123",
      "url": "abc123",
      "publicKey": "xyz789",
      "variant": "xyz789",
      "channels": [Channel],
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

addIDTag

Description

Add an ID tag for a user. Only org admins can add tags to other users.

Authorization: idtag_idtags_create on Membership (of target user)

Response

Returns an IDTag!

Arguments
Name Description
orgId - ID!
userId - ID!
tag - String!
name - String

Example

Query
mutation addIDTag(
  $orgId: ID!,
  $userId: ID!,
  $tag: String!,
  $name: String
) {
  addIDTag(
    orgId: $orgId,
    userId: $userId,
    tag: $tag,
    name: $name
  ) {
    id
    userId
    orgId
    name
    tag
    createdAt
    updatedAt
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "userId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "tag": "abc123",
  "name": "abc123"
}
Response
{
  "data": {
    "addIDTag": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "userId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "xyz789",
      "tag": "abc123",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

addInvitation

Response

Returns an Invitation!

Arguments
Name Description
orgId - ID!
input - AddInvitationInput!

Example

Query
mutation addInvitation(
  $orgId: ID!,
  $input: AddInvitationInput!
) {
  addInvitation(
    orgId: $orgId,
    input: $input
  ) {
    id
    orgId
    email
    expiresAt
    organization {
      ...OrganizationFragment
    }
    status
    membership {
      ...MembershipFragment
    }
    createdAt
    updatedAt
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": AddInvitationInput
}
Response
{
  "data": {
    "addInvitation": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "email": "abc123",
      "expiresAt": "2007-12-03T10:15:30Z",
      "organization": Organization,
      "status": "PENDING",
      "membership": Membership,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

addInvitations

Description

Bulk invite up to 50 members to an organization by email address.

Response

Returns an AddInvitationsResult!

Arguments
Name Description
orgId - ID!
input - AddInvitationsInput!

Example

Query
mutation addInvitations(
  $orgId: ID!,
  $input: AddInvitationsInput!
) {
  addInvitations(
    orgId: $orgId,
    input: $input
  ) {
    invitations {
      ...InvitationFragment
    }
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": AddInvitationsInput
}
Response
{
  "data": {
    "addInvitations": {"invitations": [Invitation]}
  }
}

addLicense

Description

Create a new license and optionally assign it to an organization.

Authorization: license_licenses_create on Platform

Response

Returns a License!

Arguments
Name Description
input - AddLicenseInput!

Example

Query
mutation addLicense($input: AddLicenseInput!) {
  addLicense(input: $input) {
    id
    refId
    count
    duration
    activatesAt
    expiresAt
    createdAt
    updatedAt
    revokedAt
    organization {
      ...OrganizationFragment
    }
    licenseTypeId
    trial
    state
    licenseType {
      ...LicenseTypeFragment
    }
    associations {
      ...LicenseAssociationsConnectionFragment
    }
    places {
      ...LicensePlacesConnectionFragment
    }
  }
}
Variables
{"input": AddLicenseInput}
Response
{
  "data": {
    "addLicense": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "refId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "count": 987,
      "duration": 123,
      "activatesAt": "2007-12-03T10:15:30Z",
      "expiresAt": "2007-12-03T10:15:30Z",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "revokedAt": "2007-12-03T10:15:30Z",
      "organization": Organization,
      "licenseTypeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "trial": false,
      "state": "UNSPECIFIED",
      "licenseType": LicenseType,
      "associations": LicenseAssociationsConnection,
      "places": LicensePlacesConnection
    }
  }
}

addLicenseAssociation

Description

Associate a license with any licensed entity (place, device, or future types).

Authorization: license_licenseassociation_create on License(licenseId)

Response

Returns a LicenseAssociation

Arguments
Name Description
input - AddLicenseAssociation!

Example

Query
mutation addLicenseAssociation($input: AddLicenseAssociation!) {
  addLicenseAssociation(input: $input) {
    id
    createdAt
    updatedAt
    license {
      ...LicenseFragment
    }
    boundEntityType
    boundEntityId
    placeId
    deviceId
  }
}
Variables
{"input": AddLicenseAssociation}
Response
{
  "data": {
    "addLicenseAssociation": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "license": License,
      "boundEntityType": "PLACE",
      "boundEntityId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "deviceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
    }
  }
}

addLicensePlace

Use addLicenseAssociation with entityType: PLACE
Description

Associate a license with a place.

Authorization: license_licenseassociation_create on License(licenseId)

Response

Returns a LicenseAssociation

Arguments
Name Description
input - AddLicensePlace

Example

Query
mutation addLicensePlace($input: AddLicensePlace) {
  addLicensePlace(input: $input) {
    id
    createdAt
    updatedAt
    license {
      ...LicenseFragment
    }
    boundEntityType
    boundEntityId
    placeId
    deviceId
  }
}
Variables
{"input": AddLicensePlace}
Response
{
  "data": {
    "addLicensePlace": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "license": License,
      "boundEntityType": "PLACE",
      "boundEntityId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "deviceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
    }
  }
}

addLicenseType

Description

Create a new license type in the platform.

Authorization: license_licensetypes_create on Platform

Response

Returns a LicenseType

Arguments
Name Description
input - AddLicenseTypeInput!

Example

Query
mutation addLicenseType($input: AddLicenseTypeInput!) {
  addLicenseType(input: $input) {
    id
    name
    createdAt
    updatedAt
    entitySupport {
      ...LicenseTypeEntitySupportFragment
    }
    placeFeatures
    deviceFeatures
  }
}
Variables
{"input": AddLicenseTypeInput}
Response
{
  "data": {
    "addLicenseType": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "entitySupport": [LicenseTypeEntitySupport],
      "placeFeatures": ["xyz789"],
      "deviceFeatures": ["abc123"]
    }
  }
}

addLicensesToOrg

Description

Assign multiple licenses to an organization.

Authorization: license_licenses_activate on Organization(orgId)

Response

Returns a LicensesConnection!

Arguments
Name Description
orgId - ID!
input - AddLicensesInput!

Example

Query
mutation addLicensesToOrg(
  $orgId: ID!,
  $input: AddLicensesInput!
) {
  addLicensesToOrg(
    orgId: $orgId,
    input: $input
  ) {
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
    licenses {
      ...LicenseFragment
    }
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": AddLicensesInput
}
Response
{
  "data": {
    "addLicensesToOrg": {
      "pageInfo": PageInfo,
      "totalCount": 987,
      "licenses": [License]
    }
  }
}

addOrganizationMessage

Response

Returns an OrganizationMessage!

Arguments
Name Description
input - AddOrganizationMessageInput!

Example

Query
mutation addOrganizationMessage($input: AddOrganizationMessageInput!) {
  addOrganizationMessage(input: $input) {
    id
    organizations {
      ...OrganizationFragment
    }
    type
    content
    canBeClosed
    showToAllOrganizations
    showAt
    hideAt
  }
}
Variables
{"input": AddOrganizationMessageInput}
Response
{
  "data": {
    "addOrganizationMessage": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "organizations": [Organization],
      "type": "SUCCESS",
      "content": "abc123",
      "canBeClosed": true,
      "showToAllOrganizations": false,
      "showAt": "2007-12-03T10:15:30Z",
      "hideAt": "2007-12-03T10:15:30Z"
    }
  }
}

addOverview

Response

Returns an Overview!

Arguments
Name Description
input - AddOverviewInput!

Example

Query
mutation addOverview($input: AddOverviewInput!) {
  addOverview(input: $input) {
    id
    orgId
    type
    mode
    name
    message
    alert {
      ...AlertFragment
    }
    showDateTime
    showLogo
    darkMode
    columnCount
    tiles {
      ...TileFragment
    }
    logoUrl
    createdAt
    updatedAt
    place {
      ...PlaceFragment
    }
  }
}
Variables
{"input": AddOverviewInput}
Response
{
  "data": {
    "addOverview": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "abc123",
      "type": "TILES",
      "mode": "MONITORING",
      "name": "xyz789",
      "message": "abc123",
      "alert": Alert,
      "showDateTime": true,
      "showLogo": false,
      "darkMode": false,
      "columnCount": 987,
      "tiles": [Tile],
      "logoUrl": "abc123",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "place": Place
    }
  }
}

addPlace

Response

Returns a Place!

Arguments
Name Description
orgId - ID!
input - AddPlaceInput!

Example

Query
mutation addPlace(
  $orgId: ID!,
  $input: AddPlaceInput!
) {
  addPlace(
    orgId: $orgId,
    input: $input
  ) {
    currentBooking {
      ...BookingFragment
    }
    nextBooking {
      ...BookingFragment
    }
    id
    name
    parentPlaceId
    placeTypeId
    settings {
      ... on BuildingSettings {
        ...BuildingSettingsFragment
      }
      ... on SiteSettings {
        ...SiteSettingsFragment
      }
      ... on FloorSettings {
        ...FloorSettingsFragment
      }
      ... on ZoneSettings {
        ...ZoneSettingsFragment
      }
      ... on DeskSettings {
        ...DeskSettingsFragment
      }
      ... on RoomSettings {
        ...RoomSettingsFragment
      }
    }
    attributes {
      ... on BuildingAttributes {
        ...BuildingAttributesFragment
      }
      ... on SiteAttributes {
        ...SiteAttributesFragment
      }
      ... on FloorAttributes {
        ...FloorAttributesFragment
      }
      ... on ParkingLotAttributes {
        ...ParkingLotAttributesFragment
      }
      ... on ParkingSpaceAttributes {
        ...ParkingSpaceAttributesFragment
      }
      ... on DeskAttributes {
        ...DeskAttributesFragment
      }
      ... on RoomAttributes {
        ...RoomAttributesFragment
      }
    }
    createdAt
    updatedAt
    deviceCount
    plan {
      ...PlanFragment
    }
    fullName
    hierarchy {
      ...PlaceSummaryFragment
    }
    hasChildren
    media {
      ...MediaFragment
    }
    available {
      ...AvailabilityFragment
    }
    calendar {
      ...PlaceFeatureInstanceFragment
    }
    zoomInfo {
      ...ZoomPlaceInfoFragment
    }
    timeZoneOffset
    owner {
      ...MembershipFragment
    }
    isDedicated
    qrCodeString
    schedulingSettings {
      ...SchedulingSettingsFragment
    }
    mergedSchedulingSettings {
      ...SchedulingSettingsFragment
    }
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": AddPlaceInput
}
Response
{
  "data": {
    "addPlace": {
      "currentBooking": Booking,
      "nextBooking": Booking,
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "xyz789",
      "parentPlaceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "placeTypeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "settings": BuildingSettings,
      "attributes": BuildingAttributes,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "deviceCount": 987,
      "plan": Plan,
      "fullName": ["abc123"],
      "hierarchy": [PlaceSummary],
      "hasChildren": false,
      "media": Media,
      "available": Availability,
      "calendar": PlaceFeatureInstance,
      "zoomInfo": ZoomPlaceInfo,
      "timeZoneOffset": 123,
      "owner": Membership,
      "isDedicated": false,
      "qrCodeString": "abc123",
      "schedulingSettings": SchedulingSettings,
      "mergedSchedulingSettings": SchedulingSettings
    }
  }
}

addPlaceFeature

Response

Returns a PlaceFeature!

Arguments
Name Description
input - AddPlaceFeatureInput!

Example

Query
mutation addPlaceFeature($input: AddPlaceFeatureInput!) {
  addPlaceFeature(input: $input) {
    id
    enabled
  }
}
Variables
{"input": AddPlaceFeatureInput}
Response
{
  "data": {
    "addPlaceFeature": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "enabled": true
    }
  }
}

addPlaceType

Response

Returns a PlaceType!

Arguments
Name Description
input - AddPlaceTypeInput!

Example

Query
mutation addPlaceType($input: AddPlaceTypeInput!) {
  addPlaceType(input: $input) {
    id
    name
    createdAt
    updatedAt
  }
}
Variables
{"input": AddPlaceTypeInput}
Response
{
  "data": {
    "addPlaceType": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

addRoomBooking

Response

Returns a RoomBooking!

Arguments
Name Description
orgId - ID!
input - AddRoomBookingInput!
idTag - String
pin - String

Example

Query
mutation addRoomBooking(
  $orgId: ID!,
  $input: AddRoomBookingInput!,
  $idTag: String,
  $pin: String
) {
  addRoomBooking(
    orgId: $orgId,
    input: $input,
    idTag: $idTag,
    pin: $pin
  ) {
    id
    bookedBy
    user {
      ...UserFragment
    }
    room {
      ...RoomFragment
    }
    timeZone
    title
    startTime
    endTime
    teamsMeeting
    attendees {
      ...AttendeeFragment
    }
    recurring
    endRecurringDate
    isPrivate
    isImmutable
    canceled
    checkedIn
    checkedOut
    isWholeDay
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": AddRoomBookingInput,
  "idTag": "abc123",
  "pin": "abc123"
}
Response
{
  "data": {
    "addRoomBooking": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "bookedBy": "abc123",
      "user": User,
      "room": Room,
      "timeZone": "abc123",
      "title": "xyz789",
      "startTime": "2007-12-03T10:15:30Z",
      "endTime": "2007-12-03T10:15:30Z",
      "teamsMeeting": true,
      "attendees": [Attendee],
      "recurring": "abc123",
      "endRecurringDate": "2007-12-03T10:15:30Z",
      "isPrivate": true,
      "isImmutable": true,
      "canceled": "2007-12-03T10:15:30Z",
      "checkedIn": "2007-12-03T10:15:30Z",
      "checkedOut": "2007-12-03T10:15:30Z",
      "isWholeDay": true
    }
  }
}

assignFirmware

Description

Assign firmware to one or more devices. Narrow down the targeted devices by providing filter. Provide firmwareId to assign a specific firmware (only devices of the same device type is then targeted). Omit firmwareId to assign the latest firmware for the devices respective channel and device type. Returns how many devices were updated.

If pushUpdate is true and the targeted device supports it, the update will be pushed to the device.

Authorization: device_devices_assign_firmware on Organization(orgId) or Platform

Response

Returns an Int!

Arguments
Name Description
firmwareId - ID
filter - AssignFirmwareFilter!
pushUpdate - Boolean! Default = false

Example

Query
mutation assignFirmware(
  $firmwareId: ID,
  $filter: AssignFirmwareFilter!,
  $pushUpdate: Boolean!
) {
  assignFirmware(
    firmwareId: $firmwareId,
    filter: $filter,
    pushUpdate: $pushUpdate
  )
}
Variables
{
  "firmwareId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "filter": AssignFirmwareFilter,
  "pushUpdate": false
}
Response
{"data": {"assignFirmware": 987}}

authenticateWithOverviewCode

Description

Authenticate overview screen. If the overview screen is not authorized yet, one of the following errors will be returned:

  • notFound: the device code do not exist
  • activationPending: pending, the user has NOT started the user-interaction steps, continue polling
  • authorizationPending: pending, the user has started the user-interaction steps, continue polling
  • slowDown: polling to fast, increase interval by 5 seconds for this and all subsequent requests, continue polling
  • accessDenied: the auth request has been rejected
  • expiredToken: the auth request has expired
Response

Returns an AuthenticatePayload!

Arguments
Name Description
deviceCode - String!

Example

Query
mutation authenticateWithOverviewCode($deviceCode: String!) {
  authenticateWithOverviewCode(deviceCode: $deviceCode) {
    subject {
      ... on Overview {
        ...OverviewFragment
      }
    }
    accessToken
    expiresIn
  }
}
Variables
{"deviceCode": "xyz789"}
Response
{
  "data": {
    "authenticateWithOverviewCode": {
      "subject": Overview,
      "accessToken": "xyz789",
      "expiresIn": "P3Y6M4DT12H30M5S"
    }
  }
}

authorizeOverview

Description

Endpoint for letting administrators authorize a screen to obtain a token to show an overview screen. If authorization fails, one of the following errors will be returned:

  • notFound: the code do not exists or already activated by another user
  • expiredToken: the auth request has expired
  • conflict: if the request is already authorized
Response

Returns an Overview!

Arguments
Name Description
orgId - ID!
overviewId - String!
userCode - String!

Example

Query
mutation authorizeOverview(
  $orgId: ID!,
  $overviewId: String!,
  $userCode: String!
) {
  authorizeOverview(
    orgId: $orgId,
    overviewId: $overviewId,
    userCode: $userCode
  ) {
    id
    orgId
    type
    mode
    name
    message
    alert {
      ...AlertFragment
    }
    showDateTime
    showLogo
    darkMode
    columnCount
    tiles {
      ...TileFragment
    }
    logoUrl
    createdAt
    updatedAt
    place {
      ...PlaceFragment
    }
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "overviewId": "xyz789",
  "userCode": "abc123"
}
Response
{
  "data": {
    "authorizeOverview": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "abc123",
      "type": "TILES",
      "mode": "MONITORING",
      "name": "abc123",
      "message": "xyz789",
      "alert": Alert,
      "showDateTime": true,
      "showLogo": true,
      "darkMode": false,
      "columnCount": 987,
      "tiles": [Tile],
      "logoUrl": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "place": Place
    }
  }
}

cancelBooking

Response

Returns a Booking!

Arguments
Name Description
id - ID!
idTag - String
pin - String

Example

Query
mutation cancelBooking(
  $id: ID!,
  $idTag: String,
  $pin: String
) {
  cancelBooking(
    id: $id,
    idTag: $idTag,
    pin: $pin
  ) {
    id
    startTime
    endTime
    checkedIn
    checkedOut
    canceled
    isWholeDay
    userDeleted
    place {
      ...PlaceFragment
    }
    user {
      ...UserFragment
    }
    skipAwayFromDeskReminder
    skipLateArrivalReminder
    focusMode
    arrivedAt
    title
    attendees {
      ...AttendeeFragment
    }
    isPrivate
    isImmutable
    organizer
    desk {
      ...DeskFragment
    }
    resource {
      ...ResourceFragment
    }
  }
}
Variables
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "idTag": "abc123",
  "pin": "xyz789"
}
Response
{
  "data": {
    "cancelBooking": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "startTime": "2007-12-03T10:15:30Z",
      "endTime": "2007-12-03T10:15:30Z",
      "checkedIn": "2007-12-03T10:15:30Z",
      "checkedOut": "2007-12-03T10:15:30Z",
      "canceled": "2007-12-03T10:15:30Z",
      "isWholeDay": true,
      "userDeleted": true,
      "place": Place,
      "user": User,
      "skipAwayFromDeskReminder": true,
      "skipLateArrivalReminder": true,
      "focusMode": false,
      "arrivedAt": "2007-12-03T10:15:30Z",
      "title": "xyz789",
      "attendees": [Attendee],
      "isPrivate": true,
      "isImmutable": false,
      "organizer": "abc123",
      "desk": Desk,
      "resource": Resource
    }
  }
}

cancelRoomBooking

Response

Returns a RoomBooking!

Arguments
Name Description
orgId - ID!
id - ID!
idTag - String
pin - String

Example

Query
mutation cancelRoomBooking(
  $orgId: ID!,
  $id: ID!,
  $idTag: String,
  $pin: String
) {
  cancelRoomBooking(
    orgId: $orgId,
    id: $id,
    idTag: $idTag,
    pin: $pin
  ) {
    id
    bookedBy
    user {
      ...UserFragment
    }
    room {
      ...RoomFragment
    }
    timeZone
    title
    startTime
    endTime
    teamsMeeting
    attendees {
      ...AttendeeFragment
    }
    recurring
    endRecurringDate
    isPrivate
    isImmutable
    canceled
    checkedIn
    checkedOut
    isWholeDay
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "idTag": "abc123",
  "pin": "xyz789"
}
Response
{
  "data": {
    "cancelRoomBooking": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "bookedBy": "xyz789",
      "user": User,
      "room": Room,
      "timeZone": "xyz789",
      "title": "abc123",
      "startTime": "2007-12-03T10:15:30Z",
      "endTime": "2007-12-03T10:15:30Z",
      "teamsMeeting": true,
      "attendees": [Attendee],
      "recurring": "xyz789",
      "endRecurringDate": "2007-12-03T10:15:30Z",
      "isPrivate": true,
      "isImmutable": false,
      "canceled": "2007-12-03T10:15:30Z",
      "checkedIn": "2007-12-03T10:15:30Z",
      "checkedOut": "2007-12-03T10:15:30Z",
      "isWholeDay": false
    }
  }
}

checkInBooking

Response

Returns a Booking!

Arguments
Name Description
id - ID!
idTag - String
pin - String
source - String How the check-in was performed. Valid values: 'mobile' (checked in via mobile app) or 'qr' (checked in by scanning QR code).

Example

Query
mutation checkInBooking(
  $id: ID!,
  $idTag: String,
  $pin: String,
  $source: String
) {
  checkInBooking(
    id: $id,
    idTag: $idTag,
    pin: $pin,
    source: $source
  ) {
    id
    startTime
    endTime
    checkedIn
    checkedOut
    canceled
    isWholeDay
    userDeleted
    place {
      ...PlaceFragment
    }
    user {
      ...UserFragment
    }
    skipAwayFromDeskReminder
    skipLateArrivalReminder
    focusMode
    arrivedAt
    title
    attendees {
      ...AttendeeFragment
    }
    isPrivate
    isImmutable
    organizer
    desk {
      ...DeskFragment
    }
    resource {
      ...ResourceFragment
    }
  }
}
Variables
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "idTag": "xyz789",
  "pin": "xyz789",
  "source": "xyz789"
}
Response
{
  "data": {
    "checkInBooking": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "startTime": "2007-12-03T10:15:30Z",
      "endTime": "2007-12-03T10:15:30Z",
      "checkedIn": "2007-12-03T10:15:30Z",
      "checkedOut": "2007-12-03T10:15:30Z",
      "canceled": "2007-12-03T10:15:30Z",
      "isWholeDay": false,
      "userDeleted": true,
      "place": Place,
      "user": User,
      "skipAwayFromDeskReminder": false,
      "skipLateArrivalReminder": true,
      "focusMode": false,
      "arrivedAt": "2007-12-03T10:15:30Z",
      "title": "xyz789",
      "attendees": [Attendee],
      "isPrivate": false,
      "isImmutable": true,
      "organizer": "abc123",
      "desk": Desk,
      "resource": Resource
    }
  }
}

checkInRoomBooking

Response

Returns a RoomBooking!

Arguments
Name Description
orgId - ID!
id - ID!
idTag - String
pin - String
source - String How the check-in was performed. Valid values: 'mobile' (checked in via mobile app) or 'qr' (checked in by scanning QR code). Optional.

Example

Query
mutation checkInRoomBooking(
  $orgId: ID!,
  $id: ID!,
  $idTag: String,
  $pin: String,
  $source: String
) {
  checkInRoomBooking(
    orgId: $orgId,
    id: $id,
    idTag: $idTag,
    pin: $pin,
    source: $source
  ) {
    id
    bookedBy
    user {
      ...UserFragment
    }
    room {
      ...RoomFragment
    }
    timeZone
    title
    startTime
    endTime
    teamsMeeting
    attendees {
      ...AttendeeFragment
    }
    recurring
    endRecurringDate
    isPrivate
    isImmutable
    canceled
    checkedIn
    checkedOut
    isWholeDay
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "idTag": "xyz789",
  "pin": "xyz789",
  "source": "xyz789"
}
Response
{
  "data": {
    "checkInRoomBooking": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "bookedBy": "abc123",
      "user": User,
      "room": Room,
      "timeZone": "xyz789",
      "title": "abc123",
      "startTime": "2007-12-03T10:15:30Z",
      "endTime": "2007-12-03T10:15:30Z",
      "teamsMeeting": true,
      "attendees": [Attendee],
      "recurring": "abc123",
      "endRecurringDate": "2007-12-03T10:15:30Z",
      "isPrivate": true,
      "isImmutable": false,
      "canceled": "2007-12-03T10:15:30Z",
      "checkedIn": "2007-12-03T10:15:30Z",
      "checkedOut": "2007-12-03T10:15:30Z",
      "isWholeDay": true
    }
  }
}

checkOutBooking

Response

Returns a Booking!

Arguments
Name Description
id - ID!
idTag - String
pin - String

Example

Query
mutation checkOutBooking(
  $id: ID!,
  $idTag: String,
  $pin: String
) {
  checkOutBooking(
    id: $id,
    idTag: $idTag,
    pin: $pin
  ) {
    id
    startTime
    endTime
    checkedIn
    checkedOut
    canceled
    isWholeDay
    userDeleted
    place {
      ...PlaceFragment
    }
    user {
      ...UserFragment
    }
    skipAwayFromDeskReminder
    skipLateArrivalReminder
    focusMode
    arrivedAt
    title
    attendees {
      ...AttendeeFragment
    }
    isPrivate
    isImmutable
    organizer
    desk {
      ...DeskFragment
    }
    resource {
      ...ResourceFragment
    }
  }
}
Variables
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "idTag": "xyz789",
  "pin": "abc123"
}
Response
{
  "data": {
    "checkOutBooking": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "startTime": "2007-12-03T10:15:30Z",
      "endTime": "2007-12-03T10:15:30Z",
      "checkedIn": "2007-12-03T10:15:30Z",
      "checkedOut": "2007-12-03T10:15:30Z",
      "canceled": "2007-12-03T10:15:30Z",
      "isWholeDay": false,
      "userDeleted": true,
      "place": Place,
      "user": User,
      "skipAwayFromDeskReminder": true,
      "skipLateArrivalReminder": false,
      "focusMode": true,
      "arrivedAt": "2007-12-03T10:15:30Z",
      "title": "xyz789",
      "attendees": [Attendee],
      "isPrivate": false,
      "isImmutable": false,
      "organizer": "xyz789",
      "desk": Desk,
      "resource": Resource
    }
  }
}

checkOutRoomBooking

Response

Returns a RoomBooking!

Arguments
Name Description
orgId - ID!
id - ID!
idTag - String
pin - String

Example

Query
mutation checkOutRoomBooking(
  $orgId: ID!,
  $id: ID!,
  $idTag: String,
  $pin: String
) {
  checkOutRoomBooking(
    orgId: $orgId,
    id: $id,
    idTag: $idTag,
    pin: $pin
  ) {
    id
    bookedBy
    user {
      ...UserFragment
    }
    room {
      ...RoomFragment
    }
    timeZone
    title
    startTime
    endTime
    teamsMeeting
    attendees {
      ...AttendeeFragment
    }
    recurring
    endRecurringDate
    isPrivate
    isImmutable
    canceled
    checkedIn
    checkedOut
    isWholeDay
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "idTag": "xyz789",
  "pin": "abc123"
}
Response
{
  "data": {
    "checkOutRoomBooking": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "bookedBy": "abc123",
      "user": User,
      "room": Room,
      "timeZone": "abc123",
      "title": "xyz789",
      "startTime": "2007-12-03T10:15:30Z",
      "endTime": "2007-12-03T10:15:30Z",
      "teamsMeeting": true,
      "attendees": [Attendee],
      "recurring": "xyz789",
      "endRecurringDate": "2007-12-03T10:15:30Z",
      "isPrivate": false,
      "isImmutable": false,
      "canceled": "2007-12-03T10:15:30Z",
      "checkedIn": "2007-12-03T10:15:30Z",
      "checkedOut": "2007-12-03T10:15:30Z",
      "isWholeDay": false
    }
  }
}

completeZoomSetup

Description

Complete the Zoom Marketplace installation setup.

Response

Returns a ZoomConnection!

Arguments
Name Description
input - CompleteZoomSetupInput!

Example

Query
mutation completeZoomSetup($input: CompleteZoomSetupInput!) {
  completeZoomSetup(input: $input) {
    id
    orgId
    zoomAccountId
    connectedAt
    connectedByUserId
    status
    statusMessage
    statusUpdatedAt
    installId
    reauthLink
    syncLog {
      ...SyncLogEntryFragment
    }
    managedPlacesCount
    linkedDevicesCount
  }
}
Variables
{"input": CompleteZoomSetupInput}
Response
{
  "data": {
    "completeZoomSetup": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "zoomAccountId": "xyz789",
      "connectedAt": "2007-12-03T10:15:30Z",
      "connectedByUserId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "status": "ACTIVE",
      "statusMessage": "xyz789",
      "statusUpdatedAt": "2007-12-03T10:15:30Z",
      "installId": "xyz789",
      "reauthLink": "abc123",
      "syncLog": [SyncLogEntry],
      "managedPlacesCount": 987,
      "linkedDevicesCount": 123
    }
  }
}

convertServiceAccountToUser

Description

Convert a service account to a regular user account for organization access.

Requires: Platform admin permission. See Service Account Documentation for setup details.

Response

Returns a User!

Arguments
Name Description
id - ID!

Example

Query
mutation convertServiceAccountToUser($id: ID!) {
  convertServiceAccountToUser(id: $id) {
    id
    name
    firstName
    lastName
    email
    eula
    verified
    memberships {
      ...MembershipFragment
    }
    invitations {
      ...InvitationFragment
    }
    superAdmin
    createdAt
    updatedAt
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "convertServiceAccountToUser": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "xyz789",
      "firstName": "xyz789",
      "lastName": "xyz789",
      "email": "abc123",
      "eula": "xyz789",
      "verified": true,
      "memberships": [Membership],
      "invitations": [Invitation],
      "superAdmin": false,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

createCalendarEvent

Description

Create a new calendar event for a membership.

Authorization: calendar_calendarevents_create on Calendar(membershipId)

Response

Returns a CalendarEvent!

Arguments
Name Description
membershipId - ID!
input - CreateCalendarEventInput!

Example

Query
mutation createCalendarEvent(
  $membershipId: ID!,
  $input: CreateCalendarEventInput!
) {
  createCalendarEvent(
    membershipId: $membershipId,
    input: $input
  ) {
    id
    name
    calendarId
    timesSynced
    remoteId
    remoteData
    isRecurring
    isWholeDay
    sensitivity
    startTime
    endTime
    createdAt
    updatedAt
    attendees {
      ...AttendeeFragment
    }
    meetingUrl
    creator
    iCalUID
    meetingProvider
  }
}
Variables
{
  "membershipId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": CreateCalendarEventInput
}
Response
{
  "data": {
    "createCalendarEvent": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "xyz789",
      "calendarId": "xyz789",
      "timesSynced": 987,
      "remoteId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "remoteData": "abc123",
      "isRecurring": false,
      "isWholeDay": false,
      "sensitivity": "PRIVATE",
      "startTime": "2007-12-03T10:15:30Z",
      "endTime": "2007-12-03T10:15:30Z",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "attendees": [Attendee],
      "meetingUrl": "xyz789",
      "creator": "abc123",
      "iCalUID": "xyz789",
      "meetingProvider": "UNSPECIFIED"
    }
  }
}

createDevice

Description

Register a new device in an organization and generate authentication credentials.

Authorization: device_devices_create on Organization(orgId)

Response

Returns a CreateDevicePayload!

Arguments
Name Description
orgId - ID!
input - DeviceInput!

Example

Query
mutation createDevice(
  $orgId: ID!,
  $input: DeviceInput!
) {
  createDevice(
    orgId: $orgId,
    input: $input
  ) {
    device {
      ...DeviceFragment
    }
    token
    legacyToken
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": DeviceInput
}
Response
{
  "data": {
    "createDevice": {
      "device": Device,
      "token": "abc123",
      "legacyToken": "abc123"
    }
  }
}

createFacility

Description

Create a new facility.

Authorization: facility_facility_create on Platform

Response

Returns a Facility

Arguments
Name Description
input - AddFacilityInput!

Example

Query
mutation createFacility($input: AddFacilityInput!) {
  createFacility(input: $input) {
    id
    name
    category
    iconPath
  }
}
Variables
{"input": AddFacilityInput}
Response
{
  "data": {
    "createFacility": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "xyz789",
      "category": "abc123",
      "iconPath": "abc123"
    }
  }
}

createOrganization

Description

Create a new organization in the platform.

Authorization: organization_organizations_create on Platform

Response

Returns an Organization!

Arguments
Name Description
input - CreateOrganizationInput!

Example

Query
mutation createOrganization($input: CreateOrganizationInput!) {
  createOrganization(input: $input) {
    hasCalendar
    id
    name
    domain
    logoMediaId
    logoUrl
    bookingSettings {
      ...OrganizationBookingSettingsFragment
    }
    deskBookingSettings {
      ...DeskBookingSettingsFragment
    }
    roomBookingSettings {
      ...RoomBookingSettingsFragment
    }
    parkingBookingSettings {
      ...ParkingBookingSettingsFragment
    }
    calendarSettings {
      ...CalendarSettingsFragment
    }
    whitelist
    whitelistEnabled
    language
    timezone
    deviceScreenTemplate
    brokenEquipmentReportEmails
    timePresentation
    deskStats {
      ...DeskStatsFragment
    }
    deviceStats {
      ...DeviceStatsFragment
    }
    membershipStats {
      ...MembershipStatsFragment
    }
    openHours {
      ...WeeklyOpenHoursFragment
    }
    licenseStats {
      ...LicenseStatsFragment
    }
    trial {
      ...LicenseFragment
    }
    ola
    deviceErrorReportEmails
    deviceErrorReportWebhookUrl
    createdAt
    updatedAt
    type
    schedulingSettings {
      ...SchedulingSettingsFragment
    }
    pin {
      ...PinFragment
    }
  }
}
Variables
{"input": CreateOrganizationInput}
Response
{
  "data": {
    "createOrganization": {
      "hasCalendar": false,
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "xyz789",
      "domain": "xyz789",
      "logoMediaId": "abc123",
      "logoUrl": "xyz789",
      "bookingSettings": OrganizationBookingSettings,
      "deskBookingSettings": DeskBookingSettings,
      "roomBookingSettings": RoomBookingSettings,
      "parkingBookingSettings": ParkingBookingSettings,
      "calendarSettings": CalendarSettings,
      "whitelist": "abc123",
      "whitelistEnabled": true,
      "language": "xyz789",
      "timezone": "abc123",
      "deviceScreenTemplate": "LargeResourceName",
      "brokenEquipmentReportEmails": [
        "xyz789"
      ],
      "timePresentation": "H24",
      "deskStats": DeskStats,
      "deviceStats": DeviceStats,
      "membershipStats": MembershipStats,
      "openHours": WeeklyOpenHours,
      "licenseStats": LicenseStats,
      "trial": [License],
      "ola": "xyz789",
      "deviceErrorReportEmails": ["abc123"],
      "deviceErrorReportWebhookUrl": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "type": "SHARED",
      "schedulingSettings": SchedulingSettings,
      "pin": Pin
    }
  }
}

createPin

Description

Create a new PIN for organization or membership access.

Authorization: pin_pins_create on Membership(membershipId) OR Organization(orgId)

Response

Returns a Pin!

Arguments
Name Description
input - CreatePinInput!

Example

Query
mutation createPin($input: CreatePinInput!) {
  createPin(input: $input) {
    id
    code
    orgId
    membershipId
  }
}
Variables
{"input": CreatePinInput}
Response
{
  "data": {
    "createPin": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "code": "abc123",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "membershipId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
    }
  }
}

createPlan

Response

Returns a Plan!

Arguments
Name Description
orgId - ID!
input - CreatePlanInput!

Example

Query
mutation createPlan(
  $orgId: ID!,
  $input: CreatePlanInput!
) {
  createPlan(
    orgId: $orgId,
    input: $input
  ) {
    id
    orgId
    placeId
    mediaId
    annotations
    createdAt
    updatedAt
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": CreatePlanInput
}
Response
{
  "data": {
    "createPlan": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "mediaId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "annotations": "abc123",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

createScheduleEvent

Description

Create a new scheduled event in a calendar.

Authorization: schedule_event_create on ScheduleCalendar(parent)

Response

Returns a ScheduleEvent!

Arguments
Name Description
parent - ID!
event - ScheduleEventInput

Example

Query
mutation createScheduleEvent(
  $parent: ID!,
  $event: ScheduleEventInput
) {
  createScheduleEvent(
    parent: $parent,
    event: $event
  ) {
    name
    createdAt
    updatedAt
    summary
    description
    startTime
    endTime
    timeZone
    recurrence
    recurringEventId
    devices {
      ...DeviceFragment
    }
    deviceAction
    deviceActionArguments
    deviceActionTriggeredAt
    notificationEmails
    deviceActionCompletedAt
    deviceActionState
    notificationBeforeOffset
  }
}
Variables
{
  "parent": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "event": ScheduleEventInput
}
Response
{
  "data": {
    "createScheduleEvent": {
      "name": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "summary": "abc123",
      "description": "abc123",
      "startTime": "2007-12-03T10:15:30Z",
      "endTime": "2007-12-03T10:15:30Z",
      "timeZone": "abc123",
      "recurrence": ["abc123"],
      "recurringEventId": "abc123",
      "devices": [Device],
      "deviceAction": "xyz789",
      "deviceActionArguments": ["xyz789"],
      "deviceActionTriggeredAt": "2007-12-03T10:15:30Z",
      "notificationEmails": ["abc123"],
      "deviceActionCompletedAt": "2007-12-03T10:15:30Z",
      "deviceActionState": "UNSPECIFIED",
      "notificationBeforeOffset": "P3Y6M4DT12H30M5S"
    }
  }
}

deactivateMembership

Description

Deactivate an active membership without deleting it.

Requires: Organization admin or owner role

Response

Returns a Membership!

Arguments
Name Description
id - ID!

Example

Query
mutation deactivateMembership($id: ID!) {
  deactivateMembership(id: $id) {
    hasCalendar
    calendar {
      ...CalendarFragment
    }
    id
    userId
    orgId
    user {
      ...UserFragment
    }
    organization {
      ...OrganizationFragment
    }
    invitation {
      ...InvitationFragment
    }
    role
    roles
    createdAt
    updatedAt
    status
    pin {
      ...PinFragment
    }
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "deactivateMembership": {
      "hasCalendar": true,
      "calendar": Calendar,
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "userId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "user": User,
      "organization": Organization,
      "invitation": Invitation,
      "role": "OWNER",
      "roles": ["OWNER"],
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "status": "REQUESTED",
      "pin": Pin
    }
  }
}

declineInvitation

Response

Returns an Invitation!

Arguments
Name Description
id - ID!

Example

Query
mutation declineInvitation($id: ID!) {
  declineInvitation(id: $id) {
    id
    orgId
    email
    expiresAt
    organization {
      ...OrganizationFragment
    }
    status
    membership {
      ...MembershipFragment
    }
    createdAt
    updatedAt
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "declineInvitation": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "email": "abc123",
      "expiresAt": "2007-12-03T10:15:30Z",
      "organization": Organization,
      "status": "PENDING",
      "membership": Membership,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

deleteCalendarEvent

Description

Delete a calendar event.

Authorization: calendar_calendarevents_delete on CalendarEvent(id)

Response

Returns a DeleteCalendarEventResponse!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteCalendarEvent($id: ID!) {
  deleteCalendarEvent(id: $id) {
    id
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "deleteCalendarEvent": {"id": "xyz789"}
  }
}

deleteCalendarSource

Description

Delete a calendar source and all associated calendars and events.

Authorization: calendar_calendarsources_delete on CalendarSource(srcId)

Response

Returns a DeleteCalendarSourceResponse!

Arguments
Name Description
srcId - ID!

Example

Query
mutation deleteCalendarSource($srcId: ID!) {
  deleteCalendarSource(srcId: $srcId) {
    id
    deletedCalendarsCount
    deletedEventsCount
  }
}
Variables
{"srcId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "deleteCalendarSource": {
      "id": "xyz789",
      "deletedCalendarsCount": 123,
      "deletedEventsCount": 123
    }
  }
}

deleteChannel

Description

Delete a firmware distribution channel.

Authorization: firmware_channel_delete on Channel(id)

Response

Returns a Channel!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteChannel($id: ID!) {
  deleteChannel(id: $id) {
    id
    name
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "deleteChannel": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "xyz789"
    }
  }
}

deleteDevice

Description

Delete a device and remove all associated resources.

Authorization: device_devices_delete on Device(id)

Response

Returns a Device!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteDevice($id: ID!) {
  deleteDevice(id: $id) {
    id
    type {
      ...DeviceTypeFragment
    }
    serial
    assignedFirmware {
      ...FirmwareFragment
    }
    latestFirmware {
      ...FirmwareFragment
    }
    nextFirmware {
      ...FirmwareFragment
    }
    firmwarePublicKey
    firmwareVariant
    channel {
      ...ChannelFragment
    }
    place {
      ...PlaceFragment
    }
    placeId
    desk {
      ...DeskFragment
    }
    deskId
    room {
      ...RoomFragment
    }
    roomId
    status {
      ...DeviceStatusFragment
    }
    language
    timezone
    orgName
    orgId
    parent {
      ...DeviceFragment
    }
    children {
      ...DeviceFragment
    }
    activeHours {
      ...WeeklyOpenHoursFragment
    }
    createdAt
    updatedAt
    attributes {
      ...DeviceAttributesFragment
    }
    state
    activeError {
      ...DeviceEventStatusFragment
    }
    activeDeviceErrors {
      ...DeviceEventFragment
    }
    interfaces {
      ...NetworkInterfaceFragment
    }
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "deleteDevice": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "type": DeviceType,
      "serial": "abc123",
      "assignedFirmware": Firmware,
      "latestFirmware": Firmware,
      "nextFirmware": Firmware,
      "firmwarePublicKey": "xyz789",
      "firmwareVariant": "xyz789",
      "channel": Channel,
      "place": Place,
      "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "desk": Desk,
      "deskId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "room": Room,
      "roomId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "status": DeviceStatus,
      "language": "xyz789",
      "timezone": "xyz789",
      "orgName": "abc123",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "parent": Device,
      "children": [Device],
      "activeHours": WeeklyOpenHours,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "attributes": DeviceAttributes,
      "state": "UNPROVISIONED",
      "activeError": DeviceEventStatus,
      "activeDeviceErrors": [DeviceEvent],
      "interfaces": [NetworkInterface]
    }
  }
}

deleteDeviceSerial

Description

Remove a device serial record by serial number and device type.

Authorization: device_serial_delete on Platform

Response

Returns a Boolean!

Arguments
Name Description
serial - ID!
deviceTypeId - ID!

Example

Query
mutation deleteDeviceSerial(
  $serial: ID!,
  $deviceTypeId: ID!
) {
  deleteDeviceSerial(
    serial: $serial,
    deviceTypeId: $deviceTypeId
  )
}
Variables
{
  "serial": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "deviceTypeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
}
Response
{"data": {"deleteDeviceSerial": false}}

deleteDeviceSpecificSettings

Description

Deletes a device specific setting matching the device specific setting ID. NOTE: The ID in this mutation is the ID of the device speciic setting itself, and NOT the device ID. If the caller does not know the ID of the setting, it can be found from the deviceSpecificSettings query which does take the device ID as input.

Response

Returns a DeviceSpecificSettings!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteDeviceSpecificSettings($id: ID!) {
  deleteDeviceSpecificSettings(id: $id) {
    id
    deviceID
    preset
    data
    dataVersion
    createdAt
    updatedAt
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "deleteDeviceSpecificSettings": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "deviceID": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "preset": "xyz789",
      "data": "abc123",
      "dataVersion": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

deleteFile

Description

Delete a file. Hard delete: removes the blob from storage and the row from the database. Idempotent on the blob side (a missing blob is a no-op).

Authorization: file_files_delete on Organization(orgId)

Response

Returns a DeleteFileResult!

Arguments
Name Description
input - DeleteFileInput!

Example

Query
mutation deleteFile($input: DeleteFileInput!) {
  deleteFile(input: $input) {
    fileId
  }
}
Variables
{"input": DeleteFileInput}
Response
{"data": {"deleteFile": {"fileId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}}}

deleteFirmware

Description

Delete a firmware version from the platform.

Authorization: firmware_firmware_delete on Firmware(id)

Response

Returns a Firmware!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteFirmware($id: ID!) {
  deleteFirmware(id: $id) {
    id
    deviceType {
      ...DeviceTypeFragment
    }
    version
    url
    publicKey
    variant
    channels {
      ...ChannelFragment
    }
    createdAt
    updatedAt
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "deleteFirmware": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "deviceType": DeviceType,
      "version": "abc123",
      "url": "abc123",
      "publicKey": "xyz789",
      "variant": "abc123",
      "channels": [Channel],
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

deleteIDTag

Description

Delete an ID tag.

Authorization: idtag_idtags_delete on Idtag(id)

Response

Returns an IDTag!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteIDTag($id: ID!) {
  deleteIDTag(id: $id) {
    id
    userId
    orgId
    name
    tag
    createdAt
    updatedAt
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "deleteIDTag": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "userId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "abc123",
      "tag": "abc123",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

deleteInvitation

Response

Returns an Invitation!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteInvitation($id: ID!) {
  deleteInvitation(id: $id) {
    id
    orgId
    email
    expiresAt
    organization {
      ...OrganizationFragment
    }
    status
    membership {
      ...MembershipFragment
    }
    createdAt
    updatedAt
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "deleteInvitation": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "email": "abc123",
      "expiresAt": "2007-12-03T10:15:30Z",
      "organization": Organization,
      "status": "PENDING",
      "membership": Membership,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

deleteLicenseAssociation

Description

Remove a license association from a place or device.

Authorization: license_licenseassociation_delete on LicenseAssociation(id)

Response

Returns a LicenseAssociation

Arguments
Name Description
id - ID!

Example

Query
mutation deleteLicenseAssociation($id: ID!) {
  deleteLicenseAssociation(id: $id) {
    id
    createdAt
    updatedAt
    license {
      ...LicenseFragment
    }
    boundEntityType
    boundEntityId
    placeId
    deviceId
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "deleteLicenseAssociation": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "license": License,
      "boundEntityType": "PLACE",
      "boundEntityId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "deviceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
    }
  }
}

deleteMembership

Description

Remove a user's membership from an organization.

Requires: Organization admin or owner role

Response

Returns a Membership!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteMembership($id: ID!) {
  deleteMembership(id: $id) {
    hasCalendar
    calendar {
      ...CalendarFragment
    }
    id
    userId
    orgId
    user {
      ...UserFragment
    }
    organization {
      ...OrganizationFragment
    }
    invitation {
      ...InvitationFragment
    }
    role
    roles
    createdAt
    updatedAt
    status
    pin {
      ...PinFragment
    }
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "deleteMembership": {
      "hasCalendar": true,
      "calendar": Calendar,
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "userId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "user": User,
      "organization": Organization,
      "invitation": Invitation,
      "role": "OWNER",
      "roles": ["OWNER"],
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "status": "REQUESTED",
      "pin": Pin
    }
  }
}

deleteOrganization

Description

Delete an organization and all associated data.

Authorization: organization_organizations_delete on Organization(id)

Response

Returns an Organization!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteOrganization($id: ID!) {
  deleteOrganization(id: $id) {
    hasCalendar
    id
    name
    domain
    logoMediaId
    logoUrl
    bookingSettings {
      ...OrganizationBookingSettingsFragment
    }
    deskBookingSettings {
      ...DeskBookingSettingsFragment
    }
    roomBookingSettings {
      ...RoomBookingSettingsFragment
    }
    parkingBookingSettings {
      ...ParkingBookingSettingsFragment
    }
    calendarSettings {
      ...CalendarSettingsFragment
    }
    whitelist
    whitelistEnabled
    language
    timezone
    deviceScreenTemplate
    brokenEquipmentReportEmails
    timePresentation
    deskStats {
      ...DeskStatsFragment
    }
    deviceStats {
      ...DeviceStatsFragment
    }
    membershipStats {
      ...MembershipStatsFragment
    }
    openHours {
      ...WeeklyOpenHoursFragment
    }
    licenseStats {
      ...LicenseStatsFragment
    }
    trial {
      ...LicenseFragment
    }
    ola
    deviceErrorReportEmails
    deviceErrorReportWebhookUrl
    createdAt
    updatedAt
    type
    schedulingSettings {
      ...SchedulingSettingsFragment
    }
    pin {
      ...PinFragment
    }
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "deleteOrganization": {
      "hasCalendar": true,
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "xyz789",
      "domain": "abc123",
      "logoMediaId": "abc123",
      "logoUrl": "xyz789",
      "bookingSettings": OrganizationBookingSettings,
      "deskBookingSettings": DeskBookingSettings,
      "roomBookingSettings": RoomBookingSettings,
      "parkingBookingSettings": ParkingBookingSettings,
      "calendarSettings": CalendarSettings,
      "whitelist": "abc123",
      "whitelistEnabled": false,
      "language": "xyz789",
      "timezone": "xyz789",
      "deviceScreenTemplate": "LargeResourceName",
      "brokenEquipmentReportEmails": [
        "xyz789"
      ],
      "timePresentation": "H24",
      "deskStats": DeskStats,
      "deviceStats": DeviceStats,
      "membershipStats": MembershipStats,
      "openHours": WeeklyOpenHours,
      "licenseStats": LicenseStats,
      "trial": [License],
      "ola": "xyz789",
      "deviceErrorReportEmails": ["abc123"],
      "deviceErrorReportWebhookUrl": "abc123",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "type": "SHARED",
      "schedulingSettings": SchedulingSettings,
      "pin": Pin
    }
  }
}

deleteOrganizationMessage

Response

Returns an OrganizationMessage!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteOrganizationMessage($id: ID!) {
  deleteOrganizationMessage(id: $id) {
    id
    organizations {
      ...OrganizationFragment
    }
    type
    content
    canBeClosed
    showToAllOrganizations
    showAt
    hideAt
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "deleteOrganizationMessage": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "organizations": [Organization],
      "type": "SUCCESS",
      "content": "abc123",
      "canBeClosed": false,
      "showToAllOrganizations": false,
      "showAt": "2007-12-03T10:15:30Z",
      "hideAt": "2007-12-03T10:15:30Z"
    }
  }
}

deleteOverview

Response

Returns an Overview!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteOverview($id: ID!) {
  deleteOverview(id: $id) {
    id
    orgId
    type
    mode
    name
    message
    alert {
      ...AlertFragment
    }
    showDateTime
    showLogo
    darkMode
    columnCount
    tiles {
      ...TileFragment
    }
    logoUrl
    createdAt
    updatedAt
    place {
      ...PlaceFragment
    }
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "deleteOverview": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "abc123",
      "type": "TILES",
      "mode": "MONITORING",
      "name": "abc123",
      "message": "abc123",
      "alert": Alert,
      "showDateTime": true,
      "showLogo": false,
      "darkMode": false,
      "columnCount": 987,
      "tiles": [Tile],
      "logoUrl": "abc123",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "place": Place
    }
  }
}

deletePin

Description

Delete a PIN.

Authorization: pin_pins_delete on Pin(id)

Response

Returns a Pin!

Arguments
Name Description
id - ID!

Example

Query
mutation deletePin($id: ID!) {
  deletePin(id: $id) {
    id
    code
    orgId
    membershipId
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "deletePin": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "code": "xyz789",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "membershipId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
    }
  }
}

deletePlace

Response

Returns a Place!

Arguments
Name Description
id - ID!

Example

Query
mutation deletePlace($id: ID!) {
  deletePlace(id: $id) {
    currentBooking {
      ...BookingFragment
    }
    nextBooking {
      ...BookingFragment
    }
    id
    name
    parentPlaceId
    placeTypeId
    settings {
      ... on BuildingSettings {
        ...BuildingSettingsFragment
      }
      ... on SiteSettings {
        ...SiteSettingsFragment
      }
      ... on FloorSettings {
        ...FloorSettingsFragment
      }
      ... on ZoneSettings {
        ...ZoneSettingsFragment
      }
      ... on DeskSettings {
        ...DeskSettingsFragment
      }
      ... on RoomSettings {
        ...RoomSettingsFragment
      }
    }
    attributes {
      ... on BuildingAttributes {
        ...BuildingAttributesFragment
      }
      ... on SiteAttributes {
        ...SiteAttributesFragment
      }
      ... on FloorAttributes {
        ...FloorAttributesFragment
      }
      ... on ParkingLotAttributes {
        ...ParkingLotAttributesFragment
      }
      ... on ParkingSpaceAttributes {
        ...ParkingSpaceAttributesFragment
      }
      ... on DeskAttributes {
        ...DeskAttributesFragment
      }
      ... on RoomAttributes {
        ...RoomAttributesFragment
      }
    }
    createdAt
    updatedAt
    deviceCount
    plan {
      ...PlanFragment
    }
    fullName
    hierarchy {
      ...PlaceSummaryFragment
    }
    hasChildren
    media {
      ...MediaFragment
    }
    available {
      ...AvailabilityFragment
    }
    calendar {
      ...PlaceFeatureInstanceFragment
    }
    zoomInfo {
      ...ZoomPlaceInfoFragment
    }
    timeZoneOffset
    owner {
      ...MembershipFragment
    }
    isDedicated
    qrCodeString
    schedulingSettings {
      ...SchedulingSettingsFragment
    }
    mergedSchedulingSettings {
      ...SchedulingSettingsFragment
    }
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "deletePlace": {
      "currentBooking": Booking,
      "nextBooking": Booking,
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "abc123",
      "parentPlaceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "placeTypeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "settings": BuildingSettings,
      "attributes": BuildingAttributes,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "deviceCount": 987,
      "plan": Plan,
      "fullName": ["abc123"],
      "hierarchy": [PlaceSummary],
      "hasChildren": true,
      "media": Media,
      "available": Availability,
      "calendar": PlaceFeatureInstance,
      "zoomInfo": ZoomPlaceInfo,
      "timeZoneOffset": 123,
      "owner": Membership,
      "isDedicated": false,
      "qrCodeString": "xyz789",
      "schedulingSettings": SchedulingSettings,
      "mergedSchedulingSettings": SchedulingSettings
    }
  }
}

deletePlaceFeature

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deletePlaceFeature($id: ID!) {
  deletePlaceFeature(id: $id)
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{"data": {"deletePlaceFeature": false}}

deletePlan

Response

Returns a Plan!

Arguments
Name Description
id - ID!

Example

Query
mutation deletePlan($id: ID!) {
  deletePlan(id: $id) {
    id
    orgId
    placeId
    mediaId
    annotations
    createdAt
    updatedAt
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "deletePlan": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "mediaId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "annotations": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

deleteScheduleEvent

Description

Delete a scheduled event.

Authorization: schedule_event_delete on ScheduleCalendar (parent of event)

Response

Returns a ScheduleEvent!

Arguments
Name Description
name - ID!

Example

Query
mutation deleteScheduleEvent($name: ID!) {
  deleteScheduleEvent(name: $name) {
    name
    createdAt
    updatedAt
    summary
    description
    startTime
    endTime
    timeZone
    recurrence
    recurringEventId
    devices {
      ...DeviceFragment
    }
    deviceAction
    deviceActionArguments
    deviceActionTriggeredAt
    notificationEmails
    deviceActionCompletedAt
    deviceActionState
    notificationBeforeOffset
  }
}
Variables
{"name": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "deleteScheduleEvent": {
      "name": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "summary": "abc123",
      "description": "xyz789",
      "startTime": "2007-12-03T10:15:30Z",
      "endTime": "2007-12-03T10:15:30Z",
      "timeZone": "abc123",
      "recurrence": ["abc123"],
      "recurringEventId": "abc123",
      "devices": [Device],
      "deviceAction": "abc123",
      "deviceActionArguments": ["abc123"],
      "deviceActionTriggeredAt": "2007-12-03T10:15:30Z",
      "notificationEmails": ["abc123"],
      "deviceActionCompletedAt": "2007-12-03T10:15:30Z",
      "deviceActionState": "UNSPECIFIED",
      "notificationBeforeOffset": "P3Y6M4DT12H30M5S"
    }
  }
}

deleteUser

Description

Delete a user account. Currently not implemented.

Requires: Platform admin permission

Response

Returns a User!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteUser($id: ID!) {
  deleteUser(id: $id) {
    id
    name
    firstName
    lastName
    email
    eula
    verified
    memberships {
      ...MembershipFragment
    }
    invitations {
      ...InvitationFragment
    }
    superAdmin
    createdAt
    updatedAt
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "deleteUser": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "abc123",
      "firstName": "abc123",
      "lastName": "abc123",
      "email": "xyz789",
      "eula": "xyz789",
      "verified": true,
      "memberships": [Membership],
      "invitations": [Invitation],
      "superAdmin": false,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

deviceCommand

Response

Returns a DeviceCommandResult!

Arguments
Name Description
input - DeviceCommandInput!

Example

Query
mutation deviceCommand($input: DeviceCommandInput!) {
  deviceCommand(input: $input) {
    success
    errorMessage
  }
}
Variables
{"input": DeviceCommandInput}
Response
{
  "data": {
    "deviceCommand": {
      "success": false,
      "errorMessage": "abc123"
    }
  }
}

disconnectZoomFromOrganization

Description

Disconnect Zoom from an organization.

Removes Zoom integration metadata but keeps places and devices as regular (non-Zoom) entities.

Response

Returns a ZoomDisconnectResult!

Arguments
Name Description
orgId - ID!

Example

Query
mutation disconnectZoomFromOrganization($orgId: ID!) {
  disconnectZoomFromOrganization(orgId: $orgId) {
    success
    placesAffected
    licensesDecoupled
    message
  }
}
Variables
{"orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "disconnectZoomFromOrganization": {
      "success": true,
      "placesAffected": 123,
      "licensesDecoupled": 987,
      "message": "xyz789"
    }
  }
}

duplicateFile

Description

Duplicate an existing file within the same organization. The duplicating user becomes the new file's owner. The blob is copied server-side; clients do not download or re-upload bytes.

Returns the new file in PENDING status. The blob copy is asynchronous; clients can poll file(input) until status is UPLOADED.

Authorization: file_files_duplicate on Organization(orgId)

Response

Returns a DuplicateFileResult!

Arguments
Name Description
input - DuplicateFileInput!

Example

Query
mutation duplicateFile($input: DuplicateFileInput!) {
  duplicateFile(input: $input) {
    file {
      ...FileFragment
    }
  }
}
Variables
{"input": DuplicateFileInput}
Response
{"data": {"duplicateFile": {"file": File}}}

extendBooking

Response

Returns a Booking!

Arguments
Name Description
id - ID!
seconds - Int
idTag - String
pin - String

Example

Query
mutation extendBooking(
  $id: ID!,
  $seconds: Int,
  $idTag: String,
  $pin: String
) {
  extendBooking(
    id: $id,
    seconds: $seconds,
    idTag: $idTag,
    pin: $pin
  ) {
    id
    startTime
    endTime
    checkedIn
    checkedOut
    canceled
    isWholeDay
    userDeleted
    place {
      ...PlaceFragment
    }
    user {
      ...UserFragment
    }
    skipAwayFromDeskReminder
    skipLateArrivalReminder
    focusMode
    arrivedAt
    title
    attendees {
      ...AttendeeFragment
    }
    isPrivate
    isImmutable
    organizer
    desk {
      ...DeskFragment
    }
    resource {
      ...ResourceFragment
    }
  }
}
Variables
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "seconds": 123,
  "idTag": "abc123",
  "pin": "abc123"
}
Response
{
  "data": {
    "extendBooking": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "startTime": "2007-12-03T10:15:30Z",
      "endTime": "2007-12-03T10:15:30Z",
      "checkedIn": "2007-12-03T10:15:30Z",
      "checkedOut": "2007-12-03T10:15:30Z",
      "canceled": "2007-12-03T10:15:30Z",
      "isWholeDay": false,
      "userDeleted": true,
      "place": Place,
      "user": User,
      "skipAwayFromDeskReminder": true,
      "skipLateArrivalReminder": false,
      "focusMode": false,
      "arrivedAt": "2007-12-03T10:15:30Z",
      "title": "abc123",
      "attendees": [Attendee],
      "isPrivate": true,
      "isImmutable": true,
      "organizer": "xyz789",
      "desk": Desk,
      "resource": Resource
    }
  }
}

generateFileReplaceUrl

Description

Generate a signed URL for replacing the contents of an existing file in blob storage. The blob is overwritten in place at the file's existing path.

Authorization: file_files_replace on Organization(file.orgId)

Response

Returns a GenerateFileUploadUrlResult!

Arguments
Name Description
input - GenerateFileReplaceUrlInput!

Example

Query
mutation generateFileReplaceUrl($input: GenerateFileReplaceUrlInput!) {
  generateFileReplaceUrl(input: $input) {
    fileId
    url {
      ...SignedUrlFragment
    }
  }
}
Variables
{"input": GenerateFileReplaceUrlInput}
Response
{
  "data": {
    "generateFileReplaceUrl": {
      "fileId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "url": SignedUrl
    }
  }
}

generateFileUploadUrl

Description

Generate a signed URL for uploading a file to blob storage.

Authorization: file_signedurl_create on Organization(orgId)

Response

Returns a GenerateFileUploadUrlResult!

Arguments
Name Description
input - GenerateFileUploadUrlInput!

Example

Query
mutation generateFileUploadUrl($input: GenerateFileUploadUrlInput!) {
  generateFileUploadUrl(input: $input) {
    fileId
    url {
      ...SignedUrlFragment
    }
  }
}
Variables
{"input": GenerateFileUploadUrlInput}
Response
{
  "data": {
    "generateFileUploadUrl": {
      "fileId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "url": SignedUrl
    }
  }
}

generateFirmwareURL

Description

Generate a signed URL for firmware upload or download.

Authorization: firmware_firmware_upload on Platform (for upload) or firmware_firmware_download on Platform (for download)

Response

Returns an FirmwareURL!

Arguments
Name Description
input - GenerateFirmwareURLInput!

Example

Query
mutation generateFirmwareURL($input: GenerateFirmwareURLInput!) {
  generateFirmwareURL(input: $input) {
    url
    expiresAt
  }
}
Variables
{"input": GenerateFirmwareURLInput}
Response
{
  "data": {
    "generateFirmwareURL": {
      "url": "xyz789",
      "expiresAt": "2007-12-03T10:15:30Z"
    }
  }
}

generateOverviewCode

Description

Generate a new overview code used to authorize overview screens.

Response

Returns an OverviewCodePayload!

Example

Query
mutation generateOverviewCode {
  generateOverviewCode {
    deviceCode
    userCode
    expiresIn
    interval
    verificationUri
    verificationUriComplete
  }
}
Response
{
  "data": {
    "generateOverviewCode": {
      "deviceCode": "abc123",
      "userCode": "abc123",
      "expiresIn": "P3Y6M4DT12H30M5S",
      "interval": "P3Y6M4DT12H30M5S",
      "verificationUri": "abc123",
      "verificationUriComplete": "abc123"
    }
  }
}

importIDTags

Description

Import ID tags from a csv file. The file should contain one tag per line in the specified format: email,tag_value

Response

Returns an ImportIDTagsResult!

Arguments
Name Description
input - ImportIDTagsInput!

Example

Query
mutation importIDTags($input: ImportIDTagsInput!) {
  importIDTags(input: $input) {
    summary {
      ...ImportIDTagsSummaryFragment
    }
    reportUrl {
      ...SignedUrlFragment
    }
  }
}
Variables
{"input": ImportIDTagsInput}
Response
{
  "data": {
    "importIDTags": {
      "summary": ImportIDTagsSummary,
      "reportUrl": SignedUrl
    }
  }
}

joinOrganization

Description

Request to join an organization by domain. Creates a membership request pending approval.

Requires: Authentication. The organization admin must approve the request before membership is active.

Response

Returns a Membership!

Arguments
Name Description
domain - String!

Example

Query
mutation joinOrganization($domain: String!) {
  joinOrganization(domain: $domain) {
    hasCalendar
    calendar {
      ...CalendarFragment
    }
    id
    userId
    orgId
    user {
      ...UserFragment
    }
    organization {
      ...OrganizationFragment
    }
    invitation {
      ...InvitationFragment
    }
    role
    roles
    createdAt
    updatedAt
    status
    pin {
      ...PinFragment
    }
  }
}
Variables
{"domain": "abc123"}
Response
{
  "data": {
    "joinOrganization": {
      "hasCalendar": false,
      "calendar": Calendar,
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "userId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "user": User,
      "organization": Organization,
      "invitation": Invitation,
      "role": "OWNER",
      "roles": ["OWNER"],
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "status": "REQUESTED",
      "pin": Pin
    }
  }
}

movePlace

Response

Returns a Place!

Arguments
Name Description
id - ID!
parentPlaceId - ID

Example

Query
mutation movePlace(
  $id: ID!,
  $parentPlaceId: ID
) {
  movePlace(
    id: $id,
    parentPlaceId: $parentPlaceId
  ) {
    currentBooking {
      ...BookingFragment
    }
    nextBooking {
      ...BookingFragment
    }
    id
    name
    parentPlaceId
    placeTypeId
    settings {
      ... on BuildingSettings {
        ...BuildingSettingsFragment
      }
      ... on SiteSettings {
        ...SiteSettingsFragment
      }
      ... on FloorSettings {
        ...FloorSettingsFragment
      }
      ... on ZoneSettings {
        ...ZoneSettingsFragment
      }
      ... on DeskSettings {
        ...DeskSettingsFragment
      }
      ... on RoomSettings {
        ...RoomSettingsFragment
      }
    }
    attributes {
      ... on BuildingAttributes {
        ...BuildingAttributesFragment
      }
      ... on SiteAttributes {
        ...SiteAttributesFragment
      }
      ... on FloorAttributes {
        ...FloorAttributesFragment
      }
      ... on ParkingLotAttributes {
        ...ParkingLotAttributesFragment
      }
      ... on ParkingSpaceAttributes {
        ...ParkingSpaceAttributesFragment
      }
      ... on DeskAttributes {
        ...DeskAttributesFragment
      }
      ... on RoomAttributes {
        ...RoomAttributesFragment
      }
    }
    createdAt
    updatedAt
    deviceCount
    plan {
      ...PlanFragment
    }
    fullName
    hierarchy {
      ...PlaceSummaryFragment
    }
    hasChildren
    media {
      ...MediaFragment
    }
    available {
      ...AvailabilityFragment
    }
    calendar {
      ...PlaceFeatureInstanceFragment
    }
    zoomInfo {
      ...ZoomPlaceInfoFragment
    }
    timeZoneOffset
    owner {
      ...MembershipFragment
    }
    isDedicated
    qrCodeString
    schedulingSettings {
      ...SchedulingSettingsFragment
    }
    mergedSchedulingSettings {
      ...SchedulingSettingsFragment
    }
  }
}
Variables
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "parentPlaceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
}
Response
{
  "data": {
    "movePlace": {
      "currentBooking": Booking,
      "nextBooking": Booking,
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "xyz789",
      "parentPlaceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "placeTypeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "settings": BuildingSettings,
      "attributes": BuildingAttributes,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "deviceCount": 987,
      "plan": Plan,
      "fullName": ["xyz789"],
      "hierarchy": [PlaceSummary],
      "hasChildren": false,
      "media": Media,
      "available": Availability,
      "calendar": PlaceFeatureInstance,
      "zoomInfo": ZoomPlaceInfo,
      "timeZoneOffset": 987,
      "owner": Membership,
      "isDedicated": false,
      "qrCodeString": "xyz789",
      "schedulingSettings": SchedulingSettings,
      "mergedSchedulingSettings": SchedulingSettings
    }
  }
}

publishNatsAccount

Description

Publish a NATS account JWT for messaging infrastructure.

Requires: Permission to publish the NATS account

Response

Returns a NatsAccount!

Arguments
Name Description
id - String!

Example

Query
mutation publishNatsAccount($id: String!) {
  publishNatsAccount(id: $id) {
    id
    jwt
    orgId
    platformId
    createdAt
    updatedAt
  }
}
Variables
{"id": "xyz789"}
Response
{
  "data": {
    "publishNatsAccount": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "jwt": "abc123",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "platformId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

purgeZoomFromOrganization

Description

Purge all Zoom data from an organization.

Deletes all Zoom-synced data and decouples licenses.

Response

Returns a ZoomPurgeResult!

Arguments
Name Description
orgId - ID!

Example

Query
mutation purgeZoomFromOrganization($orgId: ID!) {
  purgeZoomFromOrganization(orgId: $orgId) {
    success
    placesDeleted
    message
  }
}
Variables
{"orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "purgeZoomFromOrganization": {
      "success": true,
      "placesDeleted": 987,
      "message": "xyz789"
    }
  }
}

reportResourceIssue

Response

Returns a Boolean!

Arguments
Name Description
id - ID!
problemAreas - [RoomResource!]!

Example

Query
mutation reportResourceIssue(
  $id: ID!,
  $problemAreas: [RoomResource!]!
) {
  reportResourceIssue(
    id: $id,
    problemAreas: $problemAreas
  )
}
Variables
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "problemAreas": ["ROOM_TEMPERATURE"]
}
Response
{"data": {"reportResourceIssue": true}}

resetFirmware

Description

Reset device firmware assignment to use the channel default.

Authorization: device_devices_assign_firmware on Platform

Response

Returns a Device!

Arguments
Name Description
id - ID!

Example

Query
mutation resetFirmware($id: ID!) {
  resetFirmware(id: $id) {
    id
    type {
      ...DeviceTypeFragment
    }
    serial
    assignedFirmware {
      ...FirmwareFragment
    }
    latestFirmware {
      ...FirmwareFragment
    }
    nextFirmware {
      ...FirmwareFragment
    }
    firmwarePublicKey
    firmwareVariant
    channel {
      ...ChannelFragment
    }
    place {
      ...PlaceFragment
    }
    placeId
    desk {
      ...DeskFragment
    }
    deskId
    room {
      ...RoomFragment
    }
    roomId
    status {
      ...DeviceStatusFragment
    }
    language
    timezone
    orgName
    orgId
    parent {
      ...DeviceFragment
    }
    children {
      ...DeviceFragment
    }
    activeHours {
      ...WeeklyOpenHoursFragment
    }
    createdAt
    updatedAt
    attributes {
      ...DeviceAttributesFragment
    }
    state
    activeError {
      ...DeviceEventStatusFragment
    }
    activeDeviceErrors {
      ...DeviceEventFragment
    }
    interfaces {
      ...NetworkInterfaceFragment
    }
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "resetFirmware": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "type": DeviceType,
      "serial": "abc123",
      "assignedFirmware": Firmware,
      "latestFirmware": Firmware,
      "nextFirmware": Firmware,
      "firmwarePublicKey": "xyz789",
      "firmwareVariant": "abc123",
      "channel": Channel,
      "place": Place,
      "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "desk": Desk,
      "deskId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "room": Room,
      "roomId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "status": DeviceStatus,
      "language": "abc123",
      "timezone": "xyz789",
      "orgName": "abc123",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "parent": Device,
      "children": [Device],
      "activeHours": WeeklyOpenHours,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "attributes": DeviceAttributes,
      "state": "UNPROVISIONED",
      "activeError": DeviceEventStatus,
      "activeDeviceErrors": [DeviceEvent],
      "interfaces": [NetworkInterface]
    }
  }
}

revokeLicense

Description

Revoke a license and make it unusable.

Authorization: license_licenses_revoke on Platform

Response

Returns a License!

Arguments
Name Description
id - ID!

Example

Query
mutation revokeLicense($id: ID!) {
  revokeLicense(id: $id) {
    id
    refId
    count
    duration
    activatesAt
    expiresAt
    createdAt
    updatedAt
    revokedAt
    organization {
      ...OrganizationFragment
    }
    licenseTypeId
    trial
    state
    licenseType {
      ...LicenseTypeFragment
    }
    associations {
      ...LicenseAssociationsConnectionFragment
    }
    places {
      ...LicensePlacesConnectionFragment
    }
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "revokeLicense": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "refId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "count": 123,
      "duration": 987,
      "activatesAt": "2007-12-03T10:15:30Z",
      "expiresAt": "2007-12-03T10:15:30Z",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "revokedAt": "2007-12-03T10:15:30Z",
      "organization": Organization,
      "licenseTypeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "trial": false,
      "state": "UNSPECIFIED",
      "licenseType": LicenseType,
      "associations": LicenseAssociationsConnection,
      "places": LicensePlacesConnection
    }
  }
}

setFeatureFlag

Response

Returns a FeatureFlag!

Arguments
Name Description
input - SetFeatureFlagInput!

Example

Query
mutation setFeatureFlag($input: SetFeatureFlagInput!) {
  setFeatureFlag(input: $input) {
    id
    value
    description
  }
}
Variables
{"input": SetFeatureFlagInput}
Response
{
  "data": {
    "setFeatureFlag": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "value": false,
      "description": "abc123"
    }
  }
}

signDeviceJwt

Response

Returns a DeviceJwt!

Arguments
Name Description
input - SignDeviceJwtInput!

Example

Query
mutation signDeviceJwt($input: SignDeviceJwtInput!) {
  signDeviceJwt(input: $input) {
    id
    orgId
    deviceId
    jwt
    createdAt
  }
}
Variables
{"input": SignDeviceJwtInput}
Response
{
  "data": {
    "signDeviceJwt": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "deviceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "jwt": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

signMembershipJwt

Description

Sign a membership JWT for NATS authentication with organization-scoped permissions.

Requires: Organization membership with the base permission for every requested application. If any requested application is not permitted, the entire request is rejected. bwp.info.> is always granted. COMMAND grants bwp.control.> and bwp.control-restricted.> (if permitted). SETTINGS grants bwp.settings.> and bwp.settings-restricted.> (if permitted).

Response

Returns a SignMembershipJwtResponse!

Arguments
Name Description
input - SignMembershipJwtInput!

Example

Query
mutation signMembershipJwt($input: SignMembershipJwtInput!) {
  signMembershipJwt(input: $input) {
    jwt
  }
}
Variables
{"input": SignMembershipJwtInput}
Response
{
  "data": {
    "signMembershipJwt": {"jwt": "xyz789"}
  }
}

startSyncOrgSources

Description

Trigger synchronization of all calendar sources for an organization.

Authorization: calendar_calendarsources_sync on Organization(orgId)

Response

Returns a StartSyncOrgSourcesResponse!

Arguments
Name Description
orgId - ID!

Example

Query
mutation startSyncOrgSources($orgId: ID!) {
  startSyncOrgSources(orgId: $orgId) {
    started
  }
}
Variables
{"orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{"data": {"startSyncOrgSources": {"started": true}}}

syncZoomWorkspacesNow

Description

Queue an immediate sync of Zoom workspaces for an organization.

Returns immediately after queuing. Watch zoomConnection.syncLog for the actual sync outcome and any errors (including re-auth requirements).

Response

Returns a ZoomSyncStarted!

Arguments
Name Description
orgId - ID!

Example

Query
mutation syncZoomWorkspacesNow($orgId: ID!) {
  syncZoomWorkspacesNow(orgId: $orgId) {
    accepted
    startedAt
  }
}
Variables
{"orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "syncZoomWorkspacesNow": {
      "accepted": false,
      "startedAt": "2007-12-03T10:15:30Z"
    }
  }
}

updateBooking

Response

Returns a Booking!

Arguments
Name Description
id - ID!
input - UpdateBookingInput!
idTag - String
pin - String

Example

Query
mutation updateBooking(
  $id: ID!,
  $input: UpdateBookingInput!,
  $idTag: String,
  $pin: String
) {
  updateBooking(
    id: $id,
    input: $input,
    idTag: $idTag,
    pin: $pin
  ) {
    id
    startTime
    endTime
    checkedIn
    checkedOut
    canceled
    isWholeDay
    userDeleted
    place {
      ...PlaceFragment
    }
    user {
      ...UserFragment
    }
    skipAwayFromDeskReminder
    skipLateArrivalReminder
    focusMode
    arrivedAt
    title
    attendees {
      ...AttendeeFragment
    }
    isPrivate
    isImmutable
    organizer
    desk {
      ...DeskFragment
    }
    resource {
      ...ResourceFragment
    }
  }
}
Variables
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": UpdateBookingInput,
  "idTag": "xyz789",
  "pin": "xyz789"
}
Response
{
  "data": {
    "updateBooking": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "startTime": "2007-12-03T10:15:30Z",
      "endTime": "2007-12-03T10:15:30Z",
      "checkedIn": "2007-12-03T10:15:30Z",
      "checkedOut": "2007-12-03T10:15:30Z",
      "canceled": "2007-12-03T10:15:30Z",
      "isWholeDay": false,
      "userDeleted": true,
      "place": Place,
      "user": User,
      "skipAwayFromDeskReminder": true,
      "skipLateArrivalReminder": false,
      "focusMode": false,
      "arrivedAt": "2007-12-03T10:15:30Z",
      "title": "xyz789",
      "attendees": [Attendee],
      "isPrivate": true,
      "isImmutable": true,
      "organizer": "xyz789",
      "desk": Desk,
      "resource": Resource
    }
  }
}

updateCalendarEvent

Description

Update an existing calendar event.

Authorization: calendar_calendarevents_update on CalendarEvent(id)

Response

Returns a CalendarEvent!

Arguments
Name Description
id - ID!
input - UpdateCalendarEventInput!

Example

Query
mutation updateCalendarEvent(
  $id: ID!,
  $input: UpdateCalendarEventInput!
) {
  updateCalendarEvent(
    id: $id,
    input: $input
  ) {
    id
    name
    calendarId
    timesSynced
    remoteId
    remoteData
    isRecurring
    isWholeDay
    sensitivity
    startTime
    endTime
    createdAt
    updatedAt
    attendees {
      ...AttendeeFragment
    }
    meetingUrl
    creator
    iCalUID
    meetingProvider
  }
}
Variables
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": UpdateCalendarEventInput
}
Response
{
  "data": {
    "updateCalendarEvent": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "abc123",
      "calendarId": "abc123",
      "timesSynced": 987,
      "remoteId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "remoteData": "xyz789",
      "isRecurring": false,
      "isWholeDay": false,
      "sensitivity": "PRIVATE",
      "startTime": "2007-12-03T10:15:30Z",
      "endTime": "2007-12-03T10:15:30Z",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "attendees": [Attendee],
      "meetingUrl": "xyz789",
      "creator": "abc123",
      "iCalUID": "xyz789",
      "meetingProvider": "UNSPECIFIED"
    }
  }
}

updateCalendarSource

Description

Update an existing calendar source configuration.

Authorization: calendar_calendarsources_update on CalendarSource(srcId)

Response

Returns a CalendarSource!

Arguments
Name Description
srcId - ID!
input - UpdateCalendarSourceInput!

Example

Query
mutation updateCalendarSource(
  $srcId: ID!,
  $input: UpdateCalendarSourceInput!
) {
  updateCalendarSource(
    srcId: $srcId,
    input: $input
  ) {
    id
    createdAt
    updatedAt
    orgId
    settings
    provider
    resourceAdmin
    syncedAt
    syncErrors
  }
}
Variables
{
  "srcId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": UpdateCalendarSourceInput
}
Response
{
  "data": {
    "updateCalendarSource": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "orgId": "abc123",
      "settings": "abc123",
      "provider": "GOOGLE",
      "resourceAdmin": "abc123",
      "syncedAt": "2007-12-03T10:15:30Z",
      "syncErrors": ["abc123"]
    }
  }
}

updateDevice

Description

Update device configuration including serial, location, and firmware channel.

Authorization: device_devices_update on Device(id)

Response

Returns a Device!

Arguments
Name Description
id - ID! Default = "me"
input - UpdateDeviceInput!

Example

Query
mutation updateDevice(
  $id: ID!,
  $input: UpdateDeviceInput!
) {
  updateDevice(
    id: $id,
    input: $input
  ) {
    id
    type {
      ...DeviceTypeFragment
    }
    serial
    assignedFirmware {
      ...FirmwareFragment
    }
    latestFirmware {
      ...FirmwareFragment
    }
    nextFirmware {
      ...FirmwareFragment
    }
    firmwarePublicKey
    firmwareVariant
    channel {
      ...ChannelFragment
    }
    place {
      ...PlaceFragment
    }
    placeId
    desk {
      ...DeskFragment
    }
    deskId
    room {
      ...RoomFragment
    }
    roomId
    status {
      ...DeviceStatusFragment
    }
    language
    timezone
    orgName
    orgId
    parent {
      ...DeviceFragment
    }
    children {
      ...DeviceFragment
    }
    activeHours {
      ...WeeklyOpenHoursFragment
    }
    createdAt
    updatedAt
    attributes {
      ...DeviceAttributesFragment
    }
    state
    activeError {
      ...DeviceEventStatusFragment
    }
    activeDeviceErrors {
      ...DeviceEventFragment
    }
    interfaces {
      ...NetworkInterfaceFragment
    }
  }
}
Variables
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": UpdateDeviceInput
}
Response
{
  "data": {
    "updateDevice": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "type": DeviceType,
      "serial": "abc123",
      "assignedFirmware": Firmware,
      "latestFirmware": Firmware,
      "nextFirmware": Firmware,
      "firmwarePublicKey": "abc123",
      "firmwareVariant": "abc123",
      "channel": Channel,
      "place": Place,
      "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "desk": Desk,
      "deskId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "room": Room,
      "roomId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "status": DeviceStatus,
      "language": "abc123",
      "timezone": "abc123",
      "orgName": "abc123",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "parent": Device,
      "children": [Device],
      "activeHours": WeeklyOpenHours,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "attributes": DeviceAttributes,
      "state": "UNPROVISIONED",
      "activeError": DeviceEventStatus,
      "activeDeviceErrors": [DeviceEvent],
      "interfaces": [NetworkInterface]
    }
  }
}

updateDeviceSpecificSettings

Description

Updates the device specific setting matching the device specific setting ID. NOTE: The ID in this mutation is the ID of the device speciic setting itself, and NOT the device ID. If the caller does not know the ID of the setting, it can be found from the deviceSpecificSettings query which does take the device ID as input.

Response

Returns a DeviceSpecificSettings!

Arguments
Name Description
id - ID!
input - UpdateDeviceSpecificSettingsInput!

Example

Query
mutation updateDeviceSpecificSettings(
  $id: ID!,
  $input: UpdateDeviceSpecificSettingsInput!
) {
  updateDeviceSpecificSettings(
    id: $id,
    input: $input
  ) {
    id
    deviceID
    preset
    data
    dataVersion
    createdAt
    updatedAt
  }
}
Variables
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": UpdateDeviceSpecificSettingsInput
}
Response
{
  "data": {
    "updateDeviceSpecificSettings": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "deviceID": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "preset": "abc123",
      "data": "xyz789",
      "dataVersion": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

updateDeviceStatus

succeeded by addDeviceTelemetryEvent
Description

Update device telemetry status (temperature, uptime, firmware version).

Authorization: device_devices_update on Device(id); or device must be authenticating as itself

Response

Returns a DeviceStatus!

Arguments
Name Description
id - ID! Default = "me"
input - DeviceStatusInput!

Example

Query
mutation updateDeviceStatus(
  $id: ID!,
  $input: DeviceStatusInput!
) {
  updateDeviceStatus(
    id: $id,
    input: $input
  ) {
    temperature
    uptime
    firmware
    timestamp
    presence
    cpuUtilization
  }
}
Variables
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": DeviceStatusInput
}
Response
{
  "data": {
    "updateDeviceStatus": {
      "temperature": 987.65,
      "uptime": 987,
      "firmware": "xyz789",
      "timestamp": "2007-12-03T10:15:30Z",
      "presence": false,
      "cpuUtilization": 987.65
    }
  }
}

updateDeviceType

Description

Update device type configuration.

Authorization: device_type_update on DeviceType(id)

Response

Returns a DeviceType!

Arguments
Name Description
input - UpdateDeviceTypeInput!

Example

Query
mutation updateDeviceType($input: UpdateDeviceTypeInput!) {
  updateDeviceType(input: $input) {
    id
    name
    attributes {
      ...DeviceTypeAttributesFragment
    }
  }
}
Variables
{"input": UpdateDeviceTypeInput}
Response
{
  "data": {
    "updateDeviceType": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "xyz789",
      "attributes": DeviceTypeAttributes
    }
  }
}

updateDevicesLocation

Description

Move a collection of devices to new places. Returns a collection of minimal Devices that were updated, not containing place, orgName, or settings.

Authorization: organization_organizations_update on Organization(orgId)

Response

Returns [Device!]

Arguments
Name Description
orgId - ID!
deviceMoves - [DeviceLocationMoveInput!]!

Example

Query
mutation updateDevicesLocation(
  $orgId: ID!,
  $deviceMoves: [DeviceLocationMoveInput!]!
) {
  updateDevicesLocation(
    orgId: $orgId,
    deviceMoves: $deviceMoves
  ) {
    id
    type {
      ...DeviceTypeFragment
    }
    serial
    assignedFirmware {
      ...FirmwareFragment
    }
    latestFirmware {
      ...FirmwareFragment
    }
    nextFirmware {
      ...FirmwareFragment
    }
    firmwarePublicKey
    firmwareVariant
    channel {
      ...ChannelFragment
    }
    place {
      ...PlaceFragment
    }
    placeId
    desk {
      ...DeskFragment
    }
    deskId
    room {
      ...RoomFragment
    }
    roomId
    status {
      ...DeviceStatusFragment
    }
    language
    timezone
    orgName
    orgId
    parent {
      ...DeviceFragment
    }
    children {
      ...DeviceFragment
    }
    activeHours {
      ...WeeklyOpenHoursFragment
    }
    createdAt
    updatedAt
    attributes {
      ...DeviceAttributesFragment
    }
    state
    activeError {
      ...DeviceEventStatusFragment
    }
    activeDeviceErrors {
      ...DeviceEventFragment
    }
    interfaces {
      ...NetworkInterfaceFragment
    }
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "deviceMoves": [DeviceLocationMoveInput]
}
Response
{
  "data": {
    "updateDevicesLocation": [
      {
        "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
        "type": DeviceType,
        "serial": "xyz789",
        "assignedFirmware": Firmware,
        "latestFirmware": Firmware,
        "nextFirmware": Firmware,
        "firmwarePublicKey": "xyz789",
        "firmwareVariant": "xyz789",
        "channel": Channel,
        "place": Place,
        "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
        "desk": Desk,
        "deskId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
        "room": Room,
        "roomId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
        "status": DeviceStatus,
        "language": "abc123",
        "timezone": "abc123",
        "orgName": "abc123",
        "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
        "parent": Device,
        "children": [Device],
        "activeHours": WeeklyOpenHours,
        "createdAt": "2007-12-03T10:15:30Z",
        "updatedAt": "2007-12-03T10:15:30Z",
        "attributes": DeviceAttributes,
        "state": "UNPROVISIONED",
        "activeError": DeviceEventStatus,
        "activeDeviceErrors": [DeviceEvent],
        "interfaces": [NetworkInterface]
      }
    ]
  }
}

updateFacility

Description

Update an existing facility's properties.

Authorization: facility_facility_update on Platform

Response

Returns a Facility

Arguments
Name Description
id - ID!
input - UpdateFacilityInput!

Example

Query
mutation updateFacility(
  $id: ID!,
  $input: UpdateFacilityInput!
) {
  updateFacility(
    id: $id,
    input: $input
  ) {
    id
    name
    category
    iconPath
  }
}
Variables
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": UpdateFacilityInput
}
Response
{
  "data": {
    "updateFacility": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "xyz789",
      "category": "abc123",
      "iconPath": "xyz789"
    }
  }
}

updateFile

Description

Update mutable fields on an existing file. Metadata-only: it updates the files row and does not touch the blob. The new filename takes effect on the next getFileDownloadUrl via Content-Disposition.

Authorization: file_files_update on the file's Organization.

Response

Returns a File!

Arguments
Name Description
input - UpdateFileInput!

Example

Query
mutation updateFile($input: UpdateFileInput!) {
  updateFile(input: $input) {
    id
    orgId
    fileType
    size
    createdAt
    updatedAt
    status
    filename
    uploadedBy {
      ... on User {
        ...UserFragment
      }
      ... on Device {
        ...DeviceFragment
      }
    }
    metadata {
      ...FileMetadataEntryFragment
    }
  }
}
Variables
{"input": UpdateFileInput}
Response
{
  "data": {
    "updateFile": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "fileType": "LAUNCH_REPORT",
      "size": 123,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "status": "PENDING",
      "filename": "xyz789",
      "uploadedBy": User,
      "metadata": [FileMetadataEntry]
    }
  }
}

updateFileMetadata

Description

Update an existing file's metadata without re-uploading the blob.

Authorization: file_files_update on Organization(orgId)

Response

Returns an UpdateFileMetadataResult!

Arguments
Name Description
input - UpdateFileMetadataInput!

Example

Query
mutation updateFileMetadata($input: UpdateFileMetadataInput!) {
  updateFileMetadata(input: $input) {
    file {
      ...FileFragment
    }
  }
}
Variables
{"input": UpdateFileMetadataInput}
Response
{"data": {"updateFileMetadata": {"file": File}}}

updateFirmware

Description

Update firmware metadata including version, URL, public key, and channel assignments.

Authorization: firmware_firmware_update on Firmware(id)

Response

Returns a Firmware!

Arguments
Name Description
id - ID!
input - UpdateFirmwareInput!

Example

Query
mutation updateFirmware(
  $id: ID!,
  $input: UpdateFirmwareInput!
) {
  updateFirmware(
    id: $id,
    input: $input
  ) {
    id
    deviceType {
      ...DeviceTypeFragment
    }
    version
    url
    publicKey
    variant
    channels {
      ...ChannelFragment
    }
    createdAt
    updatedAt
  }
}
Variables
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": UpdateFirmwareInput
}
Response
{
  "data": {
    "updateFirmware": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "deviceType": DeviceType,
      "version": "abc123",
      "url": "abc123",
      "publicKey": "xyz789",
      "variant": "xyz789",
      "channels": [Channel],
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

updateInvitation

Response

Returns an Invitation!

Arguments
Name Description
id - ID!
input - UpdateInvitationInput!

Example

Query
mutation updateInvitation(
  $id: ID!,
  $input: UpdateInvitationInput!
) {
  updateInvitation(
    id: $id,
    input: $input
  ) {
    id
    orgId
    email
    expiresAt
    organization {
      ...OrganizationFragment
    }
    status
    membership {
      ...MembershipFragment
    }
    createdAt
    updatedAt
  }
}
Variables
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": UpdateInvitationInput
}
Response
{
  "data": {
    "updateInvitation": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "email": "abc123",
      "expiresAt": "2007-12-03T10:15:30Z",
      "organization": Organization,
      "status": "PENDING",
      "membership": Membership,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

updateLicense

Description

Update license details such as count, duration, or activation time.

Authorization: license_licenses_update on License(id)

Response

Returns a License!

Arguments
Name Description
id - ID!
input - UpdateLicenseInput!

Example

Query
mutation updateLicense(
  $id: ID!,
  $input: UpdateLicenseInput!
) {
  updateLicense(
    id: $id,
    input: $input
  ) {
    id
    refId
    count
    duration
    activatesAt
    expiresAt
    createdAt
    updatedAt
    revokedAt
    organization {
      ...OrganizationFragment
    }
    licenseTypeId
    trial
    state
    licenseType {
      ...LicenseTypeFragment
    }
    associations {
      ...LicenseAssociationsConnectionFragment
    }
    places {
      ...LicensePlacesConnectionFragment
    }
  }
}
Variables
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": UpdateLicenseInput
}
Response
{
  "data": {
    "updateLicense": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "refId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "count": 987,
      "duration": 123,
      "activatesAt": "2007-12-03T10:15:30Z",
      "expiresAt": "2007-12-03T10:15:30Z",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "revokedAt": "2007-12-03T10:15:30Z",
      "organization": Organization,
      "licenseTypeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "trial": false,
      "state": "UNSPECIFIED",
      "licenseType": LicenseType,
      "associations": LicenseAssociationsConnection,
      "places": LicensePlacesConnection
    }
  }
}

updateLicenseReseller

Description

Update the reseller associated with a license.

Authorization: license_licenses_updatereseller on License(id)

Response

Returns a License!

Arguments
Name Description
id - ID!
resID - ID

Example

Query
mutation updateLicenseReseller(
  $id: ID!,
  $resID: ID
) {
  updateLicenseReseller(
    id: $id,
    resID: $resID
  ) {
    id
    refId
    count
    duration
    activatesAt
    expiresAt
    createdAt
    updatedAt
    revokedAt
    organization {
      ...OrganizationFragment
    }
    licenseTypeId
    trial
    state
    licenseType {
      ...LicenseTypeFragment
    }
    associations {
      ...LicenseAssociationsConnectionFragment
    }
    places {
      ...LicensePlacesConnectionFragment
    }
  }
}
Variables
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "resID": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
}
Response
{
  "data": {
    "updateLicenseReseller": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "refId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "count": 123,
      "duration": 987,
      "activatesAt": "2007-12-03T10:15:30Z",
      "expiresAt": "2007-12-03T10:15:30Z",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "revokedAt": "2007-12-03T10:15:30Z",
      "organization": Organization,
      "licenseTypeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "trial": false,
      "state": "UNSPECIFIED",
      "licenseType": LicenseType,
      "associations": LicenseAssociationsConnection,
      "places": LicensePlacesConnection
    }
  }
}

updateLicenseType

Description

Update the display name and/or entity feature support of an existing license type. entitySupport, when provided, fully replaces the existing definition; entity types not listed have their features cleared.

Authorization: license_licensetypes_update on LicenseType(id)

Response

Returns a LicenseType!

Arguments
Name Description
id - ID!
input - UpdateLicenseTypeInput!

Example

Query
mutation updateLicenseType(
  $id: ID!,
  $input: UpdateLicenseTypeInput!
) {
  updateLicenseType(
    id: $id,
    input: $input
  ) {
    id
    name
    createdAt
    updatedAt
    entitySupport {
      ...LicenseTypeEntitySupportFragment
    }
    placeFeatures
    deviceFeatures
  }
}
Variables
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": UpdateLicenseTypeInput
}
Response
{
  "data": {
    "updateLicenseType": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "entitySupport": [LicenseTypeEntitySupport],
      "placeFeatures": ["abc123"],
      "deviceFeatures": ["xyz789"]
    }
  }
}

updateMembership

Description

Update membership roles for a user in an organization.

Requires: Organization admin or owner role. Users cannot modify their own roles.

Response

Returns a Membership!

Arguments
Name Description
id - ID!
input - UpdateMembershipInput!

Example

Query
mutation updateMembership(
  $id: ID!,
  $input: UpdateMembershipInput!
) {
  updateMembership(
    id: $id,
    input: $input
  ) {
    hasCalendar
    calendar {
      ...CalendarFragment
    }
    id
    userId
    orgId
    user {
      ...UserFragment
    }
    organization {
      ...OrganizationFragment
    }
    invitation {
      ...InvitationFragment
    }
    role
    roles
    createdAt
    updatedAt
    status
    pin {
      ...PinFragment
    }
  }
}
Variables
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": UpdateMembershipInput
}
Response
{
  "data": {
    "updateMembership": {
      "hasCalendar": true,
      "calendar": Calendar,
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "userId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "user": User,
      "organization": Organization,
      "invitation": Invitation,
      "role": "OWNER",
      "roles": ["OWNER"],
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "status": "REQUESTED",
      "pin": Pin
    }
  }
}

updateNotificationToken

Description

Set the user ID that should be associated with a specific FCM token. If user ID is null, the FCM token will be removed.

Response

Returns a Boolean!

Arguments
Name Description
fcmToken - String!
userId - String

Example

Query
mutation updateNotificationToken(
  $fcmToken: String!,
  $userId: String
) {
  updateNotificationToken(
    fcmToken: $fcmToken,
    userId: $userId
  )
}
Variables
{
  "fcmToken": "abc123",
  "userId": "abc123"
}
Response
{"data": {"updateNotificationToken": true}}

updateOrganization

Description

Update organization settings including booking policies, calendar settings, and branding.

Authorization: organization_organizations_update on Organization(id)

Response

Returns an Organization!

Arguments
Name Description
id - ID!
input - UpdateOrganizationInput!

Example

Query
mutation updateOrganization(
  $id: ID!,
  $input: UpdateOrganizationInput!
) {
  updateOrganization(
    id: $id,
    input: $input
  ) {
    hasCalendar
    id
    name
    domain
    logoMediaId
    logoUrl
    bookingSettings {
      ...OrganizationBookingSettingsFragment
    }
    deskBookingSettings {
      ...DeskBookingSettingsFragment
    }
    roomBookingSettings {
      ...RoomBookingSettingsFragment
    }
    parkingBookingSettings {
      ...ParkingBookingSettingsFragment
    }
    calendarSettings {
      ...CalendarSettingsFragment
    }
    whitelist
    whitelistEnabled
    language
    timezone
    deviceScreenTemplate
    brokenEquipmentReportEmails
    timePresentation
    deskStats {
      ...DeskStatsFragment
    }
    deviceStats {
      ...DeviceStatsFragment
    }
    membershipStats {
      ...MembershipStatsFragment
    }
    openHours {
      ...WeeklyOpenHoursFragment
    }
    licenseStats {
      ...LicenseStatsFragment
    }
    trial {
      ...LicenseFragment
    }
    ola
    deviceErrorReportEmails
    deviceErrorReportWebhookUrl
    createdAt
    updatedAt
    type
    schedulingSettings {
      ...SchedulingSettingsFragment
    }
    pin {
      ...PinFragment
    }
  }
}
Variables
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": UpdateOrganizationInput
}
Response
{
  "data": {
    "updateOrganization": {
      "hasCalendar": false,
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "xyz789",
      "domain": "abc123",
      "logoMediaId": "xyz789",
      "logoUrl": "xyz789",
      "bookingSettings": OrganizationBookingSettings,
      "deskBookingSettings": DeskBookingSettings,
      "roomBookingSettings": RoomBookingSettings,
      "parkingBookingSettings": ParkingBookingSettings,
      "calendarSettings": CalendarSettings,
      "whitelist": "xyz789",
      "whitelistEnabled": true,
      "language": "abc123",
      "timezone": "abc123",
      "deviceScreenTemplate": "LargeResourceName",
      "brokenEquipmentReportEmails": [
        "xyz789"
      ],
      "timePresentation": "H24",
      "deskStats": DeskStats,
      "deviceStats": DeviceStats,
      "membershipStats": MembershipStats,
      "openHours": WeeklyOpenHours,
      "licenseStats": LicenseStats,
      "trial": [License],
      "ola": "abc123",
      "deviceErrorReportEmails": ["xyz789"],
      "deviceErrorReportWebhookUrl": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "type": "SHARED",
      "schedulingSettings": SchedulingSettings,
      "pin": Pin
    }
  }
}

updateOrganizationMessage

Response

Returns an OrganizationMessage!

Arguments
Name Description
id - ID!
input - UpdateOrganizationMessageInput!

Example

Query
mutation updateOrganizationMessage(
  $id: ID!,
  $input: UpdateOrganizationMessageInput!
) {
  updateOrganizationMessage(
    id: $id,
    input: $input
  ) {
    id
    organizations {
      ...OrganizationFragment
    }
    type
    content
    canBeClosed
    showToAllOrganizations
    showAt
    hideAt
  }
}
Variables
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": UpdateOrganizationMessageInput
}
Response
{
  "data": {
    "updateOrganizationMessage": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "organizations": [Organization],
      "type": "SUCCESS",
      "content": "abc123",
      "canBeClosed": false,
      "showToAllOrganizations": false,
      "showAt": "2007-12-03T10:15:30Z",
      "hideAt": "2007-12-03T10:15:30Z"
    }
  }
}

updateOverview

Response

Returns an Overview!

Arguments
Name Description
id - ID!
input - UpdateOverviewInput!

Example

Query
mutation updateOverview(
  $id: ID!,
  $input: UpdateOverviewInput!
) {
  updateOverview(
    id: $id,
    input: $input
  ) {
    id
    orgId
    type
    mode
    name
    message
    alert {
      ...AlertFragment
    }
    showDateTime
    showLogo
    darkMode
    columnCount
    tiles {
      ...TileFragment
    }
    logoUrl
    createdAt
    updatedAt
    place {
      ...PlaceFragment
    }
  }
}
Variables
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": UpdateOverviewInput
}
Response
{
  "data": {
    "updateOverview": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "abc123",
      "type": "TILES",
      "mode": "MONITORING",
      "name": "abc123",
      "message": "abc123",
      "alert": Alert,
      "showDateTime": true,
      "showLogo": false,
      "darkMode": false,
      "columnCount": 123,
      "tiles": [Tile],
      "logoUrl": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "place": Place
    }
  }
}

updatePin

Description

Update an existing PIN code.

Authorization: pin_pins_update on Pin(id)

Response

Returns a Pin!

Arguments
Name Description
id - ID!
input - UpdatePinInput!

Example

Query
mutation updatePin(
  $id: ID!,
  $input: UpdatePinInput!
) {
  updatePin(
    id: $id,
    input: $input
  ) {
    id
    code
    orgId
    membershipId
  }
}
Variables
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": UpdatePinInput
}
Response
{
  "data": {
    "updatePin": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "code": "xyz789",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "membershipId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
    }
  }
}

updatePlace

Response

Returns a Place!

Arguments
Name Description
id - ID!
input - UpdatePlaceInput!

Example

Query
mutation updatePlace(
  $id: ID!,
  $input: UpdatePlaceInput!
) {
  updatePlace(
    id: $id,
    input: $input
  ) {
    currentBooking {
      ...BookingFragment
    }
    nextBooking {
      ...BookingFragment
    }
    id
    name
    parentPlaceId
    placeTypeId
    settings {
      ... on BuildingSettings {
        ...BuildingSettingsFragment
      }
      ... on SiteSettings {
        ...SiteSettingsFragment
      }
      ... on FloorSettings {
        ...FloorSettingsFragment
      }
      ... on ZoneSettings {
        ...ZoneSettingsFragment
      }
      ... on DeskSettings {
        ...DeskSettingsFragment
      }
      ... on RoomSettings {
        ...RoomSettingsFragment
      }
    }
    attributes {
      ... on BuildingAttributes {
        ...BuildingAttributesFragment
      }
      ... on SiteAttributes {
        ...SiteAttributesFragment
      }
      ... on FloorAttributes {
        ...FloorAttributesFragment
      }
      ... on ParkingLotAttributes {
        ...ParkingLotAttributesFragment
      }
      ... on ParkingSpaceAttributes {
        ...ParkingSpaceAttributesFragment
      }
      ... on DeskAttributes {
        ...DeskAttributesFragment
      }
      ... on RoomAttributes {
        ...RoomAttributesFragment
      }
    }
    createdAt
    updatedAt
    deviceCount
    plan {
      ...PlanFragment
    }
    fullName
    hierarchy {
      ...PlaceSummaryFragment
    }
    hasChildren
    media {
      ...MediaFragment
    }
    available {
      ...AvailabilityFragment
    }
    calendar {
      ...PlaceFeatureInstanceFragment
    }
    zoomInfo {
      ...ZoomPlaceInfoFragment
    }
    timeZoneOffset
    owner {
      ...MembershipFragment
    }
    isDedicated
    qrCodeString
    schedulingSettings {
      ...SchedulingSettingsFragment
    }
    mergedSchedulingSettings {
      ...SchedulingSettingsFragment
    }
  }
}
Variables
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": UpdatePlaceInput
}
Response
{
  "data": {
    "updatePlace": {
      "currentBooking": Booking,
      "nextBooking": Booking,
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "abc123",
      "parentPlaceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "placeTypeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "settings": BuildingSettings,
      "attributes": BuildingAttributes,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "deviceCount": 123,
      "plan": Plan,
      "fullName": ["xyz789"],
      "hierarchy": [PlaceSummary],
      "hasChildren": false,
      "media": Media,
      "available": Availability,
      "calendar": PlaceFeatureInstance,
      "zoomInfo": ZoomPlaceInfo,
      "timeZoneOffset": 987,
      "owner": Membership,
      "isDedicated": true,
      "qrCodeString": "xyz789",
      "schedulingSettings": SchedulingSettings,
      "mergedSchedulingSettings": SchedulingSettings
    }
  }
}

updatePlaceFeature

Response

Returns a PlaceFeature!

Arguments
Name Description
id - ID!
input - UpdatePlaceFeatureInput!

Example

Query
mutation updatePlaceFeature(
  $id: ID!,
  $input: UpdatePlaceFeatureInput!
) {
  updatePlaceFeature(
    id: $id,
    input: $input
  ) {
    id
    enabled
  }
}
Variables
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": UpdatePlaceFeatureInput
}
Response
{
  "data": {
    "updatePlaceFeature": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "enabled": false
    }
  }
}

updatePlaceFeatureInstance

Response

Returns a PlaceFeatureInstance!

Arguments
Name Description
placeId - ID!
featureId - ID!
input - UpdatePlaceFeatureInstanceInput!

Example

Query
mutation updatePlaceFeatureInstance(
  $placeId: ID!,
  $featureId: ID!,
  $input: UpdatePlaceFeatureInstanceInput!
) {
  updatePlaceFeatureInstance(
    placeId: $placeId,
    featureId: $featureId,
    input: $input
  ) {
    placeId
    featureId
    orgId
    enabled
    disabled_reason
    attributes {
      ... on PlaceFeatureInstanceCalendarAttributes {
        ...PlaceFeatureInstanceCalendarAttributesFragment
      }
    }
  }
}
Variables
{
  "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "featureId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": UpdatePlaceFeatureInstanceInput
}
Response
{
  "data": {
    "updatePlaceFeatureInstance": {
      "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "featureId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "enabled": false,
      "disabled_reason": "abc123",
      "attributes": PlaceFeatureInstanceCalendarAttributes
    }
  }
}

updatePlan

Response

Returns a Plan!

Arguments
Name Description
id - ID!
input - UpdatePlanInput!

Example

Query
mutation updatePlan(
  $id: ID!,
  $input: UpdatePlanInput!
) {
  updatePlan(
    id: $id,
    input: $input
  ) {
    id
    orgId
    placeId
    mediaId
    annotations
    createdAt
    updatedAt
  }
}
Variables
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": UpdatePlanInput
}
Response
{
  "data": {
    "updatePlan": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "mediaId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "annotations": "abc123",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

updateProfile

Description

Update the authenticated user's profile (first name and last name).

Requires: Authentication. Users can only update their own profile.

Response

Returns a User!

Arguments
Name Description
input - UpdateUserInput!

Example

Query
mutation updateProfile($input: UpdateUserInput!) {
  updateProfile(input: $input) {
    id
    name
    firstName
    lastName
    email
    eula
    verified
    memberships {
      ...MembershipFragment
    }
    invitations {
      ...InvitationFragment
    }
    superAdmin
    createdAt
    updatedAt
  }
}
Variables
{"input": UpdateUserInput}
Response
{
  "data": {
    "updateProfile": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "xyz789",
      "firstName": "abc123",
      "lastName": "xyz789",
      "email": "xyz789",
      "eula": "abc123",
      "verified": false,
      "memberships": [Membership],
      "invitations": [Invitation],
      "superAdmin": false,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

updateRoomBooking

Response

Returns a RoomBooking!

Arguments
Name Description
orgId - ID!
id - ID!
input - UpdateRoomBookingInput!
idTag - String
pin - String

Example

Query
mutation updateRoomBooking(
  $orgId: ID!,
  $id: ID!,
  $input: UpdateRoomBookingInput!,
  $idTag: String,
  $pin: String
) {
  updateRoomBooking(
    orgId: $orgId,
    id: $id,
    input: $input,
    idTag: $idTag,
    pin: $pin
  ) {
    id
    bookedBy
    user {
      ...UserFragment
    }
    room {
      ...RoomFragment
    }
    timeZone
    title
    startTime
    endTime
    teamsMeeting
    attendees {
      ...AttendeeFragment
    }
    recurring
    endRecurringDate
    isPrivate
    isImmutable
    canceled
    checkedIn
    checkedOut
    isWholeDay
  }
}
Variables
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "input": UpdateRoomBookingInput,
  "idTag": "abc123",
  "pin": "abc123"
}
Response
{
  "data": {
    "updateRoomBooking": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "bookedBy": "xyz789",
      "user": User,
      "room": Room,
      "timeZone": "xyz789",
      "title": "abc123",
      "startTime": "2007-12-03T10:15:30Z",
      "endTime": "2007-12-03T10:15:30Z",
      "teamsMeeting": true,
      "attendees": [Attendee],
      "recurring": "xyz789",
      "endRecurringDate": "2007-12-03T10:15:30Z",
      "isPrivate": false,
      "isImmutable": false,
      "canceled": "2007-12-03T10:15:30Z",
      "checkedIn": "2007-12-03T10:15:30Z",
      "checkedOut": "2007-12-03T10:15:30Z",
      "isWholeDay": false
    }
  }
}

updateScheduleEvent

Description

Update an existing scheduled event.

Authorization: schedule_event_update on ScheduleCalendar (parent of event)

Response

Returns a ScheduleEvent!

Arguments
Name Description
event - ScheduleEventInput

Example

Query
mutation updateScheduleEvent($event: ScheduleEventInput) {
  updateScheduleEvent(event: $event) {
    name
    createdAt
    updatedAt
    summary
    description
    startTime
    endTime
    timeZone
    recurrence
    recurringEventId
    devices {
      ...DeviceFragment
    }
    deviceAction
    deviceActionArguments
    deviceActionTriggeredAt
    notificationEmails
    deviceActionCompletedAt
    deviceActionState
    notificationBeforeOffset
  }
}
Variables
{"event": ScheduleEventInput}
Response
{
  "data": {
    "updateScheduleEvent": {
      "name": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "summary": "abc123",
      "description": "xyz789",
      "startTime": "2007-12-03T10:15:30Z",
      "endTime": "2007-12-03T10:15:30Z",
      "timeZone": "abc123",
      "recurrence": ["xyz789"],
      "recurringEventId": "abc123",
      "devices": [Device],
      "deviceAction": "xyz789",
      "deviceActionArguments": ["abc123"],
      "deviceActionTriggeredAt": "2007-12-03T10:15:30Z",
      "notificationEmails": ["abc123"],
      "deviceActionCompletedAt": "2007-12-03T10:15:30Z",
      "deviceActionState": "UNSPECIFIED",
      "notificationBeforeOffset": "P3Y6M4DT12H30M5S"
    }
  }
}

Subscriptions

bookings

Response

Returns a BookingEvent!

Arguments
Name Description
deskId - ID!

Example

Query
subscription bookings($deskId: ID!) {
  bookings(deskId: $deskId) {
    added {
      ...BookingFragment
    }
    updated {
      ...BookingFragment
    }
    deleted {
      ...BookingFragment
    }
  }
}
Variables
{"deskId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "bookings": {
      "added": Booking,
      "updated": Booking,
      "deleted": Booking
    }
  }
}

deskUpdate

Response

Returns a Desk!

Arguments
Name Description
id - ID!

Example

Query
subscription deskUpdate($id: ID!) {
  deskUpdate(id: $id) {
    id
    orgId
    name
    deskType
    bookingCount
    currentBooking {
      ...BookingFragment
    }
    nextBooking {
      ...BookingFragment
    }
    floor {
      ...FloorFragment
    }
    presenceDetection
    available {
      ...AvailabilityFragment
    }
    timeZone
    timeZoneOffset
    timePresentation
    settings {
      ...DeskBookingSettingsFragment
    }
    createdAt
    updatedAt
    license {
      ...LicenseFragment
    }
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "deskUpdate": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "xyz789",
      "deskType": "HOT",
      "bookingCount": 987,
      "currentBooking": Booking,
      "nextBooking": Booking,
      "floor": Floor,
      "presenceDetection": false,
      "available": Availability,
      "timeZone": "xyz789",
      "timeZoneOffset": 987,
      "timePresentation": "H24",
      "settings": DeskBookingSettings,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "license": License
    }
  }
}

deviceSpecificSettings

Description

Subscribes to updates to device specific settings for a device with the given device id

Response

Returns a DeviceSpecificSettings!

Arguments
Name Description
deviceID - ID!

Example

Query
subscription deviceSpecificSettings($deviceID: ID!) {
  deviceSpecificSettings(deviceID: $deviceID) {
    id
    deviceID
    preset
    data
    dataVersion
    createdAt
    updatedAt
  }
}
Variables
{"deviceID": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "deviceSpecificSettings": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "deviceID": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "preset": "abc123",
      "data": "abc123",
      "dataVersion": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

deviceUpdate

Description

Subscribe to real-time device updates.

Response

Returns a Device!

Arguments
Name Description
id - ID! Default = "me"

Example

Query
subscription deviceUpdate($id: ID!) {
  deviceUpdate(id: $id) {
    id
    type {
      ...DeviceTypeFragment
    }
    serial
    assignedFirmware {
      ...FirmwareFragment
    }
    latestFirmware {
      ...FirmwareFragment
    }
    nextFirmware {
      ...FirmwareFragment
    }
    firmwarePublicKey
    firmwareVariant
    channel {
      ...ChannelFragment
    }
    place {
      ...PlaceFragment
    }
    placeId
    desk {
      ...DeskFragment
    }
    deskId
    room {
      ...RoomFragment
    }
    roomId
    status {
      ...DeviceStatusFragment
    }
    language
    timezone
    orgName
    orgId
    parent {
      ...DeviceFragment
    }
    children {
      ...DeviceFragment
    }
    activeHours {
      ...WeeklyOpenHoursFragment
    }
    createdAt
    updatedAt
    attributes {
      ...DeviceAttributesFragment
    }
    state
    activeError {
      ...DeviceEventStatusFragment
    }
    activeDeviceErrors {
      ...DeviceEventFragment
    }
    interfaces {
      ...NetworkInterfaceFragment
    }
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "deviceUpdate": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "type": DeviceType,
      "serial": "xyz789",
      "assignedFirmware": Firmware,
      "latestFirmware": Firmware,
      "nextFirmware": Firmware,
      "firmwarePublicKey": "abc123",
      "firmwareVariant": "abc123",
      "channel": Channel,
      "place": Place,
      "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "desk": Desk,
      "deskId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "room": Room,
      "roomId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "status": DeviceStatus,
      "language": "xyz789",
      "timezone": "abc123",
      "orgName": "xyz789",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "parent": Device,
      "children": [Device],
      "activeHours": WeeklyOpenHours,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "attributes": DeviceAttributes,
      "state": "UNPROVISIONED",
      "activeError": DeviceEventStatus,
      "activeDeviceErrors": [DeviceEvent],
      "interfaces": [NetworkInterface]
    }
  }
}

placeUpdate

Response

Returns a Place!

Arguments
Name Description
id - ID!

Example

Query
subscription placeUpdate($id: ID!) {
  placeUpdate(id: $id) {
    currentBooking {
      ...BookingFragment
    }
    nextBooking {
      ...BookingFragment
    }
    id
    name
    parentPlaceId
    placeTypeId
    settings {
      ... on BuildingSettings {
        ...BuildingSettingsFragment
      }
      ... on SiteSettings {
        ...SiteSettingsFragment
      }
      ... on FloorSettings {
        ...FloorSettingsFragment
      }
      ... on ZoneSettings {
        ...ZoneSettingsFragment
      }
      ... on DeskSettings {
        ...DeskSettingsFragment
      }
      ... on RoomSettings {
        ...RoomSettingsFragment
      }
    }
    attributes {
      ... on BuildingAttributes {
        ...BuildingAttributesFragment
      }
      ... on SiteAttributes {
        ...SiteAttributesFragment
      }
      ... on FloorAttributes {
        ...FloorAttributesFragment
      }
      ... on ParkingLotAttributes {
        ...ParkingLotAttributesFragment
      }
      ... on ParkingSpaceAttributes {
        ...ParkingSpaceAttributesFragment
      }
      ... on DeskAttributes {
        ...DeskAttributesFragment
      }
      ... on RoomAttributes {
        ...RoomAttributesFragment
      }
    }
    createdAt
    updatedAt
    deviceCount
    plan {
      ...PlanFragment
    }
    fullName
    hierarchy {
      ...PlaceSummaryFragment
    }
    hasChildren
    media {
      ...MediaFragment
    }
    available {
      ...AvailabilityFragment
    }
    calendar {
      ...PlaceFeatureInstanceFragment
    }
    zoomInfo {
      ...ZoomPlaceInfoFragment
    }
    timeZoneOffset
    owner {
      ...MembershipFragment
    }
    isDedicated
    qrCodeString
    schedulingSettings {
      ...SchedulingSettingsFragment
    }
    mergedSchedulingSettings {
      ...SchedulingSettingsFragment
    }
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "placeUpdate": {
      "currentBooking": Booking,
      "nextBooking": Booking,
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "name": "xyz789",
      "parentPlaceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "placeTypeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "settings": BuildingSettings,
      "attributes": BuildingAttributes,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "deviceCount": 987,
      "plan": Plan,
      "fullName": ["xyz789"],
      "hierarchy": [PlaceSummary],
      "hasChildren": false,
      "media": Media,
      "available": Availability,
      "calendar": PlaceFeatureInstance,
      "zoomInfo": ZoomPlaceInfo,
      "timeZoneOffset": 123,
      "owner": Membership,
      "isDedicated": false,
      "qrCodeString": "xyz789",
      "schedulingSettings": SchedulingSettings,
      "mergedSchedulingSettings": SchedulingSettings
    }
  }
}

roomBookings

Response

Returns a RoomBookingEvent!

Arguments
Name Description
roomId - ID!

Example

Query
subscription roomBookings($roomId: ID!) {
  roomBookings(roomId: $roomId) {
    added {
      ...RoomBookingFragment
    }
    updated {
      ...RoomBookingFragment
    }
    deleted {
      ...RoomBookingFragment
    }
  }
}
Variables
{"roomId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "roomBookings": {
      "added": RoomBooking,
      "updated": RoomBooking,
      "deleted": RoomBooking
    }
  }
}

roomUpdate

Response

Returns a Room!

Arguments
Name Description
id - ID!

Example

Query
subscription roomUpdate($id: ID!) {
  roomUpdate(id: $id) {
    id
    orgId
    floorId
    floor {
      ...FloorFragment
    }
    name
    email
    capacity
    roomType
    resources
    bookingSettings {
      ...RoomBookingSettingsFragment
    }
    currentBooking {
      ...RoomBookingFragment
    }
    nextBooking {
      ...RoomBookingFragment
    }
    available {
      ...AvailabilityFragment
    }
    timeZone
    timeZoneOffset
    timePresentation
    deviceScreenTemplate
    brokenEquipmentReportEmails
    createdAt
    updatedAt
    license {
      ...LicenseFragment
    }
    media {
      ...MediaFragment
    }
  }
}
Variables
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}
Response
{
  "data": {
    "roomUpdate": {
      "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "floorId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
      "floor": Floor,
      "name": "xyz789",
      "email": "xyz789",
      "capacity": 987,
      "roomType": "xyz789",
      "resources": ["ROOM_TEMPERATURE"],
      "bookingSettings": RoomBookingSettings,
      "currentBooking": RoomBooking,
      "nextBooking": RoomBooking,
      "available": Availability,
      "timeZone": "xyz789",
      "timeZoneOffset": 987,
      "timePresentation": "H24",
      "deviceScreenTemplate": "LargeResourceName",
      "brokenEquipmentReportEmails": [
        "xyz789"
      ],
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "license": License,
      "media": Media
    }
  }
}

Types

ActivateOverviewCodePayload

Fields
Field Name Description
userCode - String!
expiresIn - Duration!
Example
{
  "userCode": "abc123",
  "expiresIn": "P3Y6M4DT12H30M5S"
}

ActiveDeviceErrorCount

Fields
Field Name Description
severity - Int!
count - Int!
Example
{"severity": 123, "count": 987}

AddBookingInput

Description

Input for creating a place booking.

Fields marked as omittable support three distinct states:

  • Field omitted: Preserves the existing value (no change)
  • Field set to null: Clears the field (removes the value)
  • Field set to a value: Updates to the new value
Fields
Input Field Description
placeId - ID ID of the place to book.
userId - ID User ID for the booking. Creates anonymous booking if omitted along with userEmail and idTag.
userEmail - String Email address for the booking user. Alternative to userId.
idTag - String RFID or NFC tag identifier for device check-in.
startTime - DateTime! Start time in RFC 3339 format. Can be up to 30 minutes in the past.
endTime - DateTime! End time in RFC 3339 format. Must be after startTime.
checkedIn - DateTime Pre-check-in timestamp. Typically omitted.
focusMode - Boolean Suppresses notifications and reminders during booking. Defaults to false.
title - String Booking title (omittable).
isPrivate - Boolean Hides booking details from other users. Defaults to false (omittable).
Example
{
  "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "userId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "userEmail": "abc123",
  "idTag": "xyz789",
  "startTime": "2007-12-03T10:15:30Z",
  "endTime": "2007-12-03T10:15:30Z",
  "checkedIn": "2007-12-03T10:15:30Z",
  "focusMode": true,
  "title": "xyz789",
  "isPrivate": true
}

AddCalendarSourceInput

Fields
Input Field Description
settings - SettingsInput!
Example
{"settings": SettingsInput}

AddChannelInput

Fields
Input Field Description
id - ID!
name - String!
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "name": "xyz789"
}

AddDeviceCommandInput

Fields
Input Field Description
command - String!
service - String!
Example
{
  "command": "xyz789",
  "service": "xyz789"
}

AddDeviceSpecificSettingsInput

Fields
Input Field Description
data - String!
dataVersion - String
preset - String
Example
{
  "data": "abc123",
  "dataVersion": "abc123",
  "preset": "abc123"
}

AddDeviceTypeInput

Fields
Input Field Description
id - ID!
name - String!
attributes - DeviceTypeAttributesInput
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "name": "xyz789",
  "attributes": DeviceTypeAttributesInput
}

AddFacilityInput

Fields
Input Field Description
id - ID!
name - String!
category - String!
iconPath - String
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "name": "xyz789",
  "category": "abc123",
  "iconPath": "abc123"
}

AddFirmwareInput

Fields
Input Field Description
deviceTypeId - ID!
version - String!
url - String!
publicKey - String
variant - String
channels - [ID!]
Example
{
  "deviceTypeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "version": "xyz789",
  "url": "xyz789",
  "publicKey": "abc123",
  "variant": "abc123",
  "channels": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"]
}

AddInvitationInput

Fields
Input Field Description
email - String!
roles - [Role!]!
Example
{"email": "abc123", "roles": ["OWNER"]}

AddInvitationsInput

Description

Input for bulk inviting multiple members to an organization in a single request. Maximum 50 emails per request.

Fields
Input Field Description
emails - [String!]! Email addresses to invite.
roles - [Role!]! Roles to assign to each invited member.
Example
{"emails": ["xyz789"], "roles": ["OWNER"]}

AddInvitationsResult

Description

Result of a bulk invitation request.

Fields
Field Name Description
invitations - [Invitation!]! Invitations that were successfully created. Emails that were skipped are not included.
Example
{"invitations": [Invitation]}

AddLicenseAssociation

Fields
Input Field Description
licenseId - ID!
entityType - LicenseBoundEntityType!
entityId - ID!
Example
{
  "licenseId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "entityType": "PLACE",
  "entityId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
}

AddLicenseInput

Fields
Input Field Description
refId - ID
licenseTypeId - ID!
count - Int!
duration - Int!
orgId - ID
Example
{
  "refId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "licenseTypeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "count": 123,
  "duration": 123,
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
}

AddLicensePlace

Fields
Input Field Description
licenseId - ID!
placeId - ID!
Example
{
  "licenseId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
}

AddLicenseTypeInput

Fields
Input Field Description
id - ID!
name - String!
entitySupport - [LicenseTypeEntitySupportInput!] Features per entity type. Replaces placeFeatures and deviceFeatures.
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "name": "abc123",
  "entitySupport": [LicenseTypeEntitySupportInput]
}

AddLicensesInput

Fields
Input Field Description
ids - [ID!]!
Example
{"ids": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"]}

AddOrganizationMessageInput

Fields
Input Field Description
organizations - [ID!]
type - OrganizationMessageType!
content - String!
canBeClosed - Boolean!
showToAllOrganizations - Boolean!
showAt - DateTime
hideAt - DateTime
Example
{
  "organizations": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"],
  "type": "SUCCESS",
  "content": "abc123",
  "canBeClosed": false,
  "showToAllOrganizations": false,
  "showAt": "2007-12-03T10:15:30Z",
  "hideAt": "2007-12-03T10:15:30Z"
}

AddOverviewInput

Fields
Input Field Description
type - OverviewType!
mode - OverviewMode
orgId - String!
name - String!
alert - AlertInput
showDateTime - Boolean!
showLogo - Boolean!
darkMode - Boolean
logoFileId - ID
columnCount - Int!
tiles - [AddTileInput]
placeId - String
Example
{
  "type": "TILES",
  "mode": "MONITORING",
  "orgId": "xyz789",
  "name": "xyz789",
  "alert": AlertInput,
  "showDateTime": false,
  "showLogo": true,
  "darkMode": false,
  "logoFileId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "columnCount": 123,
  "tiles": [AddTileInput],
  "placeId": "xyz789"
}

AddPlaceFeatureInput

Fields
Input Field Description
id - ID!
enabled - Boolean!
Example
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67", "enabled": true}

AddPlaceInput

Description

Input for creating a new place.

Fields marked as omittable support three distinct states:

  • Field omitted: Preserves the existing value (no change)
  • Field set to null: Clears the field (removes the value)
  • Field set to a value: Updates to the new value
Fields
Input Field Description
name - String! Display name for the place.
parentPlaceId - ID Parent place ID for hierarchy.
placeTypeId - ID! Type of place. Determines which settings and attributes apply.
settings - PlaceSettingsInput Type-specific settings.
attributes - PlaceAttributesInput Type-specific attributes.
mediaId - ID Image or media file ID (omittable).
ownerId - ID Owner user ID. Creates dedicated place when set (omittable).
Example
{
  "name": "xyz789",
  "parentPlaceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "placeTypeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "settings": PlaceSettingsInput,
  "attributes": PlaceAttributesInput,
  "mediaId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "ownerId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
}

AddPlaceTypeInput

Fields
Input Field Description
id - ID!
name - String!
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "name": "abc123"
}

AddRoomBookingInput

Fields
Input Field Description
userId - ID If userId is omitted or null the booking is an anonymous booking.
roomId - ID!
title - String!
startTime - DateTime!
endTime - DateTime!
attendees - [AttendeeInput!]
checkedIn - DateTime checkedIn is not supported when creating space connect bookings.
isPrivate - Boolean
Example
{
  "userId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "roomId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "title": "abc123",
  "startTime": "2007-12-03T10:15:30Z",
  "endTime": "2007-12-03T10:15:30Z",
  "attendees": [AttendeeInput],
  "checkedIn": "2007-12-03T10:15:30Z",
  "isPrivate": false
}

AddTileInput

Fields
Input Field Description
type - TileType!
directionIndicator - Direction
placeId - ID
hideBookingInformation - Boolean
Example
{
  "type": "BLANK",
  "directionIndicator": "NORTH",
  "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "hideBookingInformation": false
}

Alert

Fields
Field Name Description
message - String!
showTime - DateTime
hideTime - DateTime
Example
{
  "message": "abc123",
  "showTime": "2007-12-03T10:15:30Z",
  "hideTime": "2007-12-03T10:15:30Z"
}

AlertInput

Fields
Input Field Description
message - String!
showTime - DateTime
hideTime - DateTime
Example
{
  "message": "xyz789",
  "showTime": "2007-12-03T10:15:30Z",
  "hideTime": "2007-12-03T10:15:30Z"
}

AllFilesFilter

Description

Filter criteria for allFiles. Every field except orgId is optional.

Fields
Input Field Description
orgId - ID!
query - String Case-insensitive substring match on filename, after whitespace trim. Null or empty means no filter. Special characters (%, _, \) match literally. Values longer than 255 characters are rejected with INVALID_ARGUMENT.
fileTypes - [FileTypeID!] Restrict to files of these types. Null/empty = no restriction.
uploadedBy - FileUploaderFilter Restrict to files uploaded by this user or device. The referenced user or device must belong to orgId; otherwise the server returns INVALID_ARGUMENT.
metadata - [FileMetadataEntryInput!] Restrict to files whose metadata contains every supplied key/value pair (JSONB containment). Null/empty = no restriction. Duplicate keys are rejected with INVALID_ARGUMENT.
Example
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "query": "abc123",
  "fileTypes": ["LAUNCH_REPORT"],
  "uploadedBy": FileUploaderFilter,
  "metadata": [FileMetadataEntryInput]
}

AllFilesInput

Description

Input for allFiles. limit defaults to 50 and results in invalid argument error if provided with more than 200; offset defaults to 0.

Fields
Input Field Description
filter - AllFilesFilter!
order - [FileOrder!]
limit - Int
offset - Int
Example
{
  "filter": AllFilesFilter,
  "order": [FileOrder],
  "limit": 123,
  "offset": 987
}

AppCommandPermissions

Fields
Field Name Description
control - Permission!
controlRestricted - Permission!
Example
{
  "control": Permission,
  "controlRestricted": Permission
}

AppSettingsPermissions

Fields
Field Name Description
settings - Permission!
settingsRestricted - Permission!
Example
{
  "settings": Permission,
  "settingsRestricted": Permission
}

AssignFirmwareFilter

Fields
Input Field Description
deviceTypes - [ID!]
devices - [ID!]
organizations - [ID!]
channels - [ID!]
Example
{
  "deviceTypes": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"],
  "devices": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"],
  "organizations": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"],
  "channels": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"]
}

Attendee

Fields
Field Name Description
email - String!
responseStatus - AttendeeResponseStatus!
type - AttendeeType!
organizer - Boolean
name - String
Example
{
  "email": "xyz789",
  "responseStatus": "UNKNOWN",
  "type": "UNKNOWN",
  "organizer": true,
  "name": "abc123"
}

AttendeeInput

Description

Input for adding an attendee to a room booking.

Fields
Input Field Description
email - String! Attendee email address.
name - String Display name. Derived from email if omitted.
type - AttendeeType Attendee type.
Example
{
  "email": "abc123",
  "name": "xyz789",
  "type": "UNKNOWN"
}

AttendeeResponseStatus

Values
Enum Value Description

UNKNOWN

Response status unknown.

ACCEPTED

Accepted the invitation.

DECLINED

Declined the invitation.

TENTATIVE

Tentatively accepted.

NEEDS_ACTION

Has not yet responded.
Example
"UNKNOWN"

AttendeeType

Values
Enum Value Description

UNKNOWN

Type not specified.

REQUIRED

Required attendee.

OPTIONAL

Optional attendee.

RESOURCE

Equipment or resource.
Example
"UNKNOWN"

AuthenticatePayload

Fields
Field Name Description
subject - Subject!
accessToken - String!
expiresIn - Duration! Duration until the accessToken expires
Example
{
  "subject": Overview,
  "accessToken": "abc123",
  "expiresIn": "P3Y6M4DT12H30M5S"
}

Availability

Fields
Field Name Description
from - DateTime!
until - DateTime!
Example
{
  "from": "2007-12-03T10:15:30Z",
  "until": "2007-12-03T10:15:30Z"
}

AvailableFilter

Fields
Input Field Description
from - DateTime!
until - DateTime!
closeMatches - Boolean
Example
{
  "from": "2007-12-03T10:15:30Z",
  "until": "2007-12-03T10:15:30Z",
  "closeMatches": true
}

Booking

Fields
Field Name Description
id - ID!
startTime - DateTime!
endTime - DateTime!
checkedIn - DateTime
checkedOut - DateTime
canceled - DateTime
isWholeDay - Boolean
userDeleted - Boolean!
place - Place
user - User
skipAwayFromDeskReminder - Boolean!
skipLateArrivalReminder - Boolean!
focusMode - Boolean!
arrivedAt - DateTime
title - String!
attendees - [Attendee!]!
isPrivate - Boolean
isImmutable - Boolean
organizer - String!
desk - Desk a booking can now be for any resource type, use resource instead
resource - Resource a booking can now be for any place type, use place instead
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "startTime": "2007-12-03T10:15:30Z",
  "endTime": "2007-12-03T10:15:30Z",
  "checkedIn": "2007-12-03T10:15:30Z",
  "checkedOut": "2007-12-03T10:15:30Z",
  "canceled": "2007-12-03T10:15:30Z",
  "isWholeDay": true,
  "userDeleted": false,
  "place": Place,
  "user": User,
  "skipAwayFromDeskReminder": true,
  "skipLateArrivalReminder": true,
  "focusMode": true,
  "arrivedAt": "2007-12-03T10:15:30Z",
  "title": "xyz789",
  "attendees": [Attendee],
  "isPrivate": false,
  "isImmutable": true,
  "organizer": "abc123",
  "desk": Desk,
  "resource": Resource
}

BookingBookingsPermissions

Fields
Field Name Description
create - Permission!
get - Permission!
update - Permission!
delete - Permission!
list - Permission!
Example
{
  "create": Permission,
  "get": Permission,
  "update": Permission,
  "delete": Permission,
  "list": Permission
}

BookingEvent

Fields
Field Name Description
added - Booking
updated - Booking
deleted - Booking
Example
{
  "added": Booking,
  "updated": Booking,
  "deleted": Booking
}

BookingFilter

Fields
Input Field Description
orgId - ID
placeFilter - BookingPlaceFilter Filter the bookings by place information.
timeWindow - TimeWindow
userId - ID
onlyActiveBookings - Boolean onlyActiveBookings filters out canceled and checked out bookings (and bookings where the user has been deleted)
iCalUID - BookingFilterICalUID
search - String Checks if booking title, place type, place name, or booking owner includes the search term
Example
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "placeFilter": BookingPlaceFilter,
  "timeWindow": TimeWindow,
  "userId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "onlyActiveBookings": true,
  "iCalUID": BookingFilterICalUID,
  "search": "abc123"
}

BookingFilterICalUID

Fields
Input Field Description
value - String
isNull - Boolean
Example
{"value": "xyz789", "isNull": true}

BookingOrder

Fields
Input Field Description
field - BookingOrderField!
desc - Boolean!
Example
{"field": "ORGANIZATION_NAME", "desc": false}

BookingOrderField

Values
Enum Value Description

ORGANIZATION_NAME

DESK_NAME

USER_NAME

START_TIME

END_TIME

CREATED_AT

UPDATED_AT

Example
"ORGANIZATION_NAME"

BookingPlaceFilter

Fields
Input Field Description
placeIds - [ID!]! The place ids to filter based on.
recursive - Boolean! Whether to also consider places underneath those listed in placeIds. Default = false
Example
{"placeIds": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"], "recursive": true}

BookingsConnection

Fields
Field Name Description
pageInfo - PageInfo!
totalCount - Int!
bookings - [Booking!]!
Example
{
  "pageInfo": PageInfo,
  "totalCount": 987,
  "bookings": [Booking]
}

Boolean

Description

The Boolean scalar type represents true or false.

Building

Fields
Field Name Description
id - ID!
name - String!
address - String
timezone - String
language - String
deviceScreenTemplate - DeviceScreenTemplate
brokenEquipmentReportEmails - [String!]
floors - [Floor!]!
openHours - WeeklyOpenHours!
overrideOpenHours - Boolean!
timePresentation - TimePresentation
createdAt - DateTime!
updatedAt - DateTime!
unassignedPlanResources - Int! Number of resources not assigned to a plan for this or any ascending place.
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "name": "xyz789",
  "address": "abc123",
  "timezone": "xyz789",
  "language": "xyz789",
  "deviceScreenTemplate": "LargeResourceName",
  "brokenEquipmentReportEmails": ["xyz789"],
  "floors": [Floor],
  "openHours": WeeklyOpenHours,
  "overrideOpenHours": false,
  "timePresentation": "H24",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "unassignedPlanResources": 987
}

BuildingAttributes

Fields
Field Name Description
address - String
unassignedPlanResources - Int
Example
{
  "address": "xyz789",
  "unassignedPlanResources": 123
}

BuildingAttributesInput

Fields
Input Field Description
address - String
unassignedPlanResources - Int
Example
{
  "address": "xyz789",
  "unassignedPlanResources": 123
}

BuildingSettings

Fields
Field Name Description
timezone - String
language - String
deviceScreenTemplate - DeviceScreenTemplate
brokenEquipmentReportEmails - [String!]
openHours - WeeklyOpenHours
overrideOpenHours - Boolean
timePresentation - TimePresentation
deskBooking - DeskBookingSettings
roomBooking - RoomBookingSettings
Example
{
  "timezone": "xyz789",
  "language": "xyz789",
  "deviceScreenTemplate": "LargeResourceName",
  "brokenEquipmentReportEmails": ["xyz789"],
  "openHours": WeeklyOpenHours,
  "overrideOpenHours": true,
  "timePresentation": "H24",
  "deskBooking": DeskBookingSettings,
  "roomBooking": RoomBookingSettings
}

BuildingSettingsInput

Fields
Input Field Description
timezone - String
language - String
deviceScreenTemplate - DeviceScreenTemplate
brokenEquipmentReportEmails - [String!]
openHours - WeeklyOpenHoursInput
overrideOpenHours - Boolean
timePresentation - TimePresentation
deskBooking - DeskBookingSettingsInput
roomBooking - RoomBookingSettingsInput
Example
{
  "timezone": "xyz789",
  "language": "xyz789",
  "deviceScreenTemplate": "LargeResourceName",
  "brokenEquipmentReportEmails": ["abc123"],
  "openHours": WeeklyOpenHoursInput,
  "overrideOpenHours": true,
  "timePresentation": "H24",
  "deskBooking": DeskBookingSettingsInput,
  "roomBooking": RoomBookingSettingsInput
}

Calendar

Description

Calendar

Fields
Field Name Description
id - ID!
createdAt - DateTime!
updatedAt - DateTime!
remoteId - ID!
remoteData - String! always empty, will be removed
remoteSubId - String!
remoteSubExpiresAt - DateTime!
syncToken - String!
sourceId - ID!
label - String!
membershipId - ID!
resourceID - ID!
isResource - Boolean!
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "remoteId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "remoteData": "abc123",
  "remoteSubId": "xyz789",
  "remoteSubExpiresAt": "2007-12-03T10:15:30Z",
  "syncToken": "abc123",
  "sourceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "label": "xyz789",
  "membershipId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "resourceID": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "isResource": true
}

CalendarCalendareventsPermissions

Fields
Field Name Description
create - Permission!
get - Permission!
update - Permission!
delete - Permission!
list - Permission!
Example
{
  "create": Permission,
  "get": Permission,
  "update": Permission,
  "delete": Permission,
  "list": Permission
}

CalendarCalendarsPermissions

Fields
Field Name Description
create - Permission!
get - Permission!
update - Permission!
delete - Permission!
list - Permission!
Example
{
  "create": Permission,
  "get": Permission,
  "update": Permission,
  "delete": Permission,
  "list": Permission
}

CalendarCalendarsourcesPermissions

Fields
Field Name Description
create - Permission!
get - Permission!
update - Permission!
delete - Permission!
list - Permission!
count - Permission!
sync - Permission!
Example
{
  "create": Permission,
  "get": Permission,
  "update": Permission,
  "delete": Permission,
  "list": Permission,
  "count": Permission,
  "sync": Permission
}

CalendarColleaguesPermissions

Fields
Field Name Description
get - Permission!
create - Permission!
update - Permission!
delete - Permission!
list - Permission!
Example
{
  "get": Permission,
  "create": Permission,
  "update": Permission,
  "delete": Permission,
  "list": Permission
}

CalendarEvent

Fields
Field Name Description
id - ID!
name - String!
calendarId - String!
timesSynced - Int!
remoteId - ID!
remoteData - String! always empty, will be removed
isRecurring - Boolean!
isWholeDay - Boolean!
sensitivity - CalendarEventSensitivity!
startTime - DateTime!
endTime - DateTime!
createdAt - DateTime!
updatedAt - DateTime!
attendees - [Attendee!]!
meetingUrl - String
creator - String!
iCalUID - String!
meetingProvider - MeetingProvider!
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "name": "abc123",
  "calendarId": "abc123",
  "timesSynced": 123,
  "remoteId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "remoteData": "xyz789",
  "isRecurring": true,
  "isWholeDay": false,
  "sensitivity": "PRIVATE",
  "startTime": "2007-12-03T10:15:30Z",
  "endTime": "2007-12-03T10:15:30Z",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "attendees": [Attendee],
  "meetingUrl": "abc123",
  "creator": "abc123",
  "iCalUID": "abc123",
  "meetingProvider": "UNSPECIFIED"
}

CalendarEventOrder

Fields
Input Field Description
field - CalendarEventOrderField!
desc - Boolean
Example
{"field": "START_TIME", "desc": false}

CalendarEventOrderField

Values
Enum Value Description

START_TIME

Example
"START_TIME"

CalendarEventSensitivity

Description

Calendar Event

Values
Enum Value Description

PRIVATE

DEFAULT

PUBLIC

CONFIDENTIAL

Example
"PRIVATE"

CalendarEventsConnection

Fields
Field Name Description
events - [CalendarEvent!]!
nextPageToken - String
Example
{
  "events": [CalendarEvent],
  "nextPageToken": "xyz789"
}

CalendarEventsFilter

Fields
Input Field Description
endTime - DateTime
startTime - DateTime
Example
{
  "endTime": "2007-12-03T10:15:30Z",
  "startTime": "2007-12-03T10:15:30Z"
}

CalendarProvider

Description

Calendar Source

Values
Enum Value Description

GOOGLE

MICROSOFT

Example
"GOOGLE"

CalendarRegistrationStatus

Values
Enum Value Description

REGISTERED

UNREGISTERED

Example
"REGISTERED"

CalendarSettings

Fields
Field Name Description
defaultAddMeetingLinksToEvents - Boolean!
Example
{"defaultAddMeetingLinksToEvents": false}

CalendarSettingsInput

Fields
Input Field Description
defaultAddMeetingLinkstoEvents - Boolean
Example
{"defaultAddMeetingLinkstoEvents": true}

CalendarSource

Fields
Field Name Description
id - ID!
createdAt - DateTime!
updatedAt - DateTime!
orgId - String!
settings - String!
provider - CalendarProvider!
resourceAdmin - String!
syncedAt - DateTime!
syncErrors - [String!]
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "orgId": "xyz789",
  "settings": "abc123",
  "provider": "GOOGLE",
  "resourceAdmin": "xyz789",
  "syncedAt": "2007-12-03T10:15:30Z",
  "syncErrors": ["xyz789"]
}

CalendarSourcesConnection

Fields
Field Name Description
sources - [CalendarSource!]!
nextPageToken - String
Example
{
  "sources": [CalendarSource],
  "nextPageToken": "xyz789"
}

CalendarType

Values
Enum Value Description

USER

RESOURCE

Example
"USER"

CalendarsConnection

Fields
Field Name Description
calendars - [Calendar!]!
nextPageToken - String
Example
{
  "calendars": [Calendar],
  "nextPageToken": "abc123"
}

CalendarsFilter

Fields
Input Field Description
type - CalendarType
registrationStatus - CalendarRegistrationStatus
search - String
Example
{
  "type": "USER",
  "registrationStatus": "REGISTERED",
  "search": "abc123"
}

Channel

Fields
Field Name Description
id - ID!
name - String!
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "name": "abc123"
}

ChannelOrder

Fields
Input Field Description
field - ChannelOrderField!
desc - Boolean!
Example
{"field": "NAME", "desc": false}

ChannelOrderField

Values
Enum Value Description

NAME

Example
"NAME"

ChannelsConnection

Fields
Field Name Description
pageInfo - PageInfo!
totalCount - Int!
channels - [Channel!]!
Example
{
  "pageInfo": PageInfo,
  "totalCount": 987,
  "channels": [Channel]
}

Colleague

Fields
Field Name Description
id - String!
email - String!
name - String!
orgId - String!
membership - Membership
invitedAt - DateTime
city - String
countryCode - String
department - String
employeeType - String
providerCreatedAt - DateTime
Example
{
  "id": "abc123",
  "email": "abc123",
  "name": "abc123",
  "orgId": "xyz789",
  "membership": Membership,
  "invitedAt": "2007-12-03T10:15:30Z",
  "city": "abc123",
  "countryCode": "xyz789",
  "department": "xyz789",
  "employeeType": "xyz789",
  "providerCreatedAt": "2007-12-03T10:15:30Z"
}

ColleagueColleaguesPermissions

Fields
Field Name Description
list - Permission!
Example
{"list": Permission}

ColleagueFacets

Fields
Field Name Description
departments - [FacetValue!]!
cities - [FacetValue!]!
countryCodes - [FacetValue!]!
employeeTypes - [FacetValue!]!
Example
{
  "departments": [FacetValue],
  "cities": [FacetValue],
  "countryCodes": [FacetValue],
  "employeeTypes": [FacetValue]
}

ColleagueFilter

Fields
Input Field Description
search - String Checks if Colleague.name or Colleague.email contains the search term, or if Colleague.name is similar to the search term.
isInvited - Boolean When true, returns only colleagues that have been invited. When false, returns only colleagues that have not been invited.
city - [String!]
countryCode - [String!]
department - [String!]
employeeType - [String!]
providerCreatedAt - DateRangeInput
Example
{
  "search": "abc123",
  "isInvited": true,
  "city": ["abc123"],
  "countryCode": ["abc123"],
  "department": ["abc123"],
  "employeeType": ["xyz789"],
  "providerCreatedAt": DateRangeInput
}

ColleagueOrder

Fields
Input Field Description
field - ColleagueOrderField!
desc - Boolean!
Example
{"field": "NAME_SIMILARITY", "desc": true}

ColleagueOrderField

Values
Enum Value Description

NAME_SIMILARITY

NAME

CREATED_AT

PROVIDER_CREATED_AT

Example
"NAME_SIMILARITY"

ColleaguesConnection

Fields
Field Name Description
colleagues - [Colleague!]!
nextPageToken - String
totalCount - Int!
Example
{
  "colleagues": [Colleague],
  "nextPageToken": "abc123",
  "totalCount": 987
}

ComparisonOperator

Values
Enum Value Description

LESS_EQUALS

LESS_THAN

GREATER_EQUALS

GREATER_THAN

NOT_EQUALS

EQUALS

Example
"LESS_EQUALS"

CompleteZoomSetupInput

Fields
Input Field Description
installId - ID!
orgId - ID!
Example
{
  "installId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
}

CreateCalendarEventInput

Fields
Input Field Description
name - String!
startTime - DateTime!
endTime - DateTime!
attendees - [AttendeeInput!]!
sensitivity - CalendarEventSensitivity
meetingProvider - MeetingProvider
Example
{
  "name": "xyz789",
  "startTime": "2007-12-03T10:15:30Z",
  "endTime": "2007-12-03T10:15:30Z",
  "attendees": [AttendeeInput],
  "sensitivity": "PRIVATE",
  "meetingProvider": "UNSPECIFIED"
}

CreateDevicePayload

Fields
Field Name Description
device - Device!
token - String!
legacyToken - String!
Example
{
  "device": Device,
  "token": "abc123",
  "legacyToken": "xyz789"
}

CreateOrganizationInput

Fields
Input Field Description
name - String!
domain - String!
Example
{
  "name": "abc123",
  "domain": "abc123"
}

CreatePinInput

Fields
Input Field Description
orgId - ID!
membershipId - ID
code - String!
Example
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "membershipId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "code": "xyz789"
}

CreatePlanInput

Fields
Input Field Description
placeId - ID!
mediaId - ID!
annotations - String!
Example
{
  "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "mediaId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "annotations": "xyz789"
}

DateRangeInput

Fields
Input Field Description
after - DateTime
before - DateTime
Example
{
  "after": "2007-12-03T10:15:30Z",
  "before": "2007-12-03T10:15:30Z"
}

DateTime

Description

Represent a date-time string at UTC in RFC 3339 format.

Where an RFC 3339 compliant date-time string has a time-zone other than UTC, it is shifted to UTC.

Example
"2007-12-03T10:15:30Z"

DateTimeFilter

Fields
Input Field Description
dateTime - DateTime!
operator - ComparisonOperator!
Example
{
  "dateTime": "2007-12-03T10:15:30Z",
  "operator": "LESS_EQUALS"
}

DeleteCalendarEventResponse

Fields
Field Name Description
id - String!
Example
{"id": "xyz789"}

DeleteCalendarSourceResponse

Fields
Field Name Description
id - String!
deletedCalendarsCount - Int!
deletedEventsCount - Int!
Example
{
  "id": "abc123",
  "deletedCalendarsCount": 123,
  "deletedEventsCount": 987
}

DeleteFileInput

Fields
Input Field Description
fileId - ID!
orgId - ID!
Example
{
  "fileId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
}

DeleteFileResult

Fields
Field Name Description
fileId - ID!
Example
{"fileId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}

Desk

Fields
Field Name Description
id - ID!
orgId - ID!
name - String!
deskType - DeskType! will be removed, only kept for legacy device firmware
bookingCount - Int!
currentBooking - Booking The currently active booking, if any
nextBooking - Booking The next upcoming booking, if any
floor - Floor
presenceDetection - Boolean! If true, the presence detection sensor will be enabled on the device
available - Availability Contains the available timespan for this desk within the requested period.
timeZone - String! Time zone of this desk. The time zone is picked from the building with the organization default as fallback.
timeZoneOffset - Int! Time offset from UTC in seconds
timePresentation - TimePresentation! Time presentation used for this desk. The value is picked from the building with the organization default as fallback.
settings - DeskBookingSettings!
createdAt - DateTime!
updatedAt - DateTime!
license - License
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "name": "xyz789",
  "deskType": "HOT",
  "bookingCount": 123,
  "currentBooking": Booking,
  "nextBooking": Booking,
  "floor": Floor,
  "presenceDetection": true,
  "available": Availability,
  "timeZone": "abc123",
  "timeZoneOffset": 987,
  "timePresentation": "H24",
  "settings": DeskBookingSettings,
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "license": License
}

DeskAttributes

Fields
Field Name Description
deskType - String
presenceDetection - Boolean
tags - [DeskTag!]!
Example
{
  "deskType": "xyz789",
  "presenceDetection": true,
  "tags": ["EXTERNAL_MONITOR"]
}

DeskAttributesInput

Description

Attributes for desk places.

Fields
Input Field Description
presenceDetection - Boolean Enable presence detection for automatic check-in.
tags - [DeskTag!] Desk amenities and features (omittable).
Example
{"presenceDetection": false, "tags": ["EXTERNAL_MONITOR"]}

DeskBookingSettings

Fields
Field Name Description
initialDuration - Duration! The initial/default booking duration
durationLimit - Duration! The max booking duration limit
daysInAdvanceLimit - Int! How many calendar days in advance you may place a booking
daysInAdvanceLimitOffset - TimeOfDay! Offset for daysInAdvanceLimit.
autoCheckInOnPresence - Boolean! If true, the desk device will automatically check-in a current booking on presence detection
lateArrivalReminderDelay - Duration! If the user has not showed up after this delay, a late-arrival notice is pushed to the user
lateArrivalCancelDelay - Duration! If the user has not showed up after this delay, the booking is canceled.
absenceReminderDelay - Duration! If the user has checked in, but has been absent from the desk for this duration, a notice is pushed to the user.
requireIdentForBooking - Boolean! If true, the desk device will require identification with RFID tag to allow the user to book the desk.
requireIdentForCheckIn - Boolean! If true, the user must identify with RFID tag to check in on the desk device
requireIdentForUpdating - Boolean! If true, the user must identify with RFID tag to extend or check-out a booking
remoteCheckIn - Boolean! If true, users are allowed to check-in remotely using the app
qrCodeCheckIn - Boolean! If true, user are allowed to check-in using qr code in the app.
earlyCheckIn - Duration! Period of time, before start of booking, check-in is allowed.
privateOnly - Boolean! If true, the booker of a booking is private for all bookings.
showUserName - Boolean!
showQrForBooking - Boolean! If true, show QR code on the device booking screen
showQrForCheckIn - Boolean! If true, show QR code on the device check-in screen
showQrForUpdating - Boolean! If true, show QR code on the device update/extend screen
Example
{
  "initialDuration": "P3Y6M4DT12H30M5S",
  "durationLimit": "P3Y6M4DT12H30M5S",
  "daysInAdvanceLimit": 123,
  "daysInAdvanceLimitOffset": TimeOfDay,
  "autoCheckInOnPresence": false,
  "lateArrivalReminderDelay": "P3Y6M4DT12H30M5S",
  "lateArrivalCancelDelay": "P3Y6M4DT12H30M5S",
  "absenceReminderDelay": "P3Y6M4DT12H30M5S",
  "requireIdentForBooking": true,
  "requireIdentForCheckIn": true,
  "requireIdentForUpdating": true,
  "remoteCheckIn": false,
  "qrCodeCheckIn": false,
  "earlyCheckIn": "P3Y6M4DT12H30M5S",
  "privateOnly": false,
  "showUserName": false,
  "showQrForBooking": true,
  "showQrForCheckIn": true,
  "showQrForUpdating": false
}

DeskBookingSettingsInput

Description

Configuration for desk booking behavior and policies. Fields are omittable - omit to preserve existing values.

Note: autoCheckInOnPresence automatically checks users in when desk sensor detects presence. If desks don't support presence detection, enabling this has no effect. Note: lateArrivalCancelDelay should be longer than lateArrivalReminderDelay to give users time to respond to reminders.

Fields
Input Field Description
initialDuration - Duration
durationLimit - Duration
daysInAdvanceLimit - Int
daysInAdvanceLimitOffset - TimeOfDay
autoCheckInOnPresence - Boolean
lateArrivalReminderDelay - Duration
lateArrivalCancelDelay - Duration
absenceReminderDelay - Duration
requireIdentForBooking - Boolean
requireIdentForCheckIn - Boolean
requireIdentForUpdating - Boolean
remoteCheckIn - Boolean
qrCodeCheckIn - Boolean
earlyCheckIn - Duration
showUserName - Boolean
showQrForBooking - Boolean
showQrForCheckIn - Boolean
showQrForUpdating - Boolean
Example
{
  "initialDuration": "P3Y6M4DT12H30M5S",
  "durationLimit": "P3Y6M4DT12H30M5S",
  "daysInAdvanceLimit": 987,
  "daysInAdvanceLimitOffset": TimeOfDay,
  "autoCheckInOnPresence": true,
  "lateArrivalReminderDelay": "P3Y6M4DT12H30M5S",
  "lateArrivalCancelDelay": "P3Y6M4DT12H30M5S",
  "absenceReminderDelay": "P3Y6M4DT12H30M5S",
  "requireIdentForBooking": true,
  "requireIdentForCheckIn": false,
  "requireIdentForUpdating": false,
  "remoteCheckIn": false,
  "qrCodeCheckIn": false,
  "earlyCheckIn": "P3Y6M4DT12H30M5S",
  "showUserName": true,
  "showQrForBooking": false,
  "showQrForCheckIn": true,
  "showQrForUpdating": true
}

DeskSettings

Fields
Field Name Description
timezone - String Time zone of this desk. The time zone is picked from the building with the organization default as fallback.
timePresentation - TimePresentation Time presentation used for this desk. The value is picked from the building with the organization default as fallback.
booking - DeskBookingSettings
Example
{
  "timezone": "xyz789",
  "timePresentation": "H24",
  "booking": DeskBookingSettings
}

DeskSettingsInput

Fields
Input Field Description
booking - DeskBookingSettingsInput
Example
{"booking": DeskBookingSettingsInput}

DeskStats

Fields
Field Name Description
occupied - Int!
booked - Int!
total - Int!
Example
{"occupied": 987, "booked": 987, "total": 987}

DeskTag

Values
Enum Value Description

EXTERNAL_MONITOR

External monitor available.

DUAL_MONITOR

Dual monitor setup available.

POWER_OUTLET

Power outlets accessible at desk.

WIRELESS_CHARGER

Wireless charging pad available.

ADJUSTABLE_DESK

Height-adjustable sit/stand desk.

NOICE_CANCELLING_PANELS_QUIET_ZONE

Located in quiet zone with noise-cancelling panels.

VIDEO_CONFERENCING_SETUP

Dedicated video conferencing equipment available.
Example
"EXTERNAL_MONITOR"

DeskType

Values
Enum Value Description

HOT

HOTEL

Example
"HOT"

Device

Fields
Field Name Description
id - ID! Identifies a unique device in backend. Not related to the hardware ID.
type - DeviceType!
serial - String Evoko serial for the specific device
assignedFirmware - Firmware Contains meta data about the firmware assigned to this device. This should not be used by the device to know which firmware it should upgrade to. Instead, devices should use the nextFirmware field.
latestFirmware - Firmware Contains meta data about the latest firmware available to this device. This should not be used by the device to know which firmware it should upgrade to. Instead, devices should use the nextFirmware field.
nextFirmware - Firmware

Contains the next firmware in the upgrade chain for this device. In the normal case this is the same as assignedFirmware, but when a device must do some intermediate upgrades before reaching the target version, this firmware will show the next firmware it can/should upgrade to depending on the extra information suppplied by the device

This field is the firmware that the device SHOULD run which is either

  • The assigned firmware if not null
  • The latest firmware in channel if not assigned any firmware
Arguments
hwrev - String

Hardware revision for compatibility checking.

fwrev - String

Currently installed firmware version.

serial - String

Device serial number.

pubkey - String

Device public key for firmware verification.

firmwarePublicKey - String The firmware public key last reported by the device via nextFirmware
firmwareVariant - String
channel - Channel The assigned firmware channel
place - Place
placeId - ID
desk - Desk The assigned desk
deskId - ID The assigned desk ID
room - Room The assigned room
roomId - ID The assigned room ID
status - DeviceStatus Current status as reported by the device
language - String! Language of the device. Falls back to organization default.
timezone - String! Timezone of the device. Falls back to organization default.
orgName - String!
orgId - ID!
parent - Device The parent of this device.
children - [Device!]! The children of this device.
activeHours - WeeklyOpenHours! Weekly schedule where the device is considered to be "active", i.e. the office is open and there is likely people using the device.
createdAt - DateTime!
updatedAt - DateTime!
attributes - DeviceAttributes
state - DeviceState!
activeError - DeviceEventStatus The last reported active error from the device. there can be several active errors at the same time, use activeDeviceErrors
activeDeviceErrors - [DeviceEvent!]! A full list of active errors reported by the device.
Arguments
limit - Int!
minSeverity - Int!
interfaces - [NetworkInterface!]!

Network interfaces reported by the device.

Authorization: device_devices_get on Device(id)

Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "type": DeviceType,
  "serial": "xyz789",
  "assignedFirmware": Firmware,
  "latestFirmware": Firmware,
  "nextFirmware": Firmware,
  "firmwarePublicKey": "abc123",
  "firmwareVariant": "abc123",
  "channel": Channel,
  "place": Place,
  "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "desk": Desk,
  "deskId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "room": Room,
  "roomId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "status": DeviceStatus,
  "language": "xyz789",
  "timezone": "abc123",
  "orgName": "abc123",
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "parent": Device,
  "children": [Device],
  "activeHours": WeeklyOpenHours,
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "attributes": DeviceAttributes,
  "state": "UNPROVISIONED",
  "activeError": DeviceEventStatus,
  "activeDeviceErrors": [DeviceEvent],
  "interfaces": [NetworkInterface]
}

DeviceAttributes

Fields
Field Name Description
productFamily - String!
productModel - String!
productRevision - String!
firmwareVersion - String!
serial - String!
description - String!
architecture - String!
supportedCommands - [DeviceCommand!]!
engineeringLogs - EngineeringLogsAttributes
launch - DeviceLaunchAttributes
Example
{
  "productFamily": "abc123",
  "productModel": "abc123",
  "productRevision": "xyz789",
  "firmwareVersion": "abc123",
  "serial": "abc123",
  "description": "xyz789",
  "architecture": "abc123",
  "supportedCommands": [DeviceCommand],
  "engineeringLogs": EngineeringLogsAttributes,
  "launch": DeviceLaunchAttributes
}

DeviceCommand

Fields
Field Name Description
command - String!
service - String!
Example
{
  "command": "xyz789",
  "service": "xyz789"
}

DeviceCommandInput

Fields
Input Field Description
orgId - ID!
deviceId - ID!
command - String!
arguments - [String!]!
service - String!
Example
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "deviceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "command": "xyz789",
  "arguments": ["xyz789"],
  "service": "abc123"
}

DeviceCommandResult

Fields
Field Name Description
success - Boolean!
errorMessage - String
Example
{"success": false, "errorMessage": "xyz789"}

DeviceCountByState

Fields
Field Name Description
state - DeviceState!
count - Int!
Example
{"state": "UNPROVISIONED", "count": 987}

DeviceDeviceeventsPermissions

Fields
Field Name Description
create - Permission!
Example
{"create": Permission}

DeviceDevicesPermissions

Fields
Field Name Description
create - Permission!
get - Permission!
update - Permission!
list - Permission!
assignFirmware - Permission!
delete - Permission!
statisticsGet - Permission!
signjwt - Permission!
Example
{
  "create": Permission,
  "get": Permission,
  "update": Permission,
  "list": Permission,
  "assignFirmware": Permission,
  "delete": Permission,
  "statisticsGet": Permission,
  "signjwt": Permission
}

DeviceEvent

Fields
Field Name Description
deviceId - ID!
orgId - ID!
eventType - DeviceEventType!
data - DeviceEventData!
createdAt - DateTime!
Example
{
  "deviceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "eventType": "TELEMETRY",
  "data": DeviceEventTelemetry,
  "createdAt": "2007-12-03T10:15:30Z"
}

DeviceEventConnection

Fields
Field Name Description
pageInfo - PageInfo!
totalCount - Int!
deviceEvents - [DeviceEvent!]!
Example
{
  "pageInfo": PageInfo,
  "totalCount": 123,
  "deviceEvents": [DeviceEvent]
}

DeviceEventData

Example
DeviceEventTelemetry

DeviceEventFilter

Fields
Input Field Description
eventTypes - [DeviceEventType!]
timeWindow - TimeWindow
Example
{"eventTypes": ["TELEMETRY"], "timeWindow": TimeWindow}

DeviceEventOrder

Fields
Input Field Description
field - DeviceEventOrderField!
desc - Boolean!
Example
{"field": "CREATED_AT", "desc": true}

DeviceEventOrderField

Values
Enum Value Description

CREATED_AT

Example
"CREATED_AT"

DeviceEventStatus

Fields
Field Name Description
severity - Int!

UNSPECIFIED = 0 INFO = 1 WARNING = 2 MINOR = 3 MAJOR = 4 CRITICAL = 5 FATAL = 6

https://github.com/evoko/workplace-device-api/blob/e859f416012651a027ec0d4beb103e59f4643f06/proto/biampworkplace/device/common/v1/device_status.proto#L22-L30

error - String
description - String
Example
{
  "severity": 987,
  "error": "xyz789",
  "description": "abc123"
}

DeviceEventStatusInput

Fields
Input Field Description
severity - Int!
error - String
description - String
Example
{
  "severity": 987,
  "error": "xyz789",
  "description": "xyz789"
}

DeviceEventTelemetry

Fields
Field Name Description
temperature - Float
uptime - Int
cpuUtilization - Float
Example
{"temperature": 123.45, "uptime": 987, "cpuUtilization": 123.45}

DeviceEventTelemetryInput

Description

Telemetry data for device events.

Fields
Input Field Description
temperature - Float Temperature in Celsius.
uptime - Duration Uptime in seconds.
firmware - String Firmware version (semver).
presence - Boolean Presence detection status.
cpuUtilization - Float CPU utilization (0-100).
Example
{
  "temperature": 987.65,
  "uptime": "P3Y6M4DT12H30M5S",
  "firmware": "abc123",
  "presence": true,
  "cpuUtilization": 123.45
}

DeviceEventType

Values
Enum Value Description

TELEMETRY

STATUS

Example
"TELEMETRY"

DeviceFilter

Fields
Input Field Description
organizations - [ID!]
channels - [ID!]
deviceTypeFilter - DevicesDeviceTypeFilter
placeFilter - DevicesPlaceFilter
states - [DeviceState!]
search - String Matches search term against serial and desk.name.
onlyWithErrors - Boolean
relationshipFilter - DeviceRelationshipFilter
Example
{
  "organizations": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"],
  "channels": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"],
  "deviceTypeFilter": DevicesDeviceTypeFilter,
  "placeFilter": DevicesPlaceFilter,
  "states": ["UNPROVISIONED"],
  "search": "abc123",
  "onlyWithErrors": true,
  "relationshipFilter": DeviceRelationshipFilter
}

DeviceInput

Description

Input for registering a new device.

Fields
Input Field Description
deviceTypeId - ID Device type ID.
placeId - ID Place ID where device is installed.
Example
{
  "deviceTypeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
}

DeviceJwt

Fields
Field Name Description
id - ID!
orgId - ID!
deviceId - ID!
jwt - String!
createdAt - DateTime!
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "deviceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "jwt": "abc123",
  "createdAt": "2007-12-03T10:15:30Z"
}

DeviceLaunchAttributes

Fields
Field Name Description
launch - DeviceLaunchLaunchAttributes
Example
{"launch": DeviceLaunchLaunchAttributes}

DeviceLaunchLaunchAttributes

Fields
Field Name Description
requestedAt - DateTime
completedAt - DateTime
shortUrl - String
longUrl - String
completedSuccessful - Boolean Whether the launch was successful. This field is only valid if completedAt > requestedAt
Example
{
  "requestedAt": "2007-12-03T10:15:30Z",
  "completedAt": "2007-12-03T10:15:30Z",
  "shortUrl": "xyz789",
  "longUrl": "xyz789",
  "completedSuccessful": false
}

DeviceLocationMoveInput

Fields
Input Field Description
deviceId - ID!
placeId - ID!
Example
{
  "deviceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
}

DeviceOrder

Fields
Input Field Description
field - DeviceOrderField!
desc - Boolean!
Example
{"field": "SERIAL", "desc": true}

DeviceOrderField

Values
Enum Value Description

SERIAL

TYPE_NAME

ORGANIZATION_NAME

DESK_NAME

ROOM_NAME

ASSIGNED_FIRMWARE

FIRMWARE_PUBLIC_KEY

FIRMWARE_VARIANT

CHANNEL_NAME

CREATED_AT

UPDATED_AT

STATE

DESCRIPTION

Example
"SERIAL"

DeviceRelationshipFilter

Fields
Input Field Description
parentDevices - [ID!]
hasChildren - Boolean
hasParent - Boolean
Example
{
  "parentDevices": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"],
  "hasChildren": false,
  "hasParent": true
}

DeviceScreenTemplate

Values
Enum Value Description

LargeResourceName

LargeBooking

LargeResourceNameNoCTA

LargeBookingNoCTA

Example
"LargeResourceName"

DeviceSerialPermissions

Fields
Field Name Description
delete - Permission!
Example
{"delete": Permission}

DeviceSpecificSettings

Fields
Field Name Description
id - ID!
deviceID - ID!
preset - String!
data - String!
dataVersion - String
createdAt - DateTime!
updatedAt - DateTime!
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "deviceID": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "preset": "abc123",
  "data": "abc123",
  "dataVersion": "xyz789",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

DeviceState

Values
Enum Value Description

UNPROVISIONED

Registered but not yet set up.

PROVISIONED

Configured but not connected.

ONLINE

Connected and operational.

OFFLINE

Temporarily disconnected.

MISSING

Not reporting within expected interval. The interval is configured per device type.
Example
"UNPROVISIONED"

DeviceStatistics

Fields
Field Name Description
cpuUtilization - [DeviceStatisticsDistribution!]
temperature - [DeviceStatisticsDistribution!]
errors - [DeviceStatisticsErrorSummary!]
missingDevices - Int!
Example
{
  "cpuUtilization": [DeviceStatisticsDistribution],
  "temperature": [DeviceStatisticsDistribution],
  "errors": [DeviceStatisticsErrorSummary],
  "missingDevices": 123
}

DeviceStatisticsDistribution

Fields
Field Name Description
value - Int!
count - Int!
Example
{"value": 987, "count": 987}

DeviceStatisticsErrorSummary

Fields
Field Name Description
code - String!
severity - String!
count - Int!
Example
{
  "code": "xyz789",
  "severity": "xyz789",
  "count": 987
}

DeviceStatisticsFilter

Fields
Input Field Description
deviceTypes - [ID!]
timeWindow - TimeWindow
Example
{
  "deviceTypes": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"],
  "timeWindow": TimeWindow
}

DeviceStats

Fields
Field Name Description
total - Int!
Example
{"total": 987}

DeviceStatus

Fields
Field Name Description
temperature - Float Current temperature of the device in Celsius.
uptime - Int Uptime in seconds.
firmware - String Current firmware version as reported by the device (semver).
timestamp - DateTime Timestamp of the last status message received from device.
presence - Boolean Presence detected by the desk.
cpuUtilization - Float CPU utilization as percentage (0-100).
Example
{
  "temperature": 123.45,
  "uptime": 123,
  "firmware": "abc123",
  "timestamp": "2007-12-03T10:15:30Z",
  "presence": false,
  "cpuUtilization": 123.45
}

DeviceStatusInput

Fields
Input Field Description
temperature - Float
uptime - Int
firmware - String
presence - Boolean
cpuUtilization - Float
deviceTime - DateTime
Example
{
  "temperature": 987.65,
  "uptime": 987,
  "firmware": "xyz789",
  "presence": false,
  "cpuUtilization": 123.45,
  "deviceTime": "2007-12-03T10:15:30Z"
}

DeviceType

Fields
Field Name Description
id - ID!
name - String!
attributes - DeviceTypeAttributes
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "name": "abc123",
  "attributes": DeviceTypeAttributes
}

DeviceTypeAdmin

Fields
Field Name Description
hidden - Boolean!
Example
{"hidden": true}

DeviceTypeAdminInput

Fields
Input Field Description
hidden - Boolean!
Example
{"hidden": false}

DeviceTypeAttributes

Fields
Field Name Description
commands - [DeviceCommand!]
reportInterval - Duration! The interval in seconds between telemetry reports from the device
license - DeviceTypeLicense
admin - DeviceTypeAdmin
iconPath - String
Example
{
  "commands": [DeviceCommand],
  "reportInterval": "P3Y6M4DT12H30M5S",
  "license": DeviceTypeLicense,
  "admin": DeviceTypeAdmin,
  "iconPath": "xyz789"
}

DeviceTypeAttributesInput

Fields
Input Field Description
commands - [AddDeviceCommandInput!]
reportInterval - Int! The interval in seconds between telemetry reports from the device
license - DeviceTypeLicenseInput
admin - DeviceTypeAdminInput
iconPath - String
Example
{
  "commands": [AddDeviceCommandInput],
  "reportInterval": 123,
  "license": DeviceTypeLicenseInput,
  "admin": DeviceTypeAdminInput,
  "iconPath": "xyz789"
}

DeviceTypeAutoLicense

Fields
Field Name Description
licenseTypeId - String!
durationInMonths - Int!
autoAssociateEntityType - LicenseBoundEntityType When a new device serial is registered, automatically associate the created license with this entity type. If null, no association is created automatically.
associateWithPlace - Boolean! Use autoAssociateEntityType
Example
{
  "licenseTypeId": "xyz789",
  "durationInMonths": 987,
  "autoAssociateEntityType": "PLACE",
  "associateWithPlace": true
}

DeviceTypeAutoLicenseInput

Fields
Input Field Description
licenseTypeId - String!
durationInMonths - Int!
autoAssociateEntityType - LicenseBoundEntityType
Example
{
  "licenseTypeId": "abc123",
  "durationInMonths": 123,
  "autoAssociateEntityType": "PLACE"
}

DeviceTypeLicense

Fields
Field Name Description
onNewSerial - [DeviceTypeAutoLicense!]
Example
{"onNewSerial": [DeviceTypeAutoLicense]}

DeviceTypeLicenseInput

Fields
Input Field Description
onNewSerial - [DeviceTypeAutoLicenseInput!]
Example
{"onNewSerial": [DeviceTypeAutoLicenseInput]}

DeviceTypesPermissions

Fields
Field Name Description
create - Permission!
get - Permission!
list - Permission!
update - Permission!
Example
{
  "create": Permission,
  "get": Permission,
  "list": Permission,
  "update": Permission
}

DevicecommandDevicePermissions

Fields
Field Name Description
command - Permission!
Example
{"command": Permission}

DevicesConnection

Fields
Field Name Description
pageInfo - PageInfo!
totalCount - Int!
devices - [Device!]!
Example
{
  "pageInfo": PageInfo,
  "totalCount": 123,
  "devices": [Device]
}

DevicesDeviceTypeFilter

Fields
Input Field Description
deviceTypes - [ID!]!
condition - FilterCondition!
Example
{
  "deviceTypes": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"],
  "condition": "INCLUDE"
}

DevicesPlaceFilter

Fields
Input Field Description
placeIds - [ID!]!
recursive - Boolean
Example
{"placeIds": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"], "recursive": true}

Direction

Values
Enum Value Description

NORTH

NORTHEAST

EAST

SOUTHEAST

SOUTH

SOUTHWEST

WEST

NORTHWEST

Example
"NORTH"

DuplicateFileInput

Description

Input for duplicateFile.

Fields
Input Field Description
fileId - ID!
orgId - ID!
filename - String Optional override for the new file's filename. When omitted, the backend inserts " (copy)" before the extension (e.g. "report.pdf" becomes "report (copy).pdf") and increments on collision within the organization ("report (copy) 2.pdf", "report (copy) 3.pdf", ...).
Example
{
  "fileId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "filename": "xyz789"
}

DuplicateFileResult

Fields
Field Name Description
file - File!
Example
{"file": File}

Duration

Description

Represent duration in seconds.

Example
"P3Y6M4DT12H30M5S"

EngineeringLogsAttributes

Fields
Field Name Description
logs - EngineeringLogsLogsAttributes
Example
{"logs": EngineeringLogsLogsAttributes}

EngineeringLogsLogsAttributes

Fields
Field Name Description
requestedAt - DateTime
completedAt - DateTime
url - String
completedSuccessful - Boolean Whether the logs was successfully uploaded. This field is only valid if completedAt > requestedAt
Example
{
  "requestedAt": "2007-12-03T10:15:30Z",
  "completedAt": "2007-12-03T10:15:30Z",
  "url": "xyz789",
  "completedSuccessful": false
}

FacetValue

Fields
Field Name Description
value - String!
count - Int!
Example
{"value": "abc123", "count": 987}

Facility

Fields
Field Name Description
id - ID!
name - String!
category - String!
iconPath - String
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "name": "xyz789",
  "category": "abc123",
  "iconPath": "xyz789"
}

FacilityFacilityPermissions

Fields
Field Name Description
update - Permission!
create - Permission!
Example
{
  "update": Permission,
  "create": Permission
}

FeatureFlag

Fields
Field Name Description
id - ID!
value - Boolean!
description - String!
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "value": true,
  "description": "xyz789"
}

File

Description

A file stored in blob storage.

Fields
Field Name Description
id - ID!
orgId - ID!
fileType - FileTypeID!
size - Int!
createdAt - DateTime!
updatedAt - DateTime!
status - FileStatus! Lifecycle status of the file. PENDING means an upload URL has been issued but the upload has not yet been finalized; UPLOADED means the blob is in place.
filename - String! Caller-supplied filename, or the file ID if the upload did not specify one. Unique per organization. Used as the suggested download name on caller-named files.
uploadedBy - FileUploader Who originated the upload. Null if the uploader can no longer be resolved.
metadata - [FileMetadataEntry!]! Opaque key/value metadata supplied by the caller at upload time. Keys follow a <namespace>.<key> convention (e.g. vh.version) but the file service does not validate or interpret them. Entries are returned sorted by key for deterministic output.
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "fileType": "LAUNCH_REPORT",
  "size": 987,
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "status": "PENDING",
  "filename": "abc123",
  "uploadedBy": User,
  "metadata": [FileMetadataEntry]
}

FileDownloadUrl

Description

A URL for downloading a file. expiresAt is null for files in public containers (permanent URL), and non-null for files in private containers (time-limited SAS URL).

Fields
Field Name Description
url - String!
expiresAt - DateTime
Example
{
  "url": "abc123",
  "expiresAt": "2007-12-03T10:15:30Z"
}

FileFilesPermissions

Fields
Field Name Description
list - Permission!
replace - Permission!
duplicate - Permission!
download - Permission!
update - Permission!
delete - Permission!
Example
{
  "list": Permission,
  "replace": Permission,
  "duplicate": Permission,
  "download": Permission,
  "update": Permission,
  "delete": Permission
}

FileInput

Description

Input for the file query.

Fields
Input Field Description
fileId - ID!
orgId - ID!
Example
{
  "fileId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
}

FileMetadataEntry

Description

A single key/value entry in a file's metadata map.

Fields
Field Name Description
key - String!
value - String!
Example
{
  "key": "xyz789",
  "value": "xyz789"
}

FileMetadataEntryInput

Description

Input form of FileMetadataEntry. Duplicate keys are rejected with INVALID_ARGUMENT.

Fields
Input Field Description
key - String!
value - String!
Example
{
  "key": "xyz789",
  "value": "xyz789"
}

FileOrder

Fields
Input Field Description
field - FileOrderField!
desc - Boolean!
Example
{"field": "CREATED_AT", "desc": false}

FileOrderField

Description

Sortable fields on File. When order is omitted, results come back sorted by createdAt DESC; id ASC is always appended as a tiebreaker for stable pagination.

Values
Enum Value Description

CREATED_AT

UPDATED_AT

SIZE

FILE_TYPE

Example
"CREATED_AT"

FileSignedurlPermissions

Fields
Field Name Description
create - Permission!
Example
{"create": Permission}

FileStatus

Description

Lifecycle status of a file.

Values
Enum Value Description

PENDING

An upload URL has been issued but the upload has not been finalized yet.

UPLOADED

The file's blob is in place and ready to download.
Example
"PENDING"

FileType

Description

Represents a file type definition used to categorize files in the system.

Fields
Field Name Description
id - FileTypeID! Unique identifier for the file type.
fileType - String! Human-readable name for the file type (e.g., "Launch Report").
Example
{
  "id": "LAUNCH_REPORT",
  "fileType": "abc123"
}

FileTypeID

Description

Enum of all valid file type identifiers. This is the source of truth — every value must have a corresponding entry in the static file type registry.

Values
Enum Value Description

LAUNCH_REPORT

LAUNCH_ADVANCED_REPORT

ENG_LOGS

USER_LOGS

ID_TAG_IMPORT

ID_TAG_IMPORT_REPORT

LOGO

GENERAL_FILE

LOCATION_DESIGNER

CONTROL_DESIGNER

PAGING_DESIGNER

Example
"LAUNCH_REPORT"

FileTypesPermissions

Fields
Field Name Description
get - Permission!
list - Permission!
Example
{
  "get": Permission,
  "list": Permission
}

FileUploader

Description

Polymorphic uploader of a file: either a User or a Device.

Types
Union Types

User

Device

Example
User

FileUploaderFilter

Description

Filters files to those uploaded by a specific user or device.

Fields
Input Field Description
kind - FileUploaderKind!
id - ID!
Example
{"kind": "USER", "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}

FileUploaderKind

Description

Discriminator for the FileUploaderFilter input.

Values
Enum Value Description

USER

DEVICE

Example
"USER"

FilesConnection

Description

Paginated result for allFiles.

Fields
Field Name Description
files - [File!]!
totalCount - Int!
pageInfo - PageInfo!
Example
{
  "files": [File],
  "totalCount": 123,
  "pageInfo": PageInfo
}

FilterCondition

Values
Enum Value Description

INCLUDE

EXCLUDE

Example
"INCLUDE"

Firmware

Fields
Field Name Description
id - ID!
deviceType - DeviceType!
version - String!
url - String!
publicKey - String
variant - String
channels - [Channel!]!
createdAt - DateTime!
updatedAt - DateTime!
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "deviceType": DeviceType,
  "version": "xyz789",
  "url": "xyz789",
  "publicKey": "xyz789",
  "variant": "abc123",
  "channels": [Channel],
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

FirmwareChannelPermissions

Fields
Field Name Description
create - Permission!
get - Permission!
delete - Permission!
list - Permission!
Example
{
  "create": Permission,
  "get": Permission,
  "delete": Permission,
  "list": Permission
}

FirmwareFilter

Fields
Input Field Description
deviceTypes - [ID!]
channels - [ID!]
publicKey - String
variant - String
search - String Only returns firmware where version or channels.name contains the search term.
Example
{
  "deviceTypes": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"],
  "channels": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"],
  "publicKey": "xyz789",
  "variant": "abc123",
  "search": "xyz789"
}

FirmwareFirmwarePermissions

Fields
Field Name Description
upload - Permission!
download - Permission!
create - Permission!
get - Permission!
update - Permission!
delete - Permission!
list - Permission!
Example
{
  "upload": Permission,
  "download": Permission,
  "create": Permission,
  "get": Permission,
  "update": Permission,
  "delete": Permission,
  "list": Permission
}

FirmwareOrder

Fields
Input Field Description
field - FirmwareOrderField!
desc - Boolean!
Example
{"field": "VERSION", "desc": true}

FirmwareOrderField

Values
Enum Value Description

VERSION

URL

PUBLIC_KEY

VARIANT

DEVICE_TYPE_NAME

CREATED_AT

UPDATED_AT

Example
"VERSION"

FirmwareURL

Fields
Field Name Description
url - String!
expiresAt - DateTime!
Example
{
  "url": "xyz789",
  "expiresAt": "2007-12-03T10:15:30Z"
}

FirmwaresConnection

Fields
Field Name Description
pageInfo - PageInfo!
totalCount - Int!
firmwares - [Firmware!]!
Example
{
  "pageInfo": PageInfo,
  "totalCount": 987,
  "firmwares": [Firmware]
}

FlagsFlagsPermissions

Fields
Field Name Description
set - Permission!
Example
{"set": Permission}

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example
123.45

Floor

Fields
Field Name Description
id - ID!
name - String!
floorplan - Floorplan
position - Int!
building - Building!
createdAt - DateTime!
updatedAt - DateTime!
unassignedPlanResources - Int! Number of resources not assigned to a plan for this or any ascending place.
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "name": "xyz789",
  "floorplan": Floorplan,
  "position": 123,
  "building": Building,
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "unassignedPlanResources": 123
}

FloorAttributes

Fields
Field Name Description
position - Int
Example
{"position": 987}

FloorAttributesInput

Fields
Input Field Description
position - Int
Example
{"position": 123}

FloorSettings

Fields
Field Name Description
deviceScreenTemplate - DeviceScreenTemplate
brokenEquipmentReportEmails - [String!]
Example
{
  "deviceScreenTemplate": "LargeResourceName",
  "brokenEquipmentReportEmails": ["xyz789"]
}

FloorSettingsInput

Fields
Input Field Description
deviceScreenTemplate - DeviceScreenTemplate
brokenEquipmentReportEmails - [String!]
Example
{
  "deviceScreenTemplate": "LargeResourceName",
  "brokenEquipmentReportEmails": ["abc123"]
}

Floorplan

Fields
Field Name Description
id - ID!
mediaId - ID!
data - String!
createdAt - DateTime!
updatedAt - DateTime
unassignedResources - Int!
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "mediaId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "data": "abc123",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "unassignedResources": 123
}

GenerateFileReplaceUrlInput

Fields
Input Field Description
id - ID!
Example
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}

GenerateFileUploadUrlInput

Fields
Input Field Description
orgId - ID!
fileTypeId - FileTypeID!
filename - String

Optional caller-supplied filename used as the suggested download name (Content-Disposition). Must be unique per organization. When omitted, the generated file ID is used and no Content-Disposition override is applied on download.

Honored only for file types served from private containers. For public-container types (e.g., LOGO), the value is stored but does not affect the download URL.

metadata - [FileMetadataEntryInput!] Opaque key/value metadata stored on the file row. Keys follow a <namespace>.<key> convention (e.g. vh.version) but the file service does not validate or interpret them. Duplicate keys are rejected with INVALID_ARGUMENT.
Example
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "fileTypeId": "LAUNCH_REPORT",
  "filename": "xyz789",
  "metadata": [FileMetadataEntryInput]
}

GenerateFileUploadUrlResult

Fields
Field Name Description
fileId - ID!
url - SignedUrl!
Example
{
  "fileId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "url": SignedUrl
}

GenerateFirmwareURLInput

Fields
Input Field Description
filename - String!
model - String!
type - URLDirection!
Example
{
  "filename": "xyz789",
  "model": "abc123",
  "type": "UPLOAD"
}

GetFeatureFlagInput

Fields
Input Field Description
id - ID!
Example
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}

GetFileDownloadUrlInput

Fields
Input Field Description
fileId - ID!
orgId - ID!
Example
{
  "fileId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
}

GetFileDownloadUrlResponse

Fields
Field Name Description
url - FileDownloadUrl!
Example
{"url": FileDownloadUrl}

GoogleInput

Fields
Input Field Description
resourceAdmin - String!
serviceAccountJson - String!
Example
{
  "resourceAdmin": "abc123",
  "serviceAccountJson": "xyz789"
}

ID

Description

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Example
"59fb1147-4713-4a12-a5a2-640c61c2ca67"

IDTag

Fields
Field Name Description
id - ID!
userId - ID!
orgId - ID!
name - String
tag - String!
createdAt - DateTime!
updatedAt - DateTime!
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "userId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "name": "abc123",
  "tag": "xyz789",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

IDTagOrder

Fields
Input Field Description
field - IDTagOrderField!
desc - Boolean!
Example
{"field": "NAME", "desc": false}

IDTagOrderField

Values
Enum Value Description

NAME

TAG

CREATED_AT

UPDATED_AT

Example
"NAME"

IDTagsConnection

Fields
Field Name Description
pageInfo - PageInfo!
totalCount - Int!
idTags - [IDTag!]!
Example
{
  "pageInfo": PageInfo,
  "totalCount": 123,
  "idTags": [IDTag]
}

IdtagIdtagsPermissions

Fields
Field Name Description
create - Permission!
get - Permission!
delete - Permission!
list - Permission!
search - Permission!
import - Permission!
Example
{
  "create": Permission,
  "get": Permission,
  "delete": Permission,
  "list": Permission,
  "search": Permission,
  "import": Permission
}

ImportIDTagsInput

Fields
Input Field Description
fileId - ID! ID of the file uploaded with a signed URL
dryRun - Boolean! When true, the tags will be validated but not imported.
orgId - ID! Organization to which the tags will be imported
format - TagFormat Format of the tags in the file
Example
{
  "fileId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "dryRun": true,
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "format": "DECIMAL"
}

ImportIDTagsResult

Fields
Field Name Description
summary - ImportIDTagsSummary! Summary of the import process, including counts of total, imported, and failed tags
reportUrl - SignedUrl URL to download a report of the import process, including any errors for failed tags
Example
{
  "summary": ImportIDTagsSummary,
  "reportUrl": SignedUrl
}

ImportIDTagsSummary

Fields
Field Name Description
total - Int! Total number of tags processed (including valid and invalid tags)
imported - Int! Number of tags successfully imported
failed - Int! Number of tags that failed validation and were not imported
Example
{"total": 123, "imported": 987, "failed": 987}

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
987

Invitation

Fields
Field Name Description
id - ID!
orgId - ID!
email - String!
expiresAt - DateTime!
organization - Organization
status - InvitationStatus!
membership - Membership!
createdAt - DateTime!
updatedAt - DateTime!
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "email": "xyz789",
  "expiresAt": "2007-12-03T10:15:30Z",
  "organization": Organization,
  "status": "PENDING",
  "membership": Membership,
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

InvitationFilter

Fields
Input Field Description
search - String Checks if email contains the search term.
status - [InvitationStatus!]
Example
{"search": "abc123", "status": ["PENDING"]}

InvitationOrder

Fields
Input Field Description
field - InvitationOrderField!
desc - Boolean!
Example
{"field": "EMAIL", "desc": false}

InvitationOrderField

Values
Enum Value Description

EMAIL

ROLE

EXPIRES_AT

CREATED_AT

UPDATED_AT

Example
"EMAIL"

InvitationStatus

Values
Enum Value Description

PENDING

EXPIRED

DECLINED

ACCEPTED

Example
"PENDING"

InvitationsConnection

Fields
Field Name Description
pageInfo - PageInfo!
totalCount - Int!
invitations - [Invitation!]!
Example
{
  "pageInfo": PageInfo,
  "totalCount": 123,
  "invitations": [Invitation]
}

License

Fields
Field Name Description
id - ID!
refId - ID
count - Int!
duration - Int!
activatesAt - DateTime
expiresAt - DateTime
createdAt - DateTime!
updatedAt - DateTime!
revokedAt - DateTime
organization - Organization
licenseTypeId - ID!
trial - Boolean!
state - LicenseState!
licenseType - LicenseType
associations - LicenseAssociationsConnection

License associations for this license, optionally filtered by entity type. Replaces the places(...) field.

Returns null for trial licenses (trials have no committed associations), mirroring the deprecated places(...) field's behavior so consumers migrating between the two fields see identical results for trials.

Arguments
limit - Int
offset - Int
entityType - LicenseBoundEntityType
places - LicensePlacesConnection Use associations(entityType: PLACE). Note: semantics differ. places returns Place objects including recursive descendants of bound places; associations(entityType: PLACE) returns direct LicenseAssociation rows only. If you need descendant places, resolve them explicitly via the Place graph.
Arguments
limit - Int
offset - Int
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "refId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "count": 987,
  "duration": 123,
  "activatesAt": "2007-12-03T10:15:30Z",
  "expiresAt": "2007-12-03T10:15:30Z",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "revokedAt": "2007-12-03T10:15:30Z",
  "organization": Organization,
  "licenseTypeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "trial": false,
  "state": "UNSPECIFIED",
  "licenseType": LicenseType,
  "associations": LicenseAssociationsConnection,
  "places": LicensePlacesConnection
}

LicenseAssociation

Fields
Field Name Description
id - ID!
createdAt - DateTime!
updatedAt - DateTime!
license - License
boundEntityType - LicenseBoundEntityType The type of entity this association is bound to.
boundEntityId - ID The ID of the entity this association is bound to.
placeId - ID Use boundEntityType and boundEntityId
deviceId - ID Use boundEntityType and boundEntityId
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "license": License,
  "boundEntityType": "PLACE",
  "boundEntityId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "deviceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
}

LicenseAssociationFilter

Fields
Input Field Description
licenseId - ID
boundEntityType - LicenseBoundEntityType Filter by entity type. Combine with boundEntityId to filter by a specific entity.
boundEntityId - ID Filter by entity ID. Should be combined with boundEntityType.
Example
{
  "licenseId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "boundEntityType": "PLACE",
  "boundEntityId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
}

LicenseAssociationsConnection

Fields
Field Name Description
pageInfo - PageInfo!
totalCount - Int!
licenseAssociations - [LicenseAssociation!]!
Example
{
  "pageInfo": PageInfo,
  "totalCount": 123,
  "licenseAssociations": [LicenseAssociation]
}

LicenseBoundEntityType

Description

The type of entity a license or license association is bound to.

Values
Enum Value Description

PLACE

DEVICE

Example
"PLACE"

LicenseFilter

Fields
Input Field Description
expiresAt - TimeWindow
trial - Boolean
state - LicenseState
licenseTypes - [ID!]
excludeLicenseTypes - [ID!]
onlyAssignable - Boolean
assignableTo - LicenseBoundEntityType Filter to licenses whose license type defines features for this entity type. Use when populating an assignment UI for a specific entity.
search - String Checks search term against id, organization.id, and refId
Example
{
  "expiresAt": TimeWindow,
  "trial": true,
  "state": "UNSPECIFIED",
  "licenseTypes": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"],
  "excludeLicenseTypes": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"],
  "onlyAssignable": false,
  "assignableTo": "PLACE",
  "search": "abc123"
}

LicenseLicenseassociationPermissions

Fields
Field Name Description
get - Permission!
create - Permission!
update - Permission!
delete - Permission!
list - Permission!
Example
{
  "get": Permission,
  "create": Permission,
  "update": Permission,
  "delete": Permission,
  "list": Permission
}

LicenseLicensesPermissions

Fields
Field Name Description
create - Permission!
get - Permission!
update - Permission!
updatereseller - Permission!
revoke - Permission!
activate - Permission!
list - Permission!
Example
{
  "create": Permission,
  "get": Permission,
  "update": Permission,
  "updatereseller": Permission,
  "revoke": Permission,
  "activate": Permission,
  "list": Permission
}

LicenseLicensetypesPermissions

Fields
Field Name Description
create - Permission!
list - Permission!
get - Permission!
update - Permission!
delete - Permission!
Example
{
  "create": Permission,
  "list": Permission,
  "get": Permission,
  "update": Permission,
  "delete": Permission
}

LicenseOrder

Fields
Input Field Description
field - LicenseOrderField!
desc - Boolean!
Example
{"field": "REF_ID", "desc": true}

LicenseOrderField

Values
Enum Value Description

REF_ID

LICENSE_TYPE_ID

COUNT

DURATION

TRIAL

ACTIVATES_AT

EXPIRES_AT

REVOKED_AT

CREATED_AT

UPDATED_AT

Example
"REF_ID"

LicensePlacesConnection

Fields
Field Name Description
totalCount - Int!
pageInfo - PageInfo!
places - [Place!]
Example
{
  "totalCount": 987,
  "pageInfo": PageInfo,
  "places": [Place]
}

LicenseState

Values
Enum Value Description

UNSPECIFIED

State unknown.

PENDING_ORG

Available but not assigned to an organization.

REVOKED

Revoked and no longer usable.

EXPIRED

Validity period ended.

ACTIVE

Active and available for use.

PENDING_ACTIVATION

Assigned but not yet activated.

NOT_ACTIVE

Not currently active.
Example
"UNSPECIFIED"

LicenseStats

Description

TODO - Currently ever returned as empty value, remove

Fields
Field Name Description
totalDesks - Int!
usedDesks - Int!
totalRooms - Int!
usedRooms - Int!
trialRedeemed - Boolean!
Example
{
  "totalDesks": 987,
  "usedDesks": 987,
  "totalRooms": 123,
  "usedRooms": 123,
  "trialRedeemed": true
}

LicenseSummary

Fields
Field Name Description
assigned - Int!
notExpired - Int!
expiresSoon - Int!
Example
{"assigned": 987, "notExpired": 123, "expiresSoon": 987}

LicenseSummaryFilter

Fields
Input Field Description
deviceTypes - [ID!]
Example
{"deviceTypes": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"]}

LicenseType

Fields
Field Name Description
id - ID!
name - String!
createdAt - DateTime!
updatedAt - DateTime!
entitySupport - [LicenseTypeEntitySupport!]! Features granted per entity type. Replaces placeFeatures and deviceFeatures.
placeFeatures - [String!] Use entitySupport filtered by entityType: PLACE
deviceFeatures - [String!] Use entitySupport filtered by entityType: DEVICE
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "name": "abc123",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "entitySupport": [LicenseTypeEntitySupport],
  "placeFeatures": ["xyz789"],
  "deviceFeatures": ["abc123"]
}

LicenseTypeEntityState

Description

The license state for a specific license type on a licensed entity. Replaces PlaceLicenseTypeState.

Fields
Field Name Description
licenseTypeId - ID!
state - LicensedEntityState!
startTime - DateTime
endTime - DateTime
licenseIds - [ID!]!
Example
{
  "licenseTypeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "state": "UNSPECIFIED",
  "startTime": "2007-12-03T10:15:30Z",
  "endTime": "2007-12-03T10:15:30Z",
  "licenseIds": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"]
}

LicenseTypeEntitySupport

Description

Describes the features a license type grants for a specific entity type.

Fields
Field Name Description
entityType - LicenseBoundEntityType! The entity type these features apply to.
features - [String!]! Feature identifiers granted when this license type is active for the entity.
Example
{
  "entityType": "PLACE",
  "features": ["abc123"]
}

LicenseTypeEntitySupportInput

Fields
Input Field Description
entityType - LicenseBoundEntityType!
features - [String!]!
Example
{
  "entityType": "PLACE",
  "features": ["xyz789"]
}

LicenseTypeFilter

Fields
Input Field Description
excludeIds - [ID!]
Example
{"excludeIds": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"]}

LicenseTypesConnection

Fields
Field Name Description
pageInfo - PageInfo!
totalCount - Int!
licenseTypes - [LicenseType!]!
Example
{
  "pageInfo": PageInfo,
  "totalCount": 987,
  "licenseTypes": [LicenseType]
}

LicensedEntityState

Description

License state for a licensed entity. Replaces PlaceLicenseState. Values are entity-type agnostic.

Values
Enum Value Description

UNSPECIFIED

REVOKED

EXPIRED

ACTIVE

PENDING_ACTIVATION

NOT_ACTIVE

EXPIRE_SOON

NOT_ASSIGNED

Example
"UNSPECIFIED"

LicensesConnection

Fields
Field Name Description
pageInfo - PageInfo!
totalCount - Int!
licenses - [License!]!
Example
{
  "pageInfo": PageInfo,
  "totalCount": 987,
  "licenses": [License]
}

ListScheduleDeviceActionsResponse

Fields
Field Name Description
actions - [ScheduleDeviceAction!]!
Example
{"actions": [ScheduleDeviceAction]}

ListScheduleEventsFilter

Fields
Input Field Description
singleEvents - Boolean
startTime - DateTimeFilter
Example
{"singleEvents": false, "startTime": DateTimeFilter}

ListScheduleEventsResponse

Fields
Field Name Description
events - [ScheduleEvent!]!
nextPageToken - String!
Example
{
  "events": [ScheduleEvent],
  "nextPageToken": "abc123"
}

Media

Fields
Field Name Description
id - ID!
orgId - ID!
originalFileName - String!
mimeType - String!
createdAt - DateTime!
updatedAt - DateTime!
url - String!
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "originalFileName": "xyz789",
  "mimeType": "abc123",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "url": "xyz789"
}

MediaMediasPermissions

Fields
Field Name Description
create - Permission!
get - Permission!
Example
{
  "create": Permission,
  "get": Permission
}

MeetingProvider

Values
Enum Value Description

UNSPECIFIED

NONE

MICROSOFT_TEAMS

GOOGLE_MEETS

AUTO

Can be used to let the backend decide on which provider to use
Example
"UNSPECIFIED"

Membership

Fields
Field Name Description
hasCalendar - Boolean! use field calendar instead, null means no calendar
calendar - Calendar
id - ID!
userId - ID
orgId - ID!
user - User
organization - Organization The organization the user is a member of. May be null if the user does not have access to the organization.
invitation - Invitation
role - Role! use roles instead
roles - [Role!]!
createdAt - DateTime!
updatedAt - DateTime!
status - MembershipStatus!
pin - Pin
Example
{
  "hasCalendar": true,
  "calendar": Calendar,
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "userId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "user": User,
  "organization": Organization,
  "invitation": Invitation,
  "role": "OWNER",
  "roles": ["OWNER"],
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "status": "REQUESTED",
  "pin": Pin
}

MembershipFilter

Fields
Input Field Description
excludeSuperAdmins - Boolean Only return memberships that does not belong to super admins
roles - [Role!] Only return memberships with the specified roles
search - String Only returns memberships with matching search term. Currently only matches if the search term is contained in the users name or email.
status - [MembershipStatus!] Only returns memberships with matching status.
invitationStatus - [InvitationStatus!] Only returns memberships with matching invitation status.
Example
{
  "excludeSuperAdmins": false,
  "roles": ["OWNER"],
  "search": "abc123",
  "status": ["REQUESTED"],
  "invitationStatus": ["PENDING"]
}

MembershipOrder

Fields
Input Field Description
field - MembershipOrderField!
desc - Boolean!
Example
{"field": "USER_NAME", "desc": true}

MembershipOrderField

Values
Enum Value Description

USER_NAME

USER_EMAIL

If memberships invitations are requested in the same query, ordering will prioritize user email then membership invitation email

ROLE

CREATED_AT

UPDATED_AT

STATUS

INVITATION_STATUS

Example
"USER_NAME"

MembershipStats

Fields
Field Name Description
total - Int!
Example
{"total": 123}

MembershipStatus

Values
Enum Value Description

REQUESTED

User requested to join. Pending admin approval.

INVITED

User invited. Pending acceptance.

ACTIVE

Membership active.

DEACTIVATED

Membership deactivated.
Example
"REQUESTED"

MembershipsConnection

Fields
Field Name Description
pageInfo - PageInfo!
totalCount - Int!
memberships - [Membership!]!
Example
{
  "pageInfo": PageInfo,
  "totalCount": 123,
  "memberships": [Membership]
}

MetricAggregator

Values
Enum Value Description

SUM

MAX

AVG

LAST

LAST_NOT_NULL

FIRST

FIRST_NOT_NULL

Example
"SUM"

MetricDurationUnit

Values
Enum Value Description

MINUTES

HOURS

DAYS

WEEKS

MONTHS

YEARS

Example
"MINUTES"

MetricInterpolator

Values
Enum Value Description

NONE

INTERPOLATE

LOCF

LOCF_NULL_AS_MISSING

Example
"NONE"

MetricQueryBucketWidth

Fields
Input Field Description
value - Int!
unit - MetricDurationUnit!
Example
{"value": 987, "unit": "MINUTES"}

MetricQueryInput

Fields
Input Field Description
range - TimeWindow!
bucketWidth - MetricQueryBucketWidth!
metrics - [MetricQueryMetricInput!]!
timezone - String!
Example
{
  "range": TimeWindow,
  "bucketWidth": MetricQueryBucketWidth,
  "metrics": [MetricQueryMetricInput],
  "timezone": "abc123"
}

MetricQueryMetricInput

Fields
Input Field Description
name - String!
label - String
aggregator - MetricAggregator!
interpolator - MetricInterpolator!
Example
{
  "name": "xyz789",
  "label": "abc123",
  "aggregator": "SUM",
  "interpolator": "NONE"
}

MetricValue

Fields
Field Name Description
timestamp - DateTime!
value - String
Example
{
  "timestamp": "2007-12-03T10:15:30Z",
  "value": "abc123"
}

MetricVector

Fields
Field Name Description
name - String!
label - String
values - [MetricValue!]!
Example
{
  "name": "xyz789",
  "label": "xyz789",
  "values": [MetricValue]
}

MicrosoftInput

Fields
Input Field Description
secret - String!
clientId - String!
tenantId - String!
Example
{
  "secret": "xyz789",
  "clientId": "abc123",
  "tenantId": "abc123"
}

NatsAccount

Fields
Field Name Description
id - ID!
jwt - String!
orgId - ID
platformId - ID
createdAt - DateTime!
updatedAt - DateTime!
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "jwt": "abc123",
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "platformId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

NatsauthNatsaccountPermissions

Fields
Field Name Description
publish - Permission!
Example
{"publish": Permission}

NetworkInterface

Fields
Field Name Description
interface - String! Network interface name (e.g., 'eth0', 'wlan0').
ipv4 - String IPv4 address assigned to this interface.
ipv6 - String IPv6 address assigned to this interface.
mac - String MAC address of this interface.
ssid - String WiFi SSID (only present for wireless interfaces).
createdAt - DateTime!
updatedAt - DateTime!
Example
{
  "interface": "xyz789",
  "ipv4": "abc123",
  "ipv6": "xyz789",
  "mac": "xyz789",
  "ssid": "xyz789",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

NetworkInterfaceInput

Fields
Input Field Description
interface - String!
ipv4 - String
ipv6 - String
mac - String
ssid - String
Example
{
  "interface": "xyz789",
  "ipv4": "abc123",
  "ipv6": "abc123",
  "mac": "xyz789",
  "ssid": "xyz789"
}

NotificationFcmtokenPermissions

Fields
Field Name Description
get - Permission!
update - Permission!
delete - Permission!
list - Permission!
Example
{
  "get": Permission,
  "update": Permission,
  "delete": Permission,
  "list": Permission
}

OfflineReason

Values
Enum Value Description

UNSPECIFIED

SHUTDOWN

RESTART

FIRMWARE_UPDATE

ERROR

REMOTE_REQUEST

POWER

Example
"UNSPECIFIED"

OpenHours

Fields
Field Name Description
from - TimeOfDay!
until - TimeOfDay!
closed - Boolean!
Example
{
  "from": TimeOfDay,
  "until": TimeOfDay,
  "closed": true
}

OpenHoursInput

Fields
Input Field Description
from - TimeOfDay
until - TimeOfDay
closed - Boolean
Example
{
  "from": TimeOfDay,
  "until": TimeOfDay,
  "closed": true
}

OrgApplication

Values
Enum Value Description

COMMAND

SETTINGS

Example
"COMMAND"

Organization

Fields
Field Name Description
hasCalendar - Boolean!
id - ID!
name - String!
domain - String!
logoMediaId - String
logoUrl - String
bookingSettings - OrganizationBookingSettings!
deskBookingSettings - DeskBookingSettings!
roomBookingSettings - RoomBookingSettings!
parkingBookingSettings - ParkingBookingSettings!
calendarSettings - CalendarSettings!
whitelist - String
whitelistEnabled - Boolean!
language - String!
timezone - String!
deviceScreenTemplate - DeviceScreenTemplate!
brokenEquipmentReportEmails - [String!]
timePresentation - TimePresentation!
deskStats - DeskStats! legacy, use placeStatistics query
deviceStats - DeviceStats!
membershipStats - MembershipStats!
openHours - WeeklyOpenHours!
licenseStats - LicenseStats!
trial - [License!]!
ola - String legacy, will be removed
deviceErrorReportEmails - [String!]
deviceErrorReportWebhookUrl - String
createdAt - DateTime!
updatedAt - DateTime!
type - OrganizationType!
schedulingSettings - SchedulingSettings
pin - Pin
Example
{
  "hasCalendar": false,
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "name": "xyz789",
  "domain": "abc123",
  "logoMediaId": "abc123",
  "logoUrl": "abc123",
  "bookingSettings": OrganizationBookingSettings,
  "deskBookingSettings": DeskBookingSettings,
  "roomBookingSettings": RoomBookingSettings,
  "parkingBookingSettings": ParkingBookingSettings,
  "calendarSettings": CalendarSettings,
  "whitelist": "xyz789",
  "whitelistEnabled": false,
  "language": "abc123",
  "timezone": "abc123",
  "deviceScreenTemplate": "LargeResourceName",
  "brokenEquipmentReportEmails": ["abc123"],
  "timePresentation": "H24",
  "deskStats": DeskStats,
  "deviceStats": DeviceStats,
  "membershipStats": MembershipStats,
  "openHours": WeeklyOpenHours,
  "licenseStats": LicenseStats,
  "trial": [License],
  "ola": "abc123",
  "deviceErrorReportEmails": ["xyz789"],
  "deviceErrorReportWebhookUrl": "xyz789",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "type": "SHARED",
  "schedulingSettings": SchedulingSettings,
  "pin": Pin
}

OrganizationBookingSettings

Fields
Field Name Description
privateOnly - Boolean!
Example
{"privateOnly": true}

OrganizationBookingSettingsInput

Fields
Input Field Description
privateOnly - Boolean
Example
{"privateOnly": false}

OrganizationFilter

Fields
Input Field Description
search - String
onlyActiveTrial - Boolean
types - [OrganizationType!] Filter by organization type. Defaults to [SHARED] if not provided.
Example
{
  "search": "xyz789",
  "onlyActiveTrial": true,
  "types": ["SHARED"]
}

OrganizationMembershipinvitationsPermissions

Fields
Field Name Description
create - Permission!
get - Permission!
update - Permission!
delete - Permission!
list - Permission!
Example
{
  "create": Permission,
  "get": Permission,
  "update": Permission,
  "delete": Permission,
  "list": Permission
}

OrganizationMembershipsPermissions

Fields
Field Name Description
create - Permission!
get - Permission!
update - Permission!
delete - Permission!
list - Permission!
joinrequest - Permission!
activate - Permission!
deactivate - Permission!
signalljwts - Permission!
signjwts - Permission!
Example
{
  "create": Permission,
  "get": Permission,
  "update": Permission,
  "delete": Permission,
  "list": Permission,
  "joinrequest": Permission,
  "activate": Permission,
  "deactivate": Permission,
  "signalljwts": Permission,
  "signjwts": Permission
}

OrganizationMessage

Fields
Field Name Description
id - ID!
organizations - [Organization!]!
type - OrganizationMessageType!
content - String!
canBeClosed - Boolean!
showToAllOrganizations - Boolean!
showAt - DateTime
hideAt - DateTime
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "organizations": [Organization],
  "type": "SUCCESS",
  "content": "xyz789",
  "canBeClosed": true,
  "showToAllOrganizations": true,
  "showAt": "2007-12-03T10:15:30Z",
  "hideAt": "2007-12-03T10:15:30Z"
}

OrganizationMessageFilter

Fields
Input Field Description
orgId - ID
Example
{"orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}

OrganizationMessageOrder

Fields
Input Field Description
field - OrganizationMessageOrderField!
desc - Boolean!
Example
{"field": "TYPE", "desc": false}

OrganizationMessageOrderField

Values
Enum Value Description

TYPE

CONTENT

CAN_BE_CLOSED

SHOW_AT

HIDE_AT

Example
"TYPE"

OrganizationMessageType

Values
Enum Value Description

SUCCESS

INFO

WARNING

ERROR

Example
"SUCCESS"

OrganizationMessagesConnection

Fields
Field Name Description
pageInfo - PageInfo!
totalCount - Int!
organizationMessages - [OrganizationMessage!]!
Example
{
  "pageInfo": PageInfo,
  "totalCount": 987,
  "organizationMessages": [OrganizationMessage]
}

OrganizationMessagesPermissions

Fields
Field Name Description
create - Permission!
get - Permission!
update - Permission!
delete - Permission!
list - Permission!
Example
{
  "create": Permission,
  "get": Permission,
  "update": Permission,
  "delete": Permission,
  "list": Permission
}

OrganizationOrder

Fields
Input Field Description
field - OrganizationOrderField!
desc - Boolean!
Example
{"field": "NAME", "desc": true}

OrganizationOrderField

Values
Enum Value Description

NAME

DOMAIN

MEMBERSHIP_STATS_TOTAL

DESK_STATS_TOTAL

DEVICE_STATS_TOTAL

OLA

legacy, will be removed

CREATED_AT

UPDATED_AT

Example
"NAME"

OrganizationOrganizationsPermissions

Fields
Field Name Description
create - Permission!
get - Permission!
update - Permission!
delete - Permission!
list - Permission!
Example
{
  "create": Permission,
  "get": Permission,
  "update": Permission,
  "delete": Permission,
  "list": Permission
}

OrganizationPermissionsInput

Fields
Input Field Description
membershipId - ID!
Example
{"membershipId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}

OrganizationType

Values
Enum Value Description

SHARED

PRIVATE

Example
"SHARED"

OrganizationZoomPermissions

Fields
Field Name Description
get - Permission!
update - Permission!
Example
{
  "get": Permission,
  "update": Permission
}

OrganizationsConnection

Fields
Field Name Description
pageInfo - PageInfo!
totalCount - Int!
organizations - [Organization!]!
Example
{
  "pageInfo": PageInfo,
  "totalCount": 123,
  "organizations": [Organization]
}

Overview

Fields
Field Name Description
id - ID!
orgId - String!
type - OverviewType!
mode - OverviewMode!
name - String!
message - String Use alert instead
alert - Alert
showDateTime - Boolean!
showLogo - Boolean!
darkMode - Boolean!
columnCount - Int!
tiles - [Tile!]!
logoUrl - String
createdAt - DateTime!
updatedAt - DateTime!
place - Place
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "orgId": "abc123",
  "type": "TILES",
  "mode": "MONITORING",
  "name": "xyz789",
  "message": "xyz789",
  "alert": Alert,
  "showDateTime": false,
  "showLogo": false,
  "darkMode": true,
  "columnCount": 987,
  "tiles": [Tile],
  "logoUrl": "xyz789",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "place": Place
}

OverviewAuthcodePermissions

Fields
Field Name Description
create - Permission!
authenticate - Permission!
activate - Permission!
authorize - Permission!
Example
{
  "create": Permission,
  "authenticate": Permission,
  "activate": Permission,
  "authorize": Permission
}

OverviewCodePayload

Fields
Field Name Description
deviceCode - String!
userCode - String!
expiresIn - Duration!
interval - Duration!
verificationUri - String!
verificationUriComplete - String
Example
{
  "deviceCode": "xyz789",
  "userCode": "xyz789",
  "expiresIn": "P3Y6M4DT12H30M5S",
  "interval": "P3Y6M4DT12H30M5S",
  "verificationUri": "xyz789",
  "verificationUriComplete": "xyz789"
}

OverviewFilter

Fields
Input Field Description
search - String Checks if name contains the search term.
Example
{"search": "xyz789"}

OverviewMode

Values
Enum Value Description

MONITORING

SCHEDULING

Example
"MONITORING"

OverviewOrder

Fields
Input Field Description
field - OverviewOrderField!
desc - Boolean!
Example
{"field": "NAME", "desc": false}

OverviewOrderField

Values
Enum Value Description

NAME

CREATED_AT

UPDATED_AT

Example
"NAME"

OverviewOverviewsPermissions

Fields
Field Name Description
create - Permission!
get - Permission!
update - Permission!
delete - Permission!
list - Permission!
Example
{
  "create": Permission,
  "get": Permission,
  "update": Permission,
  "delete": Permission,
  "list": Permission
}

OverviewType

Values
Enum Value Description

TILES

FLOORPLAN

Example
"TILES"

OverviewsConnection

Fields
Field Name Description
pageInfo - PageInfo!
totalCount - Int!
overviews - [Overview!]!
Example
{
  "pageInfo": PageInfo,
  "totalCount": 987,
  "overviews": [Overview]
}

OwnerFilter

Fields
Input Field Description
ids - [ID]
hasOwner - Boolean If ids is set always filter on ids If hasOwner is not set do nothing If hasOwner set to true filter on owner not null If hasOwner set to false filter on owner null
Example
{"ids": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"], "hasOwner": true}

PageInfo

Fields
Field Name Description
hasNextPage - Boolean!
hasPreviousPage - Boolean!
Example
{"hasNextPage": false, "hasPreviousPage": false}

ParkingBookingSettings

Fields
Field Name Description
initialDuration - Duration! The initial/default booking duration
durationLimit - Duration! The max booking duration limit
daysInAdvanceLimit - Int! How many calendar days in advance you may place a booking
daysInAdvanceLimitOffset - TimeOfDay! Offset for daysInAdvanceLimit.
autoCheckInOnPresence - Boolean! If true, the desk device will automatically check-in a current booking on presence detection
lateArrivalReminderDelay - Duration! If the user has not showed up after this delay, a late-arrival notice is pushed to the user
lateArrivalCancelDelay - Duration! If the user has not showed up after this delay, the booking is canceled.
absenceReminderDelay - Duration! If the user has checked in, but has been absent from the desk for this duration, a notice is pushed to the user.
requireIdentForBooking - Boolean! If true, the desk device will require identification with RFID tag to allow the user to book the desk.
requireIdentForCheckIn - Boolean! If true, the user must identify with RFID tag to check in on the desk device
requireIdentForUpdating - Boolean! If true, the user must identify with RFID tag to extend or check-out a booking
remoteCheckIn - Boolean! If true, users are allowed to check-in remotely using the app
qrCodeCheckIn - Boolean! If true, user are allowed to check-in using qr code in the app.
earlyCheckIn - Duration! Period of time, before start of booking, check-in is allowed.
privateOnly - Boolean! If true, the booker of a booking is private for all bookings.
showUserName - Boolean!
Example
{
  "initialDuration": "P3Y6M4DT12H30M5S",
  "durationLimit": "P3Y6M4DT12H30M5S",
  "daysInAdvanceLimit": 123,
  "daysInAdvanceLimitOffset": TimeOfDay,
  "autoCheckInOnPresence": false,
  "lateArrivalReminderDelay": "P3Y6M4DT12H30M5S",
  "lateArrivalCancelDelay": "P3Y6M4DT12H30M5S",
  "absenceReminderDelay": "P3Y6M4DT12H30M5S",
  "requireIdentForBooking": false,
  "requireIdentForCheckIn": false,
  "requireIdentForUpdating": false,
  "remoteCheckIn": false,
  "qrCodeCheckIn": true,
  "earlyCheckIn": "P3Y6M4DT12H30M5S",
  "privateOnly": false,
  "showUserName": true
}

ParkingBookingSettingsInput

Fields
Input Field Description
initialDuration - Duration
durationLimit - Duration
daysInAdvanceLimit - Int
daysInAdvanceLimitOffset - TimeOfDay
autoCheckInOnPresence - Boolean
lateArrivalReminderDelay - Duration
lateArrivalCancelDelay - Duration
absenceReminderDelay - Duration
requireIdentForBooking - Boolean
requireIdentForCheckIn - Boolean
requireIdentForUpdating - Boolean
remoteCheckIn - Boolean
qrCodeCheckIn - Boolean
earlyCheckIn - Duration
showUserName - Boolean
Example
{
  "initialDuration": "P3Y6M4DT12H30M5S",
  "durationLimit": "P3Y6M4DT12H30M5S",
  "daysInAdvanceLimit": 987,
  "daysInAdvanceLimitOffset": TimeOfDay,
  "autoCheckInOnPresence": false,
  "lateArrivalReminderDelay": "P3Y6M4DT12H30M5S",
  "lateArrivalCancelDelay": "P3Y6M4DT12H30M5S",
  "absenceReminderDelay": "P3Y6M4DT12H30M5S",
  "requireIdentForBooking": true,
  "requireIdentForCheckIn": true,
  "requireIdentForUpdating": true,
  "remoteCheckIn": true,
  "qrCodeCheckIn": true,
  "earlyCheckIn": "P3Y6M4DT12H30M5S",
  "showUserName": true
}

ParkingLotAttributes

Fields
Field Name Description
address - String
spots - Int
Example
{"address": "xyz789", "spots": 123}

ParkingLotAttributesInput

Fields
Input Field Description
address - String
spots - Int
Example
{"address": "xyz789", "spots": 987}

ParkingSpaceAttributes

Fields
Field Name Description
tags - [ParkingSpaceTag!]!
Example
{"tags": ["EV_CHARGING_STATION"]}

ParkingSpaceAttributesInput

Description

Attributes for parking spaces.

Fields
Input Field Description
tags - [ParkingSpaceTag!] Parking space features (omittable).
Example
{"tags": ["EV_CHARGING_STATION"]}

ParkingSpaceTag

Values
Enum Value Description

EV_CHARGING_STATION

Electric vehicle charging station available.

REGULAR_POWER_OUTLET

Standard power outlet available.

LARGE_VEHICLE_VAN_SPACE

Space suitable for vans and larger vehicles.

MOTORCYCLE_PARKING

Designated motorcycle parking.

BICYCLE_PARKING

Bicycle parking space.

ACCESSIBLE_PARKING_DISABLED

Accessible parking space.

WEATHER_PROTECTION

Covered or weather-protected parking.
Example
"EV_CHARGING_STATION"

Permission

Fields
Field Name Description
granted - Boolean!
Example
{"granted": false}

PermissionSet

Fields
Field Name Description
appCommand - AppCommandPermissions!
appSettings - AppSettingsPermissions!
flagsFlags - FlagsFlagsPermissions!
userUsers - UserUsersPermissions!
organizationOrganizations - OrganizationOrganizationsPermissions!
organizationMemberships - OrganizationMembershipsPermissions!
organizationMessages - OrganizationMessagesPermissions!
resourceTypes - ResourceTypesPermissions!
placeTypes - PlaceTypesPermissions!
deviceTypes - DeviceTypesPermissions!
deviceSerial - DeviceSerialPermissions!
facilityFacility - FacilityFacilityPermissions!
fileTypes - FileTypesPermissions!
fileSignedurl - FileSignedurlPermissions!
fileFiles - FileFilesPermissions!
firmwareFirmware - FirmwareFirmwarePermissions!
firmwareChannel - FirmwareChannelPermissions!
organizationMembershipinvitations - OrganizationMembershipinvitationsPermissions!
calendarCalendarsources - CalendarCalendarsourcesPermissions!
calendarCalendars - CalendarCalendarsPermissions!
calendarCalendarevents - CalendarCalendareventsPermissions!
colleagueColleagues - ColleagueColleaguesPermissions!
resourceResources - ResourceResourcesPermissions!
placePlaces - PlacePlacesPermissions!
bookingBookings - BookingBookingsPermissions!
mediaMedias - MediaMediasPermissions!
planPlans - PlanPlansPermissions!
notificationFcmtoken - NotificationFcmtokenPermissions!
licenseLicenses - LicenseLicensesPermissions!
licenseLicensetypes - LicenseLicensetypesPermissions!
licenseLicenseassociation - LicenseLicenseassociationPermissions!
idtagIdtags - IdtagIdtagsPermissions!
pinPins - PinPinsPermissions!
deviceDevices - DeviceDevicesPermissions!
deviceDeviceevents - DeviceDeviceeventsPermissions!
overviewOverviews - OverviewOverviewsPermissions!
overviewAuthcode - OverviewAuthcodePermissions!
calendarColleagues - CalendarColleaguesPermissions!
natsauthNatsaccount - NatsauthNatsaccountPermissions!
devicecommandDevice - DevicecommandDevicePermissions!
placePlacefeatures - PlacePlacefeaturesPermissions!
placePlacefeatureinstances - PlacePlacefeatureinstancesPermissions!
scheduleCalendar - ScheduleCalendarPermissions!
scheduleEvent - ScheduleEventPermissions!
scheduleEventdeviceaction - ScheduleEventdeviceactionPermissions!
organizationZoom - OrganizationZoomPermissions!
subscriptionSubscriptions - SubscriptionSubscriptionsPermissions!
subscriptionLicenses - SubscriptionLicensesPermissions!
subscriptionPaymentmethods - SubscriptionPaymentmethodsPermissions!
subscriptionBuyingid - SubscriptionBuyingidPermissions!
subscriptionBillingaddress - SubscriptionBillingaddressPermissions!
Example
{
  "appCommand": AppCommandPermissions,
  "appSettings": AppSettingsPermissions,
  "flagsFlags": FlagsFlagsPermissions,
  "userUsers": UserUsersPermissions,
  "organizationOrganizations": OrganizationOrganizationsPermissions,
  "organizationMemberships": OrganizationMembershipsPermissions,
  "organizationMessages": OrganizationMessagesPermissions,
  "resourceTypes": ResourceTypesPermissions,
  "placeTypes": PlaceTypesPermissions,
  "deviceTypes": DeviceTypesPermissions,
  "deviceSerial": DeviceSerialPermissions,
  "facilityFacility": FacilityFacilityPermissions,
  "fileTypes": FileTypesPermissions,
  "fileSignedurl": FileSignedurlPermissions,
  "fileFiles": FileFilesPermissions,
  "firmwareFirmware": FirmwareFirmwarePermissions,
  "firmwareChannel": FirmwareChannelPermissions,
  "organizationMembershipinvitations": OrganizationMembershipinvitationsPermissions,
  "calendarCalendarsources": CalendarCalendarsourcesPermissions,
  "calendarCalendars": CalendarCalendarsPermissions,
  "calendarCalendarevents": CalendarCalendareventsPermissions,
  "colleagueColleagues": ColleagueColleaguesPermissions,
  "resourceResources": ResourceResourcesPermissions,
  "placePlaces": PlacePlacesPermissions,
  "bookingBookings": BookingBookingsPermissions,
  "mediaMedias": MediaMediasPermissions,
  "planPlans": PlanPlansPermissions,
  "notificationFcmtoken": NotificationFcmtokenPermissions,
  "licenseLicenses": LicenseLicensesPermissions,
  "licenseLicensetypes": LicenseLicensetypesPermissions,
  "licenseLicenseassociation": LicenseLicenseassociationPermissions,
  "idtagIdtags": IdtagIdtagsPermissions,
  "pinPins": PinPinsPermissions,
  "deviceDevices": DeviceDevicesPermissions,
  "deviceDeviceevents": DeviceDeviceeventsPermissions,
  "overviewOverviews": OverviewOverviewsPermissions,
  "overviewAuthcode": OverviewAuthcodePermissions,
  "calendarColleagues": CalendarColleaguesPermissions,
  "natsauthNatsaccount": NatsauthNatsaccountPermissions,
  "devicecommandDevice": DevicecommandDevicePermissions,
  "placePlacefeatures": PlacePlacefeaturesPermissions,
  "placePlacefeatureinstances": PlacePlacefeatureinstancesPermissions,
  "scheduleCalendar": ScheduleCalendarPermissions,
  "scheduleEvent": ScheduleEventPermissions,
  "scheduleEventdeviceaction": ScheduleEventdeviceactionPermissions,
  "organizationZoom": OrganizationZoomPermissions,
  "subscriptionSubscriptions": SubscriptionSubscriptionsPermissions,
  "subscriptionLicenses": SubscriptionLicensesPermissions,
  "subscriptionPaymentmethods": SubscriptionPaymentmethodsPermissions,
  "subscriptionBuyingid": SubscriptionBuyingidPermissions,
  "subscriptionBillingaddress": SubscriptionBillingaddressPermissions
}

Pin

Fields
Field Name Description
id - ID!
code - String!
orgId - ID!
membershipId - ID
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "code": "abc123",
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "membershipId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
}

PinPinsPermissions

Fields
Field Name Description
create - Permission!
get - Permission!
update - Permission!
delete - Permission!
Example
{
  "create": Permission,
  "get": Permission,
  "update": Permission,
  "delete": Permission
}

Place

Fields
Field Name Description
currentBooking - Booking The active booking for this place right now, if any. Returns null if the place is not currently booked.
nextBooking - Booking The next upcoming booking for this place. Returns null if there are no future bookings.
id - ID!
name - String!
parentPlaceId - ID
placeTypeId - ID!
settings - PlaceSettings
attributes - PlaceAttributes
createdAt - DateTime!
updatedAt - DateTime!
deviceCount - Int
plan - Plan
fullName - [String!]! hierarchy field contains more information
hierarchy - [PlaceSummary!]!
hasChildren - Boolean!
media - Media
available - Availability Contains the available timespan for this place within the requested period. Note: this is always null if not requested with AvailableFilter using using allPlaces query.
calendar - PlaceFeatureInstance
zoomInfo - ZoomPlaceInfo Zoom connection info for this place. Returns null if the place has no Zoom connection. Note: only populated for Zoom-synced workspace places.
timeZoneOffset - Int! Time offset from UTC in seconds
owner - Membership
isDedicated - Boolean!
qrCodeString - String QR code string for this place. Currently represents the Zoom workspace QR code when the place has a Zoom connection; null otherwise.
schedulingSettings - SchedulingSettings Scheduling settings set directly on this place, before the hierarchy cascade is applied. Fields left to inherit from an ancestor are null.
mergedSchedulingSettings - SchedulingSettings Effective scheduling settings, resolved by cascading values down the place hierarchy. Use this to read the values that actually apply to the place.
Example
{
  "currentBooking": Booking,
  "nextBooking": Booking,
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "name": "abc123",
  "parentPlaceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "placeTypeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "settings": BuildingSettings,
  "attributes": BuildingAttributes,
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "deviceCount": 987,
  "plan": Plan,
  "fullName": ["xyz789"],
  "hierarchy": [PlaceSummary],
  "hasChildren": true,
  "media": Media,
  "available": Availability,
  "calendar": PlaceFeatureInstance,
  "zoomInfo": ZoomPlaceInfo,
  "timeZoneOffset": 987,
  "owner": Membership,
  "isDedicated": false,
  "qrCodeString": "abc123",
  "schedulingSettings": SchedulingSettings,
  "mergedSchedulingSettings": SchedulingSettings
}

PlaceAttributes

PlaceAttributesInput

Description

Attributes for a place. Provide the type matching your place type.

Fields
Input Field Description
BUILDING - BuildingAttributesInput
SITE - SiteAttributesInput
FLOOR - FloorAttributesInput
PARKING_LOT - ParkingLotAttributesInput
PARKING_SPACE - ParkingSpaceAttributesInput
DESK - DeskAttributesInput
ROOM - RoomAttributesInput
Example
{
  "BUILDING": BuildingAttributesInput,
  "SITE": SiteAttributesInput,
  "FLOOR": FloorAttributesInput,
  "PARKING_LOT": ParkingLotAttributesInput,
  "PARKING_SPACE": ParkingSpaceAttributesInput,
  "DESK": DeskAttributesInput,
  "ROOM": RoomAttributesInput
}

PlaceBookingSummary

Fields
Field Name Description
totalBookingCount - Int!
totalBookingSeconds - Int!
activeUserCount - Int!
totalUserCount - Int!
distribution - [PlaceDistribution!]
Example
{
  "totalBookingCount": 123,
  "totalBookingSeconds": 123,
  "activeUserCount": 987,
  "totalUserCount": 123,
  "distribution": [PlaceDistribution]
}

PlaceDistribution

Fields
Field Name Description
hour - Int!
count - Int!
Example
{"hour": 987, "count": 123}

PlaceFeature

Fields
Field Name Description
id - ID!
enabled - Boolean!
Example
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67", "enabled": false}

PlaceFeatureConnection

Fields
Field Name Description
placeFeatures - [PlaceFeature!]!
totalCount - Int!
Example
{"placeFeatures": [PlaceFeature], "totalCount": 123}

PlaceFeatureInstance

Fields
Field Name Description
placeId - ID!
featureId - ID!
orgId - ID!
enabled - Boolean!
disabled_reason - String
attributes - PlaceFeatureInstanceAttributes
Example
{
  "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "featureId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "enabled": false,
  "disabled_reason": "abc123",
  "attributes": PlaceFeatureInstanceCalendarAttributes
}

PlaceFeatureInstanceAttributes

Example
PlaceFeatureInstanceCalendarAttributes

PlaceFeatureInstanceAttributesInput

Fields
Input Field Description
CALENDAR - PlaceFeatureInstanceCalendarAttributesInput
Example
{"CALENDAR": PlaceFeatureInstanceCalendarAttributesInput}

PlaceFeatureInstanceCalendarAttributes

Fields
Field Name Description
remoteId - String
Example
{"remoteId": "xyz789"}

PlaceFeatureInstanceCalendarAttributesInput

Fields
Input Field Description
remoteId - String
Example
{"remoteId": "abc123"}

PlaceFeatureInstanceConnection

Fields
Field Name Description
placeFeatureInstances - [PlaceFeatureInstance!]!
totalCount - Int!
Example
{
  "placeFeatureInstances": [PlaceFeatureInstance],
  "totalCount": 987
}

PlaceFeatureInstanceFilter

Fields
Input Field Description
placeId - ID!
featureId - ID
enabled - Boolean
Example
{
  "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "featureId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "enabled": true
}

PlaceFilter

Fields
Input Field Description
placeTypeIds - [ID!]
search - String Checks if name contains the search term.
owner - OwnerFilter
parentPlaceIds - [ID!] Northern lights only accepts a single parent place.
recursive - Boolean
available - AvailableFilter Filter result based on booking availability. If available is set with query allPlaces the result is first order by the greatest consecutive available seconds of the requested period, then ordered by user specified order (if any).
enabledFeatures - [String!]
hasZoomConnection - Boolean Filter to places that have (true) or do not have (false) a Zoom connection.
Example
{
  "placeTypeIds": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"],
  "search": "xyz789",
  "owner": OwnerFilter,
  "parentPlaceIds": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"],
  "recursive": false,
  "available": AvailableFilter,
  "enabledFeatures": ["abc123"],
  "hasZoomConnection": true
}

PlaceLicenseState

Values
Enum Value Description

UNSPECIFIED

State unknown.

REVOKED

License revoked.

EXPIRED

License expired.

ACTIVE

License active.

PENDING_ACTIVATION

Assigned but not yet activated.

NOT_ACTIVE

No active license.

EXPIRE_SOON

License expires soon.

NOT_ASSIGNED

No license assigned.
Example
"UNSPECIFIED"

PlaceLicenseTypeState

Description

The license state for a license type

Fields
Field Name Description
licenseTypeId - ID!
state - PlaceLicenseState!
startTime - DateTime

When the state begins.

Note this represents when the current license state begins, and not the actual license start time.

endTime - DateTime

When the state ends.

Note this represents when the current license state ends, and not the actual license end time.

licenseIds - [ID!]!
Example
{
  "licenseTypeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "state": "UNSPECIFIED",
  "startTime": "2007-12-03T10:15:30Z",
  "endTime": "2007-12-03T10:15:30Z",
  "licenseIds": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"]
}

PlaceOrder

Fields
Input Field Description
field - PlaceOrderField!
desc - Boolean!
Example
{"field": "NAME", "desc": true}

PlaceOrderField

Values
Enum Value Description

NAME

PLACE_TYPE_ID

CREATED_AT

UPDATED_AT

Example
"NAME"

PlacePlacefeatureinstancesPermissions

Fields
Field Name Description
get - Permission!
list - Permission!
create - Permission!
delete - Permission!
update - Permission!
Example
{
  "get": Permission,
  "list": Permission,
  "create": Permission,
  "delete": Permission,
  "update": Permission
}

PlacePlacefeaturesPermissions

Fields
Field Name Description
get - Permission!
list - Permission!
create - Permission!
delete - Permission!
update - Permission!
Example
{
  "get": Permission,
  "list": Permission,
  "create": Permission,
  "delete": Permission,
  "update": Permission
}

PlacePlacesPermissions

Fields
Field Name Description
get - Permission!
update - Permission!
delete - Permission!
list - Permission!
create - Permission!
statisticsGet - Permission!
Example
{
  "get": Permission,
  "update": Permission,
  "delete": Permission,
  "list": Permission,
  "create": Permission,
  "statisticsGet": Permission
}

PlaceSettings

PlaceSettingsInput

Fields
Input Field Description
BUILDING - BuildingSettingsInput
SITE - SiteSettingsInput
FLOOR - FloorSettingsInput
ZONE - ZoneSettingsInput
DESK - DeskSettingsInput
ROOM - RoomSettingsInput
Example
{
  "BUILDING": BuildingSettingsInput,
  "SITE": SiteSettingsInput,
  "FLOOR": FloorSettingsInput,
  "ZONE": ZoneSettingsInput,
  "DESK": DeskSettingsInput,
  "ROOM": RoomSettingsInput
}

PlaceStatistics

Fields
Field Name Description
id - ID!
displayName - String!
placeTypeId - String!
capacity - Int
bookingCount - Int
bookingSeconds - Int
notCheckedInCount - Int
occupiedCount - Int
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "displayName": "abc123",
  "placeTypeId": "xyz789",
  "capacity": 123,
  "bookingCount": 123,
  "bookingSeconds": 123,
  "notCheckedInCount": 123,
  "occupiedCount": 123
}

PlaceStatisticsConnection

Fields
Field Name Description
pageInfo - PageInfo!
totalCount - Int!
statistics - [PlaceStatistics!]!
Example
{
  "pageInfo": PageInfo,
  "totalCount": 123,
  "statistics": [PlaceStatistics]
}

PlaceStatisticsFilter

Fields
Input Field Description
ParentPlaceIds - [ID!]
IsoDayOfWeek - Int
TimeWindow - TimeWindow!
PlaceTypeId - ID
recursive - Boolean!
Example
{
  "ParentPlaceIds": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"],
  "IsoDayOfWeek": 987,
  "TimeWindow": TimeWindow,
  "PlaceTypeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "recursive": false
}

PlaceStatisticsOrder

Fields
Input Field Description
field - PlaceStatisticsOrderField!
desc - Boolean!
Example
{"field": "PLACE_TYPE_ID", "desc": true}

PlaceStatisticsOrderField

Values
Enum Value Description

PLACE_TYPE_ID

CAPACITY

BOOKING_COUNT

NOT_CHECKED_IN

BOOKING_TIME

Sorts by average booking duration (total booking seconds divided by booking count), not the summed total.
Example
"PLACE_TYPE_ID"

PlaceSummary

Fields
Field Name Description
id - ID!
name - String!
placeTypeId - ID!
parentPlaceId - ID
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "name": "abc123",
  "placeTypeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "parentPlaceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
}

PlaceType

Fields
Field Name Description
id - ID!
name - String!
createdAt - DateTime!
updatedAt - DateTime!
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "name": "xyz789",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

PlaceTypesPermissions

Fields
Field Name Description
create - Permission!
list - Permission!
Example
{
  "create": Permission,
  "list": Permission
}

PlacesConnection

Fields
Field Name Description
pageInfo - PageInfo!
totalCount - Int!
places - [Place!]!
Example
{
  "pageInfo": PageInfo,
  "totalCount": 123,
  "places": [Place]
}

Plan

Fields
Field Name Description
id - ID!
orgId - ID!
placeId - ID!
mediaId - ID!
annotations - String!
createdAt - DateTime!
updatedAt - DateTime!
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "mediaId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "annotations": "abc123",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

PlanPlansPermissions

Fields
Field Name Description
create - Permission!
update - Permission!
delete - Permission!
get - Permission!
Example
{
  "create": Permission,
  "update": Permission,
  "delete": Permission,
  "get": Permission
}

Resource

Fields
Field Name Description
id - ID!
name - String!
place - Place
orgId - ID!
resourceTypeId - ID!
remoteId - String
createdAt - DateTime!
updatedAt - DateTime!
attributes - ResourceAttributes!
settings - ResourceSettings!
unmergedSettings - ResourceSettings!
devices - [Device!]
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "name": "xyz789",
  "place": Place,
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "resourceTypeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "remoteId": "abc123",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "attributes": ResourceAttributes,
  "settings": ResourceSettings,
  "unmergedSettings": ResourceSettings,
  "devices": [Device]
}

ResourceAttributes

Fields
Field Name Description
desk - DeskAttributes
room - RoomAttributes
Example
{
  "desk": DeskAttributes,
  "room": RoomAttributes
}

ResourceBookingSettings

Example
RoomBookingSettings

ResourceResourcesPermissions

Fields
Field Name Description
get - Permission!
update - Permission!
delete - Permission!
list - Permission!
create - Permission!
statisticsGet - Permission!
Example
{
  "get": Permission,
  "update": Permission,
  "delete": Permission,
  "list": Permission,
  "create": Permission,
  "statisticsGet": Permission
}

ResourceSettings

Fields
Field Name Description
timeZone - String!
timePresentation - TimePresentation!
booking - ResourceBookingSettings!
deviceScreenTemplate - DeviceScreenTemplate!
Example
{
  "timeZone": "abc123",
  "timePresentation": "H24",
  "booking": RoomBookingSettings,
  "deviceScreenTemplate": "LargeResourceName"
}

ResourceTypesPermissions

Fields
Field Name Description
create - Permission!
list - Permission!
Example
{
  "create": Permission,
  "list": Permission
}

Role

Values
Enum Value Description

OWNER

Organization owner with full access to all features and license management.

ORG_ADMIN

Administrator who can manage members, places, devices, bookings, and organization settings.

DESK_ADMIN

Legacy desk management role. Deprecated - use ORG_ADMIN instead.

USER

Standard user who can create bookings.

COMMAND_USER

Can send commands to devices.

COMMAND_ADMIN

Can manage device commands and settings.

DEVICE_VIEWER

Read-only access to device status.

BILLING_ADMIN

Full subscription management: purchase, deploy, transfer, delete, manage billing.

BILLING_EDITOR

Payment method management, create subscriptions, add licenses. Cannot deploy/transfer/delete.

BILLING_VIEWER

Read-only access to subscription and billing information.
Example
"OWNER"

Room

Fields
Field Name Description
id - ID!
orgId - ID!
floorId - ID!
floor - Floor
name - String!
email - String
capacity - Int!
roomType - String
resources - [RoomResource!]!
bookingSettings - RoomBookingSettings!
currentBooking - RoomBooking The currently active booking, if any
nextBooking - RoomBooking The next upcoming booking, if any
available - Availability Contains the available timespan for this room within the requested period. Note: this is always null if not requested with AvailableFilter, e.g. using allRooms query.
timeZone - String! Time zone of this room. The time zone is picked from the building with the organization default as fallback.
timeZoneOffset - Int! Time offset from UTC in seconds
timePresentation - TimePresentation! Time presentation used for this room. The value is picked from the building with the organization default as fallback.
deviceScreenTemplate - DeviceScreenTemplate
brokenEquipmentReportEmails - [String!]
createdAt - DateTime!
updatedAt - DateTime!
license - License
media - Media
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "floorId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "floor": Floor,
  "name": "xyz789",
  "email": "xyz789",
  "capacity": 987,
  "roomType": "abc123",
  "resources": ["ROOM_TEMPERATURE"],
  "bookingSettings": RoomBookingSettings,
  "currentBooking": RoomBooking,
  "nextBooking": RoomBooking,
  "available": Availability,
  "timeZone": "abc123",
  "timeZoneOffset": 123,
  "timePresentation": "H24",
  "deviceScreenTemplate": "LargeResourceName",
  "brokenEquipmentReportEmails": ["xyz789"],
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "license": License,
  "media": Media
}

RoomAttributes

Fields
Field Name Description
capacity - Int
tags - [String!]!
Example
{"capacity": 123, "tags": ["xyz789"]}

RoomAttributesInput

Fields
Input Field Description
capacity - Int
tags - [String!]
Example
{"capacity": 123, "tags": ["abc123"]}

RoomBooking

Fields
Field Name Description
id - ID!
bookedBy - String!
user - User
room - Room!
timeZone - String
title - String!
startTime - DateTime!
endTime - DateTime!
teamsMeeting - Boolean
attendees - [Attendee!]!
recurring - String
endRecurringDate - DateTime
isPrivate - Boolean
isImmutable - Boolean
canceled - DateTime
checkedIn - DateTime
checkedOut - DateTime
isWholeDay - Boolean
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "bookedBy": "abc123",
  "user": User,
  "room": Room,
  "timeZone": "xyz789",
  "title": "xyz789",
  "startTime": "2007-12-03T10:15:30Z",
  "endTime": "2007-12-03T10:15:30Z",
  "teamsMeeting": false,
  "attendees": [Attendee],
  "recurring": "abc123",
  "endRecurringDate": "2007-12-03T10:15:30Z",
  "isPrivate": false,
  "isImmutable": true,
  "canceled": "2007-12-03T10:15:30Z",
  "checkedIn": "2007-12-03T10:15:30Z",
  "checkedOut": "2007-12-03T10:15:30Z",
  "isWholeDay": false
}

RoomBookingEvent

Fields
Field Name Description
added - RoomBooking
updated - RoomBooking
deleted - RoomBooking
Example
{
  "added": RoomBooking,
  "updated": RoomBooking,
  "deleted": RoomBooking
}

RoomBookingFilter

Fields
Input Field Description
orgId - ID
roomId - ID
buildingId - ID
timeWindow - TimeWindow
userId - ID
onlyActiveBookings - Boolean
iCalUID - BookingFilterICalUID
Example
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "roomId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "buildingId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "timeWindow": TimeWindow,
  "userId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "onlyActiveBookings": false,
  "iCalUID": BookingFilterICalUID
}

RoomBookingOrder

Fields
Input Field Description
field - RoomBookingOrderField!
desc - Boolean!
Example
{"field": "ORGANIZATION_NAME", "desc": true}

RoomBookingOrderField

Values
Enum Value Description

ORGANIZATION_NAME

ROOM_NAME

USER_NAME

START_TIME

END_TIME

CREATED_AT

UPDATED_AT

Example
"ORGANIZATION_NAME"

RoomBookingSettings

Fields
Field Name Description
durationLimit - Duration!
bookingWindowStarts - TimeOfDay!
bookingWindowEnds - TimeOfDay!
daysInAdvanceLimit - Int! How many calendar days in advance you may place a booking
initialDuration - Duration! The initial/default booking duration
remoteCheckIn - Boolean! If true, users are allowed to check-in remotely using the app
qrCodeCheckIn - Boolean! If true, user are allowed to check-in using qr code in the app.
earlyCheckIn - Duration! Period of time, before start of booking, check-in is allowed.
privateOnly - Boolean! If true, the booker of a booking is private for all bookings.
requireIdentForBooking - Boolean! If true, the room device will require identification with RFID tag to allow the user to book the desk.
requireIdentForCheckIn - Boolean! If true, the user must identify with RFID tag to check in on the room device
requireIdentForUpdating - Boolean! If true, the user must identify with RFID tag to extend or check-out a booking
autoCheckInOnPresence - Boolean! If true, the desk device will automatically check-in a current booking on presence detection desk specific setting, will be removed for rooms
lateArrivalReminderDelay - Duration! If the user has not showed up after this delay, a late-arrival notice is pushed to the user
lateArrivalCancelDelay - Duration! If the user has not showed up after this delay, the booking is canceled.
dimDown - Boolean!
screenBrightness - ScreenBrightness!
checkInDisabled - Boolean! If true, no check in is required once a meeting is booked, and users will be automatically checked in with the early check in offset. If false, users are required to check in to a meeting to keep the meeting.
showQrForBooking - Boolean! If true, show QR code on the device booking screen
showQrForCheckIn - Boolean! If true, show QR code on the device check-in screen
showQrForUpdating - Boolean! If true, show QR code on the device update/extend screen
Example
{
  "durationLimit": "P3Y6M4DT12H30M5S",
  "bookingWindowStarts": TimeOfDay,
  "bookingWindowEnds": TimeOfDay,
  "daysInAdvanceLimit": 987,
  "initialDuration": "P3Y6M4DT12H30M5S",
  "remoteCheckIn": false,
  "qrCodeCheckIn": true,
  "earlyCheckIn": "P3Y6M4DT12H30M5S",
  "privateOnly": true,
  "requireIdentForBooking": true,
  "requireIdentForCheckIn": true,
  "requireIdentForUpdating": true,
  "autoCheckInOnPresence": false,
  "lateArrivalReminderDelay": "P3Y6M4DT12H30M5S",
  "lateArrivalCancelDelay": "P3Y6M4DT12H30M5S",
  "dimDown": true,
  "screenBrightness": "LOW",
  "checkInDisabled": false,
  "showQrForBooking": true,
  "showQrForCheckIn": false,
  "showQrForUpdating": true
}

RoomBookingSettingsInput

Fields
Input Field Description
initialDuration - Duration
durationLimit - Duration
bookingWindowStarts - TimeOfDay
bookingWindowEnds - TimeOfDay
remoteCheckIn - Boolean
qrCodeCheckIn - Boolean
earlyCheckIn - Duration
daysInAdvanceLimit - Int
requireIdentForBooking - Boolean
requireIdentForCheckIn - Boolean
requireIdentForUpdating - Boolean
lateArrivalReminderDelay - Duration
lateArrivalCancelDelay - Duration
dimDown - Boolean
screenBrightness - ScreenBrightness
checkInDisabled - Boolean
showQrForBooking - Boolean
showQrForCheckIn - Boolean
showQrForUpdating - Boolean
Example
{
  "initialDuration": "P3Y6M4DT12H30M5S",
  "durationLimit": "P3Y6M4DT12H30M5S",
  "bookingWindowStarts": TimeOfDay,
  "bookingWindowEnds": TimeOfDay,
  "remoteCheckIn": false,
  "qrCodeCheckIn": false,
  "earlyCheckIn": "P3Y6M4DT12H30M5S",
  "daysInAdvanceLimit": 123,
  "requireIdentForBooking": false,
  "requireIdentForCheckIn": true,
  "requireIdentForUpdating": true,
  "lateArrivalReminderDelay": "P3Y6M4DT12H30M5S",
  "lateArrivalCancelDelay": "P3Y6M4DT12H30M5S",
  "dimDown": true,
  "screenBrightness": "LOW",
  "checkInDisabled": false,
  "showQrForBooking": true,
  "showQrForCheckIn": true,
  "showQrForUpdating": false
}

RoomBookingsConnection

Fields
Field Name Description
pageInfo - PageInfo!
totalCount - Int!
bookings - [RoomBooking!]!
Example
{
  "pageInfo": PageInfo,
  "totalCount": 987,
  "bookings": [RoomBooking]
}

RoomResource

Values
Enum Value Description

ROOM_TEMPERATURE

CONTROL_PANEL

SOUND_MICROPHONES

SPEAKER

CAMERA

LIGHTS

WHITEBOARD

DISPLAY

PROJECTOR_SCREEN

NETWORK

CONNECTIVITY

PHONE

FURNITURE

OTHER

Example
"ROOM_TEMPERATURE"

RoomSettings

Fields
Field Name Description
timezone - String Time zone of this room. The time zone is picked from the building with the organization default as fallback.
timePresentation - TimePresentation Time presentation used for this room. The value is picked from the building with the organization default as fallback.
deviceScreenTemplate - DeviceScreenTemplate
brokenEquipmentReportEmails - [String!]
booking - RoomBookingSettings
Example
{
  "timezone": "abc123",
  "timePresentation": "H24",
  "deviceScreenTemplate": "LargeResourceName",
  "brokenEquipmentReportEmails": ["abc123"],
  "booking": RoomBookingSettings
}

RoomSettingsInput

Fields
Input Field Description
deviceScreenTemplate - DeviceScreenTemplate
brokenEquipmentReportEmails - [String!]
booking - RoomBookingSettingsInput
Example
{
  "deviceScreenTemplate": "LargeResourceName",
  "brokenEquipmentReportEmails": ["abc123"],
  "booking": RoomBookingSettingsInput
}

ScheduleCalendar

Fields
Field Name Description
name - ID!
summary - String
description - String
timeZone - String
createdAt - DateTime!
updatedAt - DateTime!
Example
{
  "name": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "summary": "abc123",
  "description": "abc123",
  "timeZone": "xyz789",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

ScheduleCalendarPermissions

Fields
Field Name Description
get - Permission!
list - Permission!
create - Permission!
delete - Permission!
update - Permission!
Example
{
  "get": Permission,
  "list": Permission,
  "create": Permission,
  "delete": Permission,
  "update": Permission
}

ScheduleDeviceAction

Fields
Field Name Description
name - ID!
createdAt - DateTime!
updatedAt - DateTime!
action - String!
arguments - [String!]
state - ScheduleDeviceActionState!
error - String
Example
{
  "name": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "action": "abc123",
  "arguments": ["xyz789"],
  "state": "UNSPECIFIED",
  "error": "xyz789"
}

ScheduleDeviceActionState

Values
Enum Value Description

UNSPECIFIED

RUNNING

SUCCEEDED

FAILED

Example
"UNSPECIFIED"

ScheduleEvent

Fields
Field Name Description
name - ID!
createdAt - DateTime!
updatedAt - DateTime!
summary - String
description - String
startTime - DateTime!
endTime - DateTime!
timeZone - String
recurrence - [String!]
recurringEventId - String
devices - [Device!] Only "minimal" device fields supported.
deviceAction - String
deviceActionArguments - [String!]
deviceActionTriggeredAt - DateTime
notificationEmails - [String!]
deviceActionCompletedAt - DateTime
deviceActionState - ScheduleEventActionState
notificationBeforeOffset - Duration
Example
{
  "name": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "summary": "xyz789",
  "description": "xyz789",
  "startTime": "2007-12-03T10:15:30Z",
  "endTime": "2007-12-03T10:15:30Z",
  "timeZone": "abc123",
  "recurrence": ["abc123"],
  "recurringEventId": "abc123",
  "devices": [Device],
  "deviceAction": "abc123",
  "deviceActionArguments": ["xyz789"],
  "deviceActionTriggeredAt": "2007-12-03T10:15:30Z",
  "notificationEmails": ["abc123"],
  "deviceActionCompletedAt": "2007-12-03T10:15:30Z",
  "deviceActionState": "UNSPECIFIED",
  "notificationBeforeOffset": "P3Y6M4DT12H30M5S"
}

ScheduleEventActionState

Values
Enum Value Description

UNSPECIFIED

PENDING

RUNNING

SUCCEEDED

FAILED

PARTIALLY_SUCCEEDED

Example
"UNSPECIFIED"

ScheduleEventInput

Fields
Input Field Description
name - ID
summary - String
description - String
startTime - DateTime
endTime - DateTime
timeZone - String
recurrence - [String!]
recurringEventId - String
devices - [String!] Array of device names, format: organizations/{orgId}/devices/{deviceId}. The device must be in the same organization as the event.
deviceAction - String
deviceActionArguments - [String!]
notificationEmails - [String!]
notificationBeforeOffset - Duration Duration offset before the event start time to be notified.
Example
{
  "name": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "summary": "xyz789",
  "description": "abc123",
  "startTime": "2007-12-03T10:15:30Z",
  "endTime": "2007-12-03T10:15:30Z",
  "timeZone": "abc123",
  "recurrence": ["xyz789"],
  "recurringEventId": "abc123",
  "devices": ["abc123"],
  "deviceAction": "abc123",
  "deviceActionArguments": ["abc123"],
  "notificationEmails": ["xyz789"],
  "notificationBeforeOffset": "P3Y6M4DT12H30M5S"
}

ScheduleEventPermissions

Fields
Field Name Description
get - Permission!
list - Permission!
create - Permission!
delete - Permission!
update - Permission!
Example
{
  "get": Permission,
  "list": Permission,
  "create": Permission,
  "delete": Permission,
  "update": Permission
}

ScheduleEventdeviceactionPermissions

Fields
Field Name Description
list - Permission!
Example
{"list": Permission}

ScheduleEventsOrder

Fields
Input Field Description
field - ScheduleEventsOrderField!
desc - Boolean!
Example
{"field": "START_TIME", "desc": true}

ScheduleEventsOrderField

Values
Enum Value Description

START_TIME

Example
"START_TIME"

SchedulingConfiguration

Description

Booking behaviour for a single resource type (room, desk or parking).

Fields
Field Name Description
initialDuration - Duration
durationLimit - Duration
daysInAdvanceLimit - Int
daysInAdvanceLimitOffset - Duration
remoteCheckIn - Boolean
qrCodeCheckIn - Boolean
earlyCheckIn - Duration
autoCheckInOnPresence - Boolean
lateArrivalReminderDelay - Duration
lateArrivalCancelDelay - Duration
absenceReminderDelay - Duration
requireIdentForBooking - Boolean
requireIdentForCheckIn - Boolean
requireIdentForUpdating - Boolean
privateOnly - Boolean
showUserName - Boolean
showQrForBooking - Boolean
showQrForCheckIn - Boolean
showQrForUpdating - Boolean
bookingWindowStarts - TimeOfDay
bookingWindowEnds - TimeOfDay
dimDown - Boolean
screenBrightness - ScreenBrightness
checkInDisabled - Boolean
Example
{
  "initialDuration": "P3Y6M4DT12H30M5S",
  "durationLimit": "P3Y6M4DT12H30M5S",
  "daysInAdvanceLimit": 987,
  "daysInAdvanceLimitOffset": "P3Y6M4DT12H30M5S",
  "remoteCheckIn": true,
  "qrCodeCheckIn": true,
  "earlyCheckIn": "P3Y6M4DT12H30M5S",
  "autoCheckInOnPresence": false,
  "lateArrivalReminderDelay": "P3Y6M4DT12H30M5S",
  "lateArrivalCancelDelay": "P3Y6M4DT12H30M5S",
  "absenceReminderDelay": "P3Y6M4DT12H30M5S",
  "requireIdentForBooking": false,
  "requireIdentForCheckIn": false,
  "requireIdentForUpdating": false,
  "privateOnly": true,
  "showUserName": false,
  "showQrForBooking": false,
  "showQrForCheckIn": false,
  "showQrForUpdating": true,
  "bookingWindowStarts": TimeOfDay,
  "bookingWindowEnds": TimeOfDay,
  "dimDown": false,
  "screenBrightness": "LOW",
  "checkInDisabled": false
}

SchedulingConfigurationInput

Fields
Input Field Description
initialDuration - Duration
durationLimit - Duration
daysInAdvanceLimit - Int
daysInAdvanceLimitOffset - Duration
remoteCheckIn - Boolean
qrCodeCheckIn - Boolean
earlyCheckIn - Duration
autoCheckInOnPresence - Boolean
lateArrivalReminderDelay - Duration
lateArrivalCancelDelay - Duration
absenceReminderDelay - Duration
requireIdentForBooking - Boolean
requireIdentForCheckIn - Boolean
requireIdentForUpdating - Boolean
privateOnly - Boolean
showUserName - Boolean
showQrForBooking - Boolean
showQrForCheckIn - Boolean
showQrForUpdating - Boolean
bookingWindowStarts - TimeOfDay
bookingWindowEnds - TimeOfDay
dimDown - Boolean
screenBrightness - ScreenBrightness
checkInDisabled - Boolean
Example
{
  "initialDuration": "P3Y6M4DT12H30M5S",
  "durationLimit": "P3Y6M4DT12H30M5S",
  "daysInAdvanceLimit": 123,
  "daysInAdvanceLimitOffset": "P3Y6M4DT12H30M5S",
  "remoteCheckIn": true,
  "qrCodeCheckIn": false,
  "earlyCheckIn": "P3Y6M4DT12H30M5S",
  "autoCheckInOnPresence": true,
  "lateArrivalReminderDelay": "P3Y6M4DT12H30M5S",
  "lateArrivalCancelDelay": "P3Y6M4DT12H30M5S",
  "absenceReminderDelay": "P3Y6M4DT12H30M5S",
  "requireIdentForBooking": true,
  "requireIdentForCheckIn": false,
  "requireIdentForUpdating": true,
  "privateOnly": false,
  "showUserName": true,
  "showQrForBooking": false,
  "showQrForCheckIn": true,
  "showQrForUpdating": true,
  "bookingWindowStarts": TimeOfDay,
  "bookingWindowEnds": TimeOfDay,
  "dimDown": true,
  "screenBrightness": "LOW",
  "checkInDisabled": true
}

SchedulingProfiles

Description

Per-resource-type booking configuration.

Fields
Field Name Description
room - SchedulingConfiguration
desk - SchedulingConfiguration
parking - SchedulingConfiguration
Example
{
  "room": SchedulingConfiguration,
  "desk": SchedulingConfiguration,
  "parking": SchedulingConfiguration
}

SchedulingProfilesInput

Fields
Input Field Description
room - SchedulingConfigurationInput
desk - SchedulingConfigurationInput
parking - SchedulingConfigurationInput
Example
{
  "room": SchedulingConfigurationInput,
  "desk": SchedulingConfigurationInput,
  "parking": SchedulingConfigurationInput
}

SchedulingSettings

Description

Scheduling settings for organization and locations. CSS-like data resolution parent -> child.

Fields
Field Name Description
timezone - String
language - String
timePresentation - TimePresentation
openHours - WeeklyOpenHours
privateBookingsOnly - Boolean
whitelist - String
whitelistEnabled - Boolean
deviceScreenTemplate - DeviceScreenTemplate
brokenEquipmentReportEmails - [String!]
deviceErrorReportWebhookUrl - String
deviceErrorReportEmails - [String!]
logoMediaId - ID
profiles - SchedulingProfiles
Example
{
  "timezone": "abc123",
  "language": "xyz789",
  "timePresentation": "H24",
  "openHours": WeeklyOpenHours,
  "privateBookingsOnly": true,
  "whitelist": "xyz789",
  "whitelistEnabled": true,
  "deviceScreenTemplate": "LargeResourceName",
  "brokenEquipmentReportEmails": ["abc123"],
  "deviceErrorReportWebhookUrl": "abc123",
  "deviceErrorReportEmails": ["xyz789"],
  "logoMediaId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "profiles": SchedulingProfiles
}

SchedulingSettingsInput

Description

Input for scheduling settings. Values written here are the organization's/place's own settings before the hierarchy cascade.

Fields
Input Field Description
timezone - String
language - String
timePresentation - TimePresentation
openHours - WeeklyOpenHoursInput
privateBookingsOnly - Boolean
whitelist - String
whitelistEnabled - Boolean
deviceScreenTemplate - DeviceScreenTemplate
brokenEquipmentReportEmails - [String!]
deviceErrorReportWebhookUrl - String
deviceErrorReportEmails - [String!]
logoMediaId - ID
profiles - SchedulingProfilesInput
Example
{
  "timezone": "xyz789",
  "language": "abc123",
  "timePresentation": "H24",
  "openHours": WeeklyOpenHoursInput,
  "privateBookingsOnly": false,
  "whitelist": "xyz789",
  "whitelistEnabled": false,
  "deviceScreenTemplate": "LargeResourceName",
  "brokenEquipmentReportEmails": ["abc123"],
  "deviceErrorReportWebhookUrl": "xyz789",
  "deviceErrorReportEmails": ["xyz789"],
  "logoMediaId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "profiles": SchedulingProfilesInput
}

ScreenBrightness

Values
Enum Value Description

LOW

MEDIUM

HIGH

AUTO

Example
"LOW"

SearchToken

Fields
Field Name Description
token - String!
expiresAt - DateTime!
Example
{
  "token": "xyz789",
  "expiresAt": "2007-12-03T10:15:30Z"
}

SetFeatureFlagInput

Fields
Input Field Description
id - ID!
value - Boolean!
Example
{"id": "59fb1147-4713-4a12-a5a2-640c61c2ca67", "value": false}

SettingsInput

Fields
Input Field Description
google - GoogleInput
microsoft - MicrosoftInput
Example
{
  "google": GoogleInput,
  "microsoft": MicrosoftInput
}

SignDeviceJwtInput

Fields
Input Field Description
orgId - String!
deviceId - String!
devicePublicKey - String!
Example
{
  "orgId": "abc123",
  "deviceId": "xyz789",
  "devicePublicKey": "abc123"
}

SignMembershipJwtInput

Description

Input for signing a membership JWT for NATS authentication.

Fields
Input Field Description
orgId - ID! Organization ID
membershipId - ID! Membership ID to sign JWT for
applications - [OrgApplication!] Applications to grant NATS subject access for. bwp.info.> is always included. Each entry grants access to its corresponding subject space based on the caller's permissions.
publicKey - ID! User's NATS public key for JWT authentication
Example
{
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "membershipId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "applications": ["COMMAND"],
  "publicKey": "59fb1147-4713-4a12-a5a2-640c61c2ca67"
}

SignMembershipJwtResponse

Fields
Field Name Description
jwt - String!
Example
{"jwt": "abc123"}

SignedUrl

Description

A time-limited signed URL for accessing a protected resource. The URL is valid until expiresAt, after which a new one must be requested.

Fields
Field Name Description
url - String!
expiresAt - DateTime!
Example
{
  "url": "xyz789",
  "expiresAt": "2007-12-03T10:15:30Z"
}

SiteAttributes

Fields
Field Name Description
address - String
Example
{"address": "xyz789"}

SiteAttributesInput

Fields
Input Field Description
address - String
Example
{"address": "abc123"}

SiteSettings

Fields
Field Name Description
timezone - String
openHours - WeeklyOpenHours
Example
{
  "timezone": "xyz789",
  "openHours": WeeklyOpenHours
}

SiteSettingsInput

Fields
Input Field Description
timezone - String
openHours - WeeklyOpenHoursInput
Example
{
  "timezone": "xyz789",
  "openHours": WeeklyOpenHoursInput
}

StartSyncOrgSourcesResponse

Fields
Field Name Description
started - Boolean!
Example
{"started": false}

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"xyz789"

Subject

Types
Union Types

Overview

Example
Overview

SubscriptionBillingaddressPermissions

Fields
Field Name Description
update - Permission!
Example
{"update": Permission}

SubscriptionBuyingidPermissions

Fields
Field Name Description
configure - Permission!
Example
{"configure": Permission}

SubscriptionLicensesPermissions

Fields
Field Name Description
add - Permission!
Example
{"add": Permission}

SubscriptionPaymentmethodsPermissions

Fields
Field Name Description
manage - Permission!
Example
{"manage": Permission}

SubscriptionSubscriptionsPermissions

Fields
Field Name Description
get - Permission!
create - Permission!
delete - Permission!
deploy - Permission!
revoke - Permission!
transfer - Permission!
Example
{
  "get": Permission,
  "create": Permission,
  "delete": Permission,
  "deploy": Permission,
  "revoke": Permission,
  "transfer": Permission
}

SyncLogEntry

Description

A single log entry from an integration sync operation.

Fields
Field Name Description
id - ID!
logLevel - SyncLogLevel!
message - String!
syncPeriod - DateTime Groups entries from one sync run. Null for one-off events (e.g. connect/disconnect).
createdAt - DateTime!
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "logLevel": "INFO",
  "message": "xyz789",
  "syncPeriod": "2007-12-03T10:15:30Z",
  "createdAt": "2007-12-03T10:15:30Z"
}

SyncLogLevel

Description

Severity level for integration sync log entries.

Values
Enum Value Description

INFO

WARN

ERROR

Example
"INFO"

TagFormat

Values
Enum Value Description

DECIMAL

HEX

ENCODED_HEX

Example
"DECIMAL"

Tile

Description

This represents a tile for an overview screen

Fields
Field Name Description
id - ID!
type - TileType!
directionIndicator - Direction
place - Place
hideBookingInformation - Boolean
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "type": "BLANK",
  "directionIndicator": "NORTH",
  "place": Place,
  "hideBookingInformation": true
}

TileType

Values
Enum Value Description

BLANK

ROOM

DESK

Example
"BLANK"

TimeOfDay

Description

Represent time of day as offset in seconds since midnight.

Example
TimeOfDay

TimePresentation

Values
Enum Value Description

H24

H12

Example
"H24"

TimeWindow

Fields
Input Field Description
startTime - DateTime!
endTime - DateTime!
Example
{
  "startTime": "2007-12-03T10:15:30Z",
  "endTime": "2007-12-03T10:15:30Z"
}

URLDirection

Values
Enum Value Description

UPLOAD

DOWNLOAD

Example
"UPLOAD"

UpdateBookingInput

Description

Input for modifying an existing booking.

Fields
Input Field Description
focusMode - Boolean Enable or disable focus mode.
placeId - ID Change the booked place.
startTime - DateTime Change the start time. Can be in the past.
endTime - DateTime Change the end time. Must be after startTime.
skipLateArrivalReminder - Boolean Suppress the late arrival reminder.
skipAwayFromDeskReminder - Boolean Suppress the away-from-desk reminder.
arrivedAt - DateTime Timestamp when user arrived.
title - String Booking title (omittable).
isPrivate - Boolean Privacy setting (omittable).
Example
{
  "focusMode": false,
  "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "startTime": "2007-12-03T10:15:30Z",
  "endTime": "2007-12-03T10:15:30Z",
  "skipLateArrivalReminder": true,
  "skipAwayFromDeskReminder": true,
  "arrivedAt": "2007-12-03T10:15:30Z",
  "title": "xyz789",
  "isPrivate": false
}

UpdateCalendarEventInput

Description

TODO: Make attendees nullable Requires changing the protobuf definition of CalendarEvents to include a wrapper for the slice since it cannot detect differences between empty slices and nil https://stackoverflow.com/questions/21631428/protobuf-net-deserializes-empty-collection-to-null-when-the-collection-is-a-prop#answer-21632160

Fields
Input Field Description
name - String
startTime - DateTime
endTime - DateTime
attendees - [AttendeeInput!]!
sensitivity - CalendarEventSensitivity
meetingProvider - MeetingProvider
Example
{
  "name": "abc123",
  "startTime": "2007-12-03T10:15:30Z",
  "endTime": "2007-12-03T10:15:30Z",
  "attendees": [AttendeeInput],
  "sensitivity": "PRIVATE",
  "meetingProvider": "UNSPECIFIED"
}

UpdateCalendarSourceInput

Fields
Input Field Description
settings - SettingsInput
Example
{"settings": SettingsInput}

UpdateDeviceInput

Description

Input for updating device configuration.

Fields marked as omittable support three distinct states:

  • Field omitted: Preserves the existing value (no change)
  • Field set to null: Clears the field (removes the value)
  • Field set to a value: Updates to the new value
Fields
Input Field Description
serial - String Device serial number.
deskId - ID Move device to a different place.
roomId - ID
channelId - ID Firmware channel assignment (omittable).
parentDeviceId - ID The device ID of the parent this device belongs to (omittable).
interfaces - [NetworkInterfaceInput!] The device's full set of network interfaces. The provided list replaces whatever is stored: any existing interface whose name is not in the list is deleted. An empty list clears all interfaces for the device.
Example
{
  "serial": "xyz789",
  "deskId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "roomId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "channelId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "parentDeviceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "interfaces": [NetworkInterfaceInput]
}

UpdateDeviceSpecificSettingsInput

Fields
Input Field Description
data - String
dataVersion - String
preset - String
Example
{
  "data": "abc123",
  "dataVersion": "xyz789",
  "preset": "xyz789"
}

UpdateDeviceTypeInput

Fields
Input Field Description
id - ID!
name - String
attributes - DeviceTypeAttributesInput
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "name": "xyz789",
  "attributes": DeviceTypeAttributesInput
}

UpdateFacilityInput

Description

Input for updating facility properties.

Fields marked as omittable support three distinct states:

  • Field omitted: Preserves the existing value (no change)
  • Field set to null: Clears the field (removes the value)
  • Field set to a value: Updates to the new value
Fields
Input Field Description
name - String Facility name (omittable)
category - String Facility category (omittable)
iconPath - String Path to facility icon (omittable)
Example
{
  "name": "abc123",
  "category": "xyz789",
  "iconPath": "xyz789"
}

UpdateFileInput

Description

Input for updateFile. Only filename is currently mutable. The file's organization is resolved server-side from id, and the authorization check runs against that org.

Fields
Input Field Description
id - ID!
filename - String! New filename. Validated by the filename rule and must be unique per organization. Setting it to the current value is a no-op success.
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "filename": "xyz789"
}

UpdateFileMetadataInput

Description

Input for updateFileMetadata. Applies a partial patch to an existing file's metadata without re-uploading the blob: deleteKeys are removed first, then metadata entries are merged in (incoming values win for duplicate keys). Same per-entry/key/value limits as the upload path. Both metadata and deleteKeys may be empty (no-op write). Duplicate keys within metadata are rejected with INVALID_ARGUMENT.

Fields
Input Field Description
fileId - ID!
orgId - ID!
metadata - [FileMetadataEntryInput!]
deleteKeys - [String!]
Example
{
  "fileId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "metadata": [FileMetadataEntryInput],
  "deleteKeys": ["abc123"]
}

UpdateFileMetadataResult

Fields
Field Name Description
file - File!
Example
{"file": File}

UpdateFirmwareInput

Fields
Input Field Description
deviceTypeId - ID
version - String
url - String
publicKey - String
variant - String
channels - [ID!]
Example
{
  "deviceTypeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "version": "xyz789",
  "url": "abc123",
  "publicKey": "xyz789",
  "variant": "abc123",
  "channels": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"]
}

UpdateInvitationInput

Fields
Input Field Description
roles - [Role!]!
extendExpiration - Boolean
Example
{"roles": ["OWNER"], "extendExpiration": false}

UpdateLicenseInput

Fields
Input Field Description
refId - ID
count - Int
duration - Int
activationTime - DateTime
Example
{
  "refId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "count": 123,
  "duration": 123,
  "activationTime": "2007-12-03T10:15:30Z"
}

UpdateLicenseTypeInput

Fields
Input Field Description
name - String
entitySupport - [LicenseTypeEntitySupportInput!] Replaces the full entity support definition. All entity types not listed will have their features cleared. Omit to leave entity support unchanged.
Example
{
  "name": "xyz789",
  "entitySupport": [LicenseTypeEntitySupportInput]
}

UpdateMembershipInput

Description

Input for updating membership properties.

Fields marked as omittable support three distinct states:

  • Field omitted: Preserves the existing value (no change)
  • Field set to null: Clears the field (removes the value)
  • Field set to a value: Updates to the new value
Fields
Input Field Description
roles - [Role!] List of roles to assign to the membership. Replaces existing roles. (omittable)
Example
{"roles": ["OWNER"]}

UpdateOrganizationInput

Fields
Input Field Description
logoMediaId - String
whitelist - String
whitelistEnabled - Boolean
language - String
timezone - String
timePresentation - TimePresentation
name - String
domain - String
bookingSettings - OrganizationBookingSettingsInput
calendarSettings - CalendarSettingsInput
deskBookingSettings - DeskBookingSettingsInput
roomBookingSettings - RoomBookingSettingsInput
parkingBookingSettings - ParkingBookingSettingsInput
openHours - WeeklyOpenHoursInput
deviceScreenTemplate - DeviceScreenTemplate
brokenEquipmentReportEmails - [String!]
deviceErrorReportEmails - [String!]
deviceErrorReportWebhookUrl - String
schedulingSettings - SchedulingSettingsInput
Example
{
  "logoMediaId": "abc123",
  "whitelist": "abc123",
  "whitelistEnabled": true,
  "language": "abc123",
  "timezone": "abc123",
  "timePresentation": "H24",
  "name": "abc123",
  "domain": "abc123",
  "bookingSettings": OrganizationBookingSettingsInput,
  "calendarSettings": CalendarSettingsInput,
  "deskBookingSettings": DeskBookingSettingsInput,
  "roomBookingSettings": RoomBookingSettingsInput,
  "parkingBookingSettings": ParkingBookingSettingsInput,
  "openHours": WeeklyOpenHoursInput,
  "deviceScreenTemplate": "LargeResourceName",
  "brokenEquipmentReportEmails": ["xyz789"],
  "deviceErrorReportEmails": ["abc123"],
  "deviceErrorReportWebhookUrl": "xyz789",
  "schedulingSettings": SchedulingSettingsInput
}

UpdateOrganizationMessageInput

Fields
Input Field Description
organizations - [ID!]
type - OrganizationMessageType
content - String
canBeClosed - Boolean
showToAllOrganizations - Boolean
showAt - DateTime
hideAt - DateTime
Example
{
  "organizations": ["59fb1147-4713-4a12-a5a2-640c61c2ca67"],
  "type": "SUCCESS",
  "content": "abc123",
  "canBeClosed": true,
  "showToAllOrganizations": true,
  "showAt": "2007-12-03T10:15:30Z",
  "hideAt": "2007-12-03T10:15:30Z"
}

UpdateOverviewInput

Fields
Input Field Description
type - OverviewType
mode - OverviewMode
name - String
alert - AlertInput
showDateTime - Boolean
showLogo - Boolean
darkMode - Boolean
logoFileId - ID
columnCount - Int
tiles - [UpdateTileInput]
placeId - String
Example
{
  "type": "TILES",
  "mode": "MONITORING",
  "name": "xyz789",
  "alert": AlertInput,
  "showDateTime": false,
  "showLogo": true,
  "darkMode": false,
  "logoFileId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "columnCount": 987,
  "tiles": [UpdateTileInput],
  "placeId": "abc123"
}

UpdatePinInput

Fields
Input Field Description
code - String
Example
{"code": "xyz789"}

UpdatePlaceFeatureInput

Fields
Input Field Description
enabled - Boolean
Example
{"enabled": false}

UpdatePlaceFeatureInstanceInput

Fields
Input Field Description
attributes - PlaceFeatureInstanceAttributesInput
Example
{"attributes": PlaceFeatureInstanceAttributesInput}

UpdatePlaceInput

Description

Input for updating an existing place.

Fields
Input Field Description
name - String New display name.
parentPlaceId - ID Change the parent place. May affect inherited settings.
placeTypeId - ID! Place type.
settings - PlaceSettingsInput Type-specific settings.
attributes - PlaceAttributesInput Type-specific attributes.
mediaId - ID Place image (omittable).
ownerId - ID Owner user ID. Marks place as dedicated. Set to null to undedicate (omittable).
schedulingSettings - SchedulingSettingsInput Scheduling settings to set directly on this place, before the hierarchy cascade is applied. Omit to leave existing settings unchanged; set to null to clear all place-level settings; set to a value to overwrite (omittable).
Example
{
  "name": "xyz789",
  "parentPlaceId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "placeTypeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "settings": PlaceSettingsInput,
  "attributes": PlaceAttributesInput,
  "mediaId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "ownerId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "schedulingSettings": SchedulingSettingsInput
}

UpdatePlanInput

Fields
Input Field Description
mediaId - ID
annotations - String
Example
{
  "mediaId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "annotations": "abc123"
}

UpdateRoomBookingInput

Fields
Input Field Description
roomId - ID
title - String
startTime - DateTime
endTime - DateTime
attendees - [AttendeeInput!] attendees is currently ignored when updating a booking.
isPrivate - Boolean
Example
{
  "roomId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "title": "xyz789",
  "startTime": "2007-12-03T10:15:30Z",
  "endTime": "2007-12-03T10:15:30Z",
  "attendees": [AttendeeInput],
  "isPrivate": true
}

UpdateTileInput

Fields
Input Field Description
id - ID
type - TileType!
directionIndicator - Direction
placeId - ID
hideBookingInformation - Boolean
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "type": "BLANK",
  "directionIndicator": "NORTH",
  "placeId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "hideBookingInformation": true
}

UpdateUserInput

Description

Input for updating user profile information.

Fields marked as omittable support three distinct states:

  • Field omitted: Preserves the existing value (no change)
  • Field set to null: Clears the field (removes the value)
  • Field set to a value: Updates to the new value
Fields
Input Field Description
firstName - String User's first name (omittable)
lastName - String User's last name (omittable)
Example
{
  "firstName": "xyz789",
  "lastName": "abc123"
}

User

Fields
Field Name Description
id - ID!
name - String!
firstName - String
lastName - String
email - String!
eula - String legacy, will be removed
verified - Boolean!
memberships - [Membership!]!
invitations - [Invitation!]!
Arguments
filter - InvitationFilter
superAdmin - Boolean!
createdAt - DateTime!
updatedAt - DateTime!
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "name": "abc123",
  "firstName": "abc123",
  "lastName": "xyz789",
  "email": "xyz789",
  "eula": "abc123",
  "verified": false,
  "memberships": [Membership],
  "invitations": [Invitation],
  "superAdmin": false,
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

UserFilter

Fields
Input Field Description
search - String Only returns users where name or email contains the search term.
Example
{"search": "abc123"}

UserOrder

Fields
Input Field Description
field - UserOrderField!
desc - Boolean!
Example
{"field": "NAME", "desc": false}

UserOrderField

Values
Enum Value Description

NAME

EMAIL

EULA

legacy, will be removed

VERIFIED

SUPER_ADMIN

CREATED_AT

UPDATED_AT

Example
"NAME"

UserUsersPermissions

Fields
Field Name Description
create - Permission!
convertServiceAccount - Permission!
get - Permission!
list - Permission!
update - Permission!
delete - Permission!
authenticate - Permission!
verifyEmail - Permission!
resendEmailVerification - Permission!
Example
{
  "create": Permission,
  "convertServiceAccount": Permission,
  "get": Permission,
  "list": Permission,
  "update": Permission,
  "delete": Permission,
  "authenticate": Permission,
  "verifyEmail": Permission,
  "resendEmailVerification": Permission
}

UsersConnection

Fields
Field Name Description
pageInfo - PageInfo!
totalCount - Int!
users - [User!]!
Example
{
  "pageInfo": PageInfo,
  "totalCount": 987,
  "users": [User]
}

WeeklyOpenHours

Fields
Field Name Description
mon - OpenHours!
tue - OpenHours!
wed - OpenHours!
thu - OpenHours!
fri - OpenHours!
sat - OpenHours!
sun - OpenHours!
Example
{
  "mon": OpenHours,
  "tue": OpenHours,
  "wed": OpenHours,
  "thu": OpenHours,
  "fri": OpenHours,
  "sat": OpenHours,
  "sun": OpenHours
}

WeeklyOpenHoursInput

Fields
Input Field Description
mon - OpenHoursInput
tue - OpenHoursInput
wed - OpenHoursInput
thu - OpenHoursInput
fri - OpenHoursInput
sat - OpenHoursInput
sun - OpenHoursInput
Example
{
  "mon": OpenHoursInput,
  "tue": OpenHoursInput,
  "wed": OpenHoursInput,
  "thu": OpenHoursInput,
  "fri": OpenHoursInput,
  "sat": OpenHoursInput,
  "sun": OpenHoursInput
}

ZoneSettings

Fields
Field Name Description
brokenEquipmentReportEmails - [String!]
Example
{"brokenEquipmentReportEmails": ["xyz789"]}

ZoneSettingsInput

Fields
Input Field Description
brokenEquipmentReportEmails - [String!]
Example
{"brokenEquipmentReportEmails": ["abc123"]}

ZoomConnection

Fields
Field Name Description
id - ID!
orgId - ID!
zoomAccountId - String!
connectedAt - DateTime!
connectedByUserId - ID
status - ZoomConnectionStatus!
statusMessage - String
statusUpdatedAt - DateTime
installId - String Pending installation ID for an in-progress re-authentication
reauthLink - String! OAuth authorize URL for re-authentication
syncLog - [SyncLogEntry!]! Latest 30 integration log entries for this Zoom connection.
managedPlacesCount - Int! Number of places managed via Zoom for this organization.
linkedDevicesCount - Int! Number of devices linked to Zoom for this organization (a row in zoom_devices, irrespective of lifecycle state).
Example
{
  "id": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "orgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "zoomAccountId": "abc123",
  "connectedAt": "2007-12-03T10:15:30Z",
  "connectedByUserId": "59fb1147-4713-4a12-a5a2-640c61c2ca67",
  "status": "ACTIVE",
  "statusMessage": "abc123",
  "statusUpdatedAt": "2007-12-03T10:15:30Z",
  "installId": "xyz789",
  "reauthLink": "xyz789",
  "syncLog": [SyncLogEntry],
  "managedPlacesCount": 987,
  "linkedDevicesCount": 123
}

ZoomConnectionStatus

Values
Enum Value Description

ACTIVE

NEEDS_REAUTH

ERROR

DISCONNECTED_BY_ZOOM

Example
"ACTIVE"

ZoomDisconnectResult

Description

Result of disconnect operation

Fields
Field Name Description
success - Boolean!
placesAffected - Int! Number of places affected by disconnect
licensesDecoupled - Int! Number of license associations removed
message - String Optional message with details
Example
{
  "success": false,
  "placesAffected": 123,
  "licensesDecoupled": 987,
  "message": "abc123"
}

ZoomInstallLockStatus

Description

Lock status of a pending Zoom installation.

A Zoom account is permanently bound to the first Evoko org it connects to. The web picker uses this to disable orgs that aren't the locked org and to surface a clear error when the locked org is not in the user's memberships.

Fields
Field Name Description
locked - Boolean! True when the install's Zoom account is already linked to an Evoko org.
lockedOrgId - ID Org ID the Zoom account is locked to. Null when locked is false.
Example
{"locked": true, "lockedOrgId": "59fb1147-4713-4a12-a5a2-640c61c2ca67"}

ZoomPlaceInfo

Fields
Field Name Description
hasConnection - Boolean!
qrCodeString - String
Example
{
  "hasConnection": false,
  "qrCodeString": "xyz789"
}

ZoomPurgeResult

Description

Result of purge operation with counts of affected items

Fields
Field Name Description
success - Boolean!
placesDeleted - Int! Number of places deleted
message - String Optional message with details
Example
{
  "success": true,
  "placesDeleted": 987,
  "message": "xyz789"
}

ZoomSyncStarted

Description

Acknowledgement that a Zoom workspace sync has been queued.

The sync runs asynchronously on the zoom service. Clients should poll zoomConnection.syncLog to observe progress and the final result. Auth failures (re-authorization required) and Zoom API errors are surfaced via the integration log, not via this mutation's response.

Fields
Field Name Description
accepted - Boolean! Whether the sync was accepted for processing.
startedAt - DateTime! When the sync was queued (server time, UTC).
Example
{
  "accepted": false,
  "startedAt": "2007-12-03T10:15:30Z"
}